Essayer GNU Make de manière triviale

3 min

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

Bonjour, je suis incompétent.
Parmi les choses que je développe, il y a cuckooget. Comme j'ai ajouté la prise en charge de l'installation via pip et que c'était fastidieux de faire le processus d'installation à chaque étape de développement, j'ai essayé d'utiliser GNU Make cette fois.
En fait, j'avais un livre O'Reilly sur GNU Make et je l'avais lu, mais comme il était basé sur C/C++, je pensais que je n'aurais pas l'occasion de l'introduire. Cependant, cette fois, j'ai eu l'impression que ce serait bien de l'intégrer, alors je l'ai fait.

Makefile

Voici à quoi cela ressemble.

$ 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 est compilé séparément pour être appelé comme une bibliothèque Python, mais make ne fait que la compilation de Rust.
Grâce à l'ajout de make clean, je peux supprimer les fichiers temporaires en un instant, ce qui est assez pratique.

Autre chose ?

Plus tard, je pense que ce serait bien de l'introduire dans d'autres projets, mais si vous travaillez sur un seul projet et que c'est un peu désordonné, le regrouper dans un Makefile facilite la vérification de ce qui peut être exécuté, donc je pense que c'est une bonne idée. Cependant, si vous ne faites que de petites choses, ce n'est pas nécessaire.

À bientôt. Cordialement.

Related Posts