X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=Makefile.moddir_rules;h=1c78ebd459605a9baf0a955e4ddfc5910efffa05;hp=0963cedfcac47df853cf79c0d4557642b6821be5;hb=c78ddffb047767ecdffccbd0a426f3ca91722c24;hpb=aa7b32d1750b732b45f5fe12a58308cb047ec959 diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules index 0963ced..1c78ebd 100644 --- a/Makefile.moddir_rules +++ b/Makefile.moddir_rules @@ -12,11 +12,13 @@ # ifneq ($(findstring MALLOC_DEBUG,$(MENUSELECT_CFLAGS)),) - CFLAGS+=-include $(ASTTOPDIR)/include/asterisk/astmm.h + ifeq ($(findstring astmm.h,$(ASTCFLAGS)),) + ASTCFLAGS+=-include $(ASTTOPDIR)/include/asterisk/astmm.h + endif endif ifeq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),) - CFLAGS+=${GC_CFLAGS} + ASTCFLAGS+=${GC_CFLAGS} endif ifneq ($(findstring STATIC_BUILD,$(MENUSELECT_CFLAGS)),) @@ -27,37 +29,22 @@ include $(ASTTOPDIR)/Makefile.rules comma:=, -define module_o_template -$(2): $(3) -$(2): CFLAGS+=-DAST_MODULE=\"$(1)\" $$(MENUSELECT_OPTS_$(1):%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_INCLUDE)) -endef +$(addsuffix .o,$(C_MODS)): ASTCFLAGS+=-DAST_MODULE=\"$*\" $(MENUSELECT_OPTS_$*:%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_INCLUDE)) +$(addsuffix .oo,$(CC_MODS)): ASTCFLAGS+=-DAST_MODULE=\"$*\" $(MENUSELECT_OPTS_$*:%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_INCLUDE)) -define module_so_template -$(1)=$(1).so -$(1).so: CFLAGS+=-fPIC -$(1).so: LIBS+=$(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_LIB)) -$(1).so: LDFLAGS+=$(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_LDFLAGS)) -$(1).so: $(2) -endef +$(LOADABLE_MODS:%=%.so): ASTCFLAGS+=-fPIC +$(LOADABLE_MODS:%=%.so): LIBS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LIB)) +$(LOADABLE_MODS:%=%.so): ASTLDFLAGS+=$(foreach dep,$(MENUSELECT_DEPENDS_$*),$(value $(dep)_LDFLAGS)) -define module_a_template -$(1)=modules.link -modules.link: $(2) -endef +$(EMBEDDED_MODS:%=%.o): ASTCFLAGS+=-DEMBEDDED_MODULE=$* -$(foreach mod,$(C_MODS),$(eval $(call module_o_template,$(mod),$(mod).o,$(mod).c))) +$(addsuffix .so,$(filter $(LOADABLE_MODS),$(C_MODS))): %.so: %.o +$(addsuffix .so,$(filter $(LOADABLE_MODS),$(CC_MODS))): %.so: %.oo -$(foreach mod,$(CC_MODS),$(eval $(call module_o_template,$(mod),$(mod).oo,$(mod).cc))) +modules.link: $(addsuffix .eo,$(filter $(EMBEDDED_MODS),$(C_MODS))) +modules.link: $(addsuffix .eoo,$(filter $(EMBEDDED_MODS),$(CC_MODS))) -$(foreach mod,$(filter-out $(EMBEDDED_MODS),$(C_MODS)),$(eval $(call module_so_template,$(mod),$(mod).o))) - -$(foreach mod,$(filter-out $(EMBEDDED_MODS),$(CC_MODS)),$(eval $(call module_so_template,$(mod),$(mod).oo))) - -$(foreach mod,$(filter $(EMBEDDED_MODS),$(C_MODS)),$(eval $(call module_a_template,$(mod),$(mod).o))) - -$(foreach mod,$(filter $(EMBEDDED_MODS),$(CC_MODS)),$(eval $(call module_a_template,$(mod),$(mod).oo))) - -.PHONY: clean clean-depend depend uninstall _all +.PHONY: clean uninstall _all ifneq ($(LOADABLE_MODS),) _all: $(LOADABLE_MODS:%=%.so) @@ -81,13 +68,12 @@ endif modules.link: @rm -f $@ - @for file in $(patsubst $(ASTTOPDIR)/%,%,$(realpath $^)); do echo "INPUT (../$${file})" >> $@; done + @for file in $(patsubst %,$(SUBDIR)/%,$(filter %.eo %.eoo,$^)); do echo "INPUT (../$${file})" >> $@; done + @for file in $(patsubst %,$(SUBDIR)/%,$(filter-out %.eo %.eoo,$^)); do echo "INPUT (../$${file})" >> $@; done -clean-depend:: - rm -f .depend - -clean:: clean-depend - rm -f *.so *.o *.oo +clean:: + rm -f *.so *.o *.oo *.eo *.eoo + rm -f .*.o.d .*.oo.d rm -f modules.link install:: all @@ -95,11 +81,6 @@ install:: all uninstall:: -ifneq ($(wildcard .depend),) - include .depend +ifneq ($(wildcard .*.d),) + include .*.d endif - -depend: .depend - -.depend: - ../build_tools/mkdep $(CFLAGS) `ls *.c *.cc 2> /dev/null`