-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Build-System] Check requirements when generating tarballs.
- Loading branch information
Showing
3 changed files
with
204 additions
and
170 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
#!/bin/sh | ||
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*- | ||
|
||
check_ac_ver() { | ||
# autoconf 2.59 or newer | ||
ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;s/[- ].*//g;q'` | ||
if test -z "$ac_version"; then | ||
echo "build-requirements: autoconf not found." | ||
echo " You need autoconf version 2.59 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
fi | ||
if test `uname -s` = "OpenBSD" && test "$ac_version" = "2.62"; then | ||
echo "Autoconf 2.62 is broken on OpenBSD, please try another version" | ||
exit 1 | ||
fi | ||
IFS=_; set $ac_version; IFS=' ' | ||
ac_version=$1 | ||
IFS=.; set $ac_version; IFS=' ' | ||
if test "$1" = "2" -a "$2" -lt "59" || test "$1" -lt "2"; then | ||
echo "build-requirements: autoconf version $ac_version found." | ||
echo " You need autoconf version 2.59 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
else | ||
echo "build-requirements: autoconf version $ac_version (ok)" | ||
fi | ||
} | ||
|
||
check_am_ver() { | ||
# automake 1.7 or newer | ||
am_version=`${AUTOMAKE:-automake} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;s/[- ].*//g;q'` | ||
if test -z "$am_version"; then | ||
echo "build-requirements: automake not found." | ||
echo " You need automake version 1.7 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
fi | ||
IFS=_; set $am_version; IFS=' ' | ||
am_version=$1 | ||
IFS=.; set $am_version; IFS=' ' | ||
if test "$1" = "1" -a "$2" -lt "7"; then | ||
echo "build-requirements: automake version $am_version found." | ||
echo " You need automake version 1.7 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
else | ||
echo "build-requirements: automake version $am_version (ok)" | ||
fi | ||
} | ||
|
||
check_acl_ver() { | ||
# aclocal 1.7 or newer | ||
acl_version=`${ACLOCAL:-aclocal} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;s/[- ].*//g;q'` | ||
if test -z "$acl_version"; then | ||
echo "build-requirements: aclocal not found." | ||
echo " You need aclocal version 1.7 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
fi | ||
IFS=_; set $acl_version; IFS=' ' | ||
acl_version=$1 | ||
IFS=.; set $acl_version; IFS=' ' | ||
if test "$1" = "1" -a "$2" -lt "7"; then | ||
echo "build-requirements: aclocal version $acl_version found." | ||
echo " You need aclocal version 1.7 or newer installed" | ||
echo " to build FreeSWITCH from source." | ||
exit 1 | ||
else | ||
echo "build-requirements: aclocal version $acl_version (ok)" | ||
fi | ||
} | ||
|
||
check_lt_ver() { | ||
# Sample libtool --version outputs: | ||
# ltmain.sh (GNU libtool) 1.3.3 (1.385.2.181 1999/07/02 15:49:11) | ||
# ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a | ||
# output is multiline from 1.5 onwards | ||
|
||
# find APR PrintPath binary path | ||
for el in "${LIBDIR}/apr/build/PrintPath" \ | ||
"libs/apr/build/PrintPath" \ | ||
"../libs/apr/build/PrintPath" \ | ||
"../../libs/apr/build/PrintPath"; do | ||
if test -f "$el"; then | ||
PrintPathBin="$el" | ||
break | ||
fi | ||
done | ||
|
||
# Require libtool 1.4 or newer | ||
libtool=${LIBTOOL:-`${PrintPathBin} glibtool libtool libtool22 libtool15 libtool14`} | ||
lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` | ||
if test -z "$lt_pversion"; then | ||
echo "build-requirements: libtool not found." | ||
echo " You need libtool version 1.5.14 or newer to build FreeSWITCH from source." | ||
exit 1 | ||
fi | ||
lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'` | ||
IFS=.; set $lt_version; IFS=' ' | ||
lt_status="good" | ||
|
||
if test -z "$1"; then a=0 ; else a=$1;fi | ||
if test -z "$2"; then b=0 ; else b=$2;fi | ||
if test -z "$3"; then c=0 ; else c=$3;fi | ||
lt_major=$a | ||
|
||
if test "$a" -eq "2"; then | ||
lt_status="good" | ||
elif test "$a" -lt "2"; then | ||
if test "$b" -lt "5" -o "$b" = "5" -a "$c" -lt "14" ; then | ||
lt_status="bad" | ||
fi | ||
else | ||
lt_status="bad" | ||
fi | ||
if test $lt_status = "good"; then | ||
echo "build-requirements: libtool version $lt_pversion (ok)" | ||
else | ||
echo "build-requirements: libtool version $lt_pversion found." | ||
echo " You need libtool version 1.5.14 or newer to build FreeSWITCH from source." | ||
exit 1 | ||
fi | ||
} | ||
|
||
check_libtoolize() { | ||
# find APR PrintPath binary path | ||
for el in "${LIBDIR}/apr/build/PrintPath" \ | ||
"libs/apr/build/PrintPath" \ | ||
"../libs/apr/build/PrintPath" \ | ||
"../../libs/apr/build/PrintPath"; do | ||
if test -f "$el"; then | ||
PrintPathBin="$el" | ||
break | ||
fi | ||
done | ||
|
||
# check libtoolize availability | ||
if [ -n "${LIBTOOL}" ]; then | ||
libtoolize=${LIBTOOLIZE:-`dirname "${LIBTOOL}"`/libtoolize} | ||
else | ||
libtoolize=${LIBTOOLIZE:-`${PrintPathBin} glibtoolize libtoolize libtoolize22 libtoolize15 libtoolize14`} | ||
fi | ||
if [ "x$libtoolize" = "x" ]; then | ||
echo "libtoolize not found in path" | ||
exit 1 | ||
fi | ||
if [ ! -x "$libtoolize" ]; then | ||
echo "$libtoolize does not exist or is not executable" | ||
exit 1 | ||
fi | ||
|
||
# compare libtool and libtoolize version | ||
ltl_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` | ||
ltl_version=`echo $ltl_pversion|sed -e 's/\([a-z]*\)$/.\1/'` | ||
IFS=.; set $ltl_version; IFS=' ' | ||
|
||
if [ "x${lt_version}" != "x${ltl_version}" ]; then | ||
echo "$libtool and $libtoolize have different versions" | ||
exit 1 | ||
fi | ||
} | ||
|
||
check_make() { | ||
# | ||
# Check to make sure we have GNU Make installed | ||
# | ||
|
||
make=`which make` | ||
if [ -x "$make" ]; then | ||
make_version=`$make --version || true | grep GNU` | ||
if [ $? -ne 0 ]; then | ||
make=`which gmake` | ||
if [ -x "$make" ]; then | ||
make_version=`$make --version | grep GNU` | ||
if [ $? -ne 0 ]; then | ||
echo "GNU Make does not exist or is not executable" | ||
exit 1; | ||
fi | ||
fi | ||
fi | ||
fi | ||
} | ||
|
||
check_awk() { | ||
# TODO: Building with mawk on at least Debian squeeze is know to | ||
# work, but mawk is believed to fail on some systems. If we can | ||
# replicate this, we need a particular behavior that we can test | ||
# here to verify whether we have an acceptable awk. | ||
: | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters