Add support for parallel builds of pjproject.

Also adds proper dependency checking, and direct .a file targets.  We don't
take advantage of this currently, but we will soon.

(issue ASTERISK-20815)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@380673 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jason Parker
2013-01-31 19:03:03 +00:00
parent ff0d016390
commit d865240168
6 changed files with 61 additions and 32 deletions

View File

@@ -69,12 +69,16 @@ doc:
dep: depend
distclean: realclean
.PHONY: dep depend pjlib pjlib-test clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJLIB_UTIL_LIB) $(UTIL_TEST_EXE)
pjlib-util:
pjlib-util: $(PJLIB_UTIL_LIB)
$(PJLIB_UTIL_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(PJLIB_UTIL_LIB)
pjlib-util-test:
pjlib-util-test: $(UTIL_TEST_EXE)
$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB)
$(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(UTIL_TEST_EXE)
.PHONY: ../lib/pjlib-util.ko

View File

@@ -77,17 +77,21 @@ depend: ../include/pj/config_site.h
echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(TARGET_NAME).depend
.PHONY: dep depend pjlib pjlib-test clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJLIB_LIB) $(TEST_EXE)
dep: depend
pjlib: ../include/pj/config_site.h
pjlib: $(PJLIB_LIB)
$(PJLIB_LIB): ../include/pj/config_site.h
$(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
../include/pj/config_site.h:
touch ../include/pj/config_site.h
pjlib-test:
pjlib-test: $(TEST_EXE)
$(TEST_EXE): $(PJLIB_LIB)
$(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
.PHONY: ../lib/pjlib.ko

View File

@@ -156,24 +156,32 @@ doc:
dep: depend
distclean: realclean
.PHONY: dep depend pjmedia pjmedia-codec pjmedia-videodev pjmedia-audiodev pjmedia-test clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB) $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_AUDIODEV_LIB) $(PJSDP_LIB) $(PJMEDIA_TEST_EXE)
pjmedia:
pjmedia: $(PJMEDIA_LIB)
$(PJMEDIA_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(PJMEDIA_LIB)
pjmedia-codec:
pjmedia-codec: $(PJMEDIA_CODEC_LIB)
$(PJMEDIA_CODEC_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(PJMEDIA_CODEC_LIB)
pjmedia-videodev:
pjmedia-videodev: $(PJMEDIA_VIDEODEV_LIB)
$(PJMEDIA_VIDEODEV_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $(PJMEDIA_VIDEODEV_LIB)
pjmedia-audiodev:
pjmedia-audiodev: $(PJMEDIA_AUDIODEV_LIB)
$(PJMEDIA_AUDIODEV_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $(PJMEDIA_AUDIODEV_LIB)
pjsdp:
pjsdp: $(PJSDP_LIB)
$(PJSDP_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB)
pjmedia-test: $(PJMEDIA_LIB)
pjmedia-test: $(PJMEDIA_TEST_EXE)
$(PJMEDIA_TEST_EXE): $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB)
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(PJMEDIA_TEST_EXE)
.PHONY: ../lib/pjmedia.ko

View File

@@ -92,18 +92,24 @@ doc:
dep: depend
distclean: realclean
.PHONY: dep depend pjlib pjlib-test clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJNATH_LIB) $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE)
pjnath:
pjnath: $(PJNATH_LIB)
$(PJNATH_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(PJNATH_LIB)
pjnath-test: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB)
pjnath-test: $(PJNATH_TEST_EXE)
$(PJNATH_TEST_EXE): $(PJNATH_LIB)
$(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(PJNATH_TEST_EXE)
pjturn-client: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB)
pjturn-client: $(PJTURN_CLIENT_EXE)
$(PJTURN_CLIENT_EXE): $(PJNATH_LIB)
$(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(PJTURN_CLIENT_EXE)
pjturn-srv: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB)
pjturn-srv: $(PJTURN_SRV_EXE)
$(PJTURN_SRV_EXE): $(PJNATH_LIB)
$(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(PJTURN_SRV_EXE)
.PHONY: ../lib/pjnath.ko

View File

@@ -57,8 +57,6 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
TARGETS := pjsua pjsystest samples
.PHONY: $(TARGETS)
all: $(TARGETS)
doc:
@@ -66,12 +64,16 @@ doc:
dep: depend
distclean: realclean
.PHONY: dep depend pjsua clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJSUA_EXE) $(PJSYSTEST_EXE)
pjsua:
pjsua: $(PJSUA_EXE)
$(PJSUA_EXE):
$(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(PJSUA_EXE)
pjsystest:
pjsystest: $(PJSYSTEST_EXE)
$(PJSYSTEST_EXE):
$(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest $(PJSYSTEST_EXE)
samples:

View File

@@ -106,8 +106,6 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
TARGETS := pjsip pjsip-ua pjsip-simple pjsua-lib pjsip-test
.PHONY: $(TARGETS)
all: $(TARGETS)
doc:
@@ -124,21 +122,28 @@ doc:
dep: depend
distclean: realclean
.PHONY: dep depend pjsip pjsip-ua pjsua-lib clean realclean distclean
.PHONY: dep depend clean realclean distclean
.PHONY: $(TARGETS)
.PHONY: $(PJSIP_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) $(PJSUA_LIB_LIB) $(TEST_EXE)
pjsip:
pjsip: $(PJSIP_LIB)
$(PJSIP_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(PJSIP_LIB)
pjsip-ua:
pjsip-ua: $(PJSIP_UA_LIB)
$(PJSIP_UA_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(PJSIP_UA_LIB)
pjsip-simple:
pjsip-simple: $(PJSIP_SIMPLE_LIB)
$(PJSIP_SIMPLE_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(PJSIP_SIMPLE_LIB)
pjsua-lib:
pjsua-lib: $(PJSUA_LIB_LIB)
$(PJSUA_LIB_LIB):
$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(PJSUA_LIB_LIB)
pjsip-test:
pjsip-test: $(TEST_EXE)
$(TEST_EXE): $(PJSUA_LIB_LIB) $(PJSIP_SIMPLE_LIB) $(PJSIP_UA_LIB) $(PJSIP_LIB)
$(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(TEST_EXE)
.PHONY: ../lib/pjsip.ko