-dnl $Id: configure.in,v 1.179.2.3.2.13 2003-12-03 15:21:36 lenneis Exp $
+dnl $Id: configure.in,v 1.179.2.3.2.37 2004-09-26 09:17:41 didg Exp $
dnl configure.in for netatalk
AC_INIT(etc/afpd/main.c)
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_LIBTOOL_DLOPEN
-AM_PROG_LIBTOOL
+AC_PROG_LIBTOOL
AC_PROG_PERL
AC_PROG_GREP
AC_PROG_PS
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h time.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h sys/mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h sys/uio.h)
+AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h time.h sys/param.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h sys/uio.h)
AC_CHECK_HEADER(sys/cdefs.h,,
AC_MSG_RESULT([enabling generic cdefs.h from tree])
CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
)
-AC_CHECK_HEADERS(langinfo.h locale.h)
+AC_CHECK_HEADERS([sys/mount.h], , ,
+[#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+])
+
+AC_CHECK_HEADERS(langinfo.h locale.h sys/filio.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_HEADER_TIME
AC_STRUCT_TM
+dnl --------------------------------------------------------------------------
+dnl check if dlsym needs to add an underscore, uses libtool macros
+dnl --------------------------------------------------------------------------
+AC_LTDL_DLLIB
+AC_CHECK_FUNCS(dlopen dlsym dlclose)
+AC_LTDL_DLSYM_USCORE
+if test x"$libltdl_cv_need_uscore" = xyes; then
+ AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
+fi
+
+
dnl Checks for library functions.
AC_TYPE_GETGROUPS
AC_PROG_GCC_TRADITIONAL
AC_TYPE_SIGNAL
AC_FUNC_UTIME_NULL
AC_FUNC_WAIT3
-AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
-AC_FUNC_SETPGRP
+AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul strchr memcpy)
AC_CHECK_FUNCS(backtrace_symbols)
AC_CHECK_FUNCS(setlocale nl_langinfo)
-AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
+AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
+AC_CHECK_FUNCS(strlcpy strlcat)
+AC_CHECK_FUNCS(setlinebuf)
+AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
AC_CACHE_SAVE
-
dnl Checks for (v)snprintf
NETATALK_SNPRINTF_CHECK
+dnl --------------------------------------------------------------------------
+dnl 64bit platform check
+dnl --------------------------------------------------------------------------
+
+AC_MSG_CHECKING([whether to check for 64bit libraries])
+dnl Determine libdir name
+case $host in
+*-*-linux*)
+ # Test if the compiler is 64bit
+ echo 'int i;' > conftest.$ac_ext
+ atalk_cv_cc_64bit_output=no
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *"ELF 64"*)
+ atalk_cv_cc_64bit_output=yes
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+dnl
+dnl FIXME: Do we need something like this for Solaris 64bit?
+dnl
+
+case $host_cpu:$atalk_cv_cc_64bit_output in
+powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
+ atalk_libname="lib64"
+ AC_MSG_RESULT([yes])
+ ;;
+*:*)
+ atalk_libname="lib"
+ AC_MSG_RESULT([no])
+ ;;
+esac
+
dnl --------------------------------------------------------------------------
dnl specific configuration comes in here:
dnl --------------------------------------------------------------------------
netatalk_cv_with_cracklib=no
-AC_MSG_CHECKING([for cracklib support])
AC_ARG_WITH(cracklib,
[ --with-cracklib=DICT enable/set location of cracklib dictionary],[
if test "x$withval" != "xno" ; then
AC_CHECK_LIB(crack, main, [
AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
LIBS="$LIBS -lcrack"
- AC_MSG_RESULT([yes])
if test "$cracklib" = "yes"; then
- cracklib="/usr/lib/cracklib_dict"
+ cracklib="/usr/$atalk_libname/cracklib_dict"
fi
AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
[path to cracklib dictionary])
AC_MSG_ERROR([cracklib not found!])
]
)
- else
- AC_MSG_RESULT([no])
fi
- ],[
- AC_MSG_RESULT([no])
]
)
+AC_MSG_CHECKING([for cracklib support])
+AC_MSG_RESULT([$netatalk_cv_with_cracklib])
netatalk_cv_ddp_enabled=yes
AC_MSG_CHECKING([whether to enable DDP])
AC_SYS_LARGEFILE([
AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
],[
- if test x"$afp3set" == x"yes"; then
+ if test x"$afp3set" = x"yes"; then
AC_MSG_ERROR([AFP 3.x support requires Large File Support.])
else
AC_MSG_WARN([AFP 3.x support requires Large File Support. AFP3.x support disabled])
])
fi
-AM_ICONV
+AC_CHECK_ICONV
dnl ----------- A NOTE ABOUT DROPKLUDGE
dnl The trouble with this fix is that if you know what the file is called, it
if test "x$bdb_required" = "xyes"; then
AC_PATH_BDB(, [
AC_MSG_RESULT([])
- AC_MSG_RESULT([Make sure you have the Berkeley DB libraries AND headers installed.])
- AC_MSG_RESULT([You can download the latest version from http://www.sleepcat.com.])
+ AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.])
+ AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.])
AC_MSG_RESULT([If you have installed BDB in a non standard location use the])
- AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option.])
+ AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure])
+ AC_MSG_RESULT([your linker is configured to check for libraries there.])
AC_MSG_ERROR([Berkeley DB library required but not found!])
])
fi
fi
AC_MSG_CHECKING([whether shadow support should be enabled])
-if test "x$netatalk_cv_use_shadowpw" == "xyes"; then
+if test "x$netatalk_cv_use_shadowpw" = "xyes"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
]
)
+AC_ARG_ENABLE(gentoo,
+ [ --enable-gentoo use gentoo-style sysv configuration ],[
+ if test "$enableval" = "yes"; then
+ sysv_style=gentoo
+ fi
+ AC_MSG_RESULT([enabling gentoo-style sysv support])
+ ]
+)
+
AC_ARG_ENABLE(cobalt,
[ --enable-cobalt use cobalt-style sysv configuration ],
if test "$enableval" = "yes"; then
]
)
+NETATALK_AC_CUPS
+
dnl --------------------------------------------------------------------------
dnl FHS stuff has to be done last because it overrides other defaults
dnl --------------------------------------------------------------------------
dnl --------------------------------------------------------------------------
dnl ***** UAMS_PATH
-AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
- [path to UAMs [default=PKGCONF/uams]])
+dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
+dnl [path to UAMs [default=PKGCONF/uams]])
UAMS_PATH="${uams_path}"
AC_SUBST(UAMS_PATH)
if test x"$this_os" = "xfreebsd"; then
AC_MSG_RESULT([ * FreeBSD specific configuration])
AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
+ AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD])
AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
-
-dnl AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
fi
dnl ----- HP-UX 11 specific -----
dnl ----- Linux specific -----
if test x"$this_os" = "xlinux"; then
AC_MSG_RESULT([ * Linux specific configuration])
+
+ dnl ----- kernel 2.6 changed struct at_addr to atalk_addr
+ AC_MSG_CHECKING([for struct atalk_addr])
+dnl AC_COMPILE_IFELSE([
+ AC_TRY_COMPILE([
+#include <sys/socket.h>
+#include <asm/types.h>
+#include <linux/atalk.h>
+],
+[
+int main() {
+ struct atalk_addr foo;
+
+ return 0;
+}
+ ], [
+ ac_have_atalk_addr=yes
+ AC_MSG_RESULT([yes])
+ ], [
+ AC_MSG_RESULT([no])
+ ])
+
+if test "x$ac_have_atalk_addr" = "xyes"; then
+ AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr])
+fi
dnl ----- check if we need the quotactl wrapper
# AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
netatalk_cv_linux_sendfile=no
- AC_ARG_ENABLE(sendfile,
- [ --enable-sendfile use sendfile syscall default (no) ],[
- if test "$enableval" = "yes"; then
- netatalk_cv_linux_sendfile=yes
- fi
- AC_MSG_RESULT([enabling sendfile syscall])
- ]
- )
+dnl disable this for now, code doesn't use sendfile anyway
+dnl AC_ARG_ENABLE(sendfile,
+dnl [ --enable-sendfile use sendfile syscall default (no) ],[
+dnl if test "$enableval" = "yes"; then
+dnl netatalk_cv_linux_sendfile=yes
+dnl fi
+dnl AC_MSG_RESULT([enabling sendfile syscall])
+dnl ]
+dnl )
if test x"$netatalk_cv_linux_sendfile" = "xyes"; then
AC_CACHE_CHECK([for linux sendfile support],netatalk_cv_HAVE_SENDFILE,[
if test x"$this_os" = "xmacosx"; then
AC_MSG_RESULT([ * Mac OSX specific configuration])
AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
- AC_DEFINE(HAVE_BROKEN_CPP, 1, [Define if cpp is broken])
AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
dnl AC_DEFINE(NO_DLFCN_H)
AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
if test x"$this_os" = "xnetbsd"; then
AC_MSG_RESULT([ * NetBSD specific configuration])
AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
- # If this test is true, it's not an ELF box.
- # This REALLY should be a configure test.
- AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
- fi
+ AC_DEFINE(NETBSD, 1, [Define if OS is FreeBSD])
CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
need_dash_r=yes
dnl ----- OpenBSD specific -----
if test x"$this_os" = "xopenbsd"; then
AC_MSG_RESULT([ * OpenBSD specific configuration])
- AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
- AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
-
dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
fi
AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
need_dash_r=yes
+ sysv_style=solaris
+
+ solaris_module=no
+ AC_MSG_CHECKING([if we can build Solaris kernel module])
+ if test -x /usr/ccs/bin/ld; then
+ solaris_module=yes
+ fi
+ AC_MSG_RESULT([$solaris_module])
+
+ COMPILE_64BIT_KMODULE=no
+ KCFLAGS=""
+ KLDFLAGS=""
+ COMPILE_KERNEL_GCC=no
+
+ if test "$solaris_module" = "yes"; then
+ dnl Solaris kernel module stuff
+ AC_MSG_CHECKING([if we have to build a 64bit kernel module])
+
+ # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6)
+ if test -x /usr/bin/isainfo; then
+ # check for 64 bit platform
+ if isainfo -kv | grep '^64-bit'; then
+ COMPILE_64BIT_KMODULE=yes
+ fi
+ fi
+
+ AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
+
+ if test "${GCC}" = yes; then
+ COMPILE_KERNEL_GCC=yes
+ if test "$COMPILE_64BIT_KMODULE" = yes; then
+
+ AC_MSG_CHECKING([if we can build a 64bit kernel module])
+
+ case `$CC --version 2>/dev/null` in
+ [[12]].* | 3.0.*)
+ COMPILE_64BIT_KMODULE=no
+ COMPILE_KERNEL_GCC=no
+ solaris_module=no;;
+ *)
+ # use for 64 bit
+ KCFLAGS="-m64"
+ #KLDFLAGS="-melf64_sparc"
+ KLDFLAGS="-64";;
+ esac
+
+ AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
+
+ else
+ KCFLAGS=""
+ KLDFLAGS=""
+ fi
+ KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes"
+ else
+ if test "$COMPILE_64BIT_KMODULE" = yes; then
+ # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ")
+ KCFLAGS="-xarch=v9 -xregs=no%appl"
+ KLDFLAGS="-64"
+ else
+ KCFLAGS=""
+ KLDFLAGS=""
+ fi
+ KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return"
+ fi
+
+ AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[
+ AC_TRY_LINK([\
+#include <sys/stream.h>
+#include <sys/ddi.h>],
+[\
+timeout_id_t dummy;
+],
+netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)])
+
+ AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t])
+ fi
- AC_MSG_RESULT([enabling Solaris kernel module build])
- solaris_module=yes
+ AC_SUBST(COMPILE_KERNEL_GCC)
+ AC_SUBST(COMPILE_64BIT_KMODULE)
+ AC_SUBST(KCFLAGS)
+ AC_SUBST(KLDFLAGS)
fi
dnl ----- Tru64 specific -----
AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
dnl AC_DEFINE(USE_UFS_QUOTA_H)
AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
+ AC_DEFINE(_OSF_SOURCE, 1, [Define if the *passwd UAMs should be used])
+ AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define for Berkeley DB 4])
AC_CHECK_LIB(security,set_auth_parameters)
CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
need_dash_r=no
AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
+AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
+AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
+AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
dnl --------------------- generate files
bin/nbp/Makefile
bin/pap/Makefile
bin/psorder/Makefile
+ bin/uniconv/Makefile
config/Makefile
contrib/Makefile
contrib/macusers/Makefile
contrib/shell_utils/apple_cp
contrib/shell_utils/apple_mv
contrib/shell_utils/apple_rm
+ contrib/shell_utils/asip-status.pl
contrib/shell_utils/cleanappledouble.pl
contrib/shell_utils/netatalkshorternamelinks.pl
contrib/timelord/Makefile
sys/netbsd/Makefile
sys/netbsd/netatalk/Makefile
sys/solaris/Makefile
- sys/solaris/Makefile.kernel
sys/sunos/Makefile
sys/ultrix/Makefile
],
[chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
)
-AM_NETATALK_LIBS_SUMMARY
-AM_NETATALK_CONFIG_SUMMARY
+AC_NETATALK_LIBS_SUMMARY
+AC_NETATALK_CONFIG_SUMMARY