Vous pouvez utiliser un script shell qui prend quelques indices en fonction de son appel et appelle make
après avoir défini CFLAGS
de manière appropriée pour la construction ponctuelle occasionnelle. Disons que vous avez /usr/bin/compile
, qui est un script shell qui regarde $0
pour voir quel nom l'a effectivement appelé. Vous pouvez ensuite créer des liens symboliques qu'il pedantic
nommé, fullwarn
, etc.
Dans le script shell lui-même, quelque chose comme:
OLDCFLAGS=$CFLAGS
WHATAMI=$(basename $0)
case "$WHATAMI" in
pedantic)
export CFLAGS="-Wall -pedantic -ansi"
make [email protected]
exit $?
;;
c99)
export CFLAGS="-std=c99 ... ... ..."
....
Ensuite, pour compiler foo.c avec les drapeaux Naggy supplémentaires:
pedantic foo
Ceci est pratique, comme je l'ai dit pour unique construit, par exemple, essayer de compiler le code que quelqu'un a écrit dans une question, ou travailler sur la façon d'utiliser une nouvelle bibliothèque , etc.
Pour toute autre chose, utilisez simplement un makefile, comme d'autres l'ont dit.
Downvoted pour proposer un Makefile codé en dur (et cassé) quand les règles implicites avec 'export CFLAGS = ...' dans l'environnement font précisément ce que Jef Ty veut. (Voir la réponse de Scott Wales). –
@Matt B: Le but du fichier makefile était simplement d'introduire le concept d'un makefile tout en donnant l'exemple le plus simple possible qui fonctionnera en tapant make. Sans utiliser de règles implicites. J'ai enlevé l'exemple cependant. Il est très possible que l'OP veuille faire quelque chose de plus complexe avec son makefile si ce n'est pas aujourd'hui puis bientôt. –