diff options
author | Travis Geiselbrecht <geist@foobox.com> | 2013-07-31 11:47:33 -0700 |
---|---|---|
committer | Travis Geiselbrecht <geist@foobox.com> | 2013-07-31 12:13:11 -0700 |
commit | e14309a95b7e44b4045bff69a3f213613895712e (patch) | |
tree | 097cd303ee8739b9b6f12613d8b629aefd458b62 | |
parent | 7e8b333b97918fe31097ffae919ae9c2be032f41 (diff) | |
download | lk-e14309a95b7e44b4045bff69a3f213613895712e.tar.gz |
[make] add GLOBAL_SRCDEPS variable
Build a phony rule that depends on a delay evaluated SRCDEPS
variable at the end of the build so that modules that add to
it are properly tracked.
-rw-r--r-- | engine.mk | 7 | ||||
-rw-r--r-- | make/compile.mk | 15 | ||||
-rw-r--r-- | make/module.mk | 1 |
3 files changed, 12 insertions, 11 deletions
@@ -74,9 +74,9 @@ GENERATED := $(CONFIGHEADER) # anything added to GLOBAL_DEFINES will be put into $(BUILDDIR)/config.h GLOBAL_DEFINES := LK=1 -# Anything added to SRCDEPS will become a dependency of every source file in the system. +# Anything added to GLOBAL_SRCDEPS will become a dependency of every source file in the system. # Useful for header files that may be included by one or more source files. -SRCDEPS := $(CONFIGHEADER) +GLOBAL_SRCDEPS := $(CONFIGHEADER) # these need to be filled out by the project/target/platform rules.mk files TARGET := @@ -203,6 +203,9 @@ endif # the logic to compile and link stuff is in here include make/build.mk +# make all object files depend on any targets in GLOBAL_SRCDEPS +$(ALLOBJS): $(GLOBAL_SRCDEPS) + clean: $(EXTRA_CLEANDEPS) rm -f $(ALLOBJS) $(DEPS) $(GENERATED) $(OUTBIN) $(OUTELF) $(OUTELF).lst $(OUTELF).debug.lst $(OUTELF).sym $(OUTELF).size $(OUTELF).hex diff --git a/make/compile.mk b/make/compile.mk index 6ec8a2c0..9c4f8a9b 100644 --- a/make/compile.mk +++ b/make/compile.mk @@ -36,37 +36,34 @@ $(MODULE_OBJS): MODULE_CPPFLAGS:=$(MODULE_CPPFLAGS) $(MODULE_OBJS): MODULE_ASMFLAGS:=$(MODULE_ASMFLAGS) $(MODULE_OBJS): MODULE_SRCDEPS:=$(MODULE_SRCDEPS) $(MODULE_OBJS): MODULE_INCLUDES:=$(MODULE_INCLUDES) -$(MODULE_OBJS): SRCDEPS:=$(SRCDEPS) -$(MODULE_OBJS): $(MODULE_SRCDEPS) $(SRCDEPS) - -$(MODULE_COBJS): $(BUILDDIR)/%.o: %.c $(SRCDEPS) +$(MODULE_COBJS): $(BUILDDIR)/%.o: %.c $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(MODULE_CFLAGS) $(THUMBCFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ -$(MODULE_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(SRCDEPS) +$(MODULE_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(MODULE_CPPFLAGS) $(THUMBCFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ -$(MODULE_ASMOBJS): $(BUILDDIR)/%.o: %.S $(SRCDEPS) +$(MODULE_ASMOBJS): $(BUILDDIR)/%.o: %.S $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(MODULE_ASMFLAGS) $(THUMBCFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ # overridden arm versions -$(MODULE_ARM_COBJS): $(BUILDDIR)/%.o: %.c $(SRCDEPS) +$(MODULE_ARM_COBJS): $(BUILDDIR)/%.o: %.c $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(MODULE_CFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ -$(MODULE_ARM_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(SRCDEPS) +$(MODULE_ARM_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(MODULE_CPPFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ -$(MODULE_ARM_ASMOBJS): $(BUILDDIR)/%.o: %.S $(SRCDEPS) +$(MODULE_ARM_ASMOBJS): $(BUILDDIR)/%.o: %.S $(MODULE_SRCDEPS) @$(MKDIR) @echo compiling $< $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(MODULE_ASMFLAGS) $(GLOBAL_INCLUDES) $(MODULE_INCLUDES) -c $< -MD -MT $@ -MF $(@:%o=%d) -o $@ diff --git a/make/module.mk b/make/module.mk index 99ccd882..4f763b9c 100644 --- a/make/module.mk +++ b/make/module.mk @@ -54,6 +54,7 @@ MODULE_DEFINES += MODULE_ASMFLAGS=\"$(subst $(SPACE),_,$(MODULE_ASMFLAGS))\" MODULE_DEFINES += MODULE_LDFLAGS=\"$(subst $(SPACE),_,$(MODULE_LDFLAGS))\" MODULE_DEFINES += MODULE_OPTFLAGS=\"$(subst $(SPACE),_,$(MODULE_OPTFLAGS))\" MODULE_DEFINES += MODULE_INCLUDES=\"$(subst $(SPACE),_,$(MODULE_INCLUDES))\" +MODULE_DEFINES += MODULE_SRCDEPS=\"$(subst $(SPACE),_,$(MODULE_SRCDEPS))\" MODULE_DEFINES += MODULE_DEPS=\"$(subst $(SPACE),_,$(MODULE_DEPS))\" # generate a per-module config.h file |