Bonjour,
Je sais oui, j'ai lu l'article, le makefile recursif c'est harmfull, cependant je n'ai pas de dépendance entre les différents modules qui compose mon projet, donc ça devrait aller.
J'ai suivi le cours DVP.com "introduction au makefile" et j'ai un problème avec la commande export, en fait elle ne fonctionne pas !
Les variables déclarées dans mon makefile maitre ne sont pas visibles dans le sous makefile, malgré l'export.
mon makefile maitre :
le sous makefile correspondant à la cible SEAM (le début seulement)
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 CC = gcc -g -Wall -O2 -ansi LIBPAT = $(SYBASE)/$(SYBASE_OCS)/lib/ SYBINC = $(SYBASE)/$(SYBASE_OCS)/include SYBLIB = -lnsl -ldl -lm $(LIBPAT)libct.so $(LIBPAT)libcs.so $(LIBPAT)libcomn.so \ $(LIBPAT)libintl.so $(LIBPAT)libtcl.so SEAM_DIR = Seam/src/opcli RESA_DIR = Resa/src/opcli all: SEAM RESA SEAM: @export CC @export LIBPAT @export SYBINC @export SYBLIB @(cd $(SEAM_DIR) && $(MAKE)) RESA: @export CC @export LIBPAT @export SYBINC @export SYBLIB @(cd $(RESA_DIR) && $(MAKE)) clean: @(cd $(SEAM_DIR) && $(MAKE) $@) @(cd $(RESA_DIR) && $(MAKE) $@)
Lorsque je lance le make, les variables déclarées dans mon makefile maitre sont toutes vides...
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 LINKFLAGS = -L$(LIBPAT) BIN=../../bin COMMON=../../../Common/src all: $(BIN)/seam01 $(BIN)/seam0v $(BIN)/seam0c $(BIN)/stopseam $(BIN)/seam01 : seam01.o fileseam.o strucseam.o indseam.o reqseam.o sybacces.o global.o strutils.o polling.o $(CC) $(LINKFLAGS) -o $(BIN)/seam01 seam01.o fileseam.o strucseam.o indseam.o reqseam.o sybacces.o global.o strutils.o polling.o $(SYBLIB) $(BIN)/seam0c : seam0c.o fileseam.o strucseam.o indseam.o reqseam.o reqseam0c.o sybacces.o global.o strutils.o $(CC) $(LINKFLAGS) -o $(BIN)/seam0c seam0c.o fileseam.o strucseam.o indseam.o reqseam.o reqseam0c.o sybacces.o global.o strutils.o $(SYBLIB) $(BIN)/seam0v : reqseam0v.o seam0v.o fileseam.o strucseam.o indseam.o reqseam.o sybacces.o global.o parseam.o strutils.o $(CC) $(LINKFLAGS) -o $(BIN)/seam0v seam0v.o reqseam0v.o fileseam.o strucseam.o indseam.o reqseam.o sybacces.o global.o parseam.o strutils.o $(SYBLIB) $(BIN)/stopseam : stopseam.o global.o $(CC) $(LINKFLAGS) -o $(BIN)/stopseam stopseam.o global.o reqseam.o sybacces.o $(SYBLIB) seam01.o : seam01.c define.h global.h prototype.h typedef.h top.h $(COMMON)/strutils.h $(CC) -c seam01.c -I $(SYBINC) (...)
Quelqu'un sait pourquoi ?
Merci d'avance
Partager