Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
401 lines (350 sloc) 12.3 KB
# Configure template for paxutils.
# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
AC_INIT(src/pax.c)
AC_PREREQ(2.12)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(paxutils, 2.4i)
AT_CONFIG(../src)
ALL_LINGUAS="cs de es fr it ko nl no pl pt ru sl sv"
# LC_MESSAGES is always shadowed by LC_ALL. Here are the only cases:
# - GNU: LANGUAGE -> LC_ALL -> LC_MESSAGES -> LANG
# - POSIX: LC_ALL -> LC_MESSAGES -> LANG
# - XPG4: LC_ALL -> LANG
# - SysV/XPG2: LANG
export LANGUAGE; LANGUAGE=C
export LANG; LANG=C
export LC_ALL; LC_ALL=C
extra_bin_progs=
extra_libexec_progs=
AC_SUBST(extra_bin_progs)
AC_SUBST(extra_libexec_progs)
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
AC_AIX
AC_MINIX
AC_PROG_RANLIB
AC_PROG_YACC
AC_ISC_POSIX
AM_C_PROTOTYPES
AC_C_CONST
AC_C_INLINE
AC_CHECK_SIZEOF(unsigned int, 4)
AC_CHECK_SIZEOF(unsigned long, 0)
AC_CHECK_SIZEOF(unsigned long long, 0)
if test $ac_cv_sizeof_unsigned_long_long -ne 0; then
fp_HAVE_PRINTF_LLU
fi
AC_CHECK_HEADERS(fcntl.h limits.h linux/fd.h memory.h net/errno.h poll.h \
stdbool.h sgtty.h signal.h string.h stropts.h \
sys/buf.h sys/device.h sys/gentape.h sys/inet.h sys/io/trioctl.h sys/ioccom.h \
sys/mtio.h sys/param.h sys/tprintf.h sys/tape.h sys/time.h sys/timeb.h \
sys/wait.h termio.h unistd.h)
# It seems that that many machines where <utime.h> seems to be
# broken just require something like -D_XXX_SOURCE, where XXX might
# be POSIX, POSIX_C, ALL, HPUX or whatever, depending on the machine.
AC_CACHE_CHECK(for utime.h, pu_cv_header_utime_h,
[AC_TRY_COMPILE([
#include <sys/types.h>
#include <utime.h>], [struct utimbuf foo],
pu_cv_header_utime_h=yes, pu_cv_header_utime_h=no)])
test $pu_cv_header_utime_h = yes && AC_DEFINE(HAVE_UTIME_H)
if test $ac_cv_header_sys_mtio_h = yes; then
extra_bin_progs="$extra_bin_progs mt"
AC_CACHE_CHECK(for remote tape header files, pu_cv_header_rmt,
[AC_TRY_CPP([
#if HAVE_SGTTY_H
# include <sgtty.h>
#endif
#include <sys/socket.h>],
pu_cv_header_rmt=yes, pu_cv_header_rmt=no)])
test $pu_cv_header_rmt = yes \
&& extra_libexec_progs="$extra_libexec_progs rmt"
AC_SUBST(RMT)
fi
dnl AC_CACHE_CHECK(for getgrgid declaration, pu_cv_header_getgrgid,
dnl [AC_EGREP_HEADER(getgrgid, grp.h,
dnl pu_cv_header_getgrgid=yes, pu_cv_header_getgrgid=no)])
dnl test $pu_cv_header_getgrgid = yes && AC_DEFINE(HAVE_GETGRGID)
dnl
dnl AC_CACHE_CHECK(for getpwuid declaration, pu_cv_header_getpwuid,
dnl [AC_EGREP_HEADER(getpwuid, pwd.h,
dnl pu_cv_header_getpwuid=yes, pu_cv_header_getpwuid=no)])
dnl test $pu_cv_header_getpwuid = yes && AC_DEFINE(HAVE_GETPWUID)
AC_CACHE_CHECK(which ioctl field to test for reversed bytes,
pu_cv_header_mtio_check_field,
[AC_EGREP_HEADER(mt_model, sys/mtio.h,
pu_cv_header_mtio_check_field=mt_model,
pu_cv_header_mtio_check_field=mt_type)])
AC_DEFINE_UNQUOTED(MTIO_CHECK_FIELD, $pu_cv_header_mtio_check_field)
AC_HEADER_DIRENT
AC_HEADER_MAJOR
AC_HEADER_STAT
AC_HEADER_STDC
AC_HEADER_TIME
AC_STRUCT_ST_BLKSIZE
AC_STRUCT_ST_BLOCKS
AC_CHECK_TYPE(major_t, int)
AC_CHECK_TYPE(minor_t, int)
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_CHECK_TYPE(ssize_t, int)
AC_TYPE_UID_T
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(endgrent endpwent fsync ftime getcwd isascii lchown memmove \
mkfifo nap napms pipe poll popen select strerror strstr usleep)
AC_CACHE_CHECK(for mknod, pu_cv_func_mknod,
[AC_TRY_LINK([
#include <sys/types.h>
#include <sys/stat.h>],
[mknod (0, 0, 0)],
pu_cv_func_mknod=yes, pu_cv_func_mknod=no)])
test $pu_cv_func_mknod = yes && AC_DEFINE(HAVE_MKNOD)
# Whenever both -lsocket and -lnsl are needed, it is often the case that
# gethostent requires -lnsl. So, check -lnsl first, for it to be in
# LIBS before the setsockopt checks are performed. *However*, on SINIX-N
# 5.43, this is false, and gethostent seems to be a better candidate. So,
# let's use it below instead of gethostbyname, and see.
AC_CHECK_FUNC(gethostent)
if test $ac_cv_func_gethostent = no; then
AC_CHECK_LIB(nsl, gethostent)
fi
AC_CHECK_FUNC(setsockopt)
if test $ac_cv_func_setsockopt = no; then
AC_CHECK_LIB(socket, setsockopt)
fi
# The above will not work for DYNIX/ptx, as there is no gethostent
# in -lnsl. There, tar requires getservbyname, which needs -lsocket,
# which needs -lnsl. So, check for setnetconfig in -lnsl, which will
# succeed on DYNIX/ptx, and then check for getservbyname in -lsocket.
AC_CHECK_FUNC(setnetconfig)
if test $ac_cv_func_setnetconfig = no; then
AC_CHECK_LIB(nsl, setnetconfig)
fi
AC_CHECK_FUNC(getservbyname)
if test $ac_cv_func_getservbyname = no; then
AC_CHECK_LIB(socket, getservbyname)
fi
AC_REPLACE_FUNCS(execlp ftruncate memset mkdir rename rmdir stpcpy stpncpy \
tcflush)
test "$ac_cv_func_pipe$ac_cv_func_popen" = nono && LIBOBJS="$LIBOBJS popen.o"
test "$ac_cv_func_strstr" = yes || LIBOBJS="$LIBOBJS strstr.o"
AM_WITH_DMALLOC
fp_WITH_MALLOC
AC_FUNC_ALLOCA
jm_FUNC_MALLOC
jm_FUNC_REALLOC
AC_FUNC_FNMATCH
test $ac_cv_func_fnmatch_works = yes || LIBOBJS="$LIBOBJS fnmatch.o"
fp_WITH_GETTEXT
AC_FUNC_VPRINTF
# The 3-argument open happens to go along with the O_* defines, which
# are easier to check for.
AC_CACHE_CHECK(for 3-argument open, pu_cv_func_open3,
[AC_TRY_COMPILE([
#if HAVE_FCNTL_H
# include <fcntl.h>
#else
# include <sys/file.h>
#endif],
[int x = O_RDONLY],
pu_cv_func_open3=yes, pu_cv_func_open3=no)])
if test $pu_cv_func_open3 = no; then
AC_DEFINE(EMUL_OPEN3)
echo "WARNING: The open3 emulator is unexpectedly needed on this system."
echo " Please mailto:pinard@iro.umontreal.ca about this issue."
echo " Plans are to remove the open3 emulator in a next release."
fi
# `union wait' is preferrably avoided. We merely assume below
# that if `int pid;' fails, `union wait pid;' would have worked.
# Directly trying `union wait pid;' is seeking for trouble, as
# some POSIX systems are offering compatibility hacks generating
# ugly diagnostics. Also, on some systems, WEXITSTATUS exists,
# but fails when called on `union wait' variables.
AC_CACHE_CHECK(for union wait, pu_cv_header_union_wait,
[AC_TRY_COMPILE([
#include <sys/types.h>
#if HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif],
[int status; int pid; pid = wait (&status);],
pu_cv_header_union_wait=no, pu_cv_header_union_wait=yes)])
test $pu_cv_header_union_wait = yes && AC_DEFINE(HAVE_UNION_WAIT)
AC_CACHE_CHECK(for remote shell, pu_cv_path_RSH,
[if test -n "$RSH"; then
pu_cv_path_RSH=$RSH
else
pu_cv_path_RSH=no
for ac_file in /usr/ucb/rsh /usr/bin/remsh /usr/bin/rsh /usr/bsd/rsh \
/usr/bin/nsh /usr/bin/rcmd; do
if test -f $ac_file; then
pu_cv_path_RSH=$ac_file
break
fi
done
fi])
if test $pu_cv_path_RSH = no; then
AC_CHECK_HEADERS(netdb.h)
else
AC_DEFINE_UNQUOTED(REMOTE_SHELL, "$pu_cv_path_RSH")
fi
AC_MSG_CHECKING(for default archive)
if test -z "$DEFAULT_ARCHIVE"; then
DEFAULT_ARCHIVE=-
else
if test -z "`ls $DEFAULT_ARCHIVE 2>/dev/null`"; then
AC_MSG_WARN(DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE\' not found on this system)
fi
# FIXME: Look for DEFTAPE in <sys/mtio.h>.
# FIXME: Let DEVICE_PREFIX be configured from the environment.
# FIXME: Rearrange, here.
case $DEFAULT_ARCHIVE in
changequote(, )dnl
*[0-7][lmh])
device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/[0-7][lmh]$//'`
changequote([, ])dnl
AC_DEFINE_UNQUOTED(DEVICE_PREFIX, "$device_prefix")
AC_DEFINE(DENSITY_LETTER)
;;
changequote(, )dnl
*[0-7])
device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/[0-7]$//'`
changequote([, ])dnl
AC_DEFINE_UNQUOTED(DEVICE_PREFIX, "$device_prefix")
;;
esac
fi
AC_DEFINE_UNQUOTED(DEFAULT_ARCHIVE, "$DEFAULT_ARCHIVE")
AC_MSG_RESULT($DEFAULT_ARCHIVE)
AC_MSG_CHECKING(for default blocking)
DEFAULT_BLOCKING=${DEFAULT_BLOCKING-20}
AC_DEFINE_UNQUOTED(DEFAULT_BLOCKING, $DEFAULT_BLOCKING)
AC_MSG_RESULT($DEFAULT_BLOCKING)
# ======================================================================
# CPIO specialities.
AC_MSG_CHECKING(whether cpio should be compiled and installed)
AC_ARG_ENABLE(cpio,
[ --enable-cpio install cpio even if not fully ready yet],
[test "$enableval" = yes || enableval=no],
[enableval=no])
AC_MSG_RESULT($enableval)
if test "$enableval" = yes; then
extra_bin_progs="$extra_bin_progs cpio"
test_progs="$test_progs cpio"
fi
dnl AC_REPLACE_FUNCS(strdup strcasecmp)
dnl AM_WITH_REGEX
# Enable GNU tar format in `cpio'. (Unfinished)
AC_MSG_CHECKING(whether cpio should support old GNU tar format)
AC_ARG_ENABLE(gnutar,
[ --enable-gnutar enable old GNU tar format in cpio (unfinished)],
AC_MSG_RESULT(yes)
AC_DEFINE(CPIO_USE_GNUTAR),
AC_MSG_RESULT(no))
# Enable debugging.
AC_MSG_CHECKING(whether internal debugging code should be enabled)
AC_ARG_ENABLE(debug,
[ --enable-debug enable internal debugging code],
AC_MSG_RESULT(yes)
AC_DEFINE(DEBUG_CPIO),
AC_MSG_RESULT(no))
# End of CPIO specialities.
# ======================================================================
# CPIO test suite section.
AC_PROG_LN_S
# Ensure that we really find the system cpio, if it exists. Add paths
# as appropriate.
# FIXME: we add $EMPTY to the end of PATH to avoid a bug in bash 1.14.6;
# the problem is that without a variable expansion in the path line,
# the word isn't split correctly. This has been reported to the bash
# maintainers.
EMPTY=
AC_PATH_PROG(TEST_CPIO, cpio,,/bin:/usr/bin$EMPTY)
AC_PATH_PROG(TEST_TAR, tar)
AC_PATH_PROG(TEST_MKFIFO, mkfifo)
dnl AC_PATH_PROGS(TEST_FREETAR, gtar tar)
dnl # Ensure we really have Free tar.
dnl if test -z "$TEST_FREETAR" \
dnl || test -z "`$TEST_FREETAR --version 2> /dev/null`"; then
dnl # No.
dnl TEST_FREETAR=
dnl fi
# Maybe systems exist without 'id'. How does one get uid and gid
# information on such machines?
AC_PATH_PROG(TEST_ID, id)
changequote(, )
if test -n "$TEST_ID"; then
# Have it. Get info.
idinfo=`$TEST_ID`
TEST_UID=`echo $idinfo | sed 's/^.*uid=\([0-9][0-9]*\).*$/\1/'`
TEST_UIDNAME=`echo $idinfo | sed 's/uid=[^(]*(\([^)]*\).*$/\1/'`
TEST_GID=`echo $idinfo | sed 's/^.*gid=\([0-9][0-9]*\).*$/\1/'`
TEST_GIDNAME=`echo $idinfo | sed 's/^.*gid=[^(]*(\([^)]*\).*$/\1/'`
groups=`echo $idinfo | sed 's/^.*groups=\(.*\)$/\1/' | tr , ' '`
TEST_GID2=$TEST_GID
TEST_GID2NAME=$TEST_GIDNAME
for elt in $groups; do
if test "$elt" != "$TEST_GID($TEST_GIDNAME)"; then
TEST_GID2=`echo $elt | sed 's/(.*$//'`
TEST_GID2NAME=`echo $elt | sed 's/^.*(\([^)]*\))/\1/'`
break
fi
done
fi
changequote([, ])
AC_SUBST(TEST_UID)
AC_SUBST(TEST_UIDNAME)
AC_SUBST(TEST_GID)
AC_SUBST(TEST_GIDNAME)
AC_SUBST(TEST_GID2)
AC_SUBST(TEST_GID2NAME)
dnl FIXME
TEST_BOLDC="-c"
AC_SUBST(TEST_BOLDC)
dnl FIXME
TEST_DEVFLAG=""
AC_SUBST(TEST_DEVFLAG)
# End of test suite section.
# ======================================================================
# PAX specialities.
AC_MSG_CHECKING(whether pax should be compiled and installed)
AC_ARG_ENABLE(pax,
[ --enable-pax install pax even if not fully ready yet],
[test "$enableval" = yes || enableval=no],
[enableval=no])
AC_MSG_RESULT($enableval)
if test "$enableval" = yes; then
extra_bin_progs="$extra_bin_progs pax"
test_progs="$test_progs pax"
fi
# End of PAX specialities.
# ======================================================================
# TAR specialities.
AC_MSG_CHECKING(whether --per-file-compress should be compiled in)
AC_ARG_ENABLE(dale-code,
[ --enable-dale-code enable still undisclaimed --per-file-compress],
[if test "$enableval" = yes; then
AC_DEFINE(ENABLE_DALE_CODE)
else
enableval=no
fi],
[enableval=no])
AC_MSG_RESULT($enableval)
# End of TAR specialities.
# ======================================================================
AC_OUTPUT(Makefile contrib/Makefile contrib/win32/Makefile
doc/Makefile i18n/Makefile lib/Makefile m4/Makefile scripts/Makefile
src/Makefile tests/Makefile tests/atconfig tests/atlocal)