From ddd4714f1e14b13221d981a0fe76481ead36c0b8 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 15 Jan 2010 15:06:20 +0000 Subject: [PATCH] Ticket #694: work on 'make install': - adhere to --prefix - header and lib files installation - pkgconfig creation - also added version.mak to fill in with the correct version git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@3063 74dad513-b988-da41-8d7b-12977e46ad98 --- Makefile | 18 +++++++++++------- build.mak.in | 24 ++++++++++++++++++------ configure-legacy | 2 +- libpj.pc.in => libpjproject.pc.in | 9 +++++---- pjmedia/build/Makefile | 1 + pjsip/include/pjsua.h | 1 + version.mak | 1 + 7 files changed, 38 insertions(+), 18 deletions(-) rename libpj.pc.in => libpjproject.pc.in (51%) create mode 100644 pjsip/include/pjsua.h create mode 100644 version.mak diff --git a/Makefile b/Makefile index f8ed4b0de..f163403a3 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \ - pjsip/lib/libpjsip-$(TARGET_NAME).a \ + pjsip/lib/libpjsip-$(TARGET_NAME).a \ pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \ pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \ pjsip/lib/libpjsua-$(TARGET_NAME).a @@ -90,14 +90,18 @@ pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME) pjsua-test: cd tests/pjsua && python runall.py -prefix = /usr/local +prefix = $(ac_prefix) +include version.mak + install: mkdir -p $(DESTDIR)$(prefix)/lib - cp -L $$(find . -name '*.a') $(DESTDIR)$(prefix)/lib + cp -f $(APP_LIB_FILES) $(DESTDIR)$(prefix)/lib/ mkdir -p $(DESTDIR)$(prefix)/include - cp -RL $$(find . -name include) $(DESTDIR)$(prefix) - cd $(DESTDIR)$(prefix)/lib && for i in $$(find . -name 'libpj*a'); do\ - ln -s $$i $$(echo $$i | sed -e "s/-$(TARGET_NAME)//");\ + for d in pjlib pjlib-util pjnath pjmedia pjsip; do \ + cp -RLf $$d/include/* $(DESTDIR)$(prefix)/include/; \ done mkdir -p $(DESTDIR)$(prefix)/lib/pkgconfig - sed -e "s!@PREFIX@!$(DESTDIR)$(prefix)!" libpj.pc.in > $(DESTDIR)/$(prefix)/lib/pkgconfig/libpj.pc + sed -e "s!@PREFIX@!$(DESTDIR)$(prefix)!" libpjproject.pc.in | \ + sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \ + sed -e "s!@PJ_LDLIBS@!$(PJ_LDLIBS)!" | \ + sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(prefix)/lib/pkgconfig/libpjproject.pc diff --git a/build.mak.in b/build.mak.in index c0c608057..bcba20134 100644 --- a/build.mak.in +++ b/build.mak.in @@ -7,17 +7,19 @@ export TARGET_NAME := @target@ export CROSS_COMPILE := @ac_cross_compile@ export LINUX_POLL := @ac_linux_poll@ +export ac_prefix := @prefix@ + LIB_SUFFIX = $(TARGET_NAME).a # Determine which party libraries to use export APP_THIRD_PARTY_LIBS := -lresample-$(TARGET_NAME) -lmilenage-$(TARGET_NAME) -lsrtp-$(TARGET_NAME) +export APP_THIRD_PARTY_EXT := export APP_THIRD_PARTY_LIB_FILES = $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX) $(PJ_DIR)/third_party/lib/libmilenage-$(LIB_SUFFIX) $(PJ_DIR)/third_party/lib/libsrtp-$(LIB_SUFFIX) ifneq (@ac_no_gsm_codec@,1) ifeq (@ac_external_gsm@,1) # External GSM library -APP_THIRD_PARTY_LIBS += -lgsm -APP_THIRD_PARTY_LIB_FILES += +APP_THIRD_PARTY_EXT += -lgsm else APP_THIRD_PARTY_LIBS += -lgsmcodec-$(TARGET_NAME) APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec-$(LIB_SUFFIX) @@ -26,8 +28,7 @@ endif ifneq (@ac_no_speex_codec@,1) ifeq (@ac_external_speex@,1) -APP_THIRD_PARTY_LIBS += -lspeex -lspeexdsp -APP_THIRD_PARTY_LIB_FILES += +APP_THIRD_PARTY_EXT += -lspeex -lspeexdsp else APP_THIRD_PARTY_LIBS += -lspeex-$(TARGET_NAME) APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex-$(LIB_SUFFIX) @@ -46,8 +47,8 @@ endif ifneq ($(findstring pa,@ac_pjmedia_snd@),) ifeq (@ac_external_pa@,1) -APP_THIRD_PARTY_LIBS += -lportaudio -APP_THIRD_PARTY_LIB_FILES += +# External PA +APP_THIRD_PARTY_EXT += -lportaudio else APP_THIRD_PARTY_LIBS += -lportaudio-$(TARGET_NAME) APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libportaudio-$(LIB_SUFFIX) @@ -85,6 +86,7 @@ export APP_LDLIBS := -lpjsua-$(TARGET_NAME)\ -lpjnath-$(TARGET_NAME)\ -lpjlib-util-$(TARGET_NAME)\ $(APP_THIRD_PARTY_LIBS)\ + $(APP_THIRD_PARTY_EXT)\ -lpj-$(TARGET_NAME)\ @LIBS@ export APP_LIB_FILES = $(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \ @@ -99,6 +101,8 @@ export APP_LIB_FILES = $(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \ $(APP_THIRD_PARTY_LIB_FILES) \ $(PJ_DIR)/pjlib/lib/libpj-$(LIB_SUFFIX) +# Here are the variabels to use if application is using the library +# from within the source distribution export PJ_DIR := $(PJDIR) export PJ_CC := $(APP_CC) export PJ_CFLAGS := $(APP_CFLAGS) @@ -107,3 +111,11 @@ export PJ_LDFLAGS := $(APP_LDFLAGS) export PJ_LDLIBS := $(APP_LDLIBS) export PJ_LIB_FILES := $(APP_LIB_FILES) +# And here are the variables to use if application is using the +# library from the install location (i.e. --prefix) +export PJ_INSTALL_DIR := @prefix@ +export PJ_INSTALL_INC_DIR := $(PJ_INSTALL_DIR)/include +export PJ_INSTALL_LIB_DIR := $(PJ_INSTALL_DIR)/lib +export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @CFLAGS@ +export PJ_INSTALL_CXXFLAGS := $(PJ_INSTALL_CFLAGS) +export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDLIBS) diff --git a/configure-legacy b/configure-legacy index a84cc5e47..fd0dd948f 100755 --- a/configure-legacy +++ b/configure-legacy @@ -124,7 +124,7 @@ export APP_CXXFLAGS = \$(APP_CFLAGS) export APP_LDFLAGS = -L\$(PJDIR)/pjlib/lib -L\$(PJDIR)/pjlib-util/lib -L\$(PJDIR)/pjnath/lib -L\$(PJDIR)/pjmedia/lib -L\$(PJDIR)/pjsip/lib -L\$(PJDIR)/third_party/lib -export APP_LDLIBS = -lpjsua-\$(TARGET_NAME) -lpjsip-ua-\$(TARGET_NAME) -lpjsip-simple-\$(TARGET_NAME) -lpjsip-\$(TARGET_NAME) -lpjmedia-codec-\$(TARGET_NAME) -lpjmedia-\$(TARGET_NAME) -lpjnath-\$(TARGET_NAME) -lpjlib-util-\$(TARGET_NAME) \$(APP_THIRD_PARTY_LIBS) -lpj-\$(TARGET_NAME) \$(CC_LDFLAGS) \$(OS_LDFLAGS) \$(M_LDFLAGS) \$(HOST_LDFLAGS) \$(LDFLAGS) +export APP_LDLIBS = -lpjsua-\$(TARGET_NAME) -lpjsip-ua-\$(TARGET_NAME) -lpjsip-simple-\$(TARGET_NAME) -lpjsip-\$(TARGET_NAME) -lpjmedia-codec-\$(TARGET_NAME) -lpjmedia-\$(TARGET_NAME) -lpjnath-\$(TARGET_NAME) -lpjlib-util-\$(TARGET_NAME) \$(APP_THIRD_PARTY_LIBS) \$(APP_THIRD_PARTY_EXT) -lpj-\$(TARGET_NAME) \$(CC_LDFLAGS) \$(OS_LDFLAGS) \$(M_LDFLAGS) \$(HOST_LDFLAGS) \$(LDFLAGS) export PJ_DIR = \$(PJDIR) export PJ_CC = \$(APP_CC) diff --git a/libpj.pc.in b/libpjproject.pc.in similarity index 51% rename from libpj.pc.in rename to libpjproject.pc.in index 848e31f97..7cd4313f5 100644 --- a/libpj.pc.in +++ b/libpjproject.pc.in @@ -5,8 +5,9 @@ exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include -Name: libpj +Name: libpjproject Description: Multimedia communication library -Version: 0.5.10.3 -Libs: -L${libdir} -lpjsua -lpjsip -lpjmedia -lpjsip-ua -lpjsip-simple -lpjsip-ua -lpjmedia-codec -lpjlib-util -lpj -Cflags: -I${includedir} +URL: http://www.pjsip.org +Version: @PJ_VERSION@ +Libs: -L${libdir} @PJ_LDLIBS@ +Cflags: -I${includedir} @PJ_INSTALL_CFLAGS@ diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 49cd9424e..c542396b1 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -40,6 +40,7 @@ export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \ $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \ -L$(PJDIR)/third_party/lib \ $(APP_THIRD_PARTY_LIBS) \ + $(APP_THIRD_PARTY_EXT) \ $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ $(LDFLAGS) diff --git a/pjsip/include/pjsua.h b/pjsip/include/pjsua.h new file mode 100644 index 000000000..961436747 --- /dev/null +++ b/pjsip/include/pjsua.h @@ -0,0 +1 @@ +#include diff --git a/version.mak b/version.mak new file mode 100644 index 000000000..b1e01984b --- /dev/null +++ b/version.mak @@ -0,0 +1 @@ +export PJ_VERSION := 1.5.5-trunk