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
diff --git a/Makefile b/Makefile
index f8ed4b0..f163403 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@
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 @@
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 c0c6080..bcba201 100644
--- a/build.mak.in
+++ b/build.mak.in
@@ -7,17 +7,19 @@
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 @@
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 @@
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 @@
-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 @@
$(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_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 a84cc5e..fd0dd94 100755
--- a/configure-legacy
+++ b/configure-legacy
@@ -124,7 +124,7 @@
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/libpj.pc.in
deleted file mode 100644
index 848e31f..0000000
--- a/libpj.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-# Package Information for pkg-config
-
-prefix=@PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: libpj
-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}
diff --git a/libpjproject.pc.in b/libpjproject.pc.in
new file mode 100644
index 0000000..7cd4313
--- /dev/null
+++ b/libpjproject.pc.in
@@ -0,0 +1,13 @@
+# Package Information for pkg-config
+
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libpjproject
+Description: Multimedia communication library
+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 49cd942..c542396 100644
--- a/pjmedia/build/Makefile
+++ b/pjmedia/build/Makefile
@@ -40,6 +40,7 @@
$(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 0000000..9614367
--- /dev/null
+++ b/pjsip/include/pjsua.h
@@ -0,0 +1 @@
+#include <pjsua-lib/pjsua.h>
diff --git a/version.mak b/version.mak
new file mode 100644
index 0000000..b1e0198
--- /dev/null
+++ b/version.mak
@@ -0,0 +1 @@
+export PJ_VERSION := 1.5.5-trunk