46 votes

Comment exécuter un fichier make à partir de n'importe quel répertoire ?

Pour exécuter le fichier make, je suis censé aller dans le répertoire du fichier make et c'est seulement à partir de là que je peux exécuter le fichier make. Comment puis-je faire la même chose même si je suis dans n'importe quel répertoire ?

53voto

RedGrittyBrick Points 78148

Solution générale

(cd /other/dir && make)

ne changera pas vos Shell's dans le répertoire actuel, mais exécutera make avec le répertoire de travail indiqué.

Les && veillera à ce que make ne s'exécute pas s'il y a une erreur dans le fichier cd de la commande (par exemple, le répertoire n'existe pas ou vous n'y avez pas accès).

L'approche ci-dessus est utile pour toutes sortes de commandes, et pas seulement pour les commandes suivantes make . C'est pourquoi il vaut la peine de l'apprendre et de s'en souvenir.

Solution spécifique

Consultez la page de manuel pour obtenir un -C par exemple.

make -C /other/dir

Plusieurs commandes Unix n'avaient pas cette option au départ, mais elle leur a été ajoutée à un moment donné (par exemple avec l'implémentation GNU).

38voto

Jonathan Points 481

Vous pouvez utiliser

make -C dir

pour passer au répertoire dir avant de lire le fichier makefile pointé. Veuillez noter que l'option -C est en majuscule.

2voto

user1148325 Points 21

Il s'agit d'une vieille question, mais j'aime bien utiliser un ~/.bashrc qui se présente comme suit :

alias makeaway="cd /dir/to/make && make && cd -"

1voto

Mahesh Wable Points 11

Utilice cd ./dir && make && pwd dans le Makefile .

Exemple de fichier Makefile :

BUILD_DIR       =       $(shell pwd)

deploy::
        cd ./dist/local && make && pwd && npm publish && cd .. && cd .. && pwd
clean::
        npm cache clean --force

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X