diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules index 939e79f800..673580db14 100644 --- a/Makefile.moddir_rules +++ b/Makefile.moddir_rules @@ -62,6 +62,21 @@ endif MOD_ASTCFLAGS=-DAST_MODULE=\"$(1)\" $(MENUSELECT_OPTS_$(1):%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$(value $(dep)_INCLUDE)) +define MOD_ADD_SOURCE +$$(if $$(filter $(1),$$(EMBEDDED_MODS)),modules.link,$(1).so): $$(subst $(3),$(5),$(2)) +$$(subst $(3),$(5),$(2)): _ASTCFLAGS+=$$(call MOD_ASTCFLAGS,$(1)) +.$(1).moduleinfo: MODULEINFO_EXTRA_OUTPUT=" $$(addprefix $$(SUBDIR)/,$$(subst $(3),$(5),$(2)) $$(subst $(3),$(4),$(2)))" + +clean:: clean-$(1)$(3) + +clean-$(1)$(3): + rm -f $$(subst $(3),$(5),$(2)) $$(subst $(3),$(4),$(2)) + +endef + +MOD_ADD_C=$(eval $(call MOD_ADD_SOURCE,$(1),$(2),.c,.i,.o)) +MOD_ADD_CC=$(eval $(call MOD_ADD_SOURCE,$(1),$(2),.cc,.ii,.oo)) + $(addsuffix .oo,$(CC_MODS)) $(addsuffix .o,$(C_MODS)): \ _ASTCFLAGS+=$(call MOD_ASTCFLAGS,$*) @@ -132,12 +147,12 @@ dist-clean:: rm -f *.exports .%.moduleinfo: %.c - @echo "" > $@ + @echo "" > $@ $(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $< >> $@ echo "" >> $@ .%.moduleinfo: %.cc - @echo "" > $@ + @echo "" > $@ $(AWK) -f $(ASTTOPDIR)/build_tools/get_moduleinfo $< >> $@ echo "" >> $@ diff --git a/addons/Makefile b/addons/Makefile index 96438f5d0e..a02d35f7d8 100644 --- a/addons/Makefile +++ b/addons/Makefile @@ -14,15 +14,17 @@ MENUSELECT_CATEGORY=ADDONS MENUSELECT_DESCRIPTION=Add-ons (See README-addons.txt) -H323OBJS:=ooCmdChannel.o ooLogChan.o ooUtils.o ooGkClient.o context.o \ - ooDateTime.o decode.o dlist.o encode.o errmgmt.o \ - memheap.o ootrace.o oochannels.o ooh245.o ooports.o \ - ooq931.o ooCapability.o ooSocket.o perutil.o eventHandler.o \ - ooCalls.o ooStackCmds.o ooh323.o ooh323ep.o printHandler.o \ - rtctype.o ooTimer.o h323/H235-SECURITY-MESSAGESDec.o \ - h323/H235-SECURITY-MESSAGESEnc.o h323/H323-MESSAGES.o h323/H323-MESSAGESDec.o \ - h323/H323-MESSAGESEnc.o h323/MULTIMEDIA-SYSTEM-CONTROL.o \ - h323/MULTIMEDIA-SYSTEM-CONTROLDec.o h323/MULTIMEDIA-SYSTEM-CONTROLEnc.o +OOH323C:=ooCmdChannel.c ooLogChan.c ooUtils.c ooGkClient.c context.c \ + ooDateTime.c decode.c dlist.c encode.c errmgmt.c \ + memheap.c ootrace.c oochannels.c ooh245.c ooports.c \ + ooq931.c ooCapability.c ooSocket.c perutil.c eventHandler.c \ + ooCalls.c ooStackCmds.c ooh323.c ooh323ep.c printHandler.c \ + rtctype.c ooTimer.c h323/H235-SECURITY-MESSAGESDec.c \ + h323/H235-SECURITY-MESSAGESEnc.c h323/H323-MESSAGES.c h323/H323-MESSAGESDec.c \ + h323/H323-MESSAGESEnc.c h323/MULTIMEDIA-SYSTEM-CONTROL.c \ + h323/MULTIMEDIA-SYSTEM-CONTROLDec.c h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c + +H323SOURCE:=$(addprefix ooh323c/src/,$(OOH323C)) ooh323cDriver.c H323CFLAGS:=-Iooh323c/src -Iooh323c/src/h323 @@ -57,16 +59,9 @@ endif include $(ASTTOPDIR)/Makefile.moddir_rules -clean:: - if [ -f mp3/Makefile ] ; then $(MAKE) -C mp3 clean ; fi - rm -f $(addprefix ooh323c/src/,$(H323OBJS)) - -$(if $(filter format_mp3,$(EMBEDDED_MODS)),modules.link,format_mp3.so): mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o - -chan_ooh323.o: _ASTCFLAGS+=$(H323CFLAGS) - $(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): _ASTCFLAGS+=$(H323CFLAGS) -$(if $(filter chan_ooh323,$(EMBEDDED_MODS)),modules.link,chan_ooh323.so): $(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o -$(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_ooh323) +$(call MOD_ADD_C,chan_ooh323,$(H323SOURCE)) + +$(call MOD_ADD_C,format_mp3,mp3/common.c mp3/dct64_i386.c mp3/decode_ntom.c mp3/layer3.c mp3/tabinit.c mp3/interface.c) .PHONY: check_mp3 diff --git a/apps/Makefile b/apps/Makefile index 1dfe8c8385..7730460fe1 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -27,11 +27,7 @@ all: _all include $(ASTTOPDIR)/Makefile.moddir_rules -clean:: - rm -f confbridge/*.o confbridge/*.i - -$(if $(filter app_confbridge,$(EMBEDDED_MODS)),modules.link,app_confbridge.so): $(subst .c,.o,$(wildcard confbridge/*.c)) -$(subst .c,.o,$(wildcard confbridge/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,app_confbridge) +$(call MOD_ADD_C,app_confbridge,$(wildcard confbridge/*.c)) ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) LIBS+= -lres_ael_share.so -lres_monitor.so -lres_speech.so diff --git a/channels/Makefile b/channels/Makefile index 1f4cff4c76..733ce4111c 100644 --- a/channels/Makefile +++ b/channels/Makefile @@ -23,46 +23,16 @@ ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) LIBS+= -lres_monitor.so endif -clean:: - $(MAKE) -C misdn clean - rm -f dahdi/*.o dahdi/*.i - rm -f sip/*.o sip/*.i - rm -f iax2/*.o iax2/*.i - rm -f pjsip/*.o pjsip/*.i -$(if $(filter chan_iax2,$(EMBEDDED_MODS)),modules.link,chan_iax2.so): $(subst .c,.o,$(wildcard iax2/*.c)) -$(subst .c,.o,$(wildcard iax2/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_iax2) - -$(if $(filter chan_sip,$(EMBEDDED_MODS)),modules.link,chan_sip.so): $(subst .c,.o,$(wildcard sip/*.c)) -$(subst .c,.o,$(wildcard sip/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_sip) - -$(if $(filter chan_pjsip,$(EMBEDDED_MODS)),modules.link,chan_pjsip.so): $(subst .c,.o,$(wildcard pjsip/*.c)) -$(subst .c,.o,$(wildcard pjsip/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_pjsip) - -# Additional objects to combine with chan_dahdi.so -CHAN_DAHDI_OBJS= \ - $(subst .c,.o,$(wildcard dahdi/*.c)) \ - sig_analog.o \ - sig_pri.o \ - sig_ss7.o \ - -$(if $(filter chan_dahdi,$(EMBEDDED_MODS)),modules.link,chan_dahdi.so): $(CHAN_DAHDI_OBJS) -$(CHAN_DAHDI_OBJS): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_dahdi) +$(call MOD_ADD_C,chan_iax2,$(wildcard iax2/*.c)) +$(call MOD_ADD_C,chan_sip,$(wildcard sip/*.c)) +$(call MOD_ADD_C,chan_pjsip,$(wildcard pjsip/*.c)) +$(call MOD_ADD_C,chan_dahdi,$(wildcard dahdi/*.c) sig_analog.c sig_pri.c sig_ss7.c) +$(call MOD_ADD_C,chan_misdn,misdn_config.c misdn/isdn_lib.c misdn/isdn_msg_parser.c) chan_misdn.o: _ASTCFLAGS+=-Imisdn - misdn_config.o: _ASTCFLAGS+=-Imisdn - misdn/isdn_lib.o: _ASTCFLAGS+=-Wno-strict-aliasing -$(if $(filter chan_misdn,$(EMBEDDED_MODS)),modules.link,chan_misdn.so): misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o -misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_misdn) - -$(if $(filter chan_oss,$(EMBEDDED_MODS)),modules.link,chan_oss.so): console_video.o vgrabbers.o console_board.o -console_video.o vgrabbers.o console_board.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_oss) - -chan_usbradio.o: ./xpmr/xpmr.c ./xpmr/xpmr.h ./xpmr/xpmr_coef.h - -chan_usbradio.so: LIBS+=-lusb -lasound -chan_usbradio.so: _ASTCFLAGS+=-DNDEBUG +$(call MOD_ADD_C,chan_oss,console_video.c vgrabbers.c console_board.c) diff --git a/codecs/Makefile b/codecs/Makefile index 32230ae1b5..684ccc6791 100644 --- a/codecs/Makefile +++ b/codecs/Makefile @@ -53,8 +53,6 @@ clean:: for dir in $(SUB_DIRS); do \ $(MAKE) -C $$dir clean; \ done - rm -f g722/*.[oai] - rm -f speex/*.[oai] .PHONY: $(SUB_DIRS) @@ -81,9 +79,8 @@ $(SUB_ILBC): @$(MAKE) -C $(SUB_ILBC) all _ASTCFLAGS="$(filter-out -Wmissing-prototypes -Wmissing-declarations -Wshadow,$(_ASTCFLAGS)) $(AST_NO_STRICT_OVERFLOW)" -$(if $(filter codec_g722,$(EMBEDDED_MODS)),modules.link,codec_g722.so): g722/g722_encode.o g722/g722_decode.o -g722/g722_encode.o g722/g722_decode.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,codec_g722) +$(call MOD_ADD_C,codec_g722,g722/g722_encode.c g722/g722_decode.c) ifeq ($(BUILD_CPU),x86_64) @@ -92,6 +89,5 @@ else SPEEX_RESAMPLE_CFLAGS:= endif -$(if $(filter codec_resample,$(EMBEDDED_MODS)),modules.link,codec_resample.so): speex/resample.o - -speex/resample.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,codec_resample) $(SPEEX_RESAMPLE_CFLAGS) +$(call MOD_ADD_C,codec_resample,speex/resample.c) +speex/resample.o: _ASTCFLAGS+=$(SPEEX_RESAMPLE_CFLAGS) diff --git a/pbx/Makefile b/pbx/Makefile index 0afc4bcad2..4b02ce41fe 100644 --- a/pbx/Makefile +++ b/pbx/Makefile @@ -23,13 +23,4 @@ ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) LIBS+= -lres_ael_share.so -lres_monitor.so endif -clean:: - rm -f ael/*.o ael/*.i - -dundi-parser.o: dundi-parser.h -dundi-parser.o: _ASTCFLAGS+=-I. - -pbx_gtkconsole.o: _ASTCFLAGS+=-Wno-strict-prototypes - -$(if $(filter pbx_dundi,$(EMBEDDED_MODS)),modules.link,pbx_dundi.so): dundi-parser.o -dundi-parser.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,pbx_dundi) +$(call MOD_ADD_C,pbx_dundi,dundi-parser.c) diff --git a/res/Makefile b/res/Makefile index b98fb8e425..e56a148802 100644 --- a/res/Makefile +++ b/res/Makefile @@ -37,21 +37,6 @@ ael/ael.tab.o: _ASTCFLAGS+=-I. -Iael -DYYENABLE_NLS=0 _ASTCFLAGS+=-Wno-parentheses-equality endif -$(if $(filter res_ais,$(EMBEDDED_MODS)),modules.link,res_ais.so): ais/clm.o ais/evt.o -ais/clm.o ais/evt.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ais) - -$(if $(filter res_snmp,$(EMBEDDED_MODS)),modules.link,res_snmp.so): snmp/agent.o -snmp/agent.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_snmp) - -$(if $(filter res_ael_share,$(EMBEDDED_MODS)),modules.link,res_ael_share.so): ael/ael_lex.o ael/ael.tab.o ael/pval.o -ael/ael_lex.o ael/ael.tab.o ael/pval.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ael_share) - -$(if $(filter res_pjsip,$(EMBEDDED_MODS)),modules.link,res_pjsip.so): $(subst .c,.o,$(wildcard res_pjsip/*.c)) -$(subst .c,.o,$(wildcard res_pjsip/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_pjsip) - -$(if $(filter res_stasis,$(EMBEDDED_MODS)),modules.link,res_stasis.so): $(subst .c,.o,$(wildcard stasis/*.c)) -$(subst .c,.o,$(wildcard stasis/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_stasis) - ifneq ($(findstring REBUILD_PARSERS,$(MENUSELECT_CFLAGS)),) ael/ael_lex.c: ael/ael.flex else @@ -75,22 +60,14 @@ endif ael/pval.o: ael/pval.c -clean:: - rm -f snmp/*.[oi] ael/*.[oi] ais/*.[oi] ari/*.[oi] - rm -f res_pjsip/*.[oi] stasis/*.[oi] - rm -f parking/*.o parking/*.i stasis_recording/*.[oi] - -$(if $(filter res_parking,$(EMBEDDED_MODS)),modules.link,res_parking.so): $(subst .c,.o,$(wildcard parking/*.c)) -$(subst .c,.o,$(wildcard parking/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_parking) - -res_ari.so: ari/cli.o ari/config.o ari/ari_websockets.o -ari/cli.o ari/config.o ari/ari_websockets.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari) - -res_ari_model.so: ari/ari_model_validators.o -ari/ari_model_validators.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_model) - -res_stasis_recording.so: stasis_recording/stored.o -stasis_recording/stored.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_stasis_recording) +$(call MOD_ADD_C,res_ael_share,ael/ael_lex.c ael/ael.tab.c ael/pval.c) +$(call MOD_ADD_C,res_stasis,$(wildcard stasis/*.c)) +$(call MOD_ADD_C,res_snmp,snmp/agent.c) +$(call MOD_ADD_C,res_parking,$(wildcard parking/*.c)) +$(call MOD_ADD_C,res_pjsip,$(wildcard res_pjsip/*.c)) +$(call MOD_ADD_C,res_ari,ari/cli.c ari/config.c ari/ari_websockets.c) +$(call MOD_ADD_C,res_ari_model,ari/ari_model_validators.c) +$(call MOD_ADD_C,res_stasis_recording,stasis_recording/stored.c) # Dependencies for res_ari_*.so are generated, so they're in this file include ari.make diff --git a/res/ari.make b/res/ari.make index f9a87d3fbc..dd329973c8 100644 --- a/res/ari.make +++ b/res/ari.make @@ -17,47 +17,14 @@ # rest-api-templates/ari.make.mustache # -res_ari_asterisk.so: ari/resource_asterisk.o - -ari/resource_asterisk.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_asterisk) - -res_ari_endpoints.so: ari/resource_endpoints.o - -ari/resource_endpoints.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_endpoints) - -res_ari_channels.so: ari/resource_channels.o - -ari/resource_channels.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_channels) - -res_ari_bridges.so: ari/resource_bridges.o - -ari/resource_bridges.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_bridges) - -res_ari_recordings.so: ari/resource_recordings.o - -ari/resource_recordings.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_recordings) - -res_ari_sounds.so: ari/resource_sounds.o - -ari/resource_sounds.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_sounds) - -res_ari_playbacks.so: ari/resource_playbacks.o - -ari/resource_playbacks.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_playbacks) - -res_ari_device_states.so: ari/resource_device_states.o - -ari/resource_device_states.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_device_states) - -res_ari_mailboxes.so: ari/resource_mailboxes.o - -ari/resource_mailboxes.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_mailboxes) - -res_ari_events.so: ari/resource_events.o - -ari/resource_events.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_events) - -res_ari_applications.so: ari/resource_applications.o - -ari/resource_applications.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_applications) - +$(call MOD_ADD_C,res_ari_asterisk,ari/resource_asterisk.c) +$(call MOD_ADD_C,res_ari_endpoints,ari/resource_endpoints.c) +$(call MOD_ADD_C,res_ari_channels,ari/resource_channels.c) +$(call MOD_ADD_C,res_ari_bridges,ari/resource_bridges.c) +$(call MOD_ADD_C,res_ari_recordings,ari/resource_recordings.c) +$(call MOD_ADD_C,res_ari_sounds,ari/resource_sounds.c) +$(call MOD_ADD_C,res_ari_playbacks,ari/resource_playbacks.c) +$(call MOD_ADD_C,res_ari_device_states,ari/resource_device_states.c) +$(call MOD_ADD_C,res_ari_mailboxes,ari/resource_mailboxes.c) +$(call MOD_ADD_C,res_ari_events,ari/resource_events.c) +$(call MOD_ADD_C,res_ari_applications,ari/resource_applications.c) diff --git a/rest-api-templates/ari.make.mustache b/rest-api-templates/ari.make.mustache index 50293cf11a..82f55ccf0a 100644 --- a/rest-api-templates/ari.make.mustache +++ b/rest-api-templates/ari.make.mustache @@ -19,8 +19,5 @@ # {{#apis}} -res_ari_{{c_name}}.so: ari/resource_{{c_name}}.o - -ari/resource_{{c_name}}.o: _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_ari_{{c_name}}) - +$(call MOD_ADD_C,res_ari_{{c_name}},ari/resource_{{c_name}}.c) {{/apis}}