mirror of https://gitee.com/openkylin/quilt.git
430 lines
13 KiB
Plaintext
430 lines
13 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT([quilt],[0.67],[quilt-dev@nongnu.org])
|
|
AC_CONFIG_AUX_DIR(config)
|
|
AC_PREREQ(2.53)
|
|
|
|
PACKAGE_RELEASE=1
|
|
AC_SUBST(PACKAGE_RELEASE)
|
|
AC_SUBST(PACKAGE_TARNAME)
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_SYS_INTERPRETER
|
|
if test "$interpval" != yes ; then
|
|
AC_MSG_WARN([no
|
|
|
|
bash/perl scripts may not be invoked correctly due to problems with your
|
|
systems implementation of #! being either broken or non-existant.
|
|
])
|
|
fi
|
|
|
|
dnl Check for Bourne-Again Shell
|
|
unset BASH # bash sets this itself!
|
|
|
|
QUILT_COMPAT_PROG_PATH(BASH, bash)
|
|
|
|
# It would be nice not to have to use backticks, but too many retarded sh
|
|
# implementations still don't support $( )
|
|
# BEWARE: There is a distinct possibility that we are currently running under
|
|
# bash in this configure script (/bin/sh being a symlink to /bin/bash). Even
|
|
# though the result /could/ be available to us directly as $BASH_VERSION we
|
|
# don't want to use, or trust it, incase the user is specifying a different
|
|
# bash executable.
|
|
if `$BASH -c '[[ "$BASH_VERSION" \< "3.0" ]]'` ; then
|
|
AC_MSG_ERROR([
|
|
$PACKAGE_NAME requires at least version 3.0 of bash, you can download a current
|
|
version of bash from ftp.gnu.org
|
|
])
|
|
fi
|
|
|
|
AC_MSG_CHECKING(whether $BASH quoting works)
|
|
if test `$BASH -c "echo \"\\\$(set -- \\\$'a b'; echo \\\$#)\"" 2>/dev/null` = "1"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
You have a version of `bash' which suffers from a quoting bug.
|
|
This is a known bug of bash 3.1, which was fixed by patch bash31-011.
|
|
You can get this patch at ftp://ftp.gnu.org/gnu/bash/
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(CP, cp, [gcp cp])
|
|
QUILT_COMPAT_PROG_PATH(DATE, date, [gdate date])
|
|
|
|
if test -z "$INTERNAL_DATE"; then
|
|
AC_MSG_CHECKING([whether $DATE --rfc-822 works])
|
|
if $DATE --rfc-822 >/dev/null 2>/dev/null; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_ERROR([no
|
|
|
|
If you don't have a version of `date' that supports --rfc-822, you
|
|
can specify '--without-date' and $PACKAGE_NAME will use its own
|
|
internal date.
|
|
])
|
|
fi
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(PERL, perl, [perl perl5])
|
|
QUILT_COMPAT_PROG_PATH(GREP, grep)
|
|
|
|
AC_MSG_CHECKING([whether $GREP -q works])
|
|
if echo first | $GREP -q first 2>/dev/null; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of grep which doesn't understand -q.
|
|
$PACKAGE_NAME needs it. If you have access to a version of grep which does
|
|
understand -q, you can supply its path with the '--with-grep=' option.
|
|
])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([whether $GREP understands (foo|bar)])
|
|
if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of grep which doesn't understand constructs
|
|
of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to
|
|
a version of grep which does understand such constructs, you can supply
|
|
its path with the '--with-grep=' option.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(TAIL, tail)
|
|
|
|
# Solaris' /usr/bin/tail doesn't understand -n.
|
|
AC_MSG_CHECKING([whether $TAIL -n works])
|
|
if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of tail which doesn't understand -n.
|
|
$PACKAGE_NAME needs it. If you have access to a version of tail which does
|
|
understand -n, you can supply its path with the '--with-tail=' option.
|
|
Solaris users can use /usr/xpg4/bin/tail.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(TR, tr)
|
|
|
|
AC_MSG_CHECKING([whether $TR understands a-z ])
|
|
if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of tr which doesn't understand constructs
|
|
of the form a-z. $PACKAGE_NAME needs it. If you have access to
|
|
a version of tr which does understand such constructs, you can supply
|
|
its path with the '--with-tr=' option.
|
|
Solaris users can use /usr/xpg4/bin/tr.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(STAT, stat)
|
|
|
|
AC_MSG_CHECKING([whether $STAT -c '%h' works])
|
|
if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then
|
|
AC_MSG_RESULT(yes)
|
|
STAT_HARDLINK="-c '%h'"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING([whether $STAT -f '%l' works])
|
|
if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then
|
|
AC_MSG_RESULT(yes)
|
|
STAT_HARDLINK="-f '%l'"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of stat which understands neither -c nor -f.
|
|
$PACKAGE_NAME needs it. If you have access to a version of stat which does
|
|
understand -c or -f, you can supply its path with the '--with-stat=' option.
|
|
])
|
|
fi
|
|
fi
|
|
AC_SUBST(STAT_HARDLINK)
|
|
|
|
QUILT_COMPAT_PROG_PATH(SED, sed)
|
|
|
|
AC_MSG_CHECKING([whether $SED understands (foo|bar)])
|
|
if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of sed which doesn't understand constructs
|
|
of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to
|
|
a version of sed which does understand such constructs, you can supply
|
|
its path with the '--with-sed=' option.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(AWK, awk, [gawk awk])
|
|
|
|
AC_MSG_CHECKING([whether $AWK supports sub])
|
|
if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of awk which doesn't understand sub( ).
|
|
$PACKAGE_NAME needs it. If you have access to a version of awk
|
|
which does understand such constructs, you can supply its path
|
|
with the '--with-awk=' option.
|
|
Solaris users can use /usr/xpg4/bin/awk.
|
|
])
|
|
fi
|
|
|
|
AC_ARG_WITH(pod2man, AC_HELP_STRING(
|
|
[--with-pod2man],
|
|
[name of the pod2man executable to use (use --without-pod2man to disable)]),
|
|
[
|
|
if test x"$withval" = xno; then
|
|
POD2MAN=
|
|
else
|
|
POD2MAN=$withval
|
|
fi],[
|
|
AC_PATH_PROG(POD2MAN, pod2man)
|
|
]
|
|
)
|
|
AC_SUBST(POD2MAN)
|
|
|
|
QUILT_COMPAT_PROG_PATH(COLUMN, column)
|
|
QUILT_COMPAT_PROG_PATH(GETOPT, getopt)
|
|
|
|
if test -z "$INTERNAL_GETOPT"; then
|
|
AC_MSG_CHECKING(for getopt --long syntax)
|
|
dnl check GNU syntax
|
|
$GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null
|
|
getopt_long_errors=$?
|
|
$GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null
|
|
getopt_long_works=$?
|
|
if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
$GETOPT does not support the --long option.
|
|
If you don't have a version of getopt that supports long options, you
|
|
can specify '--without-getopt' and $PACKAGE_NAME will use its own
|
|
internal getopt.
|
|
])
|
|
fi
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(MKTEMP, mktemp)
|
|
if test -z "$INTERNAL_MKTEMP" ; then
|
|
AC_MSG_CHECKING(whether $MKTEMP -d works)
|
|
if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \
|
|
rmdir "$tempdir" ; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
'$MKTEMP -d' does not create temporary directories.
|
|
If you don't have a version of mktemp that can create directories, you
|
|
can specify '--without-mktemp' and $PACKAGE_NAME will use its own
|
|
internal tempfile generation mechanism.
|
|
])
|
|
fi
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(DIFF, diff)
|
|
QUILT_COMPAT_PROG_PATH(PATCH, patch)
|
|
|
|
# Sun diff and others will not work because GNU patch options are used.
|
|
AC_MSG_CHECKING([the version of $DIFF])
|
|
if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then
|
|
set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'`
|
|
diff_version=$1
|
|
AC_MSG_RESULT($diff_version)
|
|
saved_IFS=$IFS; IFS='.'
|
|
set -- $diff_version
|
|
IFS=$saved_IFS
|
|
set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9`
|
|
if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then
|
|
diff_version=
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no GNU diff)
|
|
fi
|
|
if test -z "$diff_version" ; then
|
|
AC_MSG_ERROR([
|
|
$PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can
|
|
download a current version of patch from ftp.gnu.org, or if you already
|
|
have GNU diff then you can supply its path with the '--with-diff=' option.
|
|
])
|
|
fi
|
|
|
|
|
|
# Sun's patch, and others, do not work because GNU patch options are used.
|
|
AC_MSG_CHECKING([the version of $PATCH])
|
|
if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then
|
|
set -- `$PATCH --version 2> /dev/null`
|
|
if test x$1 = xGNU ; then
|
|
patch_version=$3
|
|
else
|
|
patch_version=$2
|
|
fi
|
|
AC_MSG_RESULT($patch_version)
|
|
saved_IFS=$IFS; IFS='.'
|
|
set -- $patch_version
|
|
IFS=$saved_IFS
|
|
set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9`
|
|
if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then
|
|
patch_version=
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no GNU patch)
|
|
fi
|
|
if test -z "$patch_version" ; then
|
|
AC_MSG_ERROR([
|
|
$PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a
|
|
current version of patch from ftp.gnu.org, or if you already have GNU patch
|
|
then you can supply its path with the '--with-patch=' option.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(FIND, find)
|
|
|
|
AC_MSG_CHECKING([whether $FIND -path works])
|
|
if $FIND . -path '*' >/dev/null 2>&1; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of find which doesn't understand -path.
|
|
$PACKAGE_NAME needs it. If you have access to a version of find which
|
|
does understand -path, you can supply its path with the
|
|
'--with-find=' option.
|
|
])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([whether $FIND -print0 works])
|
|
if $FIND . -path '*' -print0 >/dev/null 2>&1; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of find which doesn't understand -print0.
|
|
$PACKAGE_NAME needs it. If you have access to a version of find which
|
|
does understand -print0, you can supply its path with the
|
|
'--with-find=' option.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(XARGS, xargs)
|
|
|
|
AC_MSG_CHECKING([whether $XARGS -0 works])
|
|
if echo | $XARGS -0 echo >/dev/null 2>&1; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([
|
|
Sorry, you have a version of xargs which doesn't understand -0.
|
|
$PACKAGE_NAME needs it. If you have access to a version of xargs which
|
|
does understand -0, you can supply its path with the
|
|
'--with-xargs=' option.
|
|
])
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH_OPT(DIFFSTAT, diffstat)
|
|
|
|
if test "$DIFFSTAT" != "diffstat"; then
|
|
# We need diffstat version 1.32 or better, else quilt refresh --diffstat
|
|
# will show progress data we don't want to see. This is only a warning
|
|
# and we continue even if version is older, as this is only a minor
|
|
# annoyance.
|
|
AC_MSG_CHECKING([for diffstat version])
|
|
diffstat_version=`$DIFFSTAT -V 2>/dev/null | \
|
|
sed 's/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1 \2/'`
|
|
eval set -- "$diffstat_version"
|
|
diffstat_major_version="$1"
|
|
diffstat_minor_version="$2"
|
|
if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then
|
|
AC_MSG_RESULT(unknown)
|
|
AC_MSG_WARN([
|
|
diffstat utility version couldn't be checked; chances are good that the
|
|
--diffstat option of the refresh command will not work properly.
|
|
])
|
|
else
|
|
AC_MSG_RESULT($diffstat_major_version.$diffstat_minor_version)
|
|
if test "$diffstat_major_version" -lt 1 \
|
|
-o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then
|
|
AC_MSG_WARN([
|
|
diffstat utility is too old; the --diffstat option of the refresh command
|
|
will not work correctly until a newer version (>= 1.32) is installed.
|
|
])
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
QUILT_COMPAT_PROG_PATH(SENDMAIL, sendmail, [], [/usr/sbin])
|
|
|
|
AC_PATH_PROG(MSGMERGE, [msgmerge])
|
|
AC_PATH_PROG(MSGFMT, [msgfmt])
|
|
AC_PATH_PROG(XGETTEXT, [xgettext])
|
|
AC_PATH_PROG(MSGUNIQ, [msguniq])
|
|
AC_PATH_PROG(MSGCAT, [msgcat])
|
|
if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then
|
|
HAVE_NLS=yes
|
|
else
|
|
HAVE_NLS=no
|
|
fi
|
|
|
|
USE_NLS=no
|
|
AC_ARG_ENABLE(nls, AC_HELP_STRING(
|
|
[--disable-nls], [exclude natural language support]),
|
|
[USE_NLS=$enableval],[USE_NLS=$HAVE_NLS])
|
|
|
|
if test $USE_NLS = yes -a $HAVE_NLS = no ; then
|
|
AC_MSG_ERROR([
|
|
You do not appear to have msgfmt, which is part of the GNU Gettext package. It
|
|
is a required package as you chose the '--enable-nls' option to configure.
|
|
You can download GNU Gettext from ftp.gnu.org
|
|
])
|
|
fi
|
|
|
|
PATCH_WRAPPER=
|
|
AC_ARG_WITH(patch-wrapper, AC_HELP_STRING(
|
|
[--with-patch-wrapper], [include GNU patch wrapper]), [
|
|
if test "$withval" = yes ; then
|
|
PATCH_WRAPPER=$withval
|
|
fi
|
|
])
|
|
AC_SUBST(PATCH_WRAPPER)
|
|
|
|
if test $USE_NLS = no ; then
|
|
AC_MSG_NOTICE([Building without natural language support])
|
|
fi
|
|
AC_SUBST(USE_NLS)
|
|
|
|
AC_SUBST(docdir)
|
|
|
|
dnl Check for rpmbuild (v4) vs. rpm (v3)
|
|
QUILT_COMPAT_PROG_PATH_OPT(RPMBUILD, rpmbuild, [rpmbuild rpm])
|
|
|
|
QUILT_COMPAT_PROG_PATH_OPT(MD5SUM, md5sum, [gmd5sum md5sum])
|
|
|
|
QUILT_COMPAT_PROG_PATH_OPT(P7ZIP, 7z, [7zr 7za 7z])
|
|
|
|
AC_SUBST(COMPAT_SYMLINKS)
|
|
AC_SUBST(COMPAT_PROGRAMS)
|
|
|
|
AC_CONFIG_FILES(Makefile)
|
|
AC_OUTPUT
|
|
|
|
dnl Print results
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([$PACKAGE_NAME version $PACKAGE_VERSION configured.])
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([Using '$prefix' for installation prefix.])
|
|
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([Report bugs to $PACKAGE_BUGREPORT])
|