Le Sat, 27 Sep 2008 16:08:44 +0200 Franck Joncourt <[EMAIL PROTECTED]> a écrit:
> [...] > >>> Moi j'ai un truc du genre: > >>> > >>> ./inc/*.h > >>> ./src/*.c > >>> ./*.c > >>> ./Makefile > >>> > >>> Je ne veux pas polluer ./inc et ./src > > J'ai créer des modules config, daemon, cmdline ... pour le programme > principal fwknop (fwknopd). > > [code] > $ find . > . > ./config > ./config/config.h > ./config/config.c > ./daemon > ./daemon/daemon.h > ./daemon/daemon.c > ./fwknop > ./fwknop/fwknop.h > ./fwknop/fwknop.c > ./fwknop/stdtypes.h > ./Makefile > ./cmdline > ./cmdline/cmdline.c > ./cmdline/cmdline.h > ./net > ./net/net.h > ./net/net.c > > $ make all > rm -f *.o > gcc -Wall -O0 -D__DEBUG -I daemon -I config -I net -I cmdline \ > -I fwknop -c fwknop/fwknop.c -o fwknop.o > gcc -Wall -O0 -D__DEBUG -I daemon -I config -I net -I cmdline \ > -I fwknop -c config/config.c -o config.o > gcc -Wall -O0 -D__DEBUG -I daemon -I config -I net -I cmdline \ > -I fwknop -c daemon/daemon.c -o daemon.o > gcc -Wall -O0 -D__DEBUG -I daemon -I config -I net -I cmdline \ > -I fwknop -c net/net.c -o net.o > gcc -Wall -O0 -D__DEBUG -I daemon -I config -I net -I cmdline \ > -I fwknop -c cmdline/cmdline.c -o cmdline.o > gcc fwknop.o config.o daemon.o net.o cmdline.o -o fwknopd > [/code] > > Avec un Makefile comme ceci: > > Normalement je mets tous les headers dans le même répertoire mais je > voulais essayer de cette façon. > > [quote=Makefile] > CC = gcc > CFLAGS = -Wall -O0 -D__DEBUG > HEADERS = -I daemon -I config -I net -I cmdline -I fwknop > PROGRAM = fwknopd > vpath %.c cmdline:config:net:daemon:fwknop > > %.o: %.c > $(CC) $(CFLAGS) $(HEADERS) -c $< -o $@ > > $(PROGRAM): fwknop.o config.o daemon.o net.o cmdline.o > $(CC) $^ -o $@ > > clean: > rm -f *.o > > clean_all: clean > rm -f $(PROGRAM) > > all: clean $(PROGRAM) > > .PHONY: clean clean_all all > [/quote] > > Donc à priori je dirais que la seule chose que tu as à changer ce sont > les variables. > > J'espère que c'est le bon ce coup ci. > Je n'ai pas créé de répertoire objets car je ne m'en sort avec mon > Makefile autrement. Donc tous les .o arriveront à la racine où se trouve > le Makefile. > Merci pour ton aide effectivement ça marche de cette manière et j'ai réussi a le faire fonctionner avec les wildcard de cette manière: CC=gcc CFLAGS=-W -Wall -ggdb3 LDFLAGS= EXEC=mon_prog SRC= $(wildcard *.c) $(wildcard src/*.c) SRCSSDIR=$(notdir $(SRC)) OBJ= $(SRCSSDIR:.c=.o) INC_PATH=./itf/:./inc/ vpath %.c src all: $(EXEC) $(EXEC): $(OBJ) @$(CC) -o $@ $^ $(LDFLAGS) %.o: %.c @C_INCLUDE_PATH=$(INC_PATH) $(CC) -o $@ -c $< $(CFLAGS) Merci pour le coup de main. Gaëtan -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/DebFrFrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]