低俗にGNU Makeを試す

2 min read

こんにちは、無能です。
私の作っているものとしてcuckoogetがあるのですが、pipでのインストール対応をしたことと開発段階で毎回インストール処理をするのがめんどくさくて今回GNU Make使ってみました。
というのもオライリーのGNU Make本はあって読んでいたのですがC/C++が前提のお話で導入する機会ないかなとおもっていたのですが今回取り入れたらいい感じになりそうな気がしたんでいれてみました。

Makefile

こんな感じになりました。

$ cat Makefile 
.PHONY: all check-deps build install clean done

WHEEL_DIR = lib/target/wheels
EGG_INFO  = cuckooget.egg-info src/cuckooget.egg-info

all: check-deps build

check-deps:
        @command -v pyenv >/dev/null || (echo "Please install pyenv" ; exit 1;)
        @command -v python3 >/dev/null || (echo "Please install Python3" ; exit 1;)
        @command -v maturin >/dev/null || ( echo "Please install maturin (pip install maturin)"; exit 1; )

build:
        @echo "Building with maturin..."
        cd lib && maturin build

install:
        pip install . --force-reinstall
        pip install $(WHEEL_DIR)/*.whl --force-reinstall
        @echo "Done! How to use \`ck -h\`"

clean:
        rm -rf build lib/target $(EGG_INFO)

done:
        @echo "All steps completed."

RustはPytonのライブラリとして呼び出すために別でビルドしているのですがmakeではそのRustのビルドだけ行ってます。
make cleanを追加したおかげでゴミを一瞬で削除できるようになったし結構快適です。

他にも?

あとから、いろんなのに導入してみてもいいかなって思うんですが単一プロジェクトでごちゃごちゃやっている場合はMakefileにまとめておけばどんな実行できるか確認しやすいんでいいかなって思うんですが、小さなことしかやってない場合いらないですね。

それではまた。よろしくお願いします。

PGP --- Contact --- Machines