./configure options of note
These are options passed to the
Code Block |
---|
./configure |
command after calling
Code Block |
---|
autoreconf |
but before calling
Code Block |
---|
make build |
...
Environment Tips
- Send the build output to a different directory than the source code. This has 3 advantages: easy to start over, easy to see source changes, allows for multiple sets of build settings. To direct output to different directory, simple run ./configure script from another directory.
- This is handy when you want to mass delete all build output when you want to start over. Its also handy for creating multiple build with differnent configuration
mkdirPanel Code Block title Example: mkdir my-build-output
cd my-build-output
../configure
- To see all configuration options, run the following command, it can be quite overwhelming! and unfort. quite redundant
Panel --help=recursive
- If you're not going to read the C++ documentation, this will speed things up
Panel --disable-doxygen
- If you are not interested in openfire support
--disable-openfireUsed ccache when same rebuilding source tree often. For CentOS or Redhat install ccache rpm from dag wiers repository at: http://dag.wieers.com/packages/ccache/. For Fedora usePanel sudo yum install ccache
. To enable ccache, add the following settings to your environment before running anymake
targetsCode Block export CC="/usr/bin/ccache gcc" export CXX="/usr/bin/ccache g++"
- After running
autoreconf -if
once, subsequent times you can just runautoreconf
to speed things up a bit. - If you edit a Makefile.am, you may not have to re-run
autoreconf
orconfigure
. Built into the Makefile is the ability to regenerate itself, simply run your target as you normally would. If you make a change that is of improper syntax, you will have to rerunautoreconf
andconfigure
- If you want to rerun ./configure command with the same arguments, you can just run
./config.status --recheck && ./config.status
./configure
Tips
./configure
script run as part of the build proccess is used to define build settings and enable or disable options. Here are some useful settings and modes of operation you may find useful.
- If you have installed the openfire RPM in a non standard location (i.e. other than /opt/openfire) :
Handy when you want server to run as the user building the source so you can debug easier and gdb/ddd will find source automaticallyPanelcode OPENFIRE_HOME=path-to-openfire
Panel SIPXPBXUSER=`whoami`
- If you plan to install multiple builds, you can direct the installation to a directory other than
by adding this switch. You can use any directory nameCode Block /usr/local/sipx
Panelcode --prefix=/opt/sipx
- If you want CDR support, add the following option. (Requires ruby and development tools like gem and rake)
Panelcode --enable-cdr
- To speed up
step, this can decrease the time by 40%. You can use any file nameCode Block configure
After runningPanelcode Code Block --cache-file=/tmp/ac-cache-file
- If you change Makefile.in in the top directory you can just run this command to regenerate Makefile
Panel --no-recursion
- What is also good for people doing builds in the same directory often, is to use ccache. For example for centos or redhat you would install the ccache rpm from dag wiers repository at: http://dag.wieers.com/packages/ccache/, on FC try
Panel sudo yum install ccache
- and than add the following settings to your environment:
export CC="/usr/bin/ccache gcc"
export CXX="/usr/bin/ccache g++"
- and than add the following settings to your environment:
autotools tips of note
once, subsequent times you can just runautoreconf -if
to speed things up a bitCode Block autoreconf
panel
subsequently if you make a change to any configure.ac or autoconf macroautoreconf -if
Panel autoreconf
- To re-run a
script from the build target directory. (Thanks to Damian K. for finding this one.)Code Block configure
Panel ./config.status --recheck && ./config.status
make options of note
...
Panel |
---|
make recurse TARGETS="all install" |
...
Panel |
---|
make PROJECTS="sipXregistry sipXvxml" |
...
Panel |
---|
make PROJECTS_ORDERED="sipXregistry sipXvxml" |
...
make
Tips
- To supress some (but not nearly all) extraneous output
Panel make -s
- To list all the projects in order that they would build
Panel make list
- To make rpms. NOTE. This will use sudo to install RPMs as it builds them. This is an unfortunate necessity of how we've decoupled each project
Panel make rpm
- If you edit a Makefile.am, you may not have to re-run
orCode Block autoreconf
. Built into the Makefile is the ability to regenerate itself, simply run your target as you normally would. If you make a change that is of improper syntax, you will have to rerunCode Block configure
andCode Block autoreconf
configureRunning make with no targets will return useful list of targets. This is useful if you're unfamiliar with building sipXecs or if you often forget a target name or exact syntax.Code Block
Troubleshooting
- If autoreconf produces error messages containing symbols that contain "CXX", you probably don't have the autoconfigure support for C++ sources installed. This may mean you need to install the C++ support for your distro, or that your installed autoconfigure needs updating.
- If your build reports errors on named related tests, you do not have the nameserver running or your nameserver is mis-configured. In this case edit out the offending tests.
- If you are running on older harware some of the timer related tests may report errors. Ignore these errors.
- Keep your build environment clean. It is best to not have the sipx*devel tools installed on the machine ( or virtual machine file system ) where you want to build your source code. You can pick up stale libraries and includes that can drive you up the wall. If you are building RPMS, note that RPMS are also installed when you build them. You can list all the installed RPMS using rpm -q -all.