[Asterisk-code-review] build-system: Allow building with static pjproject (asterisk[13])

George Joseph asteriskteam at digium.com
Fri Feb 12 21:53:19 CST 2016


Hello Anonymous Coward #1000019, Joshua Colp,

I'd like you to reexamine a change.  Please visit

    https://gerrit.asterisk.org/2072

to look at the new patch set (#11).

Change subject: build-system: Allow building with static pjproject
......................................................................

build-system: Allow building with static pjproject

Background here:
http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html

>From CHANGES:
 * To help insure that Asterisk is compiled and run with the same known
   version of pjproject, a new option (--with-pjproject-bundled) has been
   added to ./configure.  When specified, the version of pjproject specified
   in third_party/versions.mak will be downloaded and configured.  When you
   make Asterisk, the build process will also automatically build pjproject
   and Asterisk will be statically linked to it.  Once a particular version
   of pjproject is configured and built, it won't be configured or built
   again unless you run a 'make distclean'.

   The default behavior remains building with the shared pjproject
   installation, if any.

Building:

   All you have to do is include the --with-pjproject-bundled option on
   the ./configure command line.  Everything else is automatic.

Behind the scenes:

   When bootstrap.sh is run, it automatically includes
   third_party/pjproject/configure.m4.  When configure is run with the new
   options, a macro in third_party/pjproject/configure.m4 does the initial
   download, patch and configure of pjproject based on the version in
   third_party/versions.mak and the options in
   third_party/pjproject/Makefile.rules.  pjproject is not compiled at this
   time, only configured.  When make is run in the top-level Asterisk source
   directory, it will automatically descend all the subdirectories in
   third_party just as it does for addons, apps, etc.  The top-level Makefile
   already makes sure that the 'main' directory is the last to build.
   When it does build, a new shared library (libasteriskpj) is created that
   links statically to the pjproject .a files and exports all their symbols.
   The asterisk binary links to that, just as it does with libasteriskssl.

Modules should continue to depend on pjproject if they use pjproject APIs
directly.  They should not care about the implementation.  No changes to any
res_pjsip modules were made.

Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
---
M CHANGES
M Makefile
M configure
M configure.ac
M include/asterisk/_private.h
M include/asterisk/autoconfig.h.in
M main/.gitignore
M main/Makefile
M main/asterisk.c
A main/libasteriskpj.c
M makeopts.in
A third_party/Makefile
A third_party/Makefile.rules
A third_party/pjproject/.gitignore
A third_party/pjproject/Makefile
A third_party/pjproject/Makefile.rules
A third_party/pjproject/apply_patches
A third_party/pjproject/configure.m4
A third_party/pjproject/patches/0000-config_site.patch
A third_party/pjproject/patches/0001-2.4.5-fix-for-tls-async-ops.patch
A third_party/pjproject/patches/0002-no_third_party.patch
A third_party/versions.mak
22 files changed, 1,016 insertions(+), 70 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/72/2072/11
-- 
To view, visit https://gerrit.asterisk.org/2072
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
Gerrit-PatchSet: 11
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Owner: George Joseph <george.joseph at fairview5.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: George Joseph <george.joseph at fairview5.com>
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>



More information about the asterisk-code-review mailing list