[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Makefile



[...]
>>> 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.

-- 
Franck Joncourt
http://debian.org - http://smhteam.info/wiki/
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: