diff options
Diffstat (limited to 'mk/mod.mk')
-rw-r--r-- | mk/mod.mk | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/mk/mod.mk b/mk/mod.mk new file mode 100644 index 0000000..64ec23c --- /dev/null +++ b/mk/mod.mk @@ -0,0 +1,93 @@ +# +# mod.mk +# +# Copyright (C) 2010 Creytiv.com +# + +$(MOD)_OBJS := $(patsubst %.c,$(BUILD)/modules/$(MOD)/%.o,\ + $(filter %.c,$($(MOD)_SRCS))) +$(MOD)_OBJS += $(patsubst %.cpp,$(BUILD)/modules/$(MOD)/%.o,\ + $(filter %.cpp,$($(MOD)_SRCS))) +$(MOD)_OBJS += $(patsubst %.m,$(BUILD)/modules/$(MOD)/%.o,\ + $(filter %.m,$($(MOD)_SRCS))) +$(MOD)_OBJS += $(patsubst %.S,$(BUILD)/modules/$(MOD)/%.o,\ + $(filter %.S,$($(MOD)_SRCS))) + +-include $($(MOD)_OBJS:.o=.d) + + +$(MOD)_NAME := $(MOD) + + +ifeq ($(STATIC),) + +# +# Dynamically loaded modules +# + +$(MOD)$(MOD_SUFFIX): $($(MOD)_OBJS) + @echo " LD [M] $@" + @$(LD) $(LFLAGS) $(SH_LFLAGS) $(MOD_LFLAGS) $($(basename $@)_OBJS) \ + $($(basename $@)_LFLAGS) -L$(LIBRE_SO) -lre -o $@ + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.c $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " CC [M] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) -c $< -o $@ $(DFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.m $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " OC [M] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) $(OBJCFLAGS) -c $< -o $@ $(DFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.cpp $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " CXX [M] $@" + @mkdir -p $(dir $@) + @$(CXX) $(CXXFLAGS) -c $< -o $@ $(DFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.S $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " AS [M] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) -DMOD_NAME=\"$(MOD)\" -c $< -o $@ $(DFLAGS) + +else + +# +# Static linking of modules +# + +# needed to deref variable now, append to list +MOD_OBJS := $(MOD_OBJS) $($(MOD)_OBJS) +MOD_LFLAGS := $(MOD_LFLAGS) $($(MOD)_LFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.c $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " CC [m] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) -DMOD_NAME=\"$(MOD)\" -c $< -o $@ $(DFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.m $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " OC [m] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) $(OBJCFLAGS) -DMOD_NAME=\"$(MOD)\" -c $< -o $@ \ + $(DFLAGS) + + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.cpp $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " CXX [m] $@" + @mkdir -p $(dir $@) + @$(CXX) $(CXXFLAGS) -DMOD_NAME=\"$(MOD)\" -c $< -o $@ $(DFLAGS) + +$(BUILD)/modules/$(MOD)/%.o: modules/$(MOD)/%.S $(BUILD) Makefile mk/mod.mk \ + modules/$(MOD)/module.mk mk/modules.mk + @echo " AS [m] $@" + @mkdir -p $(dir $@) + @$(CC) $(CFLAGS) -DMOD_NAME=\"$(MOD)\" -c $< -o $@ $(DFLAGS) + +endif |