forked from facebook/netconsd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
71 lines (54 loc) · 1.51 KB
/
Makefile
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
CC ?= gcc
LIBS = -lpthread
CFLAGS ?= -O2 -fPIC
CFLAGS += -D_GNU_SOURCE -fno-strict-aliasing -Wall -Wextra \
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations \
-Wdeclaration-after-statement -Wno-missing-field-initializers \
-Wno-unused-parameter
CPPFLAGS ?=
INCLUDES = -Incrx
UNAME := $(shell uname)
ifneq ($(UNAME), OpenBSD)
LIBS += -lrt -ldl
endif
debug debug32: CFLAGS += -O0 -gdwarf-4 -fno-omit-frame-pointer \
-fstack-protector-all -fsanitize=address \
-fsanitize=undefined
debug debug32: LDFLAGS ?= -lasan -lubsan
32bit: CFLAGS += -m32
32bit: LDFLAGS ?= -m32
disasm: CFLAGS += -fverbose-asm
binary = netconsd
lib = ncrx/libncrx.o
liball = libnetconsd.a
obj = threads.o listener.o worker.o output.o main.o
rlibobj = threads.o listener.o worker.o output.o
asm = $(obj:.o=.s)
all: $(binary) mods
rlib: $(liball)
32bit: $(binary) mods
debug: all
debug32: 32bit
disasm: $(asm)
-include $(obj:.o=.d)
$(binary): $(lib) $(obj)
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(lib) $(obj) $(LIBS) -o $@
$(liball): $(rlibobj) $(lib)
ar rc $@ $(rlibobj) $(lib)
%.o: %.c
$(CC) $< $(CPPFLAGS) $(CFLAGS) $(INCLUDES) -c -o $@
$(CC) -MM $< $(INCLUDES) > $(@:.o=.d)
%.s: %.c
$(CC) $< $(CPPFLAGS) $(CFLAGS) $(INCLUDES) -c -S -o $@
$(lib):
$(MAKE) -e -C ncrx
mods:
$(MAKE) -e -C modules
utils:
$(MAKE) -e -C util
clean:
rm -f netconsd *.o *.d *.s
rm -f modules/*.o modules/*.so
rm -f ncrx/*.o ncrx/*.d
rm -f util/netconsblaster
rm -f libnetconsd.a