summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2013-11-23 07:13:40 +0000
committerBenny Prijono <bennylp@teluu.com>2013-11-23 07:13:40 +0000
commit831823773e16aff2a237335145effd426d5ebf87 (patch)
treeaf728a2862c4d62796dfdf508feafa4e57f42e46
parentb4549841bb9e71c7856e145046795f1dd010aeb3 (diff)
Fixed #1713: Enable building the libraries as shared libraries/DLLs for GNU targets
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4656 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--Makefile18
-rwxr-xr-xaconfigure226
-rw-r--r--aconfigure.ac13
-rw-r--r--build.mak.in138
-rw-r--r--build/rules.mak79
-rw-r--r--libpjproject.pc.in4
-rw-r--r--pjlib-util/build/Makefile56
-rw-r--r--pjlib/build/Makefile51
-rw-r--r--pjlib/build/os-auto.mak.in2
-rw-r--r--pjlib/build/os-darwinos.mak2
-rw-r--r--pjlib/build/os-linux-kernel.mak2
-rw-r--r--pjlib/build/os-linux.mak2
-rw-r--r--pjlib/build/os-rtems.mak2
-rw-r--r--pjlib/build/os-sunos.mak2
-rw-r--r--pjlib/build/os-win32.mak2
-rw-r--r--pjmedia/build/Makefile140
-rw-r--r--pjmedia/include/pjmedia-videodev/config.h4
-rw-r--r--pjnath/build/Makefile74
-rw-r--r--pjsip-apps/build/Makefile30
-rw-r--r--pjsip-apps/build/Samples.mak34
-rw-r--r--pjsip/build/Makefile139
-rw-r--r--third_party/build/g7221/Makefile20
-rw-r--r--third_party/build/gsm/Makefile20
-rw-r--r--third_party/build/ilbc/Makefile20
-rw-r--r--third_party/build/milenage/Makefile20
-rw-r--r--third_party/build/portaudio/Makefile20
-rw-r--r--third_party/build/resample/Makefile41
-rw-r--r--third_party/build/speex/Makefile20
-rw-r--r--third_party/build/srtp/Makefile20
29 files changed, 780 insertions, 421 deletions
diff --git a/Makefile b/Makefile
index 837477e0..72310ae0 100644
--- a/Makefile
+++ b/Makefile
@@ -105,20 +105,20 @@ pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME)
pjsua-test:
cd tests/pjsua && python runall.py
-prefix = $(ac_prefix)
-
install:
- mkdir -p $(DESTDIR)$(prefix)/lib
- cp -f $(APP_LIB_FILES) $(DESTDIR)$(prefix)/lib/
- mkdir -p $(DESTDIR)$(prefix)/include
+ mkdir -p $(DESTDIR)$(libdir)/
+ cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
+ mkdir -p $(DESTDIR)$(includedir)/
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
- cp -RLf $$d/include/* $(DESTDIR)$(prefix)/include/; \
+ cp -RLf $$d/include/* $(DESTDIR)$(includedir)/; \
done
- mkdir -p $(DESTDIR)$(prefix)/lib/pkgconfig
- sed -e "s!@PREFIX@!$(DESTDIR)$(prefix)!" libpjproject.pc.in | \
+ mkdir -p $(DESTDIR)$(libdir)/pkgconfig
+ sed -e "s!@PREFIX@!$(prefix)!" libpjproject.pc.in | \
+ sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
+ sed -e "s!@LIBDIR@!$(libdir)!" | \
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
+ sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
uninstall:
$(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
diff --git a/aconfigure b/aconfigure
index 3efafe64..a1e87a42 100755
--- a/aconfigure
+++ b/aconfigure
@@ -1,9 +1,11 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pjproject 2.x.
+# Generated by GNU Autoconf 2.68 for pjproject 2.x.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -132,31 +134,6 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -190,8 +167,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+test x\$exitcode = x0 || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -236,25 +212,21 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@@ -356,14 +328,6 @@ $as_echo X"$as_dir" |
} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -485,10 +449,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -523,16 +483,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -544,8 +504,28 @@ else
as_mkdir_p=false
fi
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -672,6 +652,7 @@ ac_external_pa
ac_pjmedia_snd
ac_external_gsm
ac_external_speex
+ac_shared_libraries
ac_os_objs
EGREP
GREP
@@ -758,6 +739,7 @@ ac_user_opts='
enable_option_checking
enable_floating_point
enable_epoll
+enable_shared
with_external_speex
with_external_gsm
enable_sound
@@ -1262,6 +1244,8 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1424,6 +1408,7 @@ Optional Features:
--disable-floating-point
Disable floating point where possible
--enable-epoll Use /dev/epoll ioqueue on Linux (experimental)
+ --enable-shared Build shared libraries
--disable-sound Exclude sound (i.e. use null sound)
--disable-oss Disable OSS audio (default: not disabled)
--disable-video Disable video feature
@@ -1569,9 +1554,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
pjproject configure 2.x
-generated by GNU Autoconf 2.69
+generated by GNU Autoconf 2.68
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1685,7 +1670,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
+ $as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -1972,7 +1957,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by pjproject $as_me 2.x, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2497,7 +2482,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2537,7 +2522,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2590,7 +2575,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2631,7 +2616,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -2689,7 +2674,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2733,7 +2718,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3179,7 +3164,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3292,7 +3278,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3336,7 +3322,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3545,7 +3531,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3585,7 +3571,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3639,7 +3625,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3683,7 +3669,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4454,7 +4440,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -4520,7 +4506,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -5646,6 +5632,22 @@ fi
+# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; if test "$enable_shared" = "yes"; then
+ ac_shared_libraries=1
+ CFLAGS="$CFLAGS -fPIC"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building shared libraries... yes" >&5
+$as_echo "Building shared libraries... yes" >&6; }
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Building shared libraries... no" >&5
+$as_echo "Building shared libraries... no" >&6; }
+
+fi
+
+
+
case $target in
*mingw* | *cygw* | *win32* | *w32* )
ac_os_objs="$ac_os_objs file_access_win32.o file_io_win32.o os_core_win32.o os_error_win32.o os_time_win32.o os_timestamp_win32.o guid_win32.o"
@@ -6324,7 +6326,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6370,7 +6372,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6475,7 +6477,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_PKG_CONFIG="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8157,16 +8159,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -8226,16 +8228,28 @@ else
as_mkdir_p=false
fi
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -8257,7 +8271,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by pjproject $as_me 2.x, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -8319,10 +8333,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
pjproject config.status 2.x
-configured by $0, generated by GNU Autoconf 2.69,
+configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -8410,7 +8424,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
diff --git a/aconfigure.ac b/aconfigure.ac
index d814e786..8d77ffa3 100644
--- a/aconfigure.ac
+++ b/aconfigure.ac
@@ -423,6 +423,18 @@ AC_ARG_ENABLE(epoll,
AC_MSG_RESULT([select()])
])
+AC_SUBST(ac_shared_libraries)
+AC_ARG_ENABLE(shared,
+ AC_HELP_STRING([--enable-shared],
+ [Build shared libraries]),
+ [if test "$enable_shared" = "yes"; then
+ [ac_shared_libraries=1]
+ CFLAGS="$CFLAGS -fPIC"
+ AC_MSG_RESULT([Building shared libraries... yes])
+ fi],
+ AC_MSG_RESULT([Building shared libraries... no])
+ )
+
dnl ######################
dnl # OS specific files
@@ -824,7 +836,6 @@ AC_ARG_ENABLE(libsamplerate,
AC_MSG_RESULT([Skipping libsamplerate detection])
)
-dnl # Include libsamplerate
AC_SUBST(ac_resample_dll)
AC_ARG_ENABLE(resample_dll,
AC_HELP_STRING([--enable-resample-dll],
diff --git a/build.mak.in b/build.mak.in
index 09463002..477c1ece 100644
--- a/build.mak.in
+++ b/build.mak.in
@@ -12,22 +12,41 @@ export CROSS_COMPILE := @ac_cross_compile@
export LINUX_POLL := @ac_linux_poll@
export SHLIB_SUFFIX := @ac_shlib_suffix@
-export ac_prefix := @prefix@
+export prefix := @prefix@
+export exec_prefix := @exec_prefix@
+export includedir := @includedir@
+export libdir := @libdir@
LIB_SUFFIX = $(TARGET_NAME).a
+ifeq (@ac_shared_libraries@,1)
+export PJ_SHARED_LIBRARIES := 1
+endif
+
# Determine which party libraries to use
-export APP_THIRD_PARTY_LIBS := -lmilenage-$(TARGET_NAME) -lsrtp-$(TARGET_NAME)
export APP_THIRD_PARTY_EXT :=
+export APP_THIRD_PARTY_LIBS :=
export APP_THIRD_PARTY_LIB_FILES := $(PJ_DIR)/third_party/lib/libmilenage-$(LIB_SUFFIX) $(PJ_DIR)/third_party/lib/libsrtp-$(LIB_SUFFIX)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lmilenage-$(TARGET_NAME) -lsrtp-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lmilenage -lsrtp
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libmilenage.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libmilenage.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX)
+endif
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)
+ifeq ($(PJ_SHARED_LIBRARIES),)
ifeq (@ac_resample_dll@,1)
export PJ_RESAMPLE_DLL := 1
-export APP_THIRD_PARTY_LIBS := -lresample $(APP_THIRD_PARTY_LIBS)
-export APP_THIRD_PARTY_LIB_FILES := $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX) $(APP_THIRD_PARTY_LIB_FILES)
+APP_THIRD_PARTY_LIBS += -lresample
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
else
-export APP_THIRD_PARTY_LIBS := -lresample-$(TARGET_NAME) $(APP_THIRD_PARTY_LIBS)
-export APP_THIRD_PARTY_LIB_FILES := $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX) $(APP_THIRD_PARTY_LIB_FILES)
+APP_THIRD_PARTY_LIBS += -lresample-$(TARGET_NAME)
+endif
+else
+APP_THIRD_PARTY_LIBS += -lresample
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
endif
ifneq (@ac_no_gsm_codec@,1)
@@ -35,8 +54,13 @@ ifeq (@ac_external_gsm@,1)
# External GSM library
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)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lgsmcodec-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lgsmcodec
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX)
+endif
endif
endif
@@ -44,19 +68,34 @@ ifneq (@ac_no_speex_codec@,1)
ifeq (@ac_external_speex@,1)
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)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lspeex-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lspeex
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX)
+endif
endif
endif
ifneq (@ac_no_ilbc_codec@,1)
-APP_THIRD_PARTY_LIBS += -lilbccodec-$(TARGET_NAME)
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec-$(LIB_SUFFIX)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lilbccodec-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lilbccodec
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX)
+endif
endif
ifneq (@ac_no_g7221_codec@,1)
-APP_THIRD_PARTY_LIBS += -lg7221codec-$(TARGET_NAME)
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec-$(LIB_SUFFIX)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lg7221codec-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lg7221codec
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX)
+endif
endif
ifneq ($(findstring pa,@ac_pjmedia_snd@),)
@@ -64,8 +103,13 @@ ifeq (@ac_external_pa@,1)
# 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)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+APP_THIRD_PARTY_LIBS += -lportaudio-$(TARGET_NAME)
+else
+APP_THIRD_PARTY_LIBS += -lportaudio
+APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libportaudio.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libportaudio.$(SHLIB_SUFFIX)
+endif
endif
endif
@@ -122,21 +166,6 @@ export APP_LDFLAGS := -L$(PJDIR)/pjlib/lib\
-L$(PJDIR)/third_party/lib\
$(PJ_VIDEO_LDFLAGS) \
@LDFLAGS@
-export APP_LDLIBS := -lpjsua-$(TARGET_NAME)\
- -lpjsip-ua-$(TARGET_NAME)\
- -lpjsip-simple-$(TARGET_NAME)\
- -lpjsip-$(TARGET_NAME)\
- -lpjmedia-codec-$(TARGET_NAME)\
- -lpjmedia-videodev-$(TARGET_NAME)\
- -lpjmedia-$(TARGET_NAME)\
- -lpjmedia-audiodev-$(TARGET_NAME)\
- -lpjmedia-$(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) \
$(PJ_DIR)/pjsip/lib/libpjsip-ua-$(LIB_SUFFIX) \
$(PJ_DIR)/pjsip/lib/libpjsip-simple-$(LIB_SUFFIX) \
@@ -150,6 +179,59 @@ export APP_LIB_FILES = $(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \
$(APP_THIRD_PARTY_LIB_FILES) \
$(PJ_DIR)/pjlib/lib/libpj-$(LIB_SUFFIX)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+export PJLIB_LDLIB := -lpj-$(TARGET_NAME)
+export PJLIB_UTIL_LDLIB := -lpjlib-util-$(TARGET_NAME)
+export PJNATH_LDLIB := -lpjnath-$(TARGET_NAME)
+export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev-$(TARGET_NAME)
+export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev-$(TARGET_NAME)
+export PJMEDIA_LDLIB := -lpjmedia-$(TARGET_NAME)
+export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec-$(TARGET_NAME)
+export PJSIP_LDLIB := -lpjsip-$(TARGET_NAME)
+export PJSIP_SIMPLE_LDLIB := -lpjsip-simple-$(TARGET_NAME)
+export PJSIP_UA_LDLIB := -lpjsip-ua-$(TARGET_NAME)
+export PJSUA_LIB_LDLIB := -lpjsua-$(TARGET_NAME)
+else
+export PJLIB_LDLIB := -lpj
+export PJLIB_UTIL_LDLIB := -lpjlib-util
+export PJNATH_LDLIB := -lpjnath
+export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev
+export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev
+export PJMEDIA_LDLIB := -lpjmedia
+export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec
+export PJSIP_LDLIB := -lpjsip
+export PJSIP_SIMPLE_LDLIB := -lpjsip-simple
+export PJSIP_UA_LDLIB := -lpjsip-ua
+export PJSUA_LIB_LDLIB := -lpjsua
+
+APP_LIB_FILES += $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX) \
+ $(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX)
+endif
+
+export APP_LDLIBS := $(PJSUA_LIB_LDLIB) \
+ $(PJSIP_UA_LDLIB) \
+ $(PJSIP_SIMPLE_LDLIB) \
+ $(PJSIP_LDLIB) \
+ $(PJMEDIA_CODEC_LDLIB) \
+ $(PJMEDIA_LDLIB) \
+ $(PJMEDIA_VIDEODEV_LDLIB) \
+ $(PJMEDIA_AUDIODEV_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(APP_THIRD_PARTY_LIBS)\
+ $(APP_THIRD_PARTY_EXT)\
+ $(PJLIB_LDLIB) \
+ @LIBS@
+
# Here are the variabels to use if application is using the library
# from within the source distribution
export PJ_CC := $(APP_CC)
@@ -163,8 +245,8 @@ 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_INC_DIR := @includedir@
+export PJ_INSTALL_LIB_DIR := @libdir@
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/build/rules.mak b/build/rules.mak
index 49798a37..a939db47 100644
--- a/build/rules.mak
+++ b/build/rules.mak
@@ -6,17 +6,22 @@ BINDIR = ../bin
endif
#
-# The full path of output lib file (e.g. ../lib/libapp.a).
-#
-LIB = $($(APP)_LIB)
-
-#
-# The full path of output lib file (e.g. ../lib/libapp.a).
+# The name(s) of output lib file(s) (e.g. libapp.a).
#
+LIB := $($(APP)_LIB)
SHLIB = $($(APP)_SHLIB)
+SONAME = $($(APP)_SONAME)
+
+ifeq ($(SHLIB_SUFFIX),so)
+SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
+else ifeq ($(SHLIB_SUFFIX),dylib)
+SHLIB_OPT := -dynamiclib -undefined dynamic_lookup -flat_namespace
+else
+SHLIB_OPT :=
+endif
#
-# The full path of output executable file (e.g. ../bin/app.exe).
+# The name of output executable file (e.g. app.exe).
#
EXE = $($(APP)_EXE)
@@ -76,27 +81,46 @@ print_common:
@echo RANLIB=$(RANLIB)
print_bin: print_common
- @echo EXE=$(EXE)
+ @echo EXE=$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE))
@echo BINDIR=$(BINDIR)
-
+
print_lib: print_common
- @echo LIB=$(LIB)
+ifneq ($(LIB),)
+ @echo LIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB))
+endif
+ifneq ($(SHLIB),)
+ @echo SHLIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
+endif
+ifneq ($(SONAME),)
+ @echo SONAME=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME))
+endif
@echo LIBDIR=$(LIBDIR)
-$(LIB): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+ifneq ($(LIB),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
- $(AR) $(AR_FLAGS) $(LIB) $(OBJS)
- $(RANLIB) $(LIB)
+ $(AR) $(AR_FLAGS) $@ $(OBJS)
+ $(RANLIB) $@
+endif
-$(SHLIB): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+ifneq ($(SHLIB),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
- $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(SHLIB)) \
- $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
+ $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$@) \
+ $(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS) $(SHLIB_OPT)
+endif
+
+ifneq ($(SONAME),)
+$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)): $(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
+ ln -sf $(SHLIB) $@
+endif
-$(EXE): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
+ifneq ($(EXE),)
+$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
if test ! -d $(BINDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR)); fi
- $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(EXE)) \
+ $(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)) \
$(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
+endif
$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
$(CROSS_COMPILE)ld -r -o $@ $(OBJS)
@@ -147,13 +171,13 @@ $(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp
$(subst /,$(HOST_PSEP),$<)
$(OBJDIRS):
- $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
+ $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
$(LIBDIR):
- $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR))
+ $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
$(BINDIR):
- $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR))
+ $(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
clean:
$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
@@ -168,7 +192,18 @@ gcov-report:
done
realclean: clean
- $(subst @@,$(subst /,$(HOST_PSEP),$(LIB)) $(subst /,$(HOST_PSEP),$(EXE)),$(HOST_RM))
+ifneq ($(LIB),)
+ $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)),$(HOST_RM))
+endif
+ifneq ($(SHLIB),)
+ $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)),$(HOST_RM))
+endif
+ifneq ($(SONAME),)
+ $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)),$(HOST_RM))
+endif
+ifneq ($(EXE),)
+ $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)),$(HOST_RM))
+endif
$(subst @@,$(DEP_FILE),$(HOST_RM))
ifeq ($(OS_NAME),linux-kernel)
rm -f ../lib/$(app).ko
diff --git a/libpjproject.pc.in b/libpjproject.pc.in
index 7cd4313f..fb7c8b17 100644
--- a/libpjproject.pc.in
+++ b/libpjproject.pc.in
@@ -2,8 +2,8 @@
prefix=@PREFIX@
exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
+libdir=@LIBDIR@
+includedir=@INCLUDEDIR@
Name: libpjproject
Description: Multimedia communication library
diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
index b89cae15..33c82879 100644
--- a/pjlib-util/build/Makefile
+++ b/pjlib-util/build/Makefile
@@ -6,10 +6,20 @@ include ../../build.mak
include ../../version.mak
include $(PJDIR)/build/common.mak
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
RULES_MAK := $(PJDIR)/build/rules.mak
PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
-export PJLIB_UTIL_LIB:=../lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
+
+export PJLIB_UTIL_LIB := libpjlib-util-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJLIB_UTIL_SONAME := libpjlib-util.$(SHLIB_SUFFIX)
+export PJLIB_UTIL_SHLIB := $(PJLIB_UTIL_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -18,10 +28,8 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(CFLAGS) $(CC_INC)../include $(CC_INC)../../pjlib/include
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
-export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
- $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
- $(LDFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+ $(APP_LDFLAGS) $(LDFLAGS)
###############################################################################
# Defines for building PJLIB-UTIL library
@@ -35,6 +43,7 @@ export PJLIB_UTIL_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
stun_simple_client.o xml.o
export PJLIB_UTIL_CFLAGS += $(_CFLAGS)
export PJLIB_UTIL_CXXFLAGS += $(_CXXFLAGS)
+export PJLIB_UTIL_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
###############################################################################
# Defines for building test application
@@ -44,8 +53,8 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
http_client.o
export UTIL_TEST_CFLAGS += $(_CFLAGS)
export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
-export UTIL_TEST_LDFLAGS += $(_LDFLAGS)
-export UTIL_TEST_EXE:=../bin/pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
+export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
@@ -54,7 +63,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := pjlib-util pjlib-util-test
+TARGETS := $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME) $(UTIL_TEST_EXE)
all: $(TARGETS)
@@ -72,26 +81,28 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
.PHONY: $(TARGETS)
-.PHONY: $(PJLIB_UTIL_LIB) $(UTIL_TEST_EXE)
+.PHONY: $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME)
+.PHONY: $(UTIL_TEST_EXE)
-pjlib-util: $(PJLIB_UTIL_LIB)
-$(PJLIB_UTIL_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(PJLIB_UTIL_LIB)
+pjlib-util: $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME)
+$(PJLIB_UTIL_SONAME): $(PJLIB_UTIL_LIB)
+$(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME): $(PJLIB_LIB) $(PJLIB_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
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)
+$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
-.PHONY: ../lib/pjlib-util.ko
-../lib/pjlib-util.ko:
+.PHONY: pjlib-util.ko
+pjlib-util.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@
+ $(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjlib-util-test.ko
-../lib/pjlib-util-test.ko:
- $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $@
+.PHONY: pjlib-util-test.ko
+pjlib-util-test.ko:
+ $(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean:
$(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@
@@ -106,6 +117,5 @@ realclean:
depend:
$(MAKE) -f $(RULES_MAK) APP=PJLIB_UTIL app=pjlib-util $@
$(MAKE) -f $(RULES_MAK) APP=UTIL_TEST app=pjlib-util-test $@
- echo '$(UTIL_TEST_EXE): $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjlib-util-test-$(TARGET_NAME).depend; \
-
+ echo '$(BINDIR)/$(UTIL_TEST_EXE): $(LIBDIR)/$(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjlib-util-test-$(TARGET_NAME).depend; \
diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
index a1c9acf9..56e5ead2 100644
--- a/pjlib/build/Makefile
+++ b/pjlib/build/Makefile
@@ -2,10 +2,18 @@ include ../../build.mak
include ../../version.mak
include $(PJDIR)/build/common.mak
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
RULES_MAK := $(PJDIR)/build/rules.mak
+export PJLIB_LIB := libpj-$(TARGET_NAME)$(LIBEXT)
-export PJLIB_LIB := ../lib/libpj-$(TARGET_NAME)$(LIBEXT)
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJLIB_SONAME := libpj.$(SHLIB_SUFFIX)
+export PJLIB_SHLIB := $(PJLIB_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -14,9 +22,9 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(CFLAGS) $(CC_INC)../include
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
-export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
- $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
- $(LDFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+ $(APP_LDFLAGS) $(LDFLAGS)
+
###############################################################################
# Defines for building PJLIB library
@@ -31,6 +39,7 @@ export PJLIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
string.o timer.o types.o
export PJLIB_CFLAGS += $(_CFLAGS)
export PJLIB_CXXFLAGS += $(_CXXFLAGS)
+export PJLIB_LDFLAGS += $(_LDFLAGS)
###############################################################################
# Defines for building test application
@@ -46,10 +55,10 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
util.o
export TEST_CFLAGS += $(_CFLAGS)
export TEST_CXXFLAGS += $(_CXXFLAGS)
-export TEST_LDFLAGS += $(_LDFLAGS)
-export TEST_EXE := ../bin/pjlib-test-$(TARGET_NAME)$(HOST_EXE)
+export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
+export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
+
-
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
###############################################################################
# Main entry
@@ -76,34 +85,38 @@ print:
depend: ../include/pj/config_site.h
$(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib depend
$(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test depend
- echo '$(TEST_EXE): $(PJLIB_LIB)' >> .pjlib-test-$(TARGET_NAME).depend
+ echo '$(BINDIR)/$(TEST_EXE): $(LIBDIR)/$(PJLIB_LIB)' >> .pjlib-test-$(TARGET_NAME).depend
-.PHONY: dep depend clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
.PHONY: $(TARGETS)
-.PHONY: $(PJLIB_LIB) $(TEST_EXE)
+.PHONY: $(PJLIB_LIB) $(PJLIB_SONAME)
+.PHONY: $(TEST_EXE)
dep: depend
pjlib: $(PJLIB_LIB)
$(PJLIB_LIB): ../include/pj/config_site.h
- $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(PJLIB_LIB)
+
+$(PJLIB_SONAME): $(PJLIB_LIB)
+$(PJLIB_LIB) $(PJLIB_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
../include/pj/config_site.h:
touch ../include/pj/config_site.h
pjlib-test: $(TEST_EXE)
-$(TEST_EXE): $(PJLIB_LIB)
- $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(TEST_EXE)
+$(TEST_EXE): $(PJLIB_LIB) $(PJLIB_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
-.PHONY: ../lib/pjlib.ko
-../lib/pjlib.ko:
+.PHONY: pjlib.ko
+pjlib.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $@
+ $(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjlib-test.ko
-../lib/pjlib-test.ko:
- $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $@
+.PHONY: pjlib-test.ko
+pjlib-test.ko:
+ $(MAKE) -f $(RULES_MAK) APP=TEST app=pjlib-test $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean:
$(MAKE) -f $(RULES_MAK) APP=PJLIB app=pjlib clean
diff --git a/pjlib/build/os-auto.mak.in b/pjlib/build/os-auto.mak.in
index a4a2b8aa..3f35dce6 100644
--- a/pjlib/build/os-auto.mak.in
+++ b/pjlib/build/os-auto.mak.in
@@ -29,7 +29,7 @@ export TEST_LDFLAGS += @LDFLAGS@ @LIBS@
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(PJLIB_SONAME) $(TEST_EXE)
diff --git a/pjlib/build/os-darwinos.mak b/pjlib/build/os-darwinos.mak
index ee83decb..a0d99e71 100644
--- a/pjlib/build/os-darwinos.mak
+++ b/pjlib/build/os-darwinos.mak
@@ -33,5 +33,5 @@ export TEST_LDFLAGS += -lm
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(PJLIB_SONAME) $(TEST_EXE)
diff --git a/pjlib/build/os-linux-kernel.mak b/pjlib/build/os-linux-kernel.mak
index 934c8898..28cfbc79 100644
--- a/pjlib/build/os-linux-kernel.mak
+++ b/pjlib/build/os-linux-kernel.mak
@@ -42,6 +42,6 @@ export TEST_LDFLAGS += -lgcc
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS := ../lib/pjlib.ko ../lib/pjlib-test.ko
+export TARGETS := pjlib.ko pjlib-test.ko
diff --git a/pjlib/build/os-linux.mak b/pjlib/build/os-linux.mak
index 11c6fa73..78123efd 100644
--- a/pjlib/build/os-linux.mak
+++ b/pjlib/build/os-linux.mak
@@ -35,5 +35,5 @@ export TEST_LDFLAGS += -lm
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(PJLIB_SONAME) $(TEST_EXE)
diff --git a/pjlib/build/os-rtems.mak b/pjlib/build/os-rtems.mak
index 1501dd9b..30a81f9b 100644
--- a/pjlib/build/os-rtems.mak
+++ b/pjlib/build/os-rtems.mak
@@ -40,7 +40,7 @@ export TEST_LDFLAGS +=
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(TEST_EXE)
diff --git a/pjlib/build/os-sunos.mak b/pjlib/build/os-sunos.mak
index f0043ad6..7aa658da 100644
--- a/pjlib/build/os-sunos.mak
+++ b/pjlib/build/os-sunos.mak
@@ -32,5 +32,5 @@ export TEST_LDFLAGS += -lm
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(PJLIB_SONAME) $(TEST_EXE)
diff --git a/pjlib/build/os-win32.mak b/pjlib/build/os-win32.mak
index 0290fea9..5be3c8e5 100644
--- a/pjlib/build/os-win32.mak
+++ b/pjlib/build/os-win32.mak
@@ -29,5 +29,5 @@ export TEST_OBJS += main.o
# TARGETS are make targets in the Makefile, to be executed for this given
# operating system.
#
-export TARGETS = pjlib pjlib-test
+export TARGETS = $(PJLIB_LIB) $(TEST_EXE)
diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
index dec360ec..e21e9c03 100644
--- a/pjmedia/build/Makefile
+++ b/pjmedia/build/Makefile
@@ -9,17 +9,34 @@ SRTP_INC=$(CC_INC)$(THIRD_PARTY)/build/srtp \
include $(PJDIR)/build/common.mak
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
RULES_MAK := $(PJDIR)/build/rules.mak
PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
PJLIB_UTIL_LIB:=$(PJDIR)/pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
PJNATH_LIB:=$(PJDIR)/pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT)
-export PJMEDIA_LIB:=../lib/libpjmedia-$(TARGET_NAME)$(LIBEXT)
-export PJMEDIA_CODEC_LIB:=../lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT)
-export PJSDP_LIB:=../lib/libpjsdp-$(TARGET_NAME)$(LIBEXT)
-export PJMEDIA_AUDIODEV_LIB:=../lib/libpjmedia-audiodev-$(TARGET_NAME)$(LIBEXT)
-export PJMEDIA_VIDEODEV_LIB:=../lib/libpjmedia-videodev-$(TARGET_NAME)$(LIBEXT)
+export PJMEDIA_LIB:=libpjmedia-$(TARGET_NAME)$(LIBEXT)
+export PJMEDIA_CODEC_LIB:=libpjmedia-codec-$(TARGET_NAME)$(LIBEXT)
+export PJSDP_LIB:=libpjsdp-$(TARGET_NAME)$(LIBEXT)
+export PJMEDIA_AUDIODEV_LIB:=libpjmedia-audiodev-$(TARGET_NAME)$(LIBEXT)
+export PJMEDIA_VIDEODEV_LIB:=libpjmedia-videodev-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJMEDIA_SONAME:=libpjmedia.$(SHLIB_SUFFIX)
+export PJMEDIA_SHLIB:=$(PJMEDIA_SONAME).$(PJ_VERSION_MAJOR)
+export PJMEDIA_CODEC_SONAME:=libpjmedia-codec.$(SHLIB_SUFFIX)
+export PJMEDIA_CODEC_SHLIB:=$(PJMEDIA_CODEC_SONAME).$(PJ_VERSION_MAJOR)
+export PJSDP_SONAME:=libpjsdp.$(SHLIB_SUFFIX)
+export PJSDP_SHLIB:=$(PJSDP_SONAME).$(PJ_VERSION_MAJOR)
+export PJMEDIA_AUDIODEV_SONAME:=libpjmedia-audiodev.$(SHLIB_SUFFIX)
+export PJMEDIA_AUDIODEV_SHLIB:=$(PJMEDIA_AUDIODEV_SONAME).$(PJ_VERSION_MAJOR)
+export PJMEDIA_VIDEODEV_SONAME:=libpjmedia-videodev.$(SHLIB_SUFFIX)
+export PJMEDIA_VIDEODEV_SHLIB:=$(PJMEDIA_VIDEODEV_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
@@ -35,18 +52,11 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(SRTP_INC)
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
-export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_VIDEODEV_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJMEDIA_CODEC_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJMEDIA_AUDIODEV_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \
- -L$(PJDIR)/third_party/lib \
- $(APP_THIRD_PARTY_LIBS) \
+
+export _LDFLAGS := $(APP_THIRD_PARTY_LIBS) \
$(APP_THIRD_PARTY_EXT) \
$(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
- $(LDFLAGS)
+ $(APP_LDFLAGS) $(LDFLAGS)
###############################################################################
# Defines for building PJMEDIA library
@@ -74,6 +84,12 @@ export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
export PJMEDIA_CFLAGS += $(_CFLAGS)
export PJMEDIA_CXXFLAGS += $(_CXXFLAGS)
+export PJMEDIA_LDFLAGS += $(PJMEDIA_VIDEODEV_LDLIB) \
+ $(PJMEDIA_AUDIODEV_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -86,6 +102,8 @@ export PJMEDIA_AUDIODEV_OBJS += audiodev.o audiotest.o errno.o \
android_jni_dev.o opensl_dev.o
export PJMEDIA_AUDIODEV_CFLAGS += $(_CFLAGS)
export PJMEDIA_AUDIODEV_CXXFLAGS += $(_CXXFLAGS)
+export PJMEDIA_AUDIODEV_LDFLAGS += $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -96,6 +114,8 @@ export PJMEDIA_VIDEODEV_OBJS += errno.o videodev.o avi_dev.o ffmpeg_dev.o \
colorbar_dev.o v4l2_dev.o
export PJMEDIA_VIDEODEV_CFLAGS += $(_CFLAGS)
export PJMEDIA_VIDEODEV_CXXFLAGS += $(_CXXFLAGS)
+export PJMEDIA_VIDEODEV_LDFLAGS += $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -109,6 +129,10 @@ export PJSDP_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
errno.o sdp.o sdp_cmp.o sdp_neg.o
export PJSDP_CFLAGS += $(_CFLAGS)
export PJSDP_CXXFLAGS += $(_CXXFLAGS)
+export PJSDP_LDFLAGS += $(PJMEDIA_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -124,7 +148,9 @@ export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \
$(ILBC_CFLAGS) $(IPP_CFLAGS) $(G7221_CFLAGS)
export PJMEDIA_CODEC_CXXFLAGS += $(_CXXFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \
$(ILBC_CFLAGS) $(IPP_CFLAGS) $(G7221_CFLAGS)
-
+export PJMEDIA_CODEC_LDFLAGS += $(PJMEDIA_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
# Defines for building test application
@@ -136,8 +162,15 @@ export PJMEDIA_TEST_OBJS += codec_vectors.o jbuf_test.o main.o mips_test.o \
export PJMEDIA_TEST_OBJS += sdp_neg_test.o
export PJMEDIA_TEST_CFLAGS += $(_CFLAGS)
export PJMEDIA_TEST_CXXFLAGS += $(_CXXFLAGS)
-export PJMEDIA_TEST_LDFLAGS += $(_LDFLAGS)
-export PJMEDIA_TEST_EXE:=../bin/pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
+export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
+ $(PJMEDIA_VIDEODEV_LDLIB) \
+ $(PJMEDIA_LDLIB) \
+ $(PJMEDIA_AUDIODEV_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(_LDFLAGS)
+export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
@@ -146,7 +179,12 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := pjmedia pjmedia-videodev pjmedia-audiodev pjmedia-codec pjsdp pjmedia-test
+TARGETS := $(PJMEDIA_LIB) $(PJMEDIA_SONAME) \
+ $(PJMEDIA_CODEC_LIB) $(PJMEDIA_CODEC_SONAME)\
+ $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_VIDEODEV_SONAME) \
+ $(PJMEDIA_AUDIODEV_LIB) $(PJMEDIA_AUDIODEV_SONAME) \
+ $(PJSDP_LIB) $(PJSDP_SONAME) \
+ $(PJMEDIA_TEST_EXE)
all: $(TARGETS)
@@ -164,47 +202,61 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
.PHONY: $(TARGETS)
-.PHONY: $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB) $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_AUDIODEV_LIB) $(PJSDP_LIB) $(PJMEDIA_TEST_EXE)
+.PHONY: $(PJMEDIA_LIB) $(PJMEDIA_SONAME)
+.PHONY: $(PJMEDIA_CODEC_LIB) $(PJMEDIA_CODEC_SONAME)
+.PHONY: $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_VIDEODEV_SONAME)
+.PHONY: $(PJMEDIA_AUDIODEV_LIB) $(PJMEDIA_AUDIODEV_SONAME)
+.PHONY: $(PJSDP_LIB) $(PJSDP_SONAME)
+.PHONY: $(PJMEDIA_TEST_EXE)
pjmedia: $(PJMEDIA_LIB)
-$(PJMEDIA_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(PJMEDIA_LIB)
+$(PJMEDIA_SONAME): $(PJMEDIA_LIB)
+$(PJMEDIA_LIB) $(PJMEDIA_SONAME): $(PJMEDIA_AUDIODEV_LIB) $(PJMEDIA_AUDIODEV_SONAME) $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_VIDEODEV_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjmedia-codec: $(PJMEDIA_CODEC_LIB)
-$(PJMEDIA_CODEC_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(PJMEDIA_CODEC_LIB)
+$(PJMEDIA_CODEC_SONAME): $(PJMEDIA_CODEC_LIB)
+$(PJMEDIA_CODEC_LIB) $(PJMEDIA_CODEC_SONAME): $(PJMEDIA_LIB) $(PJMEDIA_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjmedia-videodev: $(PJMEDIA_VIDEODEV_LIB)
-$(PJMEDIA_VIDEODEV_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $(PJMEDIA_VIDEODEV_LIB)
+$(PJMEDIA_VIDEODEV_SONAME): $(PJMEDIA_VIDEODEV_LIB)
+$(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_VIDEODEV_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_VIDEODEV app=pjmedia-videodev $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjmedia-audiodev: $(PJMEDIA_AUDIODEV_LIB)
-$(PJMEDIA_AUDIODEV_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $(PJMEDIA_AUDIODEV_LIB)
+$(PJMEDIA_AUDIODEV_SONAME): $(PJMEDIA_AUDIODEV_LIB)
+$(PJMEDIA_AUDIODEV_LIB) $(PJMEDIA_AUDIODEV_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjsdp: $(PJSDP_LIB)
-$(PJSDP_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB)
+$(PJSDP_SONAME): $(PJSDP_LIB)
+$(PJSDP_LIB) $(PJSDP_SONAME): $(PJMEDIA_LIB) $(PJMEDIA_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(LIBDIR)/$@
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
-../lib/pjmedia.ko:
+$(PJMEDIA_TEST_EXE): $(PJMEDIA_LIB) $(PJMEDIA_SONAME)
+$(PJMEDIA_TEST_EXE): $(PJMEDIA_AUDIODEV_LIB) $(PJMEDIA_AUDIODEV_SONAME)
+$(PJMEDIA_TEST_EXE): $(PJMEDIA_VIDEODEV_LIB) $(PJMEDIA_VIDEODEV_SONAME)
+$(PJMEDIA_TEST_EXE): $(PJMEDIA_CODEC_LIB) $(PJMEDIA_CODEC_SONAME)
+$(PJMEDIA_TEST_EXE):
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(BINDIR)/$@
+
+.PHONY: pjmedia.ko
+pjmedia.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(LIBDIR)/$@
-.PHONY: ../lib/pjmedia-codec.ko
-../lib/pjmedia-codec.ko:
+.PHONY: pjmedia-codec.ko
+pjmedia-codec.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(LIBDIR)/$@
-.PHONY: ../lib/pjmedia-test.ko
-../lib/pjmedia-test.ko:
- $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
+.PHONY: pjmedia-test.ko
+pjmedia-test.ko:
+ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $(LIBDIR)/$@
clean:
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@
@@ -236,6 +288,6 @@ depend:
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@
$(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@
$(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@
- echo '$(PJMEDIA_TEST_EXE): $(PJMEDIA_LIB) $(PJMEDIA_CODEC_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjmedia-test-$(TARGET_NAME).depend
+ echo '$(BINDIR)/$(PJMEDIA_TEST_EXE): $(LIBDIR)/$(PJMEDIA_LIB) $(LIBDIR)/$(PJMEDIA_CODEC_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjmedia-test-$(TARGET_NAME).depend
diff --git a/pjmedia/include/pjmedia-videodev/config.h b/pjmedia/include/pjmedia-videodev/config.h
index 3159c95b..a0fed9c2 100644
--- a/pjmedia/include/pjmedia-videodev/config.h
+++ b/pjmedia/include/pjmedia-videodev/config.h
@@ -52,6 +52,8 @@ PJ_BEGIN_DECL
#endif
+#if defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0)
+
/**
* This setting controls whether SDL support should be included.
*
@@ -144,6 +146,8 @@ PJ_BEGIN_DECL
# undef PJMEDIA_SDL_LIB
#endif
+#endif /* defined(PJMEDIA_HAS_VIDEO) && (PJMEDIA_HAS_VIDEO != 0) */
+
/**
* @}
*/
diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
index 24ddfd5d..d00ccb66 100644
--- a/pjnath/build/Makefile
+++ b/pjnath/build/Makefile
@@ -6,11 +6,21 @@ include ../../build.mak
include ../../version.mak
include $(PJDIR)/build/common.mak
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
RULES_MAK := $(PJDIR)/build/rules.mak
PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
-export PJNATH_LIB:=../lib/libpjnath-$(TARGET_NAME)$(LIBEXT)
+
+export PJNATH_LIB:=libpjnath-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJNATH_SONAME := libpjnath.$(SHLIB_SUFFIX)
+export PJNATH_SHLIB := $(PJNATH_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -20,11 +30,8 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(CC_INC)../../pjlib-util/include
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
-export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \
- $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \
- $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
- $(LDFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+ $(APP_LDFLAGS) $(LDFLAGS)
###############################################################################
# Defines for building PJNATH library
@@ -36,6 +43,7 @@ export PJNATH_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
stun_transaction.o turn_session.o turn_sock.o
export PJNATH_CFLAGS += $(_CFLAGS)
export PJNATH_CXXFLAGS += $(_CXXFLAGS)
+export PJNATH_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
###############################################################################
# Defines for building test application
@@ -45,8 +53,8 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
stun_sock_test.o turn_sock_test.o test.o
export PJNATH_TEST_CFLAGS += $(_CFLAGS)
export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
-export PJNATH_TEST_LDFLAGS += $(_LDFLAGS)
-export PJNATH_TEST_EXE:=../bin/pjnath-test-$(TARGET_NAME)$(HOST_EXE)
+export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
###############################################################################
@@ -56,8 +64,8 @@ export PJTURN_CLIENT_SRCDIR = ../src/pjturn-client
export PJTURN_CLIENT_OBJS += client_main.o
export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
-export PJTURN_CLIENT_LDFLAGS += $(_LDFLAGS)
-export PJTURN_CLIENT_EXE:=../bin/pjturn-client-$(TARGET_NAME)$(HOST_EXE)
+export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
###############################################################################
# Defines for building TURN server application
@@ -67,8 +75,8 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
listener_tcp.o server.o main.o
export PJTURN_SRV_CFLAGS += $(_CFLAGS)
export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
-export PJTURN_SRV_LDFLAGS += $(_LDFLAGS)
-export PJTURN_SRV_EXE:=../bin/pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
+export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
+export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
@@ -78,7 +86,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := pjnath pjnath-test pjturn-client pjturn-srv
+TARGETS := $(PJNATH_LIB) $(PJNATH_SONAME) $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE)
all: $(TARGETS)
@@ -96,34 +104,36 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
.PHONY: $(TARGETS)
-.PHONY: $(PJNATH_LIB) $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE)
+.PHONY: $(PJNATH_LIB) $(PJNATH_SONAME)
+.PHONY: $(PJNATH_TEST_EXE) $(PJTURN_CLIENT_EXE) $(PJTURN_SRV_EXE)
pjnath: $(PJNATH_LIB)
-$(PJNATH_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(PJNATH_LIB)
+$(PJNATH_SONAME): $(PJNATH_LIB)
+$(PJNATH_LIB) $(PJNATH_SONAME): $(PJLIB_LIB) $(PJLIB_SONAME) $(PJLIB_UTIL_LIB) $(PJLIB_UTIL_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjnath-test: $(PJNATH_TEST_EXE)
-$(PJNATH_TEST_EXE): $(PJNATH_LIB)
- $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(PJNATH_TEST_EXE)
+$(PJNATH_TEST_EXE): $(PJNATH_LIB) $(PJNATH_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
pjturn-client: $(PJTURN_CLIENT_EXE)
-$(PJTURN_CLIENT_EXE): $(PJNATH_LIB)
- $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(PJTURN_CLIENT_EXE)
+$(PJTURN_CLIENT_EXE): $(PJNATH_LIB) $(PJNATH_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
pjturn-srv: $(PJTURN_SRV_EXE)
-$(PJTURN_SRV_EXE): $(PJNATH_LIB)
- $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(PJTURN_SRV_EXE)
+$(PJTURN_SRV_EXE): $(PJNATH_LIB) $(PJNATH_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
-.PHONY: ../lib/pjnath.ko
-../lib/pjnath.ko:
+.PHONY: pjnath.ko
+pjnath.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@
+ $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjnath-test.ko
-../lib/pjnath-test.ko:
- $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@
+.PHONY: pjnath-test.ko
+pjnath-test.ko:
+ $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean:
$(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@
@@ -146,8 +156,8 @@ depend:
$(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@
$(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $@
$(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $@
- echo '$(PJNATH_TEST_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjnath-test-$(TARGET_NAME).depend
- echo '$(PJTURN_CLIENT_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-client-$(TARGET_NAME).depend
- echo '$(PJTURN_SRV_EXE): $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-srv-$(TARGET_NAME).depend
+ echo '$(BINDIR)/$(PJNATH_TEST_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjnath-test-$(TARGET_NAME).depend
+ echo '$(BINDIR)/$(PJTURN_CLIENT_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-client-$(TARGET_NAME).depend
+ echo '$(BINDIR)/$(PJTURN_SRV_EXE): $(LIBDIR)/$(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjturn-srv-$(TARGET_NAME).depend
diff --git a/pjsip-apps/build/Makefile b/pjsip-apps/build/Makefile
index 1c043cb7..71fb151e 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
@@ -37,8 +41,8 @@ export PJSUA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
pjsua_app_config.o pjsua_app_legacy.o
export PJSUA_CFLAGS += $(_CFLAGS)
export PJSUA_CXXFLAGS += $(_CXXFLAGS)
-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)
###############################################################################
@@ -49,8 +53,8 @@ export PJSYSTEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
systest.o main_console.o
export PJSYSTEST_CFLAGS += $(_CFLAGS)
export PJSYSTEST_CXXFLAGS += $(_CXXFLAGS)
-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
@@ -58,7 +62,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)
@@ -67,32 +71,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 d5dd1fc7..57daa8bf 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 \
clidemo \
confsample \
encdec \
@@ -45,35 +46,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_CFLAGS="$(_CFLAGS)" 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 $@
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
index 3914cf83..a10fdc7d 100644
--- a/pjsip/build/Makefile
+++ b/pjsip/build/Makefile
@@ -7,18 +7,32 @@ include ../../build.mak
include ../../version.mak
include $(PJDIR)/build/common.mak
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
RULES_MAK := $(PJDIR)/build/rules.mak
PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
+PJNATH_LIB:=../../pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT)
PJMEDIA_LIB:=../../pjmedia/lib/libpjmedia-$(TARGET_NAME)$(LIBEXT)
-PJMEDIA_CODEC_LIB:=../../pjmedia/lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT)
-
-export PJSIP_LIB:=../lib/libpjsip-$(TARGET_NAME)$(LIBEXT)
-export PJSIP_UA_LIB:=../lib/libpjsip-ua-$(TARGET_NAME)$(LIBEXT)
-export PJSIP_SIMPLE_LIB:=../lib/libpjsip-simple-$(TARGET_NAME)$(LIBEXT)
-export PJSUA_LIB_LIB=../lib/libpjsua-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_LIB:=libpjsip-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_UA_LIB:=libpjsip-ua-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_SIMPLE_LIB:=libpjsip-simple-$(TARGET_NAME)$(LIBEXT)
+export PJSUA_LIB_LIB:=libpjsua-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJSIP_SONAME := libpjsip.$(SHLIB_SUFFIX)
+export PJSIP_SHLIB := $(PJSIP_SONAME).$(PJ_VERSION_MAJOR)
+export PJSIP_UA_SONAME := libpjsip-ua.$(SHLIB_SUFFIX)
+export PJSIP_UA_SHLIB := $(PJSIP_UA_SONAME).$(PJ_VERSION_MAJOR)
+export PJSIP_SIMPLE_SONAME := libpjsip-simple.$(SHLIB_SUFFIX)
+export PJSIP_SIMPLE_SHLIB := $(PJSIP_SIMPLE_SONAME).$(PJ_VERSION_MAJOR)
+export PJSUA_LIB_SONAME := libpjsua.$(SHLIB_SUFFIX)
+export PJSUA_LIB_SHLIB := $(PJSUA_LIB_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -31,6 +45,10 @@ 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 := $(APP_THIRD_PARTY_LIBS) \
+ $(APP_THIRD_PARTY_EXT) \
+ $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+ $(APP_LDFLAGS) $(LDFLAGS)
###############################################################################
# Defines for building PJSIP core library
@@ -49,6 +67,9 @@ export PJSIP_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
sip_dialog.o sip_ua_layer.o
export PJSIP_CFLAGS += $(_CFLAGS)
export PJSIP_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_LDFLAGS += $(PJLIB_UTIL_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
# Defines for building PJSIP UA library
@@ -59,6 +80,12 @@ export PJSIP_UA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
sip_100rel.o sip_timer.o
export PJSIP_UA_CFLAGS += $(_CFLAGS)
export PJSIP_UA_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_UA_LDFLAGS += $(PJSIP_SIMPLE_LDLIB) \
+ $(PJSIP_LDLIB) \
+ $(PJMEDIA_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -71,6 +98,10 @@ export PJSIP_SIMPLE_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
rpid.o xpidf.o
export PJSIP_SIMPLE_CFLAGS += $(_CFLAGS)
export PJSIP_SIMPLE_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_SIMPLE_LDFLAGS += $(PJSIP_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
###############################################################################
@@ -83,6 +114,17 @@ export PJSUA_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
pjsua_dump.o pjsua_aud.o pjsua_vid.o
export PJSUA_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
export PJSUA_LIB_CXXFLAGS += $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
+export PJSUA_LIB_LDFLAGS += $(PJSIP_UA_LDLIB) \
+ $(PJSIP_SIMPLE_LDLIB) \
+ $(PJSIP_LDLIB) \
+ $(PJMEDIA_AUDIODEV_LDLIB) \
+ $(PJMEDIA_VIDEODEV_LDLIB) \
+ $(PJMEDIA_CODEC_LDLIB) \
+ $(PJMEDIA_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(_LDFLAGS)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
@@ -100,8 +142,19 @@ export TEST_OBJS += dlg_core_test.o dns_test.o msg_err_test.o \
inv_offer_answer_test.o
export TEST_CFLAGS += $(_CFLAGS)
export TEST_CXXFLAGS += $(_CXXFLAGS)
-export TEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS)
-export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE)
+export TEST_LDFLAGS += $(PJSIP_LDLIB) \
+ $(PJSIP_UA_LDLIB) \
+ $(PJSIP_SIMPLE_LDLIB) \
+ $(PJSUA_LDLIB) \
+ $(PJMEDIA_CODEC_LDLIB) \
+ $(PJMEDIA_VIDEODEV_LDLIB) \
+ $(PJMEDIA_LDLIB) \
+ $(PJMEDIA_AUDIODEV_LDLIB) \
+ $(PJLIB_LDLIB) \
+ $(PJLIB_UTIL_LDLIB) \
+ $(PJNATH_LDLIB) \
+ $(_LDFLAGS)
+export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
@@ -109,7 +162,11 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
# Main entry
#
#
-TARGETS := pjsip pjsip-ua pjsip-simple pjsua-lib pjsip-test
+TARGETS := $(PJSIP_LIB) $(PJSIP_SONAME) \
+ $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) \
+ $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) \
+ $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) \
+ $(TEST_EXE)
all: $(TARGETS)
@@ -127,49 +184,61 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
.PHONY: $(TARGETS)
-.PHONY: $(PJSIP_LIB) $(PJSIP_UA_LIB) $(PJSIP_SIMPLE_LIB) $(PJSUA_LIB_LIB) $(TEST_EXE)
+.PHONY: $(PJSIP_LIB) $(PJSIP_SONAME)
+.PHONY: $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+.PHONY: $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+.PHONY: $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME)
+.PHONY: $(TEST_EXE)
pjsip: $(PJSIP_LIB)
-$(PJSIP_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(PJSIP_LIB)
+$(PJSIP_SONAME): $(PJSIP_LIB)
+$(PJSIP_LIB) $(PJSIP_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjsip-ua: $(PJSIP_UA_LIB)
-$(PJSIP_UA_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(PJSIP_UA_LIB)
+$(PJSIP_UA_SONAME): $(PJSIP_UA_LIB)
+$(PJSIP_UA_LIB) $(PJSIP_UA_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjsip-simple: $(PJSIP_SIMPLE_LIB)
-$(PJSIP_SIMPLE_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(PJSIP_SIMPLE_LIB)
+$(PJSIP_SIMPLE_SONAME): $(PJSIP_SIMPLE_LIB)
+$(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
pjsua-lib: $(PJSUA_LIB_LIB)
-$(PJSUA_LIB_LIB):
- $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(PJSUA_LIB_LIB)
+$(PJSUA_LIB_SONAME): $(PJSUA_LIB_LIB)
+$(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+ $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
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
-../lib/pjsip.ko:
+$(TEST_EXE): $(PJSIP_LIB) $(PJSIP_SONAME)
+$(TEST_EXE): $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+$(TEST_EXE): $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+$(TEST_EXE): $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME)
+$(TEST_EXE):
+ $(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
+
+.PHONY: pjsip.ko
+pjsip.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjsip-ua.ko
-../lib/pjsip-ua.ko:
+.PHONY: pjsip-ua.ko
+pjsip-ua.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $@
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjsip-simple.ko
-../lib/pjsip-simple.ko:
+.PHONY: pjsip-simple.ko
+pjsip-simple.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@
+ $(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-.PHONY: ../lib/pjsua-lib.ko
-../lib/pjsua-lib.ko:
+.PHONY: pjsua-lib.ko
+pjsua-lib.ko:
echo Making $@
- $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@
+ $(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean:
$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@
@@ -184,7 +253,7 @@ depend:
$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@
$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@
$(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $@
- 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
+ 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
realclean:
$(subst @@,$(subst /,$(HOST_PSEP),.pjsip-$(TARGET_NAME).depend),$(HOST_RMR))
diff --git a/third_party/build/g7221/Makefile b/third_party/build/g7221/Makefile
index 60590307..d0e75964 100644
--- a/third_party/build/g7221/Makefile
+++ b/third_party/build/g7221/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export G7221_CODEC_LIB := ../../lib/libg7221codec-$(TARGET_NAME)$(LIBEXT)
+export G7221_CODEC_LIB := libg7221codec-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export G7221_CODEC_SONAME := libg7221codec.$(SHLIB_SUFFIX)
+export G7221_CODEC_SHLIB := $(G7221_CODEC_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -34,7 +40,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libg7221codec
+TARGETS := $(G7221_CODEC_LIB) $(G7221_CODEC_SONAME)
all: $(TARGETS)
@@ -44,10 +50,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libg7221codec clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(G7221_CODEC_LIB) $(G7221_CODEC_SONAME)
-libg7221codec:
- $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $(G7221_CODEC_LIB)
+libg7221codec: $(G7221_CODEC_LIB)
+$(G7221_CODEC_SONAME): $(G7221_CODEC_LIB)
+$(G7221_CODEC_LIB) $(G7221_CODEC_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=G7221_CODEC app=libg7221codec $@
diff --git a/third_party/build/gsm/Makefile b/third_party/build/gsm/Makefile
index a265076e..0b949982 100644
--- a/third_party/build/gsm/Makefile
+++ b/third_party/build/gsm/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export GSM_CODEC_LIB := ../../lib/libgsmcodec-$(TARGET_NAME)$(LIBEXT)
+export GSM_CODEC_LIB := libgsmcodec-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export GSM_CODEC_SONAME := libgsmcodec.$(SHLIB_SUFFIX)
+export GSM_CODEC_SHLIB := $(GSM_CODEC_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -35,7 +41,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libgsmcodec
+TARGETS := $(GSM_CODEC_LIB) $(GSM_CODEC_SONAME)
all: $(TARGETS)
@@ -45,10 +51,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libgsmcodec clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONE: $(GSM_CODEC_LIB) $(GSM_CODEC_SONAME)
-libgsmcodec:
- $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(GSM_CODEC_LIB)
+libgsmcodec: $(GSM_CODEC_LIB)
+$(GSM_CODEC_SONAME): $(GSM_CODEC_LIB)
+$(GSM_CODEC_LIB) $(GSM_CODEC_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $@
diff --git a/third_party/build/ilbc/Makefile b/third_party/build/ilbc/Makefile
index 50b4ab7e..39ac6b2b 100644
--- a/third_party/build/ilbc/Makefile
+++ b/third_party/build/ilbc/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export ILBC_LIB := ../../lib/libilbccodec-$(TARGET_NAME)$(LIBEXT)
+export ILBC_LIB := libilbccodec-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export ILBC_SONAME := libilbccodec.$(SHLIB_SUFFIX)
+export ILBC_SHLIB := $(ILBC_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -36,7 +42,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libilbccodec
+TARGETS := $(ILBC_LIB) $(ILBC_SONAME)
all: $(TARGETS)
@@ -46,10 +52,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libilbccodec clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(ILBC_LIB) $(ILBC_SONAME)
-libilbccodec:
- $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(ILBC_LIB)
+libilbccodec: $(ILBC_LIB)
+$(ILBC_SONAME): $(ILBC_LIB)
+$(ILBC_LIB) $(ILBC_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $@
diff --git a/third_party/build/milenage/Makefile b/third_party/build/milenage/Makefile
index 094ddeaa..18a48b91 100644
--- a/third_party/build/milenage/Makefile
+++ b/third_party/build/milenage/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export MILENAGE_LIB := ../../lib/libmilenage-$(TARGET_NAME)$(LIBEXT)
+export MILENAGE_LIB := libmilenage-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export MILENAGE_SONAME := libmilenage.$(SHLIB_SUFFIX)
+export MILENAGE_SHLIB := $(MILENAGE_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -29,7 +35,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libmilenage
+TARGETS := $(MILENAGE_LIB) $(MILENAGE_SONAME)
all: $(TARGETS)
@@ -39,10 +45,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libmilenage clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(MILENAGE_LIB) $(MILENAGE_SONAME)
-libmilenage:
- $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(MILENAGE_LIB)
+libmilenage: $(MILENAGE_LIB)
+$(MILENAGE_SONAME): $(MILENAGE_LIB)
+$(MILENAGE_LIB) $(MILENAGE_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $@
diff --git a/third_party/build/portaudio/Makefile b/third_party/build/portaudio/Makefile
index ad81571a..a5c2449e 100644
--- a/third_party/build/portaudio/Makefile
+++ b/third_party/build/portaudio/Makefile
@@ -6,7 +6,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT)
+export PORTAUDIO_LIB:=libportaudio-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PORTAUDIO_SONAME := libportaudio.$(SHLIB_SUFFIX)
+export PORTAUDIO_SHLIB := $(PORTAUDIO_SONAME).$(PJ_VERSION_MAJOR)
+endif
PORTAUDIO_OBJS += pa_allocation.o \
pa_converters.o \
@@ -43,17 +49,21 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libportaudio
+TARGETS := $(PORTAUDIO_LIB) $(PORTAUDIO_SONAME)
all: $(TARGETS)
dep: depend
distclean: realclean
-.PHONY: dep depend libportaudio clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(PORTAUDIO_LIB) $(PORTAUDIO_SONAME)
-libportaudio:
- $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB)
+libportaudio: $(PORTAUDIO_LIB)
+$(PORTAUDIO_SONAME): $(PORTAUDIO_LIB)
+$(PORTAUDIO_LIB) $(PORTAUDIO_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
diff --git a/third_party/build/resample/Makefile b/third_party/build/resample/Makefile
index 2deb8732..72ba28a1 100644
--- a/third_party/build/resample/Makefile
+++ b/third_party/build/resample/Makefile
@@ -21,9 +21,13 @@ export RESAMPLE_SRCDIR = ../../resample/src
export RESAMPLE_OBJS = resamplesubs.o
export RESAMPLE_CFLAGS = $(_CFLAGS)
-SHLIB_NAME := libresample.$(SHLIB_SUFFIX)
-export RESAMPLE_SHLIB := ../../lib/$(SHLIB_NAME).$(PJ_VERSION_MAJOR)
-export RESAMPLE_LIB := ../../lib/libresample-$(TARGET_NAME)$(LIBEXT)
+export RESAMPLE_LIB := libresample-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export RESAMPLE_SONAME := libresample.$(SHLIB_SUFFIX)
+export RESAMPLE_SHLIB := $(RESAMPLE_SONAME).$(PJ_VERSION_MAJOR)
+endif
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
###############################################################################
@@ -31,17 +35,12 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-ifeq ($(PJ_RESAMPLE_DLL),1)
-TARGETS := ../../lib/$(SHLIB_NAME)
-ifeq ($(SHLIB_SUFFIX),so)
-SHLIB_OPT := -Wl,-soname,$(SHLIB_NAME).$(PJ_VERSION_MAJOR)
+TARGETS := $(RESAMPLE_LIB) $(RESAMPLE_SONAME)
+ifneq ($(PJ_SHARED_LIBRARIES),)
else
-SHLIB_OPT :=
-endif
+ifneq ($(PJ_RESAMPLE_DLL),)
export RESAMPLE_CFLAGS := -fPIC $(RESAMPLE_CFLAGS)
-export RESAMPLE_LDFLAGS := -shared $(SHLIB_OPT) $(RESAMPLE_LDFLAGS)
-else
-TARGETS := libresample
+endif
endif
all: $(TARGETS)
@@ -52,23 +51,21 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libresample clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(RESAMPLE_LIB) $(RESAMPLE_SONAME)
-libresample:
- $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(RESAMPLE_LIB)
+dep: depend
-../../lib/$(SHLIB_NAME): $(RESAMPLE_SHLIB)
- ln -s $(SHLIB_NAME).$(PJ_VERSION_MAJOR) $@
+libresample: $(RESAMPLE_LIB)
+$(RESAMPLE_SONAME): $(RESAMPLE_LIB)
+$(RESAMPLE_LIB) $(RESAMPLE_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
-$(RESAMPLE_SHLIB):
- $(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(RESAMPLE_SHLIB)
-
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@
realclean:
- $(subst @@,$(subst /,$(HOST_PSEP),../../lib/$(SHLIB_NAME)),$(HOST_RMR))
- $(subst @@,$(subst /,$(HOST_PSEP),$(RESAMPLE_SHLIB)),$(HOST_RMR))
$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@
depend:
diff --git a/third_party/build/speex/Makefile b/third_party/build/speex/Makefile
index d31166ea..7e5e6fd6 100644
--- a/third_party/build/speex/Makefile
+++ b/third_party/build/speex/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export SPEEX_LIB := ../../lib/libspeex-$(TARGET_NAME)$(LIBEXT)
+export SPEEX_LIB := libspeex-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export SPEEX_SONAME := libspeex.$(SHLIB_SUFFIX)
+export SPEEX_SHLIB := $(SPEEX_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -44,7 +50,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libspeex
+TARGETS := $(SPEEX_LIB) $(SPEEX_SONAME)
all: $(TARGETS)
@@ -54,10 +60,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libspeex clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(SPEEX_LIB) $(SPEEX_SONAME)
-libspeex:
- $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(SPEEX_LIB)
+libspeex: $(SPEEX_LIB)
+$(SPEEX_SONAME): $(SPEEX_LIB)
+$(SPEEX_LIB) $(SPEEX_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $@
diff --git a/third_party/build/srtp/Makefile b/third_party/build/srtp/Makefile
index 17cb4217..9538f0bb 100644
--- a/third_party/build/srtp/Makefile
+++ b/third_party/build/srtp/Makefile
@@ -5,7 +5,13 @@ export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
-export SRTP_LIB := ../../lib/libsrtp-$(TARGET_NAME)$(LIBEXT)
+export SRTP_LIB := libsrtp-$(TARGET_NAME)$(LIBEXT)
+
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export SRTP_SONAME := libsrtp.$(SHLIB_SUFFIX)
+export SRTP_SHLIB := $(SRTP_SONAME).$(PJ_VERSION_MAJOR)
+endif
###############################################################################
# Gather all flags.
@@ -57,7 +63,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
-TARGETS := libsrtp
+TARGETS := $(SRTP_LIB) $(SRTP_SONAME)
all: $(TARGETS)
@@ -67,10 +73,14 @@ doc:
dep: depend
distclean: realclean
-.PHONY: dep depend libsrtp clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(SRTP_LIB) $(SRTP_SONAME)
-libsrtp:
- $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(SRTP_LIB)
+libsrtp: $(SRTP_LIB)
+$(SRTP_SONAME): $(SRTP_LIB)
+$(SRTP_LIB) $(SRTP_SONAME):
+ $(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
clean print_lib:
$(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $@