1
gcc 4.4.2 c89編寫Makefile時的最佳做法
我寫了這個Makefile。我想知道這是一個好的設計,容易維護嗎?
我在想的是cltsvr_ults.o
與SVR_OBJECTS
和CLT_OBJECTS
都有關聯。這看起來是否正確?
非常感謝您的任何建議,
# ------------- 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
更好地使用LDLIBS而不是LOADLIBES ..每個保羅史密斯https://lists.gnu.org/archive/html/help-make/2005-01/msg00063.html – UpAndAdam 2015-10-07 15:37:19