diff options
Diffstat (limited to 'build_tools')
-rw-r--r-- | build_tools/cflags-devmode.xml | 17 | ||||
-rw-r--r-- | build_tools/cflags.xml | 21 | ||||
-rw-r--r-- | build_tools/embed_modules.xml | 26 | ||||
-rw-r--r-- | build_tools/get_makeopts | 3 | ||||
-rw-r--r-- | build_tools/get_moduleinfo | 3 | ||||
-rwxr-xr-x | build_tools/make_build_h | 20 | ||||
-rwxr-xr-x | build_tools/make_buildopts_h | 29 | ||||
-rwxr-xr-x | build_tools/make_defaults_h | 26 | ||||
-rwxr-xr-x | build_tools/make_sample_voicemail | 25 | ||||
-rwxr-xr-x | build_tools/make_version | 83 | ||||
-rwxr-xr-x | build_tools/make_version_h | 25 | ||||
-rw-r--r-- | build_tools/menuselect-deps.in | 41 | ||||
-rwxr-xr-x | build_tools/mkpkgconfig | 50 | ||||
-rwxr-xr-x | build_tools/prep_tarball | 9 | ||||
-rwxr-xr-x | build_tools/strip_nonapi | 37 |
15 files changed, 415 insertions, 0 deletions
diff --git a/build_tools/cflags-devmode.xml b/build_tools/cflags-devmode.xml new file mode 100644 index 000000000..8be92e71f --- /dev/null +++ b/build_tools/cflags-devmode.xml @@ -0,0 +1,17 @@ + <category name="MENUSELECT_CFLAGS" displayname="Compiler Flags - Development"> + <member name="DEBUG_SCHEDULER" displayname="Enable Scheduler Debugging Output"> + </member> + <member name="DEBUG_THREADLOCALS" displayname="Enable Thread-Local-Storage Debugging"> + </member> + <member name="DETECT_DEADLOCKS" displayname="Detect Deadlocks"> + <depend>DEBUG_THREADS</depend> + </member> + <member name="DO_CRASH" displayname="Crash on fatal errors"> + </member> + <member name="DUMP_SCHEDULER" displayname="Dump Scheduler Contents for Debugging"> + </member> + <member name="MTX_PROFILE" displayname="Enable Code Profiling Using TSC Counters"> + </member> + <member name="TRACE_FRAMES" displayname="Trace Frame Allocations"> + </member> + </category> diff --git a/build_tools/cflags.xml b/build_tools/cflags.xml new file mode 100644 index 000000000..b027cb017 --- /dev/null +++ b/build_tools/cflags.xml @@ -0,0 +1,21 @@ + <category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" remove_on_change=".lastclean"> + <member name="DONT_OPTIMIZE" displayname="Disable Optimizations by the Compiler"> + </member> + <member name="DEBUG_CHANNEL_LOCKS" displayname="Debug Channel Locking"> + </member> + <member name="DEBUG_THREADS" displayname="Enable Thread Debugging"> + </member> + <member name="LOW_MEMORY" displayname="Optimize for Low Memory Usage"> + </member> + <member name="MALLOC_DEBUG" displayname="Keep Track of Memory Allocations"> + </member> + <member name="RADIO_RELAX" displayname="Relax DTMF for Radio Applications"> + </member> + <member name="STATIC_BUILD" displayname="Build static binaries"> + </member> + <member name="IAX_OLD_FIND" displayname="Use the old, slow method of searching for IAX callnos"> + </member> + <member name="LOADABLE_MODULES" displayname="Runtime module loading"> + <defaultenabled>yes</defaultenabled> + </member> + </category> diff --git a/build_tools/embed_modules.xml b/build_tools/embed_modules.xml new file mode 100644 index 000000000..54ae622ce --- /dev/null +++ b/build_tools/embed_modules.xml @@ -0,0 +1,26 @@ + <category name="MENUSELECT_EMBED" displayname="Module Embedding" positive_output="yes" remove_on_change="main/asterisk"> + <member name="apps" displayname="Applications" remove_on_change="apps/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="cdr" displayname="Call Detail Recording" remove_on_change="cdr/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="channels" displayname="Channels" remove_on_change="channels/*.o channels/misdn/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="codecs" displayname="Coders/Decoders" remove_on_change="codecs/*.o codecs/gsm/src/*.o codecs/ilbc/*.o codecs/lpc10/*.o codecs/gsm/lib/libgsm.a codecs/lpc10/liblpc10.a codecs/ilbc/libilbc.a"> + <depend>gnu_ld</depend> + </member> + <member name="formats" displayname="File Formats" remove_on_change="formats/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="funcs" displayname="Dialplan Functions" remove_on_change="funcs/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="pbx" displayname="PBX Functionality" remove_on_change="pbx/*.o pbx/ael/*.o"> + <depend>gnu_ld</depend> + </member> + <member name="res" displayname="Resource Modules" remove_on_change="res/*.o res/snmp/*.o"> + <depend>gnu_ld</depend> + </member> + </category> diff --git a/build_tools/get_makeopts b/build_tools/get_makeopts new file mode 100644 index 000000000..e4cc782b4 --- /dev/null +++ b/build_tools/get_makeopts @@ -0,0 +1,3 @@ +/\/\*\*\* MAKEOPTS/ {printit=1; next} +/\*\*\*\// {if (printit) exit} +/.*/ {if (printit) print} diff --git a/build_tools/get_moduleinfo b/build_tools/get_moduleinfo new file mode 100644 index 000000000..92bc7e920 --- /dev/null +++ b/build_tools/get_moduleinfo @@ -0,0 +1,3 @@ +/\/\*\*\* MODULEINFO/ {printit=1; next} +/\*\*\*\// {if (printit) exit} +/.*/ {if (printit) print} diff --git a/build_tools/make_build_h b/build_tools/make_build_h new file mode 100755 index 000000000..b7dadfc33 --- /dev/null +++ b/build_tools/make_build_h @@ -0,0 +1,20 @@ +#!/bin/sh +HOSTNAME=`uname -n` +KERNEL=`uname -r` +MACHINE=`uname -m` +OS=`uname -s` +USER=`${ID} -un` +DATE=`date -u "+%Y-%m-%d %H:%M:%S"` +cat << END +/* + * build.h + * Automatically generated + */ +#define BUILD_HOSTNAME "${HOSTNAME}" +#define BUILD_KERNEL "${KERNEL}" +#define BUILD_MACHINE "${MACHINE}" +#define BUILD_OS "${OS}" +#define BUILD_DATE "${DATE} UTC" +#define BUILD_USER "${USER}" + +END diff --git a/build_tools/make_buildopts_h b/build_tools/make_buildopts_h new file mode 100755 index 000000000..531bb93a6 --- /dev/null +++ b/build_tools/make_buildopts_h @@ -0,0 +1,29 @@ +#!/bin/sh + +cat << END +/* + * buildopts.h + * Automatically generated + */ + +END +TMP=`${GREP} MENUSELECT_CFLAGS menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'` +for x in ${TMP}; do + echo "#define ${x} 1" +done +if ${GREP} AST_DEVMODE makeopts | ${GREP} -q yes +then + echo "#define AST_DEVMODE 1" + TMP="${TMP} AST_DEVMODE" +fi + +case ${OSARCH} in # actually we should check build_os +*BSD|mingw|darwin*) + BUILDSUM=`echo ${TMP} | md5 | cut -c1-32` + ;; +*) + BUILDSUM=`echo ${TMP} | md5sum | cut -c1-32` + ;; +esac + +echo "#define AST_BUILDOPT_SUM \"${BUILDSUM}\"" diff --git a/build_tools/make_defaults_h b/build_tools/make_defaults_h new file mode 100755 index 000000000..dfd3bc2a6 --- /dev/null +++ b/build_tools/make_defaults_h @@ -0,0 +1,26 @@ +#!/bin/sh +cat << END +/* + * defaults.h + * Automatically generated + */ +#define AST_CONFIG_DIR "${INSTALL_PATH}${ASTETCDIR}" +#define AST_RUN_DIR "${INSTALL_PATH}${ASTVARRUNDIR}" +#define AST_SOCKET "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.ctl" +#define AST_PID "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.pid" +#define AST_MODULE_DIR "${INSTALL_PATH}${MODULES_DIR}" +#define AST_SPOOL_DIR "${INSTALL_PATH}${ASTSPOOLDIR}" +#define AST_VAR_DIR "${INSTALL_PATH}${ASTVARLIBDIR}" +#define AST_DATA_DIR "${INSTALL_PATH}${ASTDATADIR}" +#define AST_LOG_DIR "${INSTALL_PATH}${ASTLOGDIR}" +#define AST_AGI_DIR "${INSTALL_PATH}${AGI_DIR}" +#define AST_KEY_DIR "${INSTALL_PATH}${ASTDATADIR}/keys" +#define AST_DB "${INSTALL_PATH}${ASTVARLIBDIR}/astdb" +#define AST_TMP_DIR "${INSTALL_PATH}${ASTSPOOLDIR}/tmp" + +#define AST_CONFIG_FILE "${INSTALL_PATH}${ASTCONFPATH}" + +#define AST_SOUNDS "${INSTALL_PATH}${ASTDATADIR}/sounds" +#define AST_IMAGES "${INSTALL_PATH}${ASTDATADIR}/images" + +END diff --git a/build_tools/make_sample_voicemail b/build_tools/make_sample_voicemail new file mode 100755 index 000000000..485a01d37 --- /dev/null +++ b/build_tools/make_sample_voicemail @@ -0,0 +1,25 @@ +#!/bin/sh -e + +for lang in / /fr/ /es/ + do + for format in ulaw alaw wav gsm g729 g722 + do + [ ! -f ${1}/sounds${lang}vm-isunavail.${format} ] && continue + + mkdir -p ${2}/voicemail/default/1234${lang} + + : > ${2}/voicemail/default/1234${lang}unavail.${format} + + for file in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isunavail + do + cat ${1}/sounds${lang}${file}.${format} >> ${2}/voicemail/default/1234${lang}unavail.${format} + done + + : > ${2}/voicemail/default/1234${lang}busy.${format} + + for file in vm-theperson digits/1 digits/2 digits/3 digits/4 vm-isonphone + do + cat ${1}/sounds${lang}${file}.${format} >> ${2}/voicemail/default/1234${lang}busy.${format} + done + done +done diff --git a/build_tools/make_version b/build_tools/make_version new file mode 100755 index 000000000..e55727f40 --- /dev/null +++ b/build_tools/make_version @@ -0,0 +1,83 @@ +#!/bin/sh + +if [ -f ${1}/.version ]; then + cat ${1}/.version +elif [ -d .svn ]; then + PARTS=`LANG=C svn info ${1} | ${GREP} URL | ${AWK} '{print $2;}' | sed -e 's:^.*/svn/asterisk/::' | sed -e 's:/: :g'` + BRANCH=0 + TEAM=0 + TAG=0 + + REV=`svnversion -c ${1} | cut -d: -f2` + + BASE=`LANG=C svn pg svnmerge-integrated ${1} | cut -d: -f1` + + if [ "${PARTS}" = "trunk" ] + then + echo SVN-trunk-r${REV} + exit 0 + fi + + for PART in $PARTS + do + if [ ${TAG} != 0 ] + then + if [ "${PART}" = "autotag_for_be" ] ; then + continue + fi + if [ "${PART}" = "autotag_for_sx00i" ] ; then + continue + fi + RESULT="${PART}" + break + fi + + if [ ${BRANCH} != 0 ] + then + if [ -z ${RESULT} ] + then + RESULT="${PART}" + else + RESULT="${RESULT}-${PART}" + fi + break + fi + + if [ ${TEAM} != 0 ] + then + if [ -z ${RESULT} ] + then + RESULT="${PART}" + else + RESULT="${RESULT}-${PART}" + fi + continue + fi + + if [ "${PART}" = "branches" ] + then + BRANCH=1 + RESULT="branch" + continue + fi + + if [ "${PART}" = "tags" ] + then + TAG=1 + continue + fi + + if [ "${PART}" = "team" ] + then + TEAM=1 + continue + fi + done + + if [ ${TAG} != 0 ] + then + echo ${RESULT} + else + echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}} + fi +fi diff --git a/build_tools/make_version_h b/build_tools/make_version_h new file mode 100755 index 000000000..0b651ad00 --- /dev/null +++ b/build_tools/make_version_h @@ -0,0 +1,25 @@ +#!/bin/sh +if [ ! -f ../.flavor ]; then + cat << END +/* + * version.h + * Automatically generated + */ +#define ASTERISK_VERSION "${ASTERISKVERSION}" +#define ASTERISK_VERSION_NUM ${ASTERISKVERSIONNUM} + +END +else + aadkver=`cat ../.version` + aadkflavor=`cat ../.flavor` + cat << END +/* + * version.h + * Automatically generated + */ +#define ASTERISK_VERSION "${ASTERISKVERSION} (${aadkflavor} ${aadkver})" +#define ASTERISK_VERSION_NUM ${ASTERISKVERSIONNUM} + +END +fi + diff --git a/build_tools/menuselect-deps.in b/build_tools/menuselect-deps.in new file mode 100644 index 000000000..2613ea90e --- /dev/null +++ b/build_tools/menuselect-deps.in @@ -0,0 +1,41 @@ +ASOUND=@PBX_ALSA@ +CURL=@PBX_CURL@ +DAHDI=@PBX_DAHDI@ +DAHDI_TRANSCODE=@PBX_DAHDI_TRANSCODE@ +FREETDS=@PBX_FREETDS@ +GSM=@PBX_GSM@ +GTK=@PBX_GTK@ +GTK2=@PBX_GTK2@ +H323=@PBX_H323@ +OPENH323=@PBX_OPENH323@ +IKSEMEL=@PBX_IKSEMEL@ +IMAP_TK=@PBX_IMAP_TK@ +IXJUSER=@PBX_IXJUSER@ +KDE=@PBX_KDE@ +LTDL=@PBX_LTDL@ +NBS=@PBX_NBS@ +NETSNMP=@PBX_NETSNMP@ +NEWT=@PBX_NEWT@ +OGG=@PBX_OGG@ +OSPTK=@PBX_OSPTK@ +OSSAUDIO=@PBX_OSS@ +PGSQL=@PBX_PGSQL@ +POPT=@PBX_POPT@ +PRI=@PBX_PRI@ +RADIUS=@PBX_RADIUS@ +SPEEX=@PBX_SPEEX@ +SPEEXDSP=@PBX_SPEEXDSP@ +SPEEX_PREPROCESS=@PBX_SPEEX_PREPROCESS@ +SQLITE=@PBX_SQLITE@ +SSL=@PBX_OPENSSL@ +TONEZONE=@PBX_TONEZONE@ +USB=@PBX_USB@ +UNIXODBC=@PBX_UNIXODBC@ +VORBIS=@PBX_VORBIS@ +VPBAPI=@PBX_VPB@ +ZAPTEL=@PBX_ZAPTEL@ +ZLIB=@PBX_ZLIB@ +ISDNNET=@PBX_ISDNNET@ +MISDN=@PBX_MISDN@ +SUPPSERV=@PBX_SUPPSERV@ +GNU_LD=@GNU_LD@ diff --git a/build_tools/mkpkgconfig b/build_tools/mkpkgconfig new file mode 100755 index 000000000..ceea7ebc0 --- /dev/null +++ b/build_tools/mkpkgconfig @@ -0,0 +1,50 @@ +#!/bin/bash +PPATH=$1 +## Make sure we were called from Makefile + +if [ "x$ASTERISKVERSIONNUM" = "x" ]; then + echo " ** Do not call this script directly" + exit +fi + +## Create a pkgconfig spec file for 3rd party modules (pkg-config asterisk --cflags) + +if [ ! -d $PPATH ]; then + exit +fi + +#Solaris (and some others) don't have sed -r. perl -p is equivalent +if [[ `echo "xxx" | sed -r 's/x/y/g' 2>/dev/null | ${GREP} -c "yyy"` != 0 ]]; then + EXTREGEX="sed -r -e" +else + EXTREGEX="perl -pe" +fi + +## Clean out CFLAGS for the spec file. + +LOCAL_CFLAGS=`echo $CFLAGS | ${EXTREGEX} 's/\s*-pipe\s*//g' | ${EXTREGEX} 's/-[Wmp]\S*\s*//g' | \ + ${EXTREGEX} 's/-I(include|\.\.\/include) //g' | \ + ${EXTREGEX} 's/-DINSTALL_PREFIX=\S* //g' | \ + ${EXTREGEX} 's/-DASTERISK_VERSION=\S* //g' | \ + ${EXTREGEX} 's/-DAST(ETCDIR|LIBDIR|VARLIBDIR|VARRUNDIR|SPOOLDIR|LOGDIR|CONFPATH|MODDIR|AGIDIR)=\S* //g'` + + +cat <<EOF > $PPATH/asterisk.pc +install_prefix=$INSTALL_PREFIX +version_number=$ASTERISKVERSIONNUM +etcdir=$ASTETCDIR +libdir=$ASTLIBDIR +varlibdir=$ASTVARLIBDIR +varrundir=$ASTVARRUNDIR +spooldir=$ASTSPOOLDIR +logdir=$ASTLOGDIR +confpath=$ASTCONFPATH +moddir=$MODULES_DIR +agidir=$AGI_DIR + +Name: asterisk +Description: Open Source PBX and telephony toolkit +Version: $ASTERISKVERSION +Libs: $LIBS +Cflags: $LOCAL_CFLAGS +EOF diff --git a/build_tools/prep_tarball b/build_tools/prep_tarball new file mode 100755 index 000000000..b99c4c8f0 --- /dev/null +++ b/build_tools/prep_tarball @@ -0,0 +1,9 @@ +#!/bin/sh -e + +# This script will be executed by the 'mkrelease' script to do any tasks +# necessary during tarball creation of this project. +# +# It will be executed from the top-level directory of the project. + +make -C sounds MENUSELECT_CORE_SOUNDS=CORE-SOUNDS-EN-GSM MENUSELECT_MOH=MOH-FREEPLAY-WAV WGET=wget DOWNLOAD=wget all +make AWK=awk GREP=grep menuselect-tree diff --git a/build_tools/strip_nonapi b/build_tools/strip_nonapi new file mode 100755 index 000000000..ade30c978 --- /dev/null +++ b/build_tools/strip_nonapi @@ -0,0 +1,37 @@ +#!/bin/sh -e + +# This script is designed to remove all non-API global symbols from an object +# file. The only global symbols that should be retained are those that belong +# to the official namespace. Unfortunately doing this is platform-specific, as +# the object file manipulation tools are not consistent across platforms. +# +# On platforms where this script does not know what to do, the object file +# will retain non-API global symbols, and this may have unpleasant side effects. +# +# Prefixes that belong to the official namespace are: +# ast_ +# _ast_ +# __ast_ +# astman_ +# pbx_ + +case "${PROC}" in + powerpc64) + TEXTSYM=" D " + ;; + *) + TEXTSYM=" T " + ;; +esac + +FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_" + +case "${OSARCH}" in + linux-gnu) + nm ${1} | ${GREP} -e "$TEXTSYM" | cut -d" " -f3 | ${FILTER} > striplist + sed -e "s/^/-N /" striplist | xargs -n 40 ${STRIP} ${1} + rm -f striplist + ;; + *) + ;; +esac |