Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.os.unix > #7815
| From | Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> |
|---|---|
| Newsgroups | fr.comp.os.unix |
| Subject | Make écrase mes fichiers ! |
| Date | 2021-10-12 22:02 +0200 |
| Organization | Université de Strasbourg |
| Message-ID | <87fst657vq.fsf@universite-de-strasbourg.fr.invalid> (permalink) |
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.
Avec ces trois fichiers, si name.c est plus récent que name.y, "make"
(GNUmake 4.1) fait :
| cc -c -o name.o name.c
| bison name.y
| cc -c -o name.tab.o name.tab.c
| cc name.o name.tab.o -o name
Exactement ce que je veux. Si maintenant je fais "touch name.y ; make"
(ou si name.y est le plus récent des deux au départ), voilà ce qui se
passe :
| yacc name.y
| mv -f y.tab.c name.c
| cc -c -o name.o name.c
| bison name.y
| ...
WHAT THE FUCK ! Make commence par écraser mon fichier name.c (par
yacc+mv) juste parce qu'il a une règle pour le faire.
Je veux bien croire que make a un peu de boulot avec toutes ces règles
implicites à appliquer, mais là il écrase mon fichier... (ajouter une
dépendance "name.o: name.c" avec ou sans commande ne règle pas le
problème).
Y a-t-il un moyen de lister les fichiers source ? Ou en tout cas les
fichiers à ne pas écraser ?
make --version dit
| GNU Make 4.1
| Built for x86_64-pc-linux-gnu
| ... (licence omise)
Vous avez un avis ? (Inutile de dépiauter les règles implicites, je me
pose une question de principe dans ce cas.)
-- Alain.
PS : deux fichiers minimaux (qui compilent) si vous voulez répéter
l'expérience
// name.y
%{
int yylex() { return 0; }
int yyerror (const char * msg) {}
%}
%%
input: %empty;
%%
//name.c
extern int yyparse();
int main (void) { return yyparse (); }
Back to fr.comp.os.unix | Previous | Next — Next in thread | Find similar | Unroll thread
Make écrase mes fichiers ! Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-10-12 22:02 +0200
Re: Make écrase mes fichiers ! Olivier Miakinen <om+news@miakinen.net> - 2021-10-12 22:14 +0200
Re: Make écrase mes fichiers ! Olivier Miakinen <om+news@miakinen.net> - 2021-10-15 18:44 +0200
Re: Make écrase mes fichiers ! Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid> - 2021-10-17 16:14 +0200
Re: Make écrase mes fichiers ! Thomas <fantome.forums.tDeContes@free.fr.invalid> - 2021-10-18 06:07 +0200
csiph-web