1 | TOPDIR ?= . |
---|
2 | CURRENTDIR ?= . |
---|
3 | DISTLIST ?= dist.list |
---|
4 | |
---|
5 | -include $(TOPDIR)/config.mk |
---|
6 | |
---|
7 | ifneq "$(NODEPS)" "yes" |
---|
8 | DEPFILES= |
---|
9 | DEPFILES+=$(patsubst %.c,%.dep,$(wildcard *.c)) |
---|
10 | DEPFILES+=$(patsubst %.cc,%.dep,$(wildcard *.cc)) |
---|
11 | endif |
---|
12 | |
---|
13 | %.dep: %.c |
---|
14 | $(CC) $(CPPFLAGS) -M $< | \ |
---|
15 | sed 's/\($*\)\.o[ :]*/\1.o \1.dbg.o $@ : /g' > $@; |
---|
16 | |
---|
17 | %.dep: %.cc |
---|
18 | $(CXX) $(CPPFLAGS) -M $< | \ |
---|
19 | sed 's/\($*\)\.o[ :]*/\1.o \1.dbg.o $@ : /g' > $@; |
---|
20 | |
---|
21 | %.o: %.rf Makefile $(TOPDIR)/config.mk |
---|
22 | $(RFPC) $< |
---|
23 | |
---|
24 | %.o: %.c Makefile $(TOPDIR)/config.mk |
---|
25 | $(CC) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) -c -o $@ $< |
---|
26 | |
---|
27 | %.o: %.cc Makefile $(TOPDIR)/config.mk |
---|
28 | $(CXX) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) $(CXXFLAGS) -c -o $@ $< |
---|
29 | |
---|
30 | %.dbg.o: %.c Makefile $(TOPDIR)/config.mk |
---|
31 | $(CC) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) -c -o $@ $< |
---|
32 | |
---|
33 | %.dbg.o: %.cc Makefile $(TOPDIR)/config.mk |
---|
34 | $(CXX) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) $(CXXFLAGS) -c -o $@ $< |
---|
35 | |
---|
36 | DO_SUBDIRS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) \ |
---|
37 | TOPDIR=$(TOPDIR)/.. INSTALL_DIR=$(INSTALL_DIR) $@ \ |
---|
38 | || exit 1; ) |
---|
39 | DO_SUBDIRS_NODEPS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) \ |
---|
40 | TOPDIR=$(TOPDIR)/.. CURRENTDIR=$(CURRENTDIR)/$(dir) \ |
---|
41 | DISTNAME="$(DISTNAME)" \ |
---|
42 | INSTALL_DIR=$(INSTALL_DIR) NODEPS=yes $@ \ |
---|
43 | || exit 1; ) |
---|
44 | |
---|
45 | all:: |
---|
46 | $(DO_SUBDIRS) |
---|
47 | |
---|
48 | clean:: |
---|
49 | $(DO_SUBDIRS_NODEPS) |
---|
50 | rm -f core |
---|
51 | |
---|
52 | distclean:: clean |
---|
53 | $(DO_SUBDIRS_NODEPS) |
---|
54 | |
---|
55 | dist:: |
---|
56 | if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi |
---|
57 | $(DO_SUBDIRS_NODEPS) |
---|
58 | echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \ |
---|
59 | >>$(TOPDIR)/$(DISTLIST) |
---|
60 | |
---|
61 | snapshot:: |
---|
62 | if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi |
---|
63 | $(DO_SUBDIRS_NODEPS) |
---|
64 | echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \ |
---|
65 | >>$(TOPDIR)/$(DISTLIST) |
---|
66 | |
---|
67 | check:: all |
---|
68 | $(DO_SUBDIRS) |
---|
69 | |
---|
70 | docs:: all |
---|
71 | $(DO_SUBDIRS) |
---|
72 | |
---|
73 | publish:: all |
---|
74 | $(DO_SUBDIRS) |
---|
75 | |
---|
76 | install:: all |
---|
77 | $(DO_SUBDIRS) |
---|
78 | |
---|
79 | uninstall:: |
---|
80 | $(DO_SUBDIRS) |
---|
81 | |
---|
82 | .PHONY: all check install uninstall clean dist snapshot distclean |
---|
83 | |
---|
84 | ifneq "$(DEPFILES)" "" |
---|
85 | -include $(DEPFILES) |
---|
86 | endif |
---|