Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen Newsgroups: fr.comp.os.unix Subject: =?UTF-8?Q?Re:_Make_=c3=a9crase_mes_fichiers_!?= Date: Tue, 12 Oct 2021 22:14:40 +0200 Organization: There's no cabale Lines: 47 Message-ID: References: <87fst657vq.fsf@universite-de-strasbourg.fr.invalid> NNTP-Posting-Host: 220.12.205.77.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1634069680 7853 77.205.12.220 (12 Oct 2021 20:14:40 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Tue, 12 Oct 2021 20:14:40 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: <87fst657vq.fsf@universite-de-strasbourg.fr.invalid> Bytes: 2268 Bonjour, Le 12/10/2021 22:02, Alain Ketterlin a écrit : > Salut, > > J'ai un problème étrange avec le makefile suivant : > > # -------- > name: name.tab.o name.o > > name.tab.c: name.y > bison name.y > # -------- > > J'ai deux fichiers source, name.y (la grammaire Yacc) et name.c (un > main) -- vous avez un contenu "minimal" après ma signature. 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. > [...] > > | yacc name.y > | mv -f y.tab.c name.c > | cc -c -o name.o name.c > | bison name.y > | ... 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. .... Cordialement, -- Olivier Miakinen