Merged revisions 44055 via svnmerge from
[asterisk/asterisk.git] / pbx / Makefile
index 7680943..0f9c9d1 100644 (file)
@@ -9,29 +9,32 @@
 # the GNU General Public License
 #
 
-ifneq ($(wildcard ../menuselect.makeopts),)
-  include ../menuselect.makeopts
-  include ../menuselect.makedeps
-endif
+-include ../menuselect.makeopts ../menuselect.makedeps
+
+C_MODS:=$(filter-out $(MENUSELECT_PBX),$(patsubst %.c,%,$(wildcard pbx_*.c)))
+CC_MODS:=$(filter-out $(MENUSELECT_PBX),$(patsubst %.cc,%,$(wildcard pbx_*.cc)))
 
-SELECTED_MODS:=$(filter-out $(MENUSELECT_PBX),$(patsubst %.c,%,$(wildcard pbx_*.c)))
+LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
 
-MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
+ifneq ($(findstring pbx,$(MENUSELECT_EMBED)),)
+  EMBEDDED_MODS:=$(LOADABLE_MODS)
+  LOADABLE_MODS:=
+endif
 
 all: _all
 
-include ../Makefile.rules
+include $(ASTTOPDIR)/Makefile.moddir_rules
 
 clean::
        rm -f ael/*.o
 
-ael/aelflex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
-       $(CC) $(CFLAGS) -I. -c -o $@ $<
+ael/ael_lex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
+ael/ael_lex.o: ASTCFLAGS+=-I.
 
-ael/aelbison.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h
-       $(CC) $(CFLAGS) -I. -c -o $@ $<
+ael/ael.tab.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h
+ael/ael.tab.o: ASTCFLAGS+=-I.
 
-pbx_ael.so: pbx_ael.o ael/aelbison.o ael/aelflex.o
+$(if $(filter pbx_ael,$(EMBEDDED_MODS)),modules.link,pbx_ael.so): ael/ael.tab.o ael/ael_lex.o
 
 ael/ael_lex.c:
        (cd ael; flex ael.flex; sed -i -e "/begin standard C headers/i#include \"asterisk.h\"" ael_lex.c)
@@ -39,7 +42,7 @@ ael/ael_lex.c:
 ael/ael.tab.c ael/ael.tab.h:
        (cd ael; bison -v -d ael.y)
 
-dundi-parser.o: dundi-parser.c dundi-parser.h
-       $(CC) $(CFLAGS) -I. -c -o $@ $<
+dundi-parser.o: dundi-parser.h
+dundi-parser.o: ASTCFLAGS+=-I.
 
-pbx_dundi.so: pbx_dundi.o dundi-parser.o
+$(if $(filter pbx_dundi,$(EMBEDDED_MODS)),modules.link,pbx_dundi.so): dundi-parser.o