TOPDIR ?= . CURRENTDIR ?= . DISTLIST ?= dist.list -include $(TOPDIR)/config.mk ifneq "$(NODEPS)" "yes" DEPFILES= DEPFILES+=$(patsubst %.c,%.dep,$(wildcard *.c)) DEPFILES+=$(patsubst %.cc,%.dep,$(wildcard *.cc)) endif %.dep: %.c $(CC) $(CPPFLAGS) -M $< | \ sed 's/\($*\)\.o[ :]*/\1.o \1.dbg.o $@ : /g' > $@; %.dep: %.cc $(CXX) $(CPPFLAGS) -M $< | \ sed 's/\($*\)\.o[ :]*/\1.o \1.dbg.o $@ : /g' > $@; %.o: %.rf Makefile $(TOPDIR)/config.mk $(RFPC) $< %.o: %.c Makefile $(TOPDIR)/config.mk $(CC) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) -c -o $@ $< %.o: %.cc Makefile $(TOPDIR)/config.mk $(CXX) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) -c -o $@ $< %.dbg.o: %.c Makefile $(TOPDIR)/config.mk $(CC) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) -c -o $@ $< %.dbg.o: %.cc Makefile $(TOPDIR)/config.mk $(CXX) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) -c -o $@ $< DO_SUBDIRS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) \ TOPDIR=$(TOPDIR)/.. INSTALL_DIR=$(INSTALL_DIR) $@ \ || exit 1; ) DO_SUBDIRS_NODEPS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) \ TOPDIR=$(TOPDIR)/.. CURRENTDIR=$(CURRENTDIR)/$(dir) \ DISTNAME="$(DISTNAME)" \ INSTALL_DIR=$(INSTALL_DIR) NODEPS=yes $@ \ || exit 1; ) all:: $(DO_SUBDIRS) clean:: $(DO_SUBDIRS_NODEPS) rm -f core distclean:: clean $(DO_SUBDIRS_NODEPS) dist:: if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi $(DO_SUBDIRS_NODEPS) echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \ >>$(TOPDIR)/$(DISTLIST) snapshot:: if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi $(DO_SUBDIRS_NODEPS) echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \ >>$(TOPDIR)/$(DISTLIST) check:: all $(DO_SUBDIRS) docs:: all $(DO_SUBDIRS) publish:: all $(DO_SUBDIRS) install:: all $(DO_SUBDIRS) uninstall:: $(DO_SUBDIRS) .PHONY: all check install uninstall clean dist snapshot distclean ifneq "$(DEPFILES)" "" -include $(DEPFILES) endif