From a71a541edad6963fcbaa25f3999e4851d2a0be20 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Tue, 25 Sep 2012 17:02:21 +0000
Subject: [PATCH] Make rebuild GSM, ilbc, or lpc10 codecs if the respective
 sources change. ........

Merged revisions 373618 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 373633 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 373635 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@373636 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 codecs/Makefile | 66 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 47 insertions(+), 19 deletions(-)

diff --git a/codecs/Makefile b/codecs/Makefile
index 309d56667a..51f05ac362 100644
--- a/codecs/Makefile
+++ b/codecs/Makefile
@@ -17,48 +17,75 @@ MODULE_PREFIX=codec
 MENUSELECT_CATEGORY=CODECS
 MENUSELECT_DESCRIPTION=Codec Translators
 
-LIBILBC:=ilbc/libilbc.a
-LIBLPC10:=lpc10/liblpc10.a
+SUB_GSM := gsm
+
+SUB_ILBC := ilbc
+LIBILBC := $(SUB_ILBC)/libilbc.a
+
+SUB_LPC10 := lpc10
+LIBLPC10 := $(SUB_LPC10)/liblpc10.a
+
+SUB_DIRS := \
+	$(SUB_GSM) \
+	$(SUB_ILBC) \
+	$(SUB_LPC10) \
 
 all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
 
+
 ifneq ($(GSM_INTERNAL),no)
-GSM_INCLUDE:=-Igsm/inc
-$(if $(filter codec_gsm,$(EMBEDDED_MODS)),modules.link,codec_gsm.so): gsm/lib/libgsm.a
-endif
+GSM_INCLUDE := -I$(SUB_GSM)/inc
 
-ifneq ($(ILBC_INTERNAL),no)
-$(if $(filter codec_ilbc,$(EMBEDDED_MODS)),modules.link,codec_ilbc.so): $(LIBILBC)
-else
-ILBC_INCLUDE+=-DILBC_WEBRTC
+$(if $(filter codec_gsm,$(EMBEDDED_MODS)),modules.link,codec_gsm.so): $(SUB_GSM)/lib/libgsm.a
 endif
 
+# Don't run the implicit rules for this target.
+$(SUB_GSM)/lib/libgsm.a: $(SUB_GSM) ;
+
+$(SUB_GSM):
+	@mkdir -p $(SUB_GSM)/lib
+	@$(MAKE) -C $(SUB_GSM) lib/libgsm.a
+
 
 clean::
-	$(MAKE) -C gsm clean
-	$(MAKE) -C lpc10 clean
-	$(MAKE) -C ilbc clean
+	for dir in $(SUB_DIRS); do \
+		$(MAKE) -C $$dir clean; \
+	done
 	rm -f g722/*.[oa]
 	rm -f speex/*.[oa]
 
-gsm/lib/libgsm.a:
-	@mkdir -p gsm/lib
-	@$(MAKE) -C gsm lib/libgsm.a
+.PHONY: $(SUB_DIRS)
 
-$(LIBLPC10):
-	@$(MAKE) -C lpc10 all
 
 $(if $(filter codec_lpc10,$(EMBEDDED_MODS)),modules.link,codec_lpc10.so): $(LIBLPC10)
 
-$(LIBILBC):
-	@$(MAKE) -C ilbc all _ASTCFLAGS="$(filter-out -Wmissing-prototypes -Wmissing-declarations -Wshadow,$(_ASTCFLAGS)) $(AST_NO_STRICT_OVERFLOW)"
+# Don't run the implicit rules for this target.
+$(LIBLPC10): $(SUB_LPC10) ;
+
+$(SUB_LPC10):
+	@$(MAKE) -C $(SUB_LPC10) all
+
+
+ifneq ($(ILBC_INTERNAL),no)
+$(if $(filter codec_ilbc,$(EMBEDDED_MODS)),modules.link,codec_ilbc.so): $(LIBILBC)
+else
+ILBC_INCLUDE += -DILBC_WEBRTC
+endif
+
+# Don't run the implicit rules for this target.
+$(LIBILBC): $(SUB_ILBC) ;
+
+$(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)
 
+
 ifeq ($(BUILD_CPU),x86_64)
 SPEEX_RESAMPLE_CFLAGS:=-fPIC
 else
@@ -66,4 +93,5 @@ 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)
-- 
GitLab