|
1 | 1 | CC=gcc |
| 2 | +CC_FLAGS_OBJ=gcc -o |
2 | 3 | CFLAGS=-c -g -pthread -D_GNU_SOURCE |
| 4 | + |
3 | 5 | SOURCE_DIR=src |
4 | 6 | OBJ_DIR=obj |
| 7 | +BIN_DIR=bin |
| 8 | + |
5 | 9 | HTTP_SCRIPT=$(SOURCE_DIR)/http2.c |
6 | 10 | HTTP_OBJ=$(OBJ_DIR)/http2.o |
7 | 11 |
|
8 | | -all: bin/client bin/server |
| 12 | +SERVER_SCRIPT=$(SOURCE_DIR)/server.c |
| 13 | +SERVER_OBJ=$(OBJ_DIR)/server.o |
| 14 | +SERVER_BIN=$(BIN_DIR)/server |
| 15 | + |
| 16 | +CLIENT_SCRIPT=$(SOURCE_DIR)/client.c |
| 17 | +CLIENT_OBJ=$(OBJ_DIR)/client.o |
| 18 | +CLIENT_BIN=$(BIN_DIR)/client |
| 19 | + |
| 20 | +HISTORY_SCRIPT=$(SOURCE_DIR)/history.c |
| 21 | +HISTORY_OBJ=$(OBJ_DIR)/history.o |
| 22 | + |
| 23 | +LIST_SCRIPT=$(SOURCE_DIR)/argsList.c |
| 24 | +LIST_OBJ=$(OBJ_DIR)/argsList.o |
| 25 | + |
| 26 | +COMM_SCRIPT=$(SOURCE_DIR)/communication.c |
| 27 | +COMM_OBJ=$(OBJ_DIR)/communication.o |
| 28 | + |
| 29 | +HASH_SCRIPT=$(SOURCE_DIR)/hashServer2.c |
| 30 | +HASH_OBJ=$(OBJ_DIR)/hashServer2.o |
| 31 | + |
| 32 | +DIREC_SCRIPT=$(SOURCE_DIR)/directories.c |
| 33 | +DIREC_OBJ=$(OBJ_DIR)/directories.o |
| 34 | + |
| 35 | + |
| 36 | +all: $(CLIENT_BIN) $(SERVER_BIN) |
9 | 37 |
|
10 | | -bin/client: obj/client.o obj/history.o obj/argsList.o obj/communication.o obj/directories.o |
11 | | - gcc -o bin/client obj/client.o obj/history.o obj/argsList.o obj/communication.o obj/directories.o -pthread |
| 38 | +bin/client: $(CLIENT_OBJ) $(HISTORY_OBJ) $(LIST_OBJ) $(COMM_OBJ) $(DIREC_OBJ) |
| 39 | + $(CC_FLAGS_OBJ) $(CLIENT_BIN) $(CLIENT_OBJ) $(HISTORY_OBJ) $(LIST_OBJ) $(COMM_OBJ) $(DIREC_OBJ) -pthread |
12 | 40 |
|
13 | | -obj/client.o: src/client.c src/history.c src/argsList.c src/communication.c |
14 | | - $(CC) $(CFLAGS) src/client.c src/history.c src/argsList.c src/communication.c src/directories.c |
15 | | - mv *.o obj/ |
| 41 | +obj/client.o: $(CLIENT_SCRIPT) $(HISTORY_SCRIPT) $(LIST_SCRIPT) $(COMM_SCRIPT) |
| 42 | + $(CC) $(CFLAGS) $(CLIENT_SCRIPT) $(HISTORY_SCRIPT) $(LIST_SCRIPT) $(COMM_SCRIPT) $(DIREC_SCRIPT) |
| 43 | + mv *.o $(OBJ_DIR)/ |
16 | 44 |
|
17 | | -bin/server: obj/server.o obj/hashServer.o obj/communication.o $(HTTP_OBJ) obj/directories.o |
18 | | - gcc -o bin/server obj/server.o obj/hashServer.o obj/communication.o $(HTTP_OBJ) obj/directories.o -pthread |
| 45 | +bin/server: $(SERVER_OBJ) $(HASH_OBJ) $(COMM_OBJ) $(HTTP_OBJ) $(DIREC_OBJ) |
| 46 | + $(CC_FLAGS_OBJ) $(SERVER_BIN) $(SERVER_OBJ) $(HASH_OBJ) $(COMM_OBJ) $(HTTP_OBJ) $(DIREC_OBJ) -pthread |
19 | 47 |
|
20 | | -obj/server.o: src/server.c src/hashServer.c src/communication.c $(HTTP_SCRIPT) src/directories.c |
21 | | - $(CC) $(CFLAGS) src/server.c src/hashServer.c src/communication.c $(HTTP_SCRIPT) src/directories.c |
22 | | - mv *.o obj/ |
| 48 | +obj/server.o: $(SERVER_SCRIPT) $(HASH_SCRIPT) $(COMM_SCRIPT) $(HTTP_SCRIPT) $(DIREC_SCRIPT) |
| 49 | + $(CC) $(CFLAGS) $(SERVER_SCRIPT) $(HASH_SCRIPT) $(COMM_SCRIPT) $(HTTP_SCRIPT) $(DIREC_SCRIPT) |
| 50 | + mv *.o $(OBJ_DIR)/ |
23 | 51 |
|
24 | 52 | clean: |
25 | | - rm clients/client1/* clients/client2/* clients/client3/* proxy/* infoPage/* obj/* bin/* |
| 53 | + rm clients/client1/* clients/client2/* clients/client3/* proxy/* infoPage/* $(OBJ_DIR)/* $(BIN_DIR)/* |
26 | 54 | clear |
0 commit comments