粗略地嘗試 GNU Make
大家好,我是無能。
我正在開發一個名為cuckooget的專案,由於我已經支援使用pip安裝,並且在開發階段每次都執行安裝過程很麻煩,所以這次我嘗試使用了GNU Make。
話說,我有一本O'Reilly的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 是為了作為 Python 函式庫被呼叫而單獨建置的,而make只負責建置那個 Rust 部分。
多虧了新增了make clean,現在可以瞬間刪除垃圾檔案,感覺相當方便。
還有其他嗎?
我認為之後也可以嘗試將它引入到各種不同的專案中,但如果是在單一專案中處理許多雜事,將它們整理到Makefile中,會更容易確認可以執行哪些操作,我覺得這樣不錯,不過如果只做些小事情,那就不需要了。
那麼下次再見。請多指教。