Bonjour,
Je dois effectuer un makefile qui sera multiplateforme ( nmake de chez MS et make de chez GNU ).

J'ai fait le code que je vais copier plus loin, qui marche parfaitement sous nmake mais qui plante sous make, à cause de "dépendances circulaires", si quelqu'un peut m'éclairer la dessus ?

Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
LLIB = $(OS:Windows_NT=lib) $(OSTYPE:linux-gnu=ar)
OBJ = $(OS:Windows_NT=.obj) $(OSTYPE:linux-gnu=.o)
FLIB = $(OS:Windows_NT=.lib) $(OSTYPE:linux-gnu=.a)
EXEC = $(OS:Windows_NT=.exe) $(OSTYPE:linux-gnu=.out)
FLC = $(OS:Windows_NT=EWIN) $(OSTYPE:linux-gnu=ENUX)
 
Barbre$(EXEC) : Barbre$(FLIB) BgstB$(FLIB) BgstDsk$(FLIB)
	$(CC) -o Barbre$(EXEC) Barbre$(FLIB) BgstB$(FLIB) BgstDsk$(FLIB) BarbreTst.c
 
Barbre$(FLIB) : Barbre$(OBJ) utilitaires$(OBJ)
	$(LLIB) Barbre$(OBJ) utilitaires$(OBJ) /out:Barbre$(FLIB)
 
BgstB$(FLIB) : Binstalle$(OBJ) InsereArticle$(OBJ) partage$(OBJ) BarbreCherche$(OBJ)
	$(LLIB) Binstalle$(OBJ) InsereArticle$(OBJ) partage$(OBJ) BarbreCherche$(OBJ) /out:BgstB$(FLIB)
 
BgstDsk$(FLIB) : dskgest$(OBJ)
	$(LLIB) dskgest$(OBJ) /out:BgstDsk$(FLIB)
 
Barbre$(OBJ) : Barbre.c Barbre.h
	$(CC) -c -D$(FLC) Barbre.c
 
utilitaires$(OBJ) : utilitaires.c Barbre.h
	$(CC) -c -D$(FLC) utilitaires.c
 
BInstalle$(OBJ) : BInstalle.c Barbre.h
	$(CC) -c -D$(FLC) BInstalle.c
 
InsereArticle$(OBJ) : InsereArticle.c Barbre.h
	$(CC) -c -D$(FLC) InsereArticle.c
 
partage$(OBJ) : partage.c Barbre.h
	$(CC) -c -D$(FLC) partage.c
 
BarbreCherche$(OBJ) : BarbreCherche.c Barbre.h
	$(CC) -c -D$(FLC) BarbreCherche.c
 
dskgest$(OBJ) : dskgest.c Barbre.h
	$(CC) -c -D$(FLC) dskgest.c