| # create a separate list of objects per source type |
| |
| # If a source file is located under $(BUILDDIR) directory |
| # a corresponding object will be generated next to it |
| MODULE_INPLACE_SRCS := $(filter $(BUILDDIR)/%,$(MODULE_SRCS)) |
| MODULE_OUTPLACE_SRCS := $(filter-out $(BUILDDIR)/%,$(MODULE_SRCS)) |
| |
| MODULE_INPLACE_SRCS_FIRST := $(filter $(BUILDDIR)/%,$(MODULE_SRCS_FIRST)) |
| MODULE_OUTPLACE_SRCS_FIRST := $(filter-out $(BUILDDIR)/%,$(MODULE_SRCS_FIRST)) |
| |
| MODULE_CSRCS := $(filter %.c,$(MODULE_OUTPLACE_SRCS)) |
| MODULE_CPPSRCS := $(filter %.cpp,$(MODULE_OUTPLACE_SRCS)) |
| MODULE_CCSRCS := $(filter %.cc,$(MODULE_OUTPLACE_SRCS)) |
| MODULE_ASMSRCS := $(filter %.S,$(MODULE_OUTPLACE_SRCS)) |
| |
| MODULE_COBJS := $(call TOBUILDDIR,$(patsubst %.c,%.o,$(MODULE_CSRCS))) |
| MODULE_CPPOBJS := $(call TOBUILDDIR,$(patsubst %.cpp,%.o,$(MODULE_CPPSRCS))) |
| MODULE_CCOBJS := $(call TOBUILDDIR,$(patsubst %.cc,%.o,$(MODULE_CCSRCS))) |
| MODULE_ASMOBJS := $(call TOBUILDDIR,$(patsubst %.S,%.o,$(MODULE_ASMSRCS))) |
| |
| MODULE_CSRCS_FIRST := $(filter %.c,$(MODULE_OUTPLACE_SRCS_FIRST)) |
| MODULE_CPPSRCS_FIRST := $(filter %.cpp,$(MODULE_OUTPLACE_SRCS_FIRST)) |
| MODULE_CCSRCS_FIRST := $(filter %.cc,$(MODULE_OUTPLACE_SRCS_FIRST)) |
| MODULE_ASMSRCS_FIRST := $(filter %.S,$(MODULE_OUTPLACE_SRCS_FIRST)) |
| |
| MODULE_COBJS_FIRST := $(call TOBUILDDIR,$(patsubst %.c,%.o,$(MODULE_CSRCS_FIRST))) |
| MODULE_CPPOBJS_FIRST := $(call TOBUILDDIR,$(patsubst %.cpp,%.o,$(MODULE_CPPSRCS_FIRST))) |
| MODULE_CCOBJS_FIRST := $(call TOBUILDDIR,$(patsubst %.cc,%.o,$(MODULE_CCSRCS_FIRST))) |
| MODULE_ASMOBJS_FIRST := $(call TOBUILDDIR,$(patsubst %.S,%.o,$(MODULE_ASMSRCS_FIRST))) |
| |
| # same for INPLACE sources |
| MODULE_INPLACE_CSRCS := $(filter %.c,$(MODULE_INPLACE_SRCS)) |
| MODULE_INPLACE_CPPSRCS := $(filter %.cpp,$(MODULE_INPLACE_SRCS)) |
| MODULE_INPLACE_CCSRCS := $(filter %.cc,$(MODULE_INPLACE_SRCS)) |
| MODULE_INPLACE_ASMSRCS := $(filter %.S,$(MODULE_INPLACE_SRCS)) |
| |
| MODULE_INPLACE_COBJS := $(patsubst %.c,%.o,$(MODULE_INPLACE_CSRCS)) |
| MODULE_INPLACE_CPPOBJS := $(patsubst %.cpp,%.o,$(MODULE_INPLACE_CPPSRCS)) |
| MODULE_INPLACE_CCOBJS := $(patsubst %.cc,%.o,$(MODULE_INPLACE_CCSRCS)) |
| MODULE_INPLACE_ASMOBJS := $(patsubst %.S,%.o,$(MODULE_INPLACE_ASMSRCS)) |
| |
| MODULE_INPLACE_CSRCS_FIRST := $(filter %.c,$(MODULE_INPLACE_SRCS_FIRST)) |
| MODULE_INPLACE_CPPSRCS_FIRST := $(filter %.cpp,$(MODULE_INPLACE_SRCS_FIRST)) |
| MODULE_INPLACE_CCSRCS_FIRST := $(filter %.cc,$(MODULE_INPLACE_SRCS_FIRST)) |
| MODULE_INPLACE_ASMSRCS_FIRST := $(filter %.S,$(MODULE_INPLACE_SRCS_FIRST)) |
| |
| MODULE_INPLACE_COBJS_FIRST := $(patsubst %.c,%.o,$(MODULE_INPLACE_CSRCS_FIRST)) |
| MODULE_INPLACE_CPPOBJS_FIRST := $(patsubst %.cpp,%.o,$(MODULE_INPLACE_CPPSRCS_FIRST)) |
| MODULE_INPLACE_CCOBJS_FIRST := $(patsubst %.cc,%.o,$(MODULE_INPLACE_CCSRCS_FIRST)) |
| MODULE_INPLACE_ASMOBJS_FIRST := $(patsubst %.S,%.o,$(MODULE_INPLACE_ASMSRCS_FIRST)) |
| |
| # do the same thing for files specified in arm override mode |
| MODULE_ARM_CSRCS := $(filter %.c,$(MODULE_ARM_OVERRIDE_SRCS)) |
| MODULE_ARM_CPPSRCS := $(filter %.cpp,$(MODULE_ARM_OVERRIDE_SRCS)) |
| MODULE_ARM_CCSRCS := $(filter %.cc,$(MODULE_ARM_OVERRIDE_SRCS)) |
| MODULE_ARM_ASMSRCS := $(filter %.S,$(MODULE_ARM_OVERRIDE_SRCS)) |
| |
| MODULE_ARM_COBJS := $(call TOBUILDDIR,$(patsubst %.c,%.o,$(MODULE_ARM_CSRCS))) |
| MODULE_ARM_CPPOBJS := $(call TOBUILDDIR,$(patsubst %.cpp,%.o,$(MODULE_ARM_CPPSRCS))) |
| MODULE_ARM_CCOBJS := $(call TOBUILDDIR,$(patsubst %.cc,%.o,$(MODULE_ARM_CCSRCS))) |
| MODULE_ARM_ASMOBJS := $(call TOBUILDDIR,$(patsubst %.S,%.o,$(MODULE_ARM_ASMSRCS))) |
| |
| MODULE_OBJS := $(MODULE_COBJS) \ |
| $(MODULE_CPPOBJS) \ |
| $(MODULE_CCOBJS) \ |
| $(MODULE_ASMOBJS) \ |
| $(MODULE_ARM_COBJS) \ |
| $(MODULE_ARM_CPPOBJS) \ |
| $(MODULE_ARM_CCOBJS) \ |
| $(MODULE_ARM_ASMOBJS) \ |
| $(MODULE_INPLACE_COBJS) \ |
| $(MODULE_INPLACE_CPPOBJS) \ |
| $(MODULE_INPLACE_CCOBJS) \ |
| $(MODULE_INPLACE_ASMOBJS) \ |
| |
| MODULE_INIT_OBJS := \ |
| $(MODULE_COBJS_FIRST) \ |
| $(MODULE_CPPOBJS_FIRST) \ |
| $(MODULE_CCOBJS_FIRST) \ |
| $(MODULE_ASMOBJS_FIRST) \ |
| |
| MODULE_COBJS += $(MODULE_COBJS_FIRST) |
| MODULE_CPPOBJS += $(MODULE_CPPOBJS_FIRST) |
| MODULE_CCOBJS += $(MODULE_CCOBJS_FIRST) |
| MODULE_ASMOBJS += $(MODULE_ASMOBJS_FIRST) |
| |
| MODULE_INPLACE_COBJS += $(MODULE_INPLACE_COBJS_FIRST) |
| MODULE_INPLACE_CPPOBJS += $(MODULE_INPLACE_CPPOBJS_FIRST) |
| MODULE_INPLACE_CCOBJS += $(MODULE_INPLACE_CCOBJS_FIRST) |
| MODULE_INPLACE_ASMOBJS += $(MODULE_INPLACE_ASMOBJS_FIRST) |
| |
| #$(info MODULE_SRCS = $(MODULE_SRCS)) |
| #$(info MODULE_CSRCS = $(MODULE_CSRCS)) |
| #$(info MODULE_CPPSRCS = $(MODULE_CPPSRCS)) |
| #$(info MODULE_ASMSRCS = $(MODULE_ASMSRCS)) |
| |
| #$(info MODULE_OBJS = $(MODULE_OBJS)) |
| #$(info MODULE_COBJS = $(MODULE_COBJS)) |
| #$(info MODULE_CPPOBJS = $(MODULE_CPPOBJS)) |
| #$(info MODULE_ASMOBJS = $(MODULE_ASMOBJS)) |
| |
| #$(info MODULE_INPLACE_SRCS = $(MODULE_INPLACE_SRCS)) |
| #$(info MODULE_INPLACE_CSRCS = $(MODULE_INPLACE_CSRCS)) |
| #$(info MODULE_INPLACE_CPPSRCS = $(MODULE_INPLACE_CPPSRCS)) |
| #$(info MODULE_INPLACE_ASMSRCS = $(MODULE_INPLACE_ASMSRCS)) |
| |
| #$(info MODULE_INPLACE_OBJS = $(MODULE_INPLACE_OBJS)) |
| #$(info MODULE_INPLACE_COBJS = $(MODULE_INPLACE_COBJS)) |
| #$(info MODULE_INPLACE_CPPOBJS = $(MODULE_INPLACE_CPPOBJS)) |
| #$(info MODULE_INPLACE_ASMOBJS = $(MODULE_INPLACE_ASMOBJS)) |
| |
| $(MODULE_INIT_OBJS): MODULE:=$(MODULE) |
| $(MODULE_INIT_OBJS): MODULE_OPTFLAGS:=$(MODULE_OPTFLAGS) |
| $(MODULE_INIT_OBJS): MODULE_COMPILEFLAGS:=$(MODULE_COMPILEFLAGS) |
| $(MODULE_INIT_OBJS): MODULE_CFLAGS:=$(MODULE_CFLAGS) |
| $(MODULE_INIT_OBJS): MODULE_CPPFLAGS:=$(MODULE_CPPFLAGS) |
| $(MODULE_INIT_OBJS): MODULE_ASMFLAGS:=$(MODULE_ASMFLAGS) |
| $(MODULE_INIT_OBJS): MODULE_SRCDEPS:=$(MODULE_SRCDEPS) |
| $(MODULE_INIT_OBJS): MODULE_INCLUDES:=$(MODULE_INCLUDES) |
| |
| $(MODULE_OBJS): MODULE:=$(MODULE) |
| $(MODULE_OBJS): MODULE_OPTFLAGS:=$(MODULE_OPTFLAGS) |
| $(MODULE_OBJS): MODULE_COMPILEFLAGS:=$(MODULE_COMPILEFLAGS) |
| $(MODULE_OBJS): MODULE_CFLAGS:=$(MODULE_CFLAGS) |
| $(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_COBJS): $(BUILDDIR)/%.o: %.c $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(ARCH_CFLAGS) $(MODULE_CFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_CCOBJS): $(BUILDDIR)/%.o: %.cc $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_ASMOBJS): $(BUILDDIR)/%.o: %.S $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(ARCH_ASMFLAGS) $(MODULE_ASMFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| # Same rules as normal sources but output file is %.o rather then $(BUILDDIR)/%.o |
| $(MODULE_INPLACE_COBJS): %.o : %.c $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(ARCH_CFLAGS) $(MODULE_CFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_INPLACE_CPPOBJS): %.o : %.cpp $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_INPLACE_CCOBJS): %.o : %.cc $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_INPLACE_ASMOBJS): %.o : %.S $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(ARCH_ASMFLAGS) $(MODULE_ASMFLAGS) $(THUMBCFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| # overridden arm versions |
| $(MODULE_ARM_COBJS): $(BUILDDIR)/%.o: %.c $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(ARCH_CFLAGS) $(MODULE_CFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_ARM_CPPOBJS): $(BUILDDIR)/%.o: %.cpp $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_ARM_CCOBJS): $(BUILDDIR)/%.o: %.cc $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CPPFLAGS) $(ARCH_CPPFLAGS) $(MODULE_CPPFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| $(MODULE_ARM_ASMOBJS): $(BUILDDIR)/%.o: %.S $(MODULE_SRCDEPS) |
| @$(MKDIR) |
| @$(call ECHO,$(MODULE),compiling,$<) |
| $(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_ASMFLAGS) $(ARCH_ASMFLAGS) $(MODULE_ASMFLAGS) $(MODULE_INCLUDES) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@ |
| @$(call ECHO_DONE_SILENT,$(MODULE),compiling,$<) |
| |
| # clear some variables we set here |
| MODULE_CSRCS := |
| MODULE_CPPSRCS := |
| MODULE_CCSRCS := |
| MODULE_ASMSRCS := |
| MODULE_COBJS := |
| MODULE_CPPOBJS := |
| MODULE_CCOBJS := |
| MODULE_ASMOBJS := |
| |
| MODULE_INPLACE_CSRCS := |
| MODULE_INPLACE_CPPSRCS := |
| MODULE_INPLACE_CCSRCS := |
| MODULE_INPLACE_ASMSRCS := |
| MODULE_INPLACE_COBJS := |
| MODULE_INPLACE_CPPOBJS := |
| MODULE_INPLACE_CCOBJS := |
| MODULE_INPLACE_ASMOBJS := |
| |
| MODULE_INPLACE_SRCS:= |
| MODULE_OUTPLACE_SRCS:= |
| |
| MODULE_INPLACE_SRCS_FIRST:= |
| MODULE_OUTPLACE_SRCS_FIRST:= |
| |
| MODULE_CSRCS_FIRST := |
| MODULE_CPPSRCS_FIRST := |
| MODULE_CCSRCS_FIRST := |
| MODULE_ASMSRCS_FIRST := |
| |
| MODULE_COBJS_FIRST := |
| MODULE_CPPOBJS_FIRST := |
| MODULE_CCOBJS_FIRST := |
| MODULE_ASMOBJS_FIRST := |
| |
| MODULE_INPLACE_CSRCS_FIRST := |
| MODULE_INPLACE_CPPSRCS_FIRST := |
| MODULE_INPLACE_CCSRCS_FIRST := |
| MODULE_INPLACE_ASMSRCS_FIRST := |
| MODULE_INPLACE_COBJS_FIRST := |
| MODULE_INPLACE_CPPOBJS_FIRST := |
| MODULE_INPLACE_CCOBJS_FIRST := |
| MODULE_INPLACE_ASMOBJS_FIRST := |
| |
| # MODULE_OBJS is passed back |
| #MODULE_OBJS := |
| |