From 74ce69c77a8ed993870e6cc22582a1dea8e918e6 Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Wed, 30 Jan 2013 15:23:42 -0600 Subject: Add proper dependency checking, so that parallel builds work. This also lets you build individual library files, rather than aliases. --- pjlib-util/build/Makefile | 10 +++++++--- pjlib/build/Makefile | 12 ++++++++---- pjmedia/build/Makefile | 24 +++++++++++++++--------- pjnath/build/Makefile | 18 +++++++++++------- pjsip-apps/build/Makefile | 12 +++++++----- pjsip/build/Makefile | 21 +++++++++++++-------- 6 files changed, 61 insertions(+), 36 deletions(-) diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile index d2ad65a..6c37979 100644 --- a/pjlib-util/build/Makefile +++ b/pjlib-util/build/Makefile @@ -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 +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 diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile index a36f5f4..272206d 100644 --- a/pjlib/build/Makefile +++ b/pjlib/build/Makefile @@ -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 + +pjlib-test: $(TEST_EXE) +$(TEST_EXE): $(PJLIB_LIB) $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE) .PHONY: ../lib/pjlib.ko diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 026d89c..7c362c2 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -156,26 +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_LIB): pjmedia - -pjmedia-test: $(PJMEDIA_LIB) pjmedia +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 diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile index 32b0b50..8937dfe 100644 --- a/pjnath/build/Makefile +++ b/pjnath/build/Makefile @@ -92,20 +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_LIB): pjnath - -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 diff --git a/pjsip-apps/build/Makefile b/pjsip-apps/build/Makefile index 146e841..b5f4c8a 100644 --- a/pjsip-apps/build/Makefile +++ b/pjsip-apps/build/Makefile @@ -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: diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile index 0f8fd13..41e91a1 100644 --- a/pjsip/build/Makefile +++ b/pjsip/build/Makefile @@ -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 +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 -- cgit v1.2.3