@@ -2,17 +2,21 @@ CROSS_PREFIX :=
22CC =$(CROSS_PREFIX ) gcc
33STRIP =$(CROSS_PREFIX ) strip
44
5- override CFLAGS+ =-O3 -std=c99 -pedantic -Wall -Wextra
5+ PREFIX =/usr/local
6+ BINDIR =$(PREFIX ) /bin
7+ SRCDIR =src
8+ INCLUDEDIR =include
9+ BUILDDIR =build
10+ SRCS := $(wildcard $(SRCDIR ) /* .c)
11+ OBJS := $(patsubst $(SRCDIR ) /% .c,$(BUILDDIR ) /% .o,$(SRCS ) )
12+
13+ override CFLAGS+ =-O3 -std=c99 -I$(INCLUDEDIR ) -pedantic -Wall -Wextra
614override LDFLAGS+ =-lnetfilter_queue -lnfnetlink -lmnl
715
816ifdef VERSION
9- override CFLAGS += -DVERSION=\"$(VERSION ) \"
17+ override CFLAGS += -DVERSION=\"$(VERSION)\"
1018endif
1119
12- PREFIX =/usr/local
13- BINDIR =$(PREFIX ) /bin
14- BUILDDIR =build
15-
1620FAKEHTTP =$(BUILDDIR ) /fakehttp
1721
1822ifeq ($(STATIC ) , 1)
@@ -24,9 +28,17 @@ all: $(FAKEHTTP)
2428clean :
2529 $(RM ) -r $(BUILDDIR )
2630
27- $(FAKEHTTP ) : src/fakehttp.c
31+ $(BUILDDIR ) :
2832 mkdir -p $(BUILDDIR )
29- $(CC ) $(CFLAGS ) $< -o $@ $(LDFLAGS )
33+
34+ $(BUILDDIR ) /% .d : $(SRCDIR ) /% .c | $(BUILDDIR )
35+ $(CC ) $(CFLAGS ) -MM -MT $(@:.d=.o ) $< -MF $@
36+
37+ $(BUILDDIR ) /% .o : $(SRCDIR ) /% .c | $(BUILDDIR )
38+ $(CC ) $(CFLAGS ) -c $< -o $@
39+
40+ $(FAKEHTTP ) : $(OBJS ) $(MKS )
41+ $(CC ) $(OBJS ) -o $@ $(LDFLAGS )
3042 $(STRIP ) $@
3143
3244install : all
@@ -37,3 +49,7 @@ uninstall:
3749 $(RM ) $(DESTDIR )$(BINDIR ) /fakehttp
3850
3951.PHONY : all clean install uninstall
52+
53+ ifneq ($(MAKECMDGOALS ) ,clean)
54+ -include $(OBJS :.o=.d)
55+ endif
0 commit comments