GNU Make ungezwungen ausprobieren

3 min

language: ja bn de en es fr hi ko pt ru zh-cn zh-tw

Hallo, ich bin Inkompetent.
Ich arbeite an cuckooget, und da ich die Installation mit pip unterstützt habe und es mühsam war, den Installationsprozess jedes Mal während der Entwicklung durchzuführen, habe ich diesmal GNU Make ausprobiert.
Der Grund dafür ist, dass ich das O'Reilly GNU Make-Buch hatte und gelesen hatte, aber ich dachte, ich hätte keine Gelegenheit, es einzuführen, da es auf C/C++ basierte. Diesmal hatte ich das Gefühl, dass es gut funktionieren würde, wenn ich es einbeziehen würde, also habe ich es ausprobiert.

Makefile

Es sieht jetzt so aus.

$ 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 wird separat gebaut, um als Python-Bibliothek aufgerufen zu werden, aber make führt nur den Build von Rust durch.
Dank der Hinzufügung von make clean kann ich Junk-Dateien sofort löschen, und es ist ziemlich bequem.

Gibt es noch etwas?

Später denke ich, dass es gut wäre, es in verschiedene Dinge einzuführen, aber wenn man in einem einzelnen Projekt herumfummelt, ist es gut, alles in einem Makefile zusammenzufassen, da es einfacher ist zu überprüfen, was ausgeführt werden kann. Aber wenn man nur kleine Dinge macht, ist es nicht nötig.

Bis zum nächsten Mal. Viele Grüße.

Related Posts