diff options
author | px4dev <px4@purgatory.org> | 2013-01-12 12:10:06 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-01-12 12:10:06 -0800 |
commit | 5b07efdbeb8b6c6e7c3e5a86a2e55a2de345b579 (patch) | |
tree | 87165e029de68b3726710717cdce55814c3d1613 /apps/mk | |
parent | 6d301710d97c3812a5f1e6c26415461b2fe92f58 (diff) | |
download | px4-firmware-5b07efdbeb8b6c6e7c3e5a86a2e55a2de345b579.tar.gz px4-firmware-5b07efdbeb8b6c6e7c3e5a86a2e55a2de345b579.tar.bz2 px4-firmware-5b07efdbeb8b6c6e7c3e5a86a2e55a2de345b579.zip |
Automatically generate depdencies for source files as they are compiled, rather than using the NuttX dependency generator tool.
Diffstat (limited to 'apps/mk')
-rw-r--r-- | apps/mk/app.mk | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/apps/mk/app.mk b/apps/mk/app.mk index 1d8b0e44c..c5a025394 100644 --- a/apps/mk/app.mk +++ b/apps/mk/app.mk @@ -81,7 +81,9 @@ # Work out who included us so we can report decent errors # THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST)) -PARENT_MAKEFILE := $(lastword $(filter-out $(THIS_MAKEFILE),$(MAKEFILE_LIST))) +ifeq ($(APP_MAKEFILE),) +APP_MAKEFILE := $(lastword $(filter-out $(THIS_MAKEFILE),$(MAKEFILE_LIST))) +endif ############################################################################ # Get configuration @@ -93,7 +95,7 @@ include $(APPDIR)/Make.defs ############################################################################ # Sanity-check the information we've been given and set any defaults # -SRCDIR ?= $(dir $(PARENT_MAKEFILE)) +SRCDIR ?= $(dir $(APP_MAKEFILE)) PRIORITY ?= SCHED_PRIORITY_DEFAULT STACKSIZE ?= CONFIG_PTHREAD_STACK_DEFAULT @@ -112,14 +114,14 @@ endif # there has to be a source file ifeq ($(ASRCS)$(CSRCS)$(CXXSRCS),) -$(error $(realpath $(PARENT_MAKEFILE)): at least one of ASRCS, CSRCS or CXXSRCS must be set) +$(error $(realpath $(APP_MAKEFILE)): at least one of ASRCS, CSRCS or CXXSRCS must be set) endif # check that C++ is configured if we have C++ source files and we are building ifneq ($(CXXSRCS),) ifneq ($(CONFIG_HAVE_CXX),y) ifeq ($(MAKECMDGOALS),build) -$(error $(realpath $(PARENT_MAKEFILE)): cannot set CXXSRCS if CONFIG_HAVE_CXX not set in configuration) +$(error $(realpath $(APP_MAKEFILE)): cannot set CXXSRCS if CONFIG_HAVE_CXX not set in configuration) endif endif endif @@ -153,6 +155,11 @@ COBJS = $(patsubst %.c,%.o,$(CSRCS)) CXXOBJS = $(patsubst %.cpp,%.o,$(CXXSRCS)) OBJS = $(AOBJS) $(COBJS) $(CXXOBJS) +# Automatic depdendency generation +DEPS = $(OBJS:$(OBJEXT)=.d) +CFLAGS += -MD +CXXFLAGS += -MD + # The prelinked object that we are ultimately going to build ifneq ($(APPNAME),) PRELINKOBJ = $(APPNAME).pre.o @@ -186,11 +193,8 @@ all: .built # # Source dependencies # -depend: .depend -.depend: $(MAKEFILE_LIST) $(SRCS) - @$(MKDEP) --dep-path . $(CC) -- $(CFLAGS) -- $(CSRCS) $(CHDRS) >Make.dep - @$(MKDEP) --dep-path . $(CXX) -- $(CXXFLAGS) -- $(CXXSRCS) $(CXXHDRS) >>Make.dep - @touch $@ +depend: + @exit 0 ifneq ($(APPNAME),) # @@ -223,10 +227,10 @@ $(CXXOBJS): %.o : %.cpp # Tidying up # clean: - @rm -f $(OBJS) $(PRELINKOBJ) Make.dep .built + @rm -f $(OBJS) $(DEPS) $(PRELINKOBJ) .built $(call CLEAN) distclean: clean @rm -f Make.dep .depend --include Make.dep +-include $(DEPS) |