J'ai un Makefile
avec le format suivant:faire Explicitement une cible avec un nom de variable
.PHONY: all
target1 := file1
target2 := $(target1).txt
all: $(target2)
$(target1): prerequisite1
recipe
$(target2): $(target1)
recipe
target2
dépend de target1
et make
substituera correctement les chaînes pour créer les noms de fichiers. Cependant, sur mon système, les noms de fichiers et les chemins sont assez fastidieux à taper; Je me demande s'il n'y a aucune façon de faire spécifiquement target1
tout en se référant à son nom pas comme le chemin du fichier, mais comme la variable.
Par exemple, je voudrais pouvoir invoquer:
$ make $(target1)
plutôt que
$ make path/to/file1
Je veux le faire parce que je change les variables tout à fait un peu et la structure de mon Makefile
a de nombreux intermédiaires qui sont parfois difficiles à retracer à leurs chemins de fichiers littéraux, mais sont faciles à make
sur la base des noms de variables que je leur ai assignés. Ce qui précède ne fonctionne pas, et j'ai lu la page man
ainsi que fait un peu de recherche ici et sur Google. Je me demande simplement si quelqu'un a déjà rencontré ce problème et trouvé une solution.
Une cible qui ressemble à quelque chose comme 'variable-%: $ ($ *);' et appelée via 'make variable-target1', peut-être? – user2722968
@ utilisateur2722968 Merci. :) Désolé, je suis peut-être coincé dans la syntaxe, mais les retours 'make target1' ne permettent pas de trouver la cible. –