forked from jha/ip-over-proto
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
55 lines (39 loc) · 1.35 KB
/
Makefile
File metadata and controls
55 lines (39 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CC = gcc
LD = gold
CFLAGS = -Isrc/shared -Wall -Wextra -Werror
LFLAGS = -lc
CLIENT_TARG = bin/iop-client
CLIENT_SRCS = $(wildcard src/client/*.c src/client/**/*.c)
CLIENT_OBJS = $(patsubst src/%.c,bin/%.o,$(CLIENT_SRCS))
CLIENT_DEPS = $(patsubst src/%.c,bin/%.d,$(CLIENT_SRCS))
SERVER_TARG = bin/iop-server
SERVER_SRCS = $(wildcard src/server/*.c src/server/**/*.c)
SERVER_OBJS = $(patsubst src/%.c,bin/%.o,$(SERVER_SRCS))
SERVER_DEPS = $(patsubst src/%.c,bin/%.d,$(SERVER_SRCS))
all: $(CLIENT_TARG) $(SERVER_TARG)
client: $(CLIENT_TARG)
server: $(SERVER_TARG)
bin:
mkdir -p bin bin/client bin/server bin/server/listeners
$(CLIENT_TARG): bin $(CLIENT_OBJS)
@echo "[L] $(CLIENT_TARG)"
@$(LD) $(LFLAGS) $(CLIENT_OBJS) -o $(CLIENT_TARG)
$(SERVER_TARG): bin $(SERVER_OBJS)
@echo "[L] $(SERVER_TARG)"
@$(LD) $(LFLAGS) $(SERVER_OBJS) -o $(SERVER_TARG)
bin/client/%.o: src/client/%.c
@echo "[C] $<"
@$(CC) -MM -MP -MT $@ -Isrc/client $(CFLAGS) $< > $(patsubst %.o,%.d,$@)
@$(CC) -c $< -Isrc/client $(CFLAGS) -o $@
bin/server/%.o: src/server/%.c
@echo "[C] $<"
@$(CC) -MM -MP -MT $@ -Isrc/server $(CFLAGS) $< > $(patsubst %.o,%.d,$@)
@$(CC) -c $< -Isrc/server $(CFLAGS) -o $@
-include $(CLIENT_DEPS) $(SERVER_DEPS)
clean:
rm -rf bin/*.o bin/**/*.o bin/*.d bin/**/*.d
fclean: clean
rm -rf bin
install:
uninstall:
.PHONY: all clean fclean re install uninstall