2010-01-20 1 views
2

Je regarde C makefile, et j'ai une question.make - spécification du nom de la cible à faire à partir de la ligne de commande

Je sais que 'make a' rendra la cible a, qui est censée être définie dans le fichier makefile.

Je veux savoir si le nom de la cible elle-même peut être fourni comme argument à faire.

à savoir ce que je veux faire:

$ (target_name) est le nom fourni à la commande make. Par exemple, "fais foo".

et dans le makefile,
$ (TARGET_NAME) = dépendances
commande

Je ne sais pas si cela est possible ... ne pouvait pas trouver quoi que ce soit dans le manuel de faire aussi.

Si quelqu'un peut m'aider avec ça, ce sera génial.

Merci,

Répondre

3

Tout ce que vous demandez au sujet est ce qui fait fait par défaut - il n'y a pas besoin d'écrire un code spécial dans le makefile pour le faire. Vous semblez plutôt confus à propos de make (ce n'est pas particulièrement lié à C, par exemple). Le meilleur guide est le GNU Make Manual, qui n'est pas seulement un manuel mais un bon tutoriel.

+0

Ouais .. par exemple ici, il montre comment vous pouvez spécifier des cibles différentes dans un makefile http : //www.gnu.org/software/make/manual/make.html#Rule-Introduction – thomaspaulb

+0

Merci pour les réponses. Peut-être que je n'étais pas clair. Ce que je voulais dire, c'est que le nom de la cible n'est pas prédéfini dans le fichier makefile. Il est fourni à partir de la ligne de commande et utilisé dans le fichier makefile. Est-ce possible? – Chaitanya

+0

@Chaitanya "make foo" va construire la cible nommée "foo". Comment pouvez-vous espérer construire une cible non définie? –

0

Je suis un peu nouveau sur Makefiles mais il semble que vous ne transmettiez pas les valeurs dans Makefile comme ça. Si ce qui suit est votre Makefile

# Makefile 

TARGET?=something 

$(TARGET): 
    echo $(TARGET) 

Vous pouvez passer des paramètres en appelant make comme celui-ci dans le terminal

$ TARGET='ABCDEF' make