Merged revisions 44055 via svnmerge from
authorKevin P. Fleming <kpfleming@digium.com>
Fri, 29 Sep 2006 22:48:43 +0000 (22:48 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Fri, 29 Sep 2006 22:48:43 +0000 (22:48 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r44055 | kpfleming | 2006-09-29 17:47:40 -0500 (Fri, 29 Sep 2006) | 2 lines

fix a few build system bugs, and convert Makefiles to be compatible with GNU make 3.80

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44056 65c4cc65-6c06-0410-ace0-fbb531ad65f3

15 files changed:
Makefile.moddir_rules
Makefile.rules
agi/Makefile
build_tools/embed_modules.xml
channels/Makefile
codecs/Makefile
codecs/gsm/Makefile
codecs/ilbc/Makefile
codecs/lpc10/Makefile
configure
configure.ac
main/db1-ast/Makefile
pbx/Makefile
res/Makefile
utils/Makefile

index 2144e50..6925636 100644 (file)
@@ -27,35 +27,18 @@ include $(ASTTOPDIR)/Makefile.rules
 
 comma:=,
 
-define module_o_template
-$(2): $(3)
-$(2): ASTCFLAGS+=-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: ASTCFLAGS+=-fPIC
-$(1).so: LIBS+=$(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_LIB))
-$(1).so: ASTLDFLAGS+=$(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
+$(addsuffix .so,$(filter $(LOADABLE_MODS),$(C_MODS))): %.so: %.o
+$(addsuffix .so,$(filter $(LOADABLE_MODS),$(CC_MODS))): %.so: %.oo
 
-$(foreach mod,$(C_MODS),$(eval $(call module_o_template,$(mod),$(mod).o,$(mod).c)))
-
-$(foreach mod,$(CC_MODS),$(eval $(call module_o_template,$(mod),$(mod).oo,$(mod).cc)))
-
-$(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)))
+modules.link: $(addsuffix .o,$(filter $(EMBEDDED_MODS),$(C_MODS)))
+modules.link: $(addsuffix .oo,$(filter $(EMBEDDED_MODS),$(CC_MODS)))
 
 .PHONY: clean clean-depend depend uninstall _all
 
@@ -81,7 +64,8 @@ endif
 
 modules.link:
        @rm -f $@
-       @for file in $(patsubst $(ASTTOPDIR)/%,%,$(realpath $^)); do echo "INPUT (../$${file})" >> $@; done
+       @for file in $(patsubst %,$(SUBDIR)/%,$(filter %.o,$^)); do echo "INPUT (../$${file})" >> $@; done
+       @for file in $(patsubst %,$(SUBDIR)/%,$(filter-out %.o,$^)); do echo "INPUT (../$${file})" >> $@; done
 
 clean-depend::
        rm -f .depend
index cdad748..59ced05 100644 (file)
@@ -36,65 +36,30 @@ OPTIMIZE?=-O6
 ASTCFLAGS+=$(OPTIMIZE)
 endif
 
-define ast_make_o_c
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [CC] $$< -> $$@"
-       $(CMD_PREFIX) $$(CC) -o $$@ -c $$< $$(ASTCFLAGS)
-endef
+%.o: %.c
+       $(ECHO_PREFIX) echo "   [CC] $< -> $@"
+       $(CMD_PREFIX) $(CC) -o $@ -c $< $(ASTCFLAGS)
 
-define ast_make_oo_cc
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [CXX] $$< -> $$@"
-       $(CMD_PREFIX) $$(CXX) -o $$@ -c $$< $$(ASTCFLAGS)
-endef
+%.oo: %.cc
+       $(ECHO_PREFIX) echo "   [CXX] $< -> $@"
+       $(CMD_PREFIX) $(CXX) -o $@ -c $< $(ASTCFLAGS)
 
-define ast_make_c_y
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [BISON] $$< -> $$@"
-       $(CMD_PREFIX) bison -o $$@ -d --name-prefix=ast_yy $$<
-endef
+%.c: %.y
+       $(ECHO_PREFIX) echo "   [BISON] $< -> $@"
+       $(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
 
-define ast_make_c_fl
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [FLEX] $$< -> $$@"
-       $(CMD_PREFIX) flex -o $$@ --full $$<
-endef
+%.c: %.fl
+       $(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
+       $(CMD_PREFIX) flex -o $@ --full $<
 
-define ast_make_so_o
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CC) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$(SOLINK) $$^ $$(LIBS)
-endef
+%.so: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $(SOLINK) $^ $(LIBS)
 
-define ast_make_so_oo
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LDXX] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$(SOLINK) $$^ $$(LIBS)
-endef
+%.soo: %.oo
+       $(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $(SOLINK) $^ $(LIBS)
 
-define ast_make_a_o
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [AR] $$^ -> $$@"
-       $(CMD_PREFIX) $$(AR) cr $$@ $$^
-       $(CMD_PREFIX) $$(RANLIB) $$@
-endef
-
-define ast_make_final
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(CXX) $$(STATIC_BUILD) -o $$@ $$(ASTLDFLAGS) $$^ $$(LIBS)
-endef
-
-define ast_make_final_host
-$(1): $(2)
-       $(ECHO_PREFIX) echo "   [LD] $$^ -> $$@"
-       $(CMD_PREFIX) $$(HOST_CC) $$(STATIC_BUILD) -o $$@ $$(HOST_CFLAGS) $$(HOST_LDFLAGS) $$^ $$(LIBS)
-endef
-
-$(eval $(call ast_make_o_c,%.o,%.c))
-
-$(eval $(call ast_make_oo_cc,%.oo,%.cc))
-
-$(eval $(call ast_make_so_o,%.so,%.o))
-
-$(eval $(call ast_make_final,%,%.o))
+%: %.o
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLDFLAGS) $^ $(LIBS)
index 08de2f7..3a34951 100644 (file)
@@ -23,12 +23,13 @@ include $(ASTTOPDIR)/Makefile.rules
 
 all: $(AGIS)
 
+strcompat.c: ../main/strcompat.c
+       @cp $< $@
+
 eagi-test: eagi-test.o strcompat.o
 
 eagi-sphinx-test: eagi-sphinx-test.o
 
-$(eval $(call ast_make_o_c,strcompat.o,../main/strcompat.c))
-
 install: all
        mkdir -p $(DESTDIR)$(AGI_DIR)
        for x in $(AGIS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(AGI_DIR) ; done
@@ -41,6 +42,7 @@ clean-depend:
 
 clean: clean-depend
        rm -f *.so *.o look eagi-test eagi-sphinx-test
+       rm -f strcompat.c
 
 ifneq ($(wildcard .depend),)
   include .depend
index 85c3d62..b064b84 100644 (file)
@@ -5,7 +5,7 @@
                </member>
                <member name="channels" displayname="Channels" remove_on_change="channels/*.o channels/misdn/*.o">
                </member>
-               <member name="codecs" displayname="Coders/Decoders" remove_on_change="codecs/*.o">
+               <member name="codecs" displayname="Coders/Decoders" remove_on_change="codecs/*.o codecs/gsm/src/*.o codecs/ilbc/*.o codecs/lpc10/*.o codecs/gsm/lib/libgsm.a codecs/lpc10/liblpc10.a codecs/ilbc/libilbc.a">
                </member>
                <member name="formats" displayname="File Formats" remove_on_change="formats/*.o">
                </member>
index 6c10010..3d36793 100644 (file)
@@ -80,7 +80,9 @@ h323/libchanh323.a h323/Makefile.ast:
        $(CMD_PREFIX) exit 1
 endif
 
-$(eval $(call ast_make_final_host,gentone,gentone.c))
+gentone: gentone.c
+       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
+       $(CMD_PREFIX) $(HOST_CC) $(STATIC_BUILD) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $^ $(LIBS)
 gentone: LIBS+=-lm
 
 busy.h: gentone
@@ -91,7 +93,7 @@ ringtone.h: gentone
 
 chan_oss.o: busy.h ringtone.h
 
-$(chan_iax2): iax2-parser.o iax2-provision.o
+$(if $(filter chan_iax2,$(EMBEDDED_MODS)),modules.link,chan_iax2.so): iax2-parser.o iax2-provision.o
 
 chan_alsa.o: busy.h ringtone.h
 
@@ -109,4 +111,4 @@ chan_misdn.o: ASTCFLAGS+=-Imisdn
 
 misdn_config.o: ASTCFLAGS+=-Imisdn 
 
-$(chan_misdn): chan_misdn.o misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o
+$(if $(filter chan_misdn,$(EMBEDDED_MODS)),modules.link,chan_misdn.so): chan_misdn.o misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o
index 8996ad4..c3ab707 100644 (file)
@@ -32,7 +32,7 @@ include $(ASTTOPDIR)/Makefile.moddir_rules
 
 ifneq ($(GSM_INTERNAL),)
 GSM_INCLUDE:=-Igsm/inc
-$(codec_gsm): gsm/lib/libgsm.a
+$(if $(filter codec_gsm,$(EMBEDDED_MODS)),modules.link,codec_gsm.so): gsm/lib/libgsm.a
 endif
 
 clean::
@@ -47,9 +47,9 @@ gsm/lib/libgsm.a:
 $(LIBLPC10):
        @$(MAKE) -C lpc10 all
 
-$(codec_lpc10): $(LIBLPC10)
+$(if $(filter codec_lpc10,$(EMBEDDED_MODS)),modules.link,codec_lpc10.so): $(LIBLPC10)
 
 $(LIBILBC):
        @$(MAKE) -C ilbc all
 
-$(codec_ilbc): $(LIBILBC)
+$(if $(filter codec_ilbc,$(EMBEDDED_MODS)),modules.link,codec_ilbc.so): $(LIBILBC)
index ba3a200..ec2694a 100644 (file)
@@ -347,7 +347,11 @@ $(LIBGSMSO):       $(LIB) $(GSM_OBJECTS)
                ln -fs libgsm.so.1.0.10 lib/libgsm.so.1
                ln -fs libgsm.so.1.0.10 lib/libgsm.so
 
-$(eval $(call ast_make_a_o,$(LIBGSM),$(GSM_OBJECTS)))
+$(LIBGSM): $(GSM_OBJECTS)
+       $(ECHO_PREFIX) echo "   [AR] $^ -> $@"
+       $(CMD_PREFIX) $(AR) cr $@ $^
+       $(CMD_PREFIX) $(RANLIB) $@
+
 
 # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
 
index 1060579..3c4668b 100644 (file)
@@ -11,7 +11,10 @@ include $(ASTTOPDIR)/Makefile.rules
 
 all: $(LIB)
 
-$(eval $(call ast_make_a_o,$(LIB),$(OBJS)))
+$(LIB): $(OBJS)
+       $(ECHO_PREFIX) echo "   [AR] $^ -> $@"
+       $(CMD_PREFIX) $(AR) cr $@ $^
+       $(CMD_PREFIX) $(RANLIB) $@
 
 clean:
        rm -f $(LIB) *.o
index 75b3f85..18b7c0b 100644 (file)
@@ -64,7 +64,10 @@ OBJ=f2clib.o analys.o bsynz.o chanwr.o dcbias.o decode.o \
     placea.o placev.o preemp.o prepro.o random.o rcchk.o \
     synths.o tbdm.o voicin.o vparms.o
 
-$(eval $(call ast_make_a_o,$(LIB),$(OBJ)))
+$(LIB): $(OBJ)
+       $(ECHO_PREFIX) echo "   [AR] $^ -> $@"
+       $(CMD_PREFIX) $(AR) cr $@ $^
+       $(CMD_PREFIX) $(RANLIB) $@
 
 clean:
        rm -f *.o $(LIB)
index 72667e9..c32a38a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 43830 .
+# From configure.ac Revision: 44013 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.60a.
 #
@@ -4905,35 +4905,6 @@ fi
 
 
 
-# http://www.mail-archive.com/bug-make@gnu.org/msg02871.html
-echo 'define A' > testMakefile
-echo '12345: $(1:.idl=.hh) $(1:.idl=S.h) $(1:.idl=C.h) $(1:.idl=SK.cc) $(1:.idl=DynSK.cc)' >> testMakefile
-echo 'endef' >> testMakefile
-echo '$(eval $(call A,01234567890123456789012345678901.idl))' >> testMakefile
-echo '01234567890123456789012345678901.hh:' >> testMakefile
-echo '01234567890123456789012345678901S.h:' >> testMakefile
-echo '01234567890123456789012345678901C.h:' >> testMakefile
-echo '01234567890123456789012345678901SK.cc:' >> testMakefile
-echo '01234567890123456789012345678901DynSK.cc:' >> testMakefile
-$GNU_MAKE -r -f testMakefile 2>&1 > /dev/null
-if test "$?" != "0" ; then
-  rm -f testMakefile
-  { echo "$as_me:$LINENO: ********** ERROR **********" >&5
-echo "$as_me: ********** ERROR **********" >&6;}
-  { echo "$as_me:$LINENO: Your version of GNU Make contains a bug that will cause the Asterisk build" >&5
-echo "$as_me: Your version of GNU Make contains a bug that will cause the Asterisk build" >&6;}
-  { echo "$as_me:$LINENO: system to not function properly.  This bug is known to be fixed in version" >&5
-echo "$as_me: system to not function properly.  This bug is known to be fixed in version" >&6;}
-  { echo "$as_me:$LINENO: 3.81 as well as distributions of 3.80 that contain backported bug fixes.  You" >&5
-echo "$as_me: 3.81 as well as distributions of 3.80 that contain backported bug fixes.  You" >&6;}
-  { echo "$as_me:$LINENO: must update GNU make to build Asterisk." >&5
-echo "$as_me: must update GNU make to build Asterisk." >&6;}
-  { echo "$as_me:$LINENO: ***************************" >&5
-echo "$as_me: ***************************" >&6;}
-  exit 1
-fi
-rm -f testMakefile
-
 # Extract the first word of "grep", so it can be a program name with args.
 set dummy grep; ac_word=$2
 { echo "$as_me:$LINENO: checking for $ac_word" >&5
index c64d37e..598f573 100644 (file)
@@ -126,29 +126,6 @@ AC_PROG_LN_S
 AC_PROG_RANLIB
 AST_CHECK_GNU_MAKE
 
-# http://www.mail-archive.com/bug-make@gnu.org/msg02871.html
-echo 'define A' > testMakefile
-echo '12345: $(1:.idl=.hh) $(1:.idl=S.h) $(1:.idl=C.h) $(1:.idl=SK.cc) $(1:.idl=DynSK.cc)' >> testMakefile
-echo 'endef' >> testMakefile
-echo '$(eval $(call A,01234567890123456789012345678901.idl))' >> testMakefile
-echo '01234567890123456789012345678901.hh:' >> testMakefile
-echo '01234567890123456789012345678901S.h:' >> testMakefile
-echo '01234567890123456789012345678901C.h:' >> testMakefile
-echo '01234567890123456789012345678901SK.cc:' >> testMakefile
-echo '01234567890123456789012345678901DynSK.cc:' >> testMakefile
-$GNU_MAKE -r -f testMakefile 2>&1 > /dev/null
-if test "$?" != "0" ; then
-  rm -f testMakefile
-  AC_MSG_NOTICE(********** ERROR **********)
-  AC_MSG_NOTICE(Your version of GNU Make contains a bug that will cause the Asterisk build)
-  AC_MSG_NOTICE(system to not function properly.  This bug is known to be fixed in version)
-  AC_MSG_NOTICE(3.81 as well as distributions of 3.80 that contain backported bug fixes.  You)
-  AC_MSG_NOTICE(must update GNU make to build Asterisk.)
-  AC_MSG_NOTICE(***************************)
-  exit 1
-fi
-rm -f testMakefile
-
 AC_PATH_PROG([GREP], [grep], :)
 AC_PATH_PROG([AR], [ar], :)
 AC_PATH_PROG([FIND], [find], :)
index 4fb92fc..59ad0e2 100644 (file)
@@ -36,7 +36,10 @@ include $(ASTTOPDIR)/Makefile.rules
 
 all: $(LIBDB) #$(LIBDBSO) $(PROG)
 
-$(eval $(call ast_make_a_o,$(LIBDB),$(OBJS)))
+$(LIBDB): $(OBJS)
+       $(ECHO_PREFIX) echo "   [AR] $^ -> $@"
+       $(CMD_PREFIX) $(AR) cr $@ $^
+       $(CMD_PREFIX) $(RANLIB) $@
 
 $(LIBDBSO): $(SHOBJS)
        $(CC) -Wl,-O1 -Wl,--version-script=libdb.map -Wl,-soname=$(LIBDBSO) -shared -o $@ $^
index 43812f1..0f9c9d1 100644 (file)
@@ -28,13 +28,13 @@ include $(ASTTOPDIR)/Makefile.moddir_rules
 clean::
        rm -f ael/*.o
 
-$(eval $(call ast_make_o_c,ael/aelflex.o,ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h))
-ael/aelflex.o: ASTCFLAGS+=-I.
+ael/ael_lex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
+ael/ael_lex.o: ASTCFLAGS+=-I.
 
-$(eval $(call ast_make_o_c,ael/aelbison.o,ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h))
-ael/aelbison.o: ASTCFLAGS+=-I.
+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): 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)
@@ -45,4 +45,4 @@ ael/ael.tab.c ael/ael.tab.h:
 dundi-parser.o: dundi-parser.h
 dundi-parser.o: ASTCFLAGS+=-I.
 
-$(pbx_dundi): dundi-parser.o
+$(if $(filter pbx_dundi,$(EMBEDDED_MODS)),modules.link,pbx_dundi.so): dundi-parser.o
index 380f022..f2d50eb 100644 (file)
@@ -25,7 +25,7 @@ all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
 
-$(res_snmp): snmp/agent.o
+$(if $(filter res_snmp,$(EMBEDDED_MODS)),modules.link,res_snmp.so): snmp/agent.o
 
 clean::
        rm -f snmp/*.o
index 5e5bdca..88f6530 100644 (file)
 
 .PHONY: clean clean-depend all depend uninstall
 
-UTILS:=astman smsq stereorize streamplayer aelparse muted
+ALL_UTILS:=astman smsq stereorize streamplayer aelparse muted
+UTILS:=$(ALL_UTILS)
+
+include $(ASTTOPDIR)/Makefile.rules
 
 ifeq ($(OSARCH),SunOS)
   LIBS+=-lsocket -lnsl
@@ -32,8 +35,6 @@ ifneq ($(filter pbx_ael,$(MENUSELECT_PBX)),)
   UTILS:=$(filter-out aelparse,$(UTILS))
 endif
 
-include $(ASTTOPDIR)/Makefile.rules
-
 all: $(UTILS)
 
 install:
@@ -44,21 +45,27 @@ install:
        done 
 
 uninstall:
-       for x in $(UTILS); do rm -f $$x $(DESTDIR)$(ASTSBINDIR)/$$x; done
+       for x in $(ALL_UTILS); do rm -f $$x $(DESTDIR)$(ASTSBINDIR)/$$x; done
 
 clean-depend:
        rm -f .depend
 
 clean: clean-depend
-       rm -f *.o $(UTILS) check_expr
+       rm -f *.o $(ALL_UTILS) check_expr
+       rm -f md5.c strcompat.c ast_expr2.c ast_expr2f.c pbx_ael.c
+       rm -f aelparse.c aelbison.c
+
+md5.c: ../main/md5.c
+       @cp $< $@
 
-$(eval $(call ast_make_final,astman,astman.o ../main/md5.o))
+astman: astman.o md5.o
 astman: LIBS+=-lnewt -lslang -ldl
 
-$(eval $(call ast_make_final,stereorize,stereorize.o frame.o))
+stereorize: stereorize.o frame.o
 stereorize: LIBS+=-lm
 
-$(eval $(call ast_make_o_c,strcompat.o,../main/strcompat.c))
+strcompat.c: ../main/strcompat.c
+       @cp $< $@
 
 ../main/ast_expr2.c:
        @echo "   [BISON] ../main/ast_expr2.y -> $@"
@@ -68,25 +75,33 @@ $(eval $(call ast_make_o_c,strcompat.o,../main/strcompat.c))
        @echo "   [FLEX] ../main/ast_expr2.fl -> $@"
        @flex -o $@ --full ../main/ast_expr2.fl
 
-$(eval $(call ast_make_o_c,ast_expr2.o,../main/ast_expr2.c))
+ast_expr2.c: ../main/ast_expr2.c
+       @cp $< $@
 
-$(eval $(call ast_make_o_c,ast_expr2f.o,../main/ast_expr2f.c))
-ast_expr2f.o: ASTCFLAGS+=-DSTANDALONE_AEL
+ast_expr2f.c: ../main/ast_expr2f.c
+       @cp $< $@
 
-$(eval $(call ast_make_final,check_expr,check_expr.c ast_expr2.o ast_expr2f.o))
+ast_expr2f.o: ASTCFLAGS+=-DSTANDALONE_AEL -I../main
 
-$(eval $(call ast_make_o_c,aelflex.o,../pbx/ael/ael_lex.c ../include/asterisk/ael_structs.h ../pbx/ael/ael.tab.h))
-aelflex.o: ASTCFLAGS+=-I../pbx -DSTANDALONE_AEL
+check_expr: check_expr.c ast_expr2.o ast_expr2f.o
 
-$(eval $(call ast_make_o_c,aelbison.o,../pbx/ael/ael.tab.c ../pbx/ael/ael.tab.h ../include/asterisk/ael_structs.h))
+aelbison.c: ../pbx/ael/ael.tab.c
+       @cp $< $@
+aelbison.o: aelbison.c ../pbx/ael/ael.tab.h ../include/asterisk/ael_structs.h
 aelbison.o: ASTCFLAGS+=-I../pbx
 
-$(eval $(call ast_make_o_c,pbx_ael.o,../pbx/pbx_ael.c))
+pbx_ael.c: ../pbx/pbx_ael.c
+       @cp $< $@
 pbx_ael.o: ASTCFLAGS+=-DSTANDALONE_AEL
 
-$(eval $(call ast_make_final,aelparse,aelflex.o aelbison.o pbx_ael.o ael_main.o ast_expr2f.o ast_expr2.o strcompat.o))
+ael_main.o: ael_main.c ../include/asterisk/ael_structs.h
+
+aelparse.c: ../pbx/ael/ael_lex.c
+       @cp $< $@
+aelparse.o: aelparse.c ../include/asterisk/ael_structs.h ../pbx/ael/ael.tab.h
+aelparse.o: ASTCFLAGS+=-I../pbx -DSTANDALONE_AEL
 
-$(eval $(call ast_make_o_c,ael_main.o,ael_main.c ../include/asterisk/ael_structs.h))
+aelparse: aelparse.o aelbison.o pbx_ael.o ael_main.o ast_expr2f.o ast_expr2.o strcompat.o
 
 testexpr2s: ../main/ast_expr2f.c ../main/ast_expr2.c ../main/ast_expr2.h
        $(CC) -g -c -I../include -DSTANDALONE_AEL ../main/ast_expr2f.c -o ast_expr2f.o