Sujet : Re: Make écrase mes fichiers !
De : fantome.forums.tDeContes (at) *nospam* free.fr.invalid (Thomas)
Groupes : fr.comp.os.unixDate : 18. Oct 2021, 05:07:27
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <fantome.forums.tDeContes-BF3456.06072318102021@news.free.fr>
References : 1 2 3
User-Agent : MT-NewsWatcher/3.5.3b3 (Intel Mac OS X)
In article <
87sfwz68n4.fsf@universite-de-strasbourg.fr.invalid>,
Alain Ketterlin <
alain@universite-de-strasbourg.fr.invalid> wrote:
Olivier Miakinen <om+news@miakinen.net> writes:
Bon, déjà on pourrait argüer que ce n'est pas une bonne idée d'avoir
deux fichiers sources qui ne diffèrent que par une extension connue
de make. Mais voyons plus loin.
On pourrait, mais d'une part c'est un projet où j'ai plusieurs sources
yacc/bison et je suis allé au plus simple, d'autre part la règle make
"%.y: %.c" est contraire aux conventions de yacc (qui produit par défaut
y.tab.c) ou de bison (qui produit %.tab.c). D'où ma surprise.
je comprend ton agacement :-)
Donc oui, c'est clairement une règle implicite pour faire un fichier .c
à partir d'un fichier .y -- implicite puisque dans ton makefile tu ne
définis qu'une règle avec bison et aucune avec yacc.
>
Si tu veux conserver name.y et name.c comme deux fichiers *sources*
indépendants, alors je vois ceci :
>
man make
...
-r, --no-builtin-rules
Eliminate use of the built-in implicit rules. Also clear
out the default list of suffixes for suffix rules.
...
Ben oui, mais les règles implicites pour C sont bien pratiques (avec
CFLAGS etc.)
Je me demande si on ne pourrait pas imaginer une contrainte qui
empêcherait make d'utiliser une règle implicite quand les prérequis sont
mentionnés explicitement dans une règle avec une commande... Bref.
(Au passage, j'ai été piégé par une autre règle implicite, parce que
j'avais la règle suivante :
mais là make m'indique une circularité, à cause de sa règle "%: %.c". Ma
cible s'appelle maintenant name.dfa.c.)
je n'ai que survolé les règles implicites, parce que c'est éloigné de
mes besoins.
mais je me souviens qu'il y a qqch pour afficher toutes les règles
implicites
(il faut éventuellement veiller à débrancher tout fichier makefile pour
ne pas être pollué par son contenu)
de cette façon, tu auras juste à recopier ce dont tu as besoin dans ton
makefile,
- sans avoir besoin de les réécrire toi même,
- sans être dérangé par toutes celles dont tu n'as pas besoin :-)
-- RAPID maintainerhttp://savannah.nongnu.org/projects/rapid/