pkgsrc/pkgtools/pkg_install/files/configure.ac
pho 763c3057a4 Add AC_SYS_LARGEFILE to files/configure.ac
Given that libarchive is built with large file support, pkg_install
needs it too. Otherwise libarchive and pkg_install may see different
definitions of types such as struct stat, resulting in a runtime
failure on some platforms (especially Darwin 9):

  % bmake package
  => Creating binary package /usr/pkgsrc/pkgtools/pkg_install/work/.packages/pkg_install-20141227.tgz
  pkg_create: cannot write to archive: tar format cannot archive this (type=00)

The reason why this was unnoticed until now is that libarchive's
"configure" has just been regenerated with Autoconf 2.69. Prior to
2.69, AC_SYS_LARGEFILE did nothing significant on Darwin so there was
no actual inconsistency between libarchive and pkg_install, which was
just coincidental.
2015-01-22 18:15:39 +00:00

179 lines
4.2 KiB
Text

dnl $NetBSD: configure.ac,v 1.39 2015/01/22 18:15:39 pho Exp $
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
AC_INIT([pkg_install], [20090911], [joerg@NetBSD.org])
AC_CONFIG_SRCDIR([lib/plist.c])
AC_CONFIG_HEADER(lib/config.h)
AC_CANONICAL_HOST
CANONICAL_HOST=$host
AC_SUBST(CANONICAL_HOST)
AC_SUBST(INCLUDES)
# Checks for programs.
AC_PROG_MAKE_SET
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_RANLIB
AC_CHECK_PROG(AR, ar, ar)
AC_PATH_PROG(CHMOD, chmod)
AC_PATH_PROG(CMP, cmp)
AC_PATH_PROG(CP, cp)
AC_PATH_PROG(ENV, env)
AC_PATH_PROG(FIND, find)
AC_PATH_PROG(GREP, grep)
AC_PATH_PROG(LN, ln)
AC_PATH_PROG(MKDIR, mkdir)
AC_PATH_PROG(RMDIR, rmdir)
AC_PATH_PROG(RM, rm)
AC_PATH_PROG(SED, sed)
AC_PATH_PROG(SORT, sort)
AC_PATH_PROG(TOUCH, touch)
AUTOCONF=${AUTOCONF-"$srcdir/missing --run autoconf"}
AC_SUBST(AUTOCONF)
AUTOHEADER=${AUTOHEADER-"$srcdir/missing --run autoheader"}
AC_SUBST(AUTOHEADER)
dnl Set the default pkg dbdir
AC_ARG_WITH(pkgdbdir,
[ --with-pkgdbdir=DIR Where to put the pkg database (/var/db/pkg)],
[ pkgdbdir="$with_pkgdbdir" ],
[ pkgdbdir="/var/db/pkg" ])
AC_SUBST(pkgdbdir)
AC_ARG_WITH(ssl,
[ --with-ssl Enable OpenSSL based signature support],
[ ssl_support=yes ],
[ ssl_support= ])
AC_SUBST(ssl_support)
AC_ARG_ENABLE([bootstrap],
[AS_HELP_STRING([--enable-bootstrap], [build minimal version of pkg_install])],
[bootstrap=yes], [bootstrap=])
AC_SUBST(bootstrap)
dnl Checks for large file support.
AC_SYS_LARGEFILE
dnl Checks for libraries.
AC_CHECK_LIB(db, __db185_open, , AC_SEARCH_LIBS(dbopen, [db db1]))
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([assert.h ctype.h dirent.h err.h errno.h fnctl.h \
fnmatch.h glob.h grp.h inttypes.h limits.h pwd.h signal.h \
stdarg.h stdio.h stdlib.h string.h time.h unistd.h vis.h])
AC_CHECK_HEADERS([sys/cdefs.h sys/file.h sys/ioctl.h sys/param.h \
sys/queue.h sys/stat.h sys/time.h sys/types.h sys/utsname.h \
sys/wait.h])
# Checks for library functions.
AC_CHECK_FUNCS([vfork])
AC_SEARCH_LIBS([gethostbyname], [nsl network])
AC_SEARCH_LIBS([socket],
[socket],
[],
[AC_CHECK_LIB([socket],
[socket],
[LIBS="-lsocket -lnsl $LIBS"],
[],
[-lnsl])])
dnl Check for types
AC_TYPE_UINT8_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
need_priu64=no
AC_MSG_CHECKING([for a working PRIu64])
AC_LANG_PUSH([C])
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([[
#include <stdio.h>
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
]],
[[
char *x;
#if !defined(PRIu64)
return -1;
#else
x = PRIu64;
if( x[0] == '%' ) {
return -1;
} else {
return 0;
}
#endif
]])],
[
# program worked correctly
AC_MSG_RESULT([yes])
],
[
# program failed
AC_MSG_RESULT([no])
AC_DEFINE([NEED_PRI_MACRO], [1], [Defined when PRIu64 is missing or broken])
need_priu64=yes
],
[
# we are cross compiling
AC_MSG_RESULT([unable to check when crosscompiling])
AC_DEFINE([NEED_PRI_MACRO], [1], [Defined when PRIu64 is missing or broken])
need_priu64=yes
])
AC_LANG_POP([C])
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(size_t, [#include <stdlib.h>])
case $host in
*-*-bsdi*|*-*-hpux*|*-*-osf*)
AC_DEFINE(MISSING_SIZE_T_SUPPORT)
AH_TEMPLATE([MISSING_SIZE_T_SUPPORT], [
Define to 1 if the `z' modifider for printf is missing.
])
;;
esac
case $host in
*-*-cygwin*|*-*-dragonfly* |*-*-freebsd*|*-*-linux*)
AC_DEFINE([NUMERIC_VERSION_ONLY], [1], [Defined when to retain only the numeric OS version])
;;
esac
AH_BOTTOM(
#if !HAVE_VFORK
# define vfork fork
#endif
#ifndef MISSING_SIZE_T_SUPPORT
# define PRIzu "zu"
#elif SIZEOF_SIZE_T == SIZEOF_INT
# define PRIzu "u"
#elif SIZEOF_SIZE_T == SIZEOF_LONG
# define PRIzu "lu"
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
# define PRIzu "llu"
#else
# errror "Unknown size_t size"
#endif
)
SYSCONFDIR="$sysconfdir"
AC_SUBST(SYSCONFDIR)
PKG_DBDIR="$pkgdbdir"
AC_SUBST(PKG_DBDIR)
AC_CONFIG_FILES([Makefile add/Makefile admin/Makefile bpm/bpm.sh \
create/Makefile delete/Makefile info/Makefile \
lib/Makefile lib/pkg_install.conf.5 lib/pkg_install.conf.cat])
AC_OUTPUT