From 9e5b6c43b13a561b09908d2a57edb6c96e4fedaf Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Tue, 12 Feb 2013 14:00:13 -0600 Subject: Add support for building and using shared libraries. --- pjsip-apps/build/Makefile | 30 +++++++++++++++++------------- pjsip-apps/build/Samples.mak | 34 +++++++++++----------------------- 2 files changed, 28 insertions(+), 36 deletions(-) (limited to 'pjsip-apps') diff --git a/pjsip-apps/build/Makefile b/pjsip-apps/build/Makefile index b5f4c8a..f76d433 100644 --- a/pjsip-apps/build/Makefile +++ b/pjsip-apps/build/Makefile @@ -1,6 +1,8 @@ include ../../build.mak include $(PJDIR)/build/common.mak +export LIBDIR := ../lib +export BINDIR := ../bin RULES_MAK := $(PJDIR)/build/rules.mak @@ -27,6 +29,8 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ $(CC_INC)../../pjmedia/include export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ $(HOST_CXXFLAGS) $(CXXFLAGS) +export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ + $(APP_LDFLAGS) $(APP_LDLIBS) $(LDFLAGS) ############################################################################### # Defines for building PJSUA @@ -35,8 +39,8 @@ export PJSUA_SRCDIR = ../src/pjsua export PJSUA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ main.o pjsua_app.o export PJSUA_CFLAGS += $(_CFLAGS) -export PJSUA_LDFLAGS += $(APP_LDFLAGS) $(APP_LDLIBS) $(LDFLAGS) -export PJSUA_EXE:=../bin/pjsua-$(TARGET_NAME)$(HOST_EXE) +export PJSUA_LDFLAGS += $(_LDFLAGS) +export PJSUA_EXE:=pjsua-$(TARGET_NAME)$(HOST_EXE) ############################################################################### @@ -46,8 +50,8 @@ export PJSYSTEST_SRCDIR = ../src/pjsystest export PJSYSTEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ systest.o main_console.o export PJSYSTEST_CFLAGS += $(_CFLAGS) -export PJSYSTEST_LDFLAGS += $(APP_LDFLAGS) $(APP_LDLIBS) $(LDFLAGS) -export PJSYSTEST_EXE:=../bin/pjsystest-$(TARGET_NAME)$(HOST_EXE) +export PJSYSTEST_LDFLAGS += $(_LDFLAGS) +export PJSYSTEST_EXE:=pjsystest-$(TARGET_NAME)$(HOST_EXE) export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT @@ -55,7 +59,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT # Main entry # # -TARGETS := pjsua pjsystest samples +TARGETS := $(BINDIR)/$(PJSUA_EXE) $(BINDIR)/$(PJSYSTEST_EXE) samples all: $(TARGETS) @@ -64,32 +68,32 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend clean realclean distclean +.PHONY: all dep depend clean realclean distclean .PHONY: $(TARGETS) .PHONY: $(PJSUA_EXE) $(PJSYSTEST_EXE) pjsua: $(PJSUA_EXE) $(PJSUA_EXE): - $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(PJSUA_EXE) + $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(subst /,$(HOST_PSEP),$(BINDIR)/$@) pjsystest: $(PJSYSTEST_EXE) $(PJSYSTEST_EXE): - $(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest $(PJSYSTEST_EXE) + $(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest $(subst /,$(HOST_PSEP),$(BINDIR)/$@) samples: $(MAKE) -f Samples.mak -.PHONY: ../lib/pjsua.ko -../lib/pjsua.ko: - $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $@ +.PHONY: pjsua.ko +pjsua.ko: + $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) clean depend realclean: $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $@ $(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest $@ $(MAKE) -f Samples.mak $@ @if test "$@" = "depend"; then \ - echo '$(PJSUA_EXE): $(APP_LIB_FILES)' >> .pjsua-$(TARGET_NAME).depend; \ - echo '$(PJSYSTEST_EXE): $(APP_LIB_FILES)' >> .pjsystest-$(TARGET_NAME).depend; \ + echo '$(BINDIR)/$(PJSUA_EXE): $(APP_LIB_FILES)' >> .pjsua-$(TARGET_NAME).depend; \ + echo '$(BINDIR)/$(PJSYSTEST_EXE): $(APP_LIB_FILES)' >> .pjsystest-$(TARGET_NAME).depend; \ fi diff --git a/pjsip-apps/build/Samples.mak b/pjsip-apps/build/Samples.mak index e4aca92..658db4d 100644 --- a/pjsip-apps/build/Samples.mak +++ b/pjsip-apps/build/Samples.mak @@ -1,6 +1,8 @@ - +include ../../build.mak +include ../../version.mak include ../../build/common.mak +RULES_MAK := $(PJDIR)/build/rules.mak ############################################################################### # Gather all flags. @@ -16,7 +18,6 @@ BINDIR := ../bin/samples/$(TARGET_NAME) SAMPLES := auddemo \ aviplay \ aectest \ - aviplay \ confsample \ encdec \ httpdemo \ @@ -44,35 +45,22 @@ SAMPLES := auddemo \ tonegen \ vid_streamutil -EXES := $(foreach file, $(SAMPLES), $(BINDIR)/$(file)$(HOST_EXE)) - -all: $(BINDIR) $(OBJDIR) $(EXES) - -$(BINDIR)/%$(HOST_EXE): $(OBJDIR)/%$(OBJEXT) $(PJ_LIB_FILES) - $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$@) \ - $(subst /,$(HOST_PSEP),$<) \ - $(_LDFLAGS) +EXES := $(foreach file, $(SAMPLES), $(file)$(HOST_EXE)) -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c - $(CC) $(_CFLAGS) \ - $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \ - $(subst /,$(HOST_PSEP),$<) +.PHONY: $(EXES) -$(OBJDIR): - $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR)) +all: $(EXES) -$(BINDIR): - $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR)) +$(EXES): + $(MAKE) --no-print-directory -f $(RULES_MAK) SAMPLE_SRCDIR=$(SRCDIR) SAMPLE_OBJS=$@.o SAMPLE_LDFLAGS="$(_LDFLAGS)" SAMPLE_EXE=$@ APP=SAMPLE app=sample $(subst /,$(HOST_PSEP),$(BINDIR)/$@) depend: clean: - $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR)) - $(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR)) + $(MAKE) -f $(RULES_MAK) APP=SAMPLE app=sample $@ $(subst @@,$(EXES),$(HOST_RM)) - rm -rf $(BINDIR) + $(subst @@,$(BINDIR),$(HOST_RMDIR)) distclean realclean: clean -# $(subst @@,$(subst /,$(HOST_PSEP),$(EXES)) $(subst /,$(HOST_PSEP),$(EXES)),$(HOST_RM)) -# $(subst @@,$(DEP_FILE),$(HOST_RM)) + $(MAKE) -f $(RULES_MAK) APP=SAMPLE app=sample $@ -- cgit v1.2.3