aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/build_tools
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/build_tools')
-rw-r--r--trunk/build_tools/cflags.xml62
-rw-r--r--trunk/build_tools/embed_modules.xml26
-rw-r--r--trunk/build_tools/get_makeopts3
-rw-r--r--trunk/build_tools/get_moduleinfo3
-rwxr-xr-xtrunk/build_tools/make_build_h20
-rwxr-xr-xtrunk/build_tools/make_buildopts_h37
-rwxr-xr-xtrunk/build_tools/make_defaults_h28
-rwxr-xr-xtrunk/build_tools/make_linker_eo_script27
-rwxr-xr-xtrunk/build_tools/make_sample_voicemail25
-rwxr-xr-xtrunk/build_tools/make_version66
-rwxr-xr-xtrunk/build_tools/make_version_c33
-rw-r--r--trunk/build_tools/menuselect-deps.in47
-rwxr-xr-xtrunk/build_tools/mkpkgconfig50
-rwxr-xr-xtrunk/build_tools/prep_tarball13
-rwxr-xr-xtrunk/build_tools/strip_nonapi29
15 files changed, 469 insertions, 0 deletions
diff --git a/trunk/build_tools/cflags.xml b/trunk/build_tools/cflags.xml
new file mode 100644
index 000000000..fa69c1263
--- /dev/null
+++ b/trunk/build_tools/cflags.xml
@@ -0,0 +1,62 @@
+ <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_THREADS" displayname="Enable Thread Debugging">
+ </member>
+ <member name="STATIC_BUILD" displayname="Build static binaries">
+ </member>
+ <member name="LOADABLE_MODULES" displayname="Runtime module loading">
+ <defaultenabled>yes</defaultenabled>
+ </member>
+ <member name="LOW_MEMORY" displayname="Optimize for Low Memory Usage">
+ </member>
+ <member name="LOTS_OF_SPANS" displayname="More than 32 Zaptel spans">
+ </member>
+ <member name="MTX_PROFILE" displayname="Enable Code Profiling Using TSC Counters">
+ </member>
+ <member name="RADIO_RELAX" displayname="Relax DTMF for Radio Applications">
+ </member>
+ <member name="G711_NEW_ALGORITHM" displayname="Use the NEW ulaw/alaw codecs (slower, but cleaner)">
+ <defaultenabled>no</defaultenabled>
+ </member>
+ <member name="G711_REDUCED_BRANCHING" displayname="New ulaw/alaw codec, reduced branching (might help it run faster in some architectures)">
+ <defaultenabled>yes</defaultenabled>
+ <depend>G711_NEW_ALGORITHM</depend>
+ </member>
+ <member name="TEST_CODING_TABLES" displayname="New ulaw/alaw codec, turn on table tests on init">
+ <depend>G711_NEW_ALGORITHM</depend>
+ </member>
+ <member name="TEST_TANDEM_TRANSCODING" displayname="New ulaw/alaw codec, turn on transcoding tests on init">
+ <depend>G711_NEW_ALGORITHM</depend>
+ </member>
+ <member name="DEBUG_CHANNEL_LOCKS" displayname="Debug Channel Locking">
+ </member>
+ <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="DUMP_SCHEDULER" displayname="Dump Scheduler Contents for Debugging">
+ </member>
+ <member name="MALLOC_DEBUG" displayname="Keep Track of Memory Allocations">
+ </member>
+ <member name="TRACE_FRAMES" displayname="Trace Frame Allocations">
+ </member>
+ <member name="DO_CRASH" displayname="Crash on fatal errors">
+ </member>
+ <member name="THREAD_CRASH" displayname="Crash on mutex errors">
+ </member>
+ <member name="BUSYDETECT_TONEONLY" displayname="Enable additional comparision of only the tone duration not the silence part">
+ <conflict>BUSYDETECT_COMPARE_TONE_AND_SILENCE</conflict>
+ <defaultenabled>no</defaultenabled>
+ </member>
+ <member name="BUSYDETECT_COMPARE_TONE_AND_SILENCE" displayname="Assume that tone and silence have the same duration">
+ <conflict>BUSYDETECT_TONEONLY</conflict>
+ <defaultenabled>no</defaultenabled>
+ </member>
+ <member name="BUSYDETECT_DEBUG" displayname="Enable additional busy detection debugging">
+ <defaultenabled>no</defaultenabled>
+ </member>
+ </category>
diff --git a/trunk/build_tools/embed_modules.xml b/trunk/build_tools/embed_modules.xml
new file mode 100644
index 000000000..054e1dfad
--- /dev/null
+++ b/trunk/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 codecs/g722/libg722.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/trunk/build_tools/get_makeopts b/trunk/build_tools/get_makeopts
new file mode 100644
index 000000000..e63622afd
--- /dev/null
+++ b/trunk/build_tools/get_makeopts
@@ -0,0 +1,3 @@
+/\/\*\*\* MAKEOPTS/ {printit=1; next}
+/\*\*\*\// {if (printit) exit}
+// {if (printit) print}
diff --git a/trunk/build_tools/get_moduleinfo b/trunk/build_tools/get_moduleinfo
new file mode 100644
index 000000000..d17c28e06
--- /dev/null
+++ b/trunk/build_tools/get_moduleinfo
@@ -0,0 +1,3 @@
+/\/\*\*\* MODULEINFO/ {printit=1; next}
+/\*\*\*\// {if (printit) exit}
+// {if (printit) print}
diff --git a/trunk/build_tools/make_build_h b/trunk/build_tools/make_build_h
new file mode 100755
index 000000000..b7dadfc33
--- /dev/null
+++ b/trunk/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/trunk/build_tools/make_buildopts_h b/trunk/build_tools/make_buildopts_h
new file mode 100755
index 000000000..ace404555
--- /dev/null
+++ b/trunk/build_tools/make_buildopts_h
@@ -0,0 +1,37 @@
+#!/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
+TMP=`${GREP} MENUSELECT_BUILD_DEPS menuselect.makeopts | sed 's/MENUSELECT_BUILD_DEPS\=//g'`
+for x in ${TMP}; do
+ x2=`echo ${x} | tr a-z A-Z`
+ echo "#define AST_MODULE_${x2} 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`
+ ;;
+SunOS)
+ BUILDSUM=`echo ${TMP} | digest -a md5 | cut -c1-32`
+ ;;
+*)
+ BUILDSUM=`echo ${TMP} | md5sum | cut -c1-32`
+ ;;
+esac
+
+echo "#define AST_BUILDOPT_SUM \"${BUILDSUM}\""
diff --git a/trunk/build_tools/make_defaults_h b/trunk/build_tools/make_defaults_h
new file mode 100755
index 000000000..0aae60804
--- /dev/null
+++ b/trunk/build_tools/make_defaults_h
@@ -0,0 +1,28 @@
+#!/bin/sh
+cat << END
+/*
+ * defaults.h
+ * Automatically generated from build options,
+ * only used in main/asterisk.c
+ */
+#define DEFAULT_CONFIG_FILE "${INSTALL_PATH}${ASTCONFPATH}"
+
+#define DEFAULT_CONFIG_DIR "${INSTALL_PATH}${ASTETCDIR}"
+#define DEFAULT_MODULE_DIR "${INSTALL_PATH}${MODULES_DIR}"
+#define DEFAULT_AGI_DIR "${INSTALL_PATH}${AGI_DIR}"
+#define DEFAULT_LOG_DIR "${INSTALL_PATH}${ASTLOGDIR}"
+
+#define DEFAULT_RUN_DIR "${INSTALL_PATH}${ASTVARRUNDIR}"
+#define DEFAULT_SOCKET "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.ctl"
+#define DEFAULT_PID "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.pid"
+
+#define DEFAULT_VAR_DIR "${INSTALL_PATH}${ASTVARLIBDIR}"
+#define DEFAULT_DB "${INSTALL_PATH}${ASTVARLIBDIR}/astdb"
+
+#define DEFAULT_DATA_DIR "${INSTALL_PATH}${ASTDATADIR}"
+#define DEFAULT_KEY_DIR "${INSTALL_PATH}${ASTDATADIR}/keys"
+
+#define DEFAULT_SPOOL_DIR "${INSTALL_PATH}${ASTSPOOLDIR}"
+#define DEFAULT_TMP_DIR "${INSTALL_PATH}${ASTSPOOLDIR}/tmp"
+
+END
diff --git a/trunk/build_tools/make_linker_eo_script b/trunk/build_tools/make_linker_eo_script
new file mode 100755
index 000000000..39456c058
--- /dev/null
+++ b/trunk/build_tools/make_linker_eo_script
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+cat << EOF
+SECTIONS {
+.text : { *(.text) }
+.data : { __${1}_data_start = . ; *(.data) __${1}_data_end = . ;}
+.rodata : { *(.rodata*) }
+.bss : { __${1}_bss_start = . ; *(.bss) __${1}_bss_end = . ;}
+.debug_abbrev : { *(.debug_abbrev) }
+.debug_info : { *(.debug_info) }
+.debug_line : { *(.debug_line) }
+.debug_macinfo : { *(.debug_macinfo) }
+.dtors : { *(.dtors) }
+.ctors : { *(.ctors) }
+.data.rel.local : { *(.data.rel.local) }
+.data.rel.ro.local : { *(.data.rel.ro.local) }
+.debug_frame : { *(.debug_frame) }
+.eh_frame : { *(.eh_frame) }
+.debug_loc : { *(.debug_loc) }
+.debug_pubname : { *(.debug_pubname) }
+.debug_aranges : { *(.debug_aranges) }
+.debug_ranges : { *(.debug_ranges) }
+.debug_str : { *(.debug_str) }
+.comment : { *(.comment) }
+.note.GNU-stack : { *(.note.GNU-stack) }
+}
+EOF
diff --git a/trunk/build_tools/make_sample_voicemail b/trunk/build_tools/make_sample_voicemail
new file mode 100755
index 000000000..272cf379a
--- /dev/null
+++ b/trunk/build_tools/make_sample_voicemail
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+for lang in /en/ /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/trunk/build_tools/make_version b/trunk/build_tools/make_version
new file mode 100755
index 000000000..4e9901dc5
--- /dev/null
+++ b/trunk/build_tools/make_version
@@ -0,0 +1,66 @@
+#!/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
+ 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/trunk/build_tools/make_version_c b/trunk/build_tools/make_version_c
new file mode 100755
index 000000000..291290ddd
--- /dev/null
+++ b/trunk/build_tools/make_version_c
@@ -0,0 +1,33 @@
+#!/bin/sh
+if [ ! -f ../.flavor ]; then
+ EXTRA=""
+else
+ aadkver=`cat ../.version`
+ aadkflavor=`cat ../.flavor`
+ EXTRA=" (${aadkflavor} ${aadkver})"
+fi
+cat << END
+/*
+ * version.c
+ * Automatically generated
+ */
+
+#include "asterisk.h"
+
+#include "asterisk/version.h"
+
+static const char asterisk_version[] = "${ASTERISKVERSION}${EXTRA}";
+
+static const char asterisk_version_num[] = "${ASTERISKVERSIONNUM}";
+
+const char *ast_get_version(void)
+{
+ return asterisk_version;
+}
+
+const char *ast_get_version_num(void)
+{
+ return asterisk_version_num;
+}
+
+END
diff --git a/trunk/build_tools/menuselect-deps.in b/trunk/build_tools/menuselect-deps.in
new file mode 100644
index 000000000..f29ab8920
--- /dev/null
+++ b/trunk/build_tools/menuselect-deps.in
@@ -0,0 +1,47 @@
+ASOUND=@PBX_ALSA@
+CRYPTO=@PBX_CRYPTO@
+CURL=@PBX_CURL@
+FREETDS=@PBX_FREETDS@
+GNU_LD=@GNU_LD@
+GSM=@PBX_GSM@
+GTK2=@PBX_GTK2@
+GTK=@PBX_GTK@
+H323=@PBX_H323@
+ICONV=@PBX_ICONV@
+IKSEMEL=@PBX_IKSEMEL@
+IMAP_TK=@PBX_IMAP_TK@
+ISDNNET=@PBX_ISDNNET@
+IXJUSER=@PBX_IXJUSER@
+JACK=@PBX_JACK@
+LTDL=@PBX_LTDL@
+LUA=@PBX_LUA@
+MISDN=@PBX_MISDN@
+NBS=@PBX_NBS@
+NETSNMP=@PBX_NETSNMP@
+NEWT=@PBX_NEWT@
+OGG=@PBX_OGG@
+OPENH323=@PBX_OPENH323@
+OSPTK=@PBX_OSPTK@
+OSSAUDIO=@PBX_OSS@
+PGSQL=@PBX_PGSQL@
+POPT=@PBX_POPT@
+PORTAUDIO=@PBX_PORTAUDIO@
+PRI=@PBX_PRI@
+RADIUS=@PBX_RADIUS@
+SPEEX=@PBX_SPEEX@
+SPEEXDSP=@PBX_SPEEXDSP@
+SQLITE3=@PBX_SQLITE3@
+SQLITE=@PBX_SQLITE@
+SS7=@PBX_SS7@
+SSL=@PBX_OPENSSL@
+SUPPSERV=@PBX_SUPPSERV@
+TONEZONE=@PBX_TONEZONE@
+UNIXODBC=@PBX_UNIXODBC@
+USB=@PBX_USB@
+VORBIS=@PBX_VORBIS@
+VPBAPI=@PBX_VPB@
+WINARCH=@WINARCH@
+ZAPTEL=@PBX_ZAPTEL@
+ZAPTEL_TRANSCODE=@PBX_ZAPTEL_TRANSCODE@
+ZAPTEL_VLDTMF=@PBX_ZAPTEL_VLDTMF@
+ZLIB=@PBX_ZLIB@
diff --git a/trunk/build_tools/mkpkgconfig b/trunk/build_tools/mkpkgconfig
new file mode 100755
index 000000000..ceea7ebc0
--- /dev/null
+++ b/trunk/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/trunk/build_tools/prep_tarball b/trunk/build_tools/prep_tarball
new file mode 100755
index 000000000..5877a8a7b
--- /dev/null
+++ b/trunk/build_tools/prep_tarball
@@ -0,0 +1,13 @@
+#!/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
+
+VERSION=`cat .version`
+sed -i -e "s/ASTERISKVERSION/${VERSION}/" doc/tex/asterisk.tex
+cd doc/tex && rubber --pdf asterisk.tex && latex2html asterisk.tex
diff --git a/trunk/build_tools/strip_nonapi b/trunk/build_tools/strip_nonapi
new file mode 100755
index 000000000..8a8d06fcc
--- /dev/null
+++ b/trunk/build_tools/strip_nonapi
@@ -0,0 +1,29 @@
+#!/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_
+# resample_
+
+FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_ -e ^resample_"
+
+case "${OSARCH}" in
+ linux-gnu|FreeBSD)
+ nm ${1} | ${GREP} -e " T " | cut -d" " -f3 | ${FILTER} > striplist
+ sed -e "s/^/-N /" striplist | xargs ${STRIP} ${1}
+ rm -f striplist
+ ;;
+ *)
+ ;;
+esac