aboutsummaryrefslogtreecommitdiffstats
path: root/build_tools
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools')
-rw-r--r--build_tools/cflags-devmode.xml17
-rw-r--r--build_tools/cflags.xml21
-rw-r--r--build_tools/embed_modules.xml26
-rw-r--r--build_tools/get_makeopts3
-rw-r--r--build_tools/get_moduleinfo3
-rwxr-xr-xbuild_tools/make_build_h20
-rwxr-xr-xbuild_tools/make_buildopts_h29
-rwxr-xr-xbuild_tools/make_defaults_h26
-rwxr-xr-xbuild_tools/make_sample_voicemail25
-rwxr-xr-xbuild_tools/make_version83
-rwxr-xr-xbuild_tools/make_version_h25
-rw-r--r--build_tools/menuselect-deps.in41
-rwxr-xr-xbuild_tools/mkpkgconfig50
-rwxr-xr-xbuild_tools/prep_tarball9
-rwxr-xr-xbuild_tools/strip_nonapi37
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