quilt/configure.ac

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])