Deutsch English Français Italiano |
<87sfwz68n4.fsf@universite-de-strasbourg.fr.invalid> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!Faqf6A55NG1s8DSVkh3L9A.user.46.165.242.75.POSTED!not-for-mail From: Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> Newsgroups: fr.comp.os.unix Subject: Re: Make =?utf-8?Q?=C3=A9crase?= mes fichiers ! Date: Sun, 17 Oct 2021 16:14:23 +0200 Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg Message-ID: <87sfwz68n4.fsf@universite-de-strasbourg.fr.invalid> References: <87fst657vq.fsf@universite-de-strasbourg.fr.invalid> <sk4qbg$7ld$1@cabale.usenet-fr.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: gioia.aioe.org; logging-data="1886"; posting-host="Faqf6A55NG1s8DSVkh3L9A.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) Cancel-Lock: sha1:KP0MUO73hkRnSfhvERlkttuuC6Q= X-Notice: Filtered by postfilter v. 0.9.2 Bytes: 3290 Lines: 70 Je r=C3=A9ponds ici =C3=A0 (l'autre message de) Olivier pour garder un peu = de contexte. Olivier Miakinen <om+news@miakinen.net> writes: >> # -------- >> name: name.tab.o name.o >>=20 >> name.tab.c: name.y >> bison name.y >> # -------- > Bon, d=C3=A9j=C3=A0 on pourrait arg=C3=BCer que ce n'est pas une bonne id= =C3=A9e d'avoir > deux fichiers sources qui ne diff=C3=A8rent que par une extension connue > de make. Mais voyons plus loin. On pourrait, mais d'une part c'est un projet o=C3=B9 j'ai plusieurs sources yacc/bison et je suis all=C3=A9 au plus simple, d'autre part la r=C3=A8gle = make "%.y: %.c" est contraire aux conventions de yacc (qui produit par d=C3=A9fa= ut y.tab.c) ou de bison (qui produit %.tab.c). D'o=C3=B9 ma surprise. >> [...] >>=20 >> | yacc name.y=20 >> | mv -f y.tab.c name.c >> | cc -c -o name.o name.c >> | bison name.y >> | ... > > Donc oui, c'est clairement une r=C3=A8gle implicite pour faire un fichier= .c > =C3=A0 partir d'un fichier .y -- implicite puisque dans ton makefile tu ne > d=C3=A9finis qu'une r=C3=A8gle avec bison et aucune avec yacc. > > Si tu veux conserver name.y et name.c comme deux fichiers *sources* > ind=C3=A9pendants, 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=C3=A8gles implicites pour C sont bien pratiques (avec CFLAGS etc.) J'ai finalement chang=C3=A9 mes conventions de nommage. Je me demande si on ne pourrait pas imaginer une contrainte qui emp=C3=AAcherait make d'utiliser une r=C3=A8gle implicite quand les pr=C3= =A9requis sont mentionn=C3=A9s explicitement dans une r=C3=A8gle avec une commande... Bref. (Au passage, j'ai =C3=A9t=C3=A9 pi=C3=A9g=C3=A9 par une autre r=C3=A8gle im= plicite, parce que j'avais la r=C3=A8gle suivante : name.lex.c: name.lex flex -o $@ $< mais l=C3=A0 make m'indique une circularit=C3=A9, =C3=A0 cause de sa r=C3= =A8gle "%: %.c". Ma cible s'appelle maintenant name.dfa.c.) Merci en tout cas pour ta r=C3=A9ponse. -- Alain.