Comment “faire” application cible par défaut à construire si aucune cible n'est spécifiée?
La plupart des linux applications sont compilées avec:
make
make install clean
Que j'ai compris, de faire prend des noms de construire des cibles comme arguments. Donc install
est une cible que des copies des fichiers et après que clean
est un objectif qui supprime les fichiers temporaires.
Mais quel est l'objectif sera make
construire si aucun argument n'est spécifié (par exemple, la première commande dans mon exemple)?
Vous devez vous connecter pour publier un commentaire.
Par défaut, il commence par le traitement de la première cible qui ne commence pas par un '.' aka la valeur par défaut de l'objectif; pour ce faire, il peut avoir à traiter d'autres cibles, plus précisément, ceux de la première cible dépend. Le GNU make manuel couvre tous ces trucs, et est étonnamment facile et instructif de lire.
all
est juste une convention.make install
en sudo, plutôt que l'ensemble de la construction.include
s un autre makefile, dont le premier objectif est%.o : %.cpp
. Donc, la cible par défaut est de construire tous les .fichiers cpp?Pour en sauver d'autres quelques secondes, et pour les sauver de l'avoir à lire le manuel, voici la réponse courte. Ajoutez à cela le haut de votre fichier:
mytarget sera désormais la cible qui est exécutée si "faire" est exécutée et aucune cible n'est spécifiée.
Si vous avez une version plus ancienne de faire (<= 3.80), cela ne fonctionne pas. Si c'est le cas, alors vous pouvez faire ce que anon mentionne, il suffit d'ajouter ce à le haut de votre fichier:
Références:
https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
default:
un nom, ou cela fonctionne parce que c'est la première cible dans le fichier?GNU Make vous permet également de spécifier la valeur par défaut de rendre cible à l'aide d'une variable spéciale appelée .DEFAULT_GOAL. Vous pouvez même annuler cette variable dans le milieu du makefile, provoquant la prochaine cible dans le fichier de devenir la cible par défaut.
Vraiment intéressant, mais ésotérique des choses. Mais je suis d'accord avec anon là - haut- le gnu make manuel est tout à fait lisible. Vous pourriez penser que vous n'avez pas besoin de savoir plus de choses en elle, mais une fois que vous voyez un vraiment complet, vous apprécierais vraiment farfelues que vous pouvez faire avec lui - manipulation de chaînes de fichier/répertoire des fonctions, etc.
Ref: Le Gnu Make manuel - Variables Spéciales