gcc 4.4.2 c89Meilleure pratique lors de l'écriture d'un Makefile
J'ai écrit ce Makefile. Je me demande si c'est un bon design et facile à entretenir?
Je pense que cltsvr_ults.o
est lié à la fois le SVR_OBJECTS
et CLT_OBJECTS
. Est-ce que cela semble correct?
Un grand merci pour toutes les suggestions,
# ------------- SOURCE FILE ------------------------
SVR_OBJECTS = server.o cltsvr_ults.o test_svr.o
CLT_OBJECTS = client.o cltsvr_ults.o test_clt.o
# ------------- COMPILER OPTIONS -------------------
CFLAGS = -ggdb -Wall -pthread -std=c89
CC = gcc
PLATFORM = -DLINUX
LIBS = -lpthread
# ------------- TARGETS ----------------------------
all: svr clt
svr: $(SVR_OBJECTS)
$(CC) $(CFLAGS) $(PLATFORM) $(SVR_OBJECTS) -o svr
clt: $(CLT_OBJECTS)
$(CC) $(CFLAGS) $(PLATFORM) $(CLT_OBJECTS) -o clt
clean:
rm -f clt svr *.o *~
# -------------- DEPENDENCIES ---------------------
server.o: server.h
client.o: client.h
test_svr.o: test_svr.c
test_clt.o: test_clt.c
cltsvr_ults.o: cltsvr_ults.h
svr.o: server.h cltsvr_ults.h test_svr.c
clt.o: client.h cltsvr_ults.h test_clt.c
Encore mieux utiliser LDLIBS au lieu de LOADLIBES .. par paul smith https://lists.gnu.org/archive/html/help-make/2005-01/msg00063.html – UpAndAdam