Ignore:
Timestamp:
Nov 23, 2013 7:13:40 AM (10 years ago)
Author:
bennylp
Message:

Fixed #1713: Enable building the libraries as shared libraries/DLLs for GNU targets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/build/Makefile

    r4637 r4656  
    88include $(PJDIR)/build/common.mak 
    99 
     10export LIBDIR := ../lib 
     11export BINDIR := ../bin 
     12 
    1013RULES_MAK := $(PJDIR)/build/rules.mak 
    1114 
    1215PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) 
    1316PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) 
     17PJNATH_LIB:=../../pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT) 
    1418PJMEDIA_LIB:=../../pjmedia/lib/libpjmedia-$(TARGET_NAME)$(LIBEXT) 
    15 PJMEDIA_CODEC_LIB:=../../pjmedia/lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT) 
    16  
    17 export PJSIP_LIB:=../lib/libpjsip-$(TARGET_NAME)$(LIBEXT) 
    18 export PJSIP_UA_LIB:=../lib/libpjsip-ua-$(TARGET_NAME)$(LIBEXT) 
    19 export PJSIP_SIMPLE_LIB:=../lib/libpjsip-simple-$(TARGET_NAME)$(LIBEXT) 
    20 export PJSUA_LIB_LIB=../lib/libpjsua-$(TARGET_NAME)$(LIBEXT) 
    21  
     19 
     20export PJSIP_LIB:=libpjsip-$(TARGET_NAME)$(LIBEXT) 
     21export PJSIP_UA_LIB:=libpjsip-ua-$(TARGET_NAME)$(LIBEXT) 
     22export PJSIP_SIMPLE_LIB:=libpjsip-simple-$(TARGET_NAME)$(LIBEXT) 
     23export PJSUA_LIB_LIB:=libpjsua-$(TARGET_NAME)$(LIBEXT) 
     24 
     25ifeq ($(PJ_SHARED_LIBRARIES),) 
     26else 
     27export PJSIP_SONAME := libpjsip.$(SHLIB_SUFFIX) 
     28export PJSIP_SHLIB := $(PJSIP_SONAME).$(PJ_VERSION_MAJOR) 
     29export PJSIP_UA_SONAME := libpjsip-ua.$(SHLIB_SUFFIX) 
     30export PJSIP_UA_SHLIB := $(PJSIP_UA_SONAME).$(PJ_VERSION_MAJOR) 
     31export PJSIP_SIMPLE_SONAME := libpjsip-simple.$(SHLIB_SUFFIX) 
     32export PJSIP_SIMPLE_SHLIB := $(PJSIP_SIMPLE_SONAME).$(PJ_VERSION_MAJOR) 
     33export PJSUA_LIB_SONAME := libpjsua.$(SHLIB_SUFFIX) 
     34export PJSUA_LIB_SHLIB := $(PJSUA_LIB_SONAME).$(PJ_VERSION_MAJOR) 
     35endif 
    2236 
    2337############################################################################### 
     
    3246export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ 
    3347                   $(HOST_CXXFLAGS) $(CXXFLAGS) 
     48export _LDFLAGS := $(APP_THIRD_PARTY_LIBS) \ 
     49                   $(APP_THIRD_PARTY_EXT) \ 
     50                   $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ 
     51                   $(APP_LDFLAGS) $(LDFLAGS)  
    3452 
    3553############################################################################### 
     
    5068export PJSIP_CFLAGS += $(_CFLAGS) 
    5169export PJSIP_CXXFLAGS += $(_CXXFLAGS) 
     70export PJSIP_LDFLAGS += $(PJLIB_UTIL_LDLIB) \ 
     71                        $(PJLIB_LDLIB) \ 
     72                        $(_LDFLAGS) 
    5273 
    5374############################################################################### 
     
    6081export PJSIP_UA_CFLAGS += $(_CFLAGS) 
    6182export PJSIP_UA_CXXFLAGS += $(_CXXFLAGS) 
     83export PJSIP_UA_LDFLAGS += $(PJSIP_SIMPLE_LDLIB) \ 
     84                           $(PJSIP_LDLIB) \ 
     85                           $(PJMEDIA_LDLIB) \ 
     86                           $(PJLIB_UTIL_LDLIB) \ 
     87                           $(PJLIB_LDLIB) \ 
     88                           $(_LDFLAGS) 
    6289 
    6390 
     
    7299export PJSIP_SIMPLE_CFLAGS += $(_CFLAGS) 
    73100export PJSIP_SIMPLE_CXXFLAGS += $(_CXXFLAGS) 
     101export PJSIP_SIMPLE_LDFLAGS += $(PJSIP_LDLIB) \ 
     102                               $(PJLIB_UTIL_LDLIB) \ 
     103                               $(PJLIB_LDLIB) \ 
     104                               $(_LDFLAGS) 
    74105 
    75106 
     
    84115export PJSUA_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) 
    85116export PJSUA_LIB_CXXFLAGS += $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS) 
     117export PJSUA_LIB_LDFLAGS += $(PJSIP_UA_LDLIB) \ 
     118                            $(PJSIP_SIMPLE_LDLIB) \ 
     119                            $(PJSIP_LDLIB) \ 
     120                            $(PJMEDIA_AUDIODEV_LDLIB) \ 
     121                            $(PJMEDIA_VIDEODEV_LDLIB) \ 
     122                            $(PJMEDIA_CODEC_LDLIB) \ 
     123                            $(PJMEDIA_LDLIB) \ 
     124                            $(PJNATH_LDLIB) \ 
     125                            $(PJLIB_UTIL_LDLIB) \ 
     126                            $(PJLIB_LDLIB) \ 
     127                            $(_LDFLAGS) 
    86128 
    87129 
     
    101143export TEST_CFLAGS += $(_CFLAGS) 
    102144export TEST_CXXFLAGS += $(_CXXFLAGS) 
    103 export TEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS) 
    104 export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE) 
     145export TEST_LDFLAGS += $(PJSIP_LDLIB) \ 
     146                       $(PJSIP_UA_LDLIB) \ 
     147                       $(PJSIP_SIMPLE_LDLIB) \ 
     148                       $(PJSUA_LDLIB) \ 
     149                       $(PJMEDIA_CODEC_LDLIB) \ 
     150                       $(PJMEDIA_VIDEODEV_LDLIB) \ 
     151                       $(PJMEDIA_LDLIB) \ 
     152                       $(PJMEDIA_AUDIODEV_LDLIB) \ 
     153                       $(PJLIB_LDLIB) \ 
     154                       $(PJLIB_UTIL_LDLIB) \ 
     155                       $(PJNATH_LDLIB) \ 
     156                       $(_LDFLAGS) 
     157export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE) 
    105158 
    106159         
     
    110163# 
    111164# 
    112 TARGETS := pjsip pjsip-ua pjsip-simple pjsua-lib pjsip-test 
     165TARGETS := $(PJSIP_LIB) $(PJSIP_SONAME) \ 
     166           $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) \ 
     167           $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) \ 
     168           $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) \ 
     169           $(TEST_EXE) 
    113170 
    114171all: $(TARGETS) 
     
    128185distclean: realclean 
    129186 
    130 .PHONY: dep depend clean realclean distclean 
     187.PHONY: all dep depend clean realclean distclean 
    131188.PHONY: $(TARGETS) 
    132 .PHONY: $(PJSIP_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) $(PJSUA_LIB_LIB) $(TEST_EXE) 
     189.PHONY: $(PJSIP_LIB) $(PJSIP_SONAME) 
     190.PHONY: $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) 
     191.PHONY: $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) 
     192.PHONY: $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) 
     193.PHONY: $(TEST_EXE) 
    133194 
    134195pjsip: $(PJSIP_LIB) 
    135 $(PJSIP_LIB): 
    136         $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(PJSIP_LIB) 
     196$(PJSIP_SONAME): $(PJSIP_LIB) 
     197$(PJSIP_LIB) $(PJSIP_SONAME): 
     198        $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
    137199 
    138200pjsip-ua: $(PJSIP_UA_LIB) 
    139 $(PJSIP_UA_LIB): 
    140         $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(PJSIP_UA_LIB) 
     201$(PJSIP_UA_SONAME): $(PJSIP_UA_LIB) 
     202$(PJSIP_UA_LIB) $(PJSIP_UA_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) 
     203        $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
    141204 
    142205pjsip-simple: $(PJSIP_SIMPLE_LIB) 
    143 $(PJSIP_SIMPLE_LIB): 
    144         $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(PJSIP_SIMPLE_LIB) 
     206$(PJSIP_SIMPLE_SONAME): $(PJSIP_SIMPLE_LIB) 
     207$(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) 
     208        $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
    145209 
    146210pjsua-lib: $(PJSUA_LIB_LIB) 
    147 $(PJSUA_LIB_LIB):  
    148         $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(PJSUA_LIB_LIB) 
     211$(PJSUA_LIB_SONAME): $(PJSUA_LIB_LIB) 
     212$(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) 
     213        $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
    149214 
    150215pjsip-test: $(TEST_EXE) 
    151 $(TEST_EXE): $(PJSUA_LIB_LIB) $(PJSIP_SIMPLE_LIB) $(PJSIP_UA_LIB) $(PJSIP_LIB) 
    152         $(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(TEST_EXE) 
    153  
    154 .PHONY: ../lib/pjsip.ko 
    155 ../lib/pjsip.ko: 
    156         echo Making $@ 
    157         $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@ 
    158  
    159 .PHONY: ../lib/pjsip-ua.ko 
    160 ../lib/pjsip-ua.ko: 
    161         echo Making $@ 
    162         $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $@ 
    163  
    164 .PHONY: ../lib/pjsip-simple.ko 
    165 ../lib/pjsip-simple.ko: 
    166         echo Making $@ 
    167         $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@ 
    168  
    169 .PHONY: ../lib/pjsua-lib.ko 
    170 ../lib/pjsua-lib.ko: 
    171         echo Making $@ 
    172         $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@ 
     216$(TEST_EXE): $(PJSIP_LIB) $(PJSIP_SONAME) 
     217$(TEST_EXE): $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) 
     218$(TEST_EXE): $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) 
     219$(TEST_EXE): $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) 
     220$(TEST_EXE): 
     221        $(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@) 
     222 
     223.PHONY: pjsip.ko 
     224pjsip.ko: 
     225        echo Making $@ 
     226        $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
     227 
     228.PHONY: pjsip-ua.ko 
     229pjsip-ua.ko: 
     230        echo Making $@ 
     231        $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
     232 
     233.PHONY: pjsip-simple.ko 
     234pjsip-simple.ko: 
     235        echo Making $@ 
     236        $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
     237 
     238.PHONY: pjsua-lib.ko 
     239pjsua-lib.ko: 
     240        echo Making $@ 
     241        $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@) 
    173242 
    174243clean: 
     
    185254        $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@ 
    186255        $(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $@ 
    187         echo '$(TEST_EXE): $(PJMEDIA_LIB) $(PJSUA_LIB_LIB) $(PJSIP_SIMPLE_LIB) $(PJSIP_UA_LIB) $(PJSIP_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjsip-test-$(TARGET_NAME).depend 
     256        echo '$(BINDIR)/$(TEST_EXE): $(PJMEDIA_LIB) $(LIBDIR)/$(PJSUA_LIB_LIB) $(LIBDIR)/$(PJSIP_SIMPLE_LIB) $(LIBDIR)/$(PJSIP_UA_LIB) $(LIBDIR)/$(PJSIP_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjsip-test-$(TARGET_NAME).depend 
    188257 
    189258realclean: 
Note: See TracChangeset for help on using the changeset viewer.