低俗に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
にまとめておけばどんな実行できるか確認しやすいんでいいかなって思うんですが、小さなことしかやってない場合いらないですね。
それではまた。よろしくお願いします。