J'ai un makefile à partir duquel je veux appeler un autre script bash externe pour faire une autre partie du bâtiment. Comment ferais-je le mieux pour le faire.exécuter un script bash à partir d'un fichier make
Répondre
Tout comme d'appeler toute autre commande d'un makefile:
target: prerequisites
shell_script arg1 arg2 arg3
En ce qui concerne votre autre explication:
.PHONY: do_script
do_script:
shell_script arg1 arg2 arg3
prerequisites: do_script
target: prerequisites
Chacune des actions de la règle de makefile est une commande qui sera exécutée dans un sous-couche. Vous devez vous assurer que chaque commande est indépendante, puisque chacun sera exécuté dans un sous-shell distinct.
Pour cette raison, vous verrez souvent des sauts de ligne se sont échappés lorsque l'auteur veut plusieurs commandes à exécuter dans le même sous-shell:
targetfoo:
command_the_first foo bar baz
command_the_second wibble wobble warble
command_the_third which is rather too long \
to fit on a single line so \
intervening line breaks are escaped
command_the_fourth spam eggs beans
Peut-être pas la « bonne » façon de le faire comme les réponses déjà fournies , mais je suis tombé sur cette question parce que je voulais que mon makefile exécute un script que j'ai écrit pour générer un fichier d'en-tête qui fournirait la version d'un ensemble de logiciels. J'ai un certain nombre de cibles dans ce paquet, et je ne voulais pas ajouter un nouveau prérequis à tous. Mettre cela vers le début de mon makefile a fonctionné pour moi
$(shell ./genVer.sh)
qui dit make pour exécuter simplement une commande shell. ./genVer.sh
est le chemin (même répertoire que le makefile) et le nom de mon script à exécuter. Cela fonctionne quelle que soit la cible que je spécifie (y compris clean
, ce qui est l'inconvénient, mais finalement pas une affaire énorme pour moi).
- 1. Appeler make à partir d'un script bash ne fera pas
- 2. Comment exécuter un script bash à partir du programme C++
- 3. exécuter grep à partir de GNU make
- 4. Comment exécuter un script bash dans Terminal?
- 5. SQLite - Exécuter un script SQL multiligne à partir du fichier?
- 6. Exécuter/invoquer le script batch Windows à partir du script sh ou bash
- 7. Exécuter un script Sikuli à partir d'AppleScript
- 8. Comment exécuter "make install" à partir de Xcode
- 9. Comment exécuter un script bash sur save dans NetBeans?
- 10. Exécuter un script Ant à partir d'un autre script Ant?
- 11. Exécuter des commandes à l'intérieur d'un script bash
- 12. Exécuter une commande UNIX dans un thread à partir d'un script Bash
- 13. Script Ksh: Exécuter un remplacement de type bash: ${@/.txt/}
- 14. de script Bash pour lire un fichier
- 15. recherche de fichier script bash
- 16. Ant EXEC ne parvient pas à exécuter le script bash
- 17. Comment exécuter des commandes de script à partir de variables?
- 18. Écrire un script bash à partir de Java
- 19. Exécuter une chaîne comme une commande dans un script Bash
- 20. make: fichier hiérarchique make
- 21. Comment exécuter un script PowerShell à partir de SSIS
- 22. comment exécuter un script ant existant à partir de groovy
- 23. Conserver un fichier ouvert pour toujours dans un script bash
- 24. Comment exécuter un script à l'aide d'un fichier BAT?
- 25. Comment inclure un caractère pipe dans un argument à un fichier batch à partir d'un script bash?
- 26. Exécuter la commande à partir des variables du script shell
- 27. Comment exécuter un doublage Perl à partir d'un fichier makefile?
- 28. Comment rechercher une expression dans un fichier à partir d'un script bash?
- 29. Appel de MSYS bash à partir de Windows cmd
- 30. Exécuter un fichier de classe Java à partir du script PHP sur un site Web
mais j'ai besoin d'exécuter le script avant les conditions préalables –
@ Matthew, puis votre makefile est mal configuré. Créez une nouvelle cible '.PHONY' dont vos prérequis dépendent et exécutez le script dans cette cible. –
Édité avec plus pour votre cas. –