dnl configure.in for netatalk AC_INIT(bin/adv1tov2/adv1tov2.c) NETATALK_VERSION=`cat VERSION` AC_SUBST(NETATALK_VERSION) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION}) AM_CONFIG_HEADER(config.h) AM_PROG_LIBTOOL dnl Reset locations to proper places AC_PREFIX_DEFAULT(/usr) dnl Checks for programs. AC_PROG_AWK AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_LIBTOOL dnl ********************************************************************* dnl FIXME! FIXME! These should be selectable properly, and should produce dnl the proper flags and defines... dnl ********************************************************************* dnl Checks for libraries. dnl Replace `main' with a function in -labs: AC_CHECK_LIB(abs, main) dnl Replace `main' with a function in -laudit: AC_CHECK_LIB(audit, main) dnl Replace `main' with a function in -lauth: AC_CHECK_LIB(auth, main) dnl Replace `main' with a function in -lcmd: AC_CHECK_LIB(cmd, main) dnl Replace `main' with a function in -lcom_err: AC_CHECK_LIB(com_err, main) dnl Replace `main' with a function in -lcrypt: AC_CHECK_LIB(crypt, main) dnl Replace `main' with a function in -ld: AC_CHECK_LIB(d, main) dnl Replace `main' with a function in -ldb: AC_CHECK_LIB(db, main) dnl Replace `main' with a function in -ldes: AC_CHECK_LIB(des, main) dnl Replace `main' with a function in -ldl: AC_CHECK_LIB(dl, main) dnl Replace `main' with a function in -lkauth: AC_CHECK_LIB(kauth, main) dnl Replace `main' with a function in -lkrb: AC_CHECK_LIB(krb, main) dnl Replace `main' with a function in -llwp: AC_CHECK_LIB(lwp, main) dnl Replace `main' with a function in -ln: AC_CHECK_LIB(n, main) dnl Replace `main' with a function in -lnsl: AC_CHECK_LIB(nsl, main) dnl Replace `main' with a function in -lprot: AC_CHECK_LIB(prot, main) dnl Replace `main' with a function in -lresolv: AC_CHECK_LIB(resolv, main) dnl Replace `main' with a function in -lrpcsvc: AC_CHECK_LIB(rpcsvc, main) dnl Replace `main' with a function in -lrx: AC_CHECK_LIB(rx, main) dnl Replace `main' with a function in -lrxkad: AC_CHECK_LIB(rxkad, main) dnl Replace `main' with a function in -lsocket: AC_CHECK_LIB(socket, main) dnl Replace `main' with a function in -lsys: AC_CHECK_LIB(sys, main) dnl Replace `main' with a function in -lubik: AC_CHECK_LIB(ubik, main) dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h sys/file.h sys/ioctl.h sys/time.h syslog.h unistd.h) AC_CHECK_HEADER(sys/cdefs.h,, AC_MSG_RESULT([enabling generic cdefs.h from tree]) CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" ) # Allow user to specify flags AC_ARG_WITH(cflags, [ --with-cflags specify additional flags to pass to compiler], [ if test "x$withval" != "xno" ; then CFLAGS="$CFLAGS $withval" fi ] ) AC_ARG_WITH(libs, [ --with-libs specify additional libraries to link with], [ if test "x$withval" != "xno" ; then LIBS="$LIBS $withval" fi ] ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_UID_T AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_STRUCT_ST_RDEV AC_HEADER_TIME AC_STRUCT_TM dnl Checks for library functions. AC_TYPE_GETGROUPS AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_HEADER_MAJOR AC_FUNC_MMAP AC_TYPE_SIGNAL AC_FUNC_UTIME_NULL AC_FUNC_WAIT3 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul) dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- AC_DEFINE(ADMIN_GRP, 1) AC_ARG_WITH(admin-group, [ --disable-admin-group disable admin group], if test "$enableval" = "no"; then AC_DEFINE(ADMIN_GRP, 0) AC_MSG_RESULT([disabling administrative group support]) fi ) AC_ARG_WITH(auth-printing-dir, [ --with-auth-printing-dir=path path to authenticated printing directory], cap_dir="$withval" AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir") AC_DEFINE(USE_CAP) AC_MSG_RESULT([enabling authenticated printing support]), ) AC_ARG_WITH(config-dir, [ --with-config-dir=path path to config files [default=/etc/atalk]], config_dir="$withval", config_dir="/etc/atalk" ) AC_DEFINE_UNQUOTED(CONFIG_DIR, "$config_dir", [path to config dir [default=/etc/atalk]]) CONFIG_DIR="$config_dir" AC_SUBST(CONFIG_DIR) AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR]) AC_ARG_WITH(cracklib, [ --with-cracklib=dict enable/set location of cracklib dictionary], cracklib="$withval" AC_CHECK_LIB(crack, main, AC_DEFINE(USE_CRACKLIB) LIBS="$LIBS -lcrack" AC_MSG_RESULT([enabling cracklib support]) if test "$cracklib" = "yes"; then cracklib="/usr/lib/cracklib_dict" fi AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", [path to cracklib dictionary]) AC_MSG_RESULT([setting cracklib dictionary to $cracklib]), AC_MSG_ERROR([cracklib not found!]) ) ) AC_ARG_ENABLE(ddp, [ --disable-ddp disable DDP], if test "$enableval" = "no"; then AC_DEFINE(NO_DDP, 1) AC_MSG_RESULT([disabling DDP]) fi ) AC_ARG_ENABLE(debug, [ --enable-debug enable debug code], if test "$enableval" != "no"; then if test "$enableval" = "yes"; then AC_DEFINE(DEBUG, 1) else AC_DEFINE_UNQUOTED(DEBUG, $enableval) fi AC_MSG_RESULT([enabling debugging code]) else AC_DEFINE(DEBUG, 0) fi ) dnl ----------- A NOTE ABOUT DROPKLUDGE dnl The trouble with this fix is that if you know what the file is called, it dnl can be read from the Unix side. That's okay for most academic institutions dnl since the students don't have telnet access to the Mac servers. There is dnl currently no one working on further development/fixes of DROPKLUDGE. dnl ----------- AC_ARG_ENABLE(dropkludge, [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ], AC_DEFINE(DROPKLUDGE, 1) AC_MSG_RESULT([enabling experimental dropbox support]) ) AC_ARG_ENABLE(lastdid, [ --enable-lastdid enable build without DID dev/inode mapping kludge], if test "$enableval" = "yes"; then AC_DEFINE(USE_LASTDID, 1) AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge]) fi ) msg_dir="" AC_ARG_WITH(message-dir, [ --with-msg-dir=path path to message files [default=/etc/atalk/msg]], msg_dir="$withval" if test x"$msg_dir" = "x"; then msg_dir="$CONFIG_DIR/msg" fi AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir", [path to message dir [default=$CONFIG_DIR/msg]]) SERVERTEXT="$msg_dir" AC_SUBST(SERVERTEXT) ) AC_ARG_WITH(pam, [ --with-pam enable password authentication modules support], AC_CHECK_LIB(pam, pam_start, AC_DEFINE(USE_PAM, 1) LIBS="$LIBS -lpam" AC_MSG_RESULT([enabling pam modules support]) ) ) AC_ARG_WITH(shadow, [ --with-shadow enable shadow password support], AC_MSG_RESULT([enabling shadow password support]) AC_DEFINE(SHADOWPW) ) AC_ARG_WITH(flock-locks, [ --with-flock-locks enable flock locks support], AC_MSG_RESULT([enabling flock locks]) AC_DEFINE(USE_FLOCK_LOCKS) ) AC_ARG_WITH(tcp-wrappers, [ --with-tcp-wrappers enable TCP wrappers support], AC_CHECK_LIB(wrap, main, AC_DEFINE(TCPWRAP) LIBS="$LIBS -lwrap" AC_MSG_RESULT([enabling TCP wrappers support]) ) ) AC_ARG_WITH(uams-path, [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]], uams_path="$withval", uams_path="/etc/atalk/uams" ) AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path", [path to UAMs [default=/etc/atalk/uams]]) UAMS_PATH="$uams_path" AC_SUBST(UAMS_PATH) dnl -------------------------------------------------------------------------- dnl drop in includes for top level directory structures here... dnl -------------------------------------------------------------------------- LIBS="$LIBS -L\$(top_srcdir)/libatalk/" CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys" dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu dnl --------------------- determine operating system from "target" case "$host_os" in *freebsd*) this_os=freebsd ;; *linux*) this_os=linux ;; *osx*) this_os=macosx ;; *netbsd*) this_os=netbsd ;; *openbsd*) this_os=openbsd ;; *solaris*) this_os=solaris ;; esac case "$host_cpu" in i386|i486|i586|i686|k7) this_cpu=x86 ;; alpha) this_cpu=alpha ;; mips) this_cpu=mips ;; powerpc|ppc) this_cpu=ppc ;; esac dnl --------------------- operating system specific flags (port from sys/*) dnl ----- FreeBSD specific ----- if test x"$this_os" = "xfreebsd"; then AC_MSG_RESULT([ * FreeBSD specific configuration]) AC_DEFINE(BSD4_4) AC_DEFINE(SENDFILE_FLAVOR_BSD) fi dnl ----- Linux specific ----- if test x"$this_os" = "xlinux"; then AC_MSG_RESULT([ * Linux specific configuration]) AC_DEFINE(SENDFILE_FLAVOR_LINUX) dnl ----- check if we need the quotactl wrapper AC_CHECK_HEADER(sys/quota.h,, AC_MSG_RESULT([enabling quotactl wrapper]) AC_DEFINE(NEED_QUOTACTL_WRAPPER) ) dnl ----- Linux/alpha specific ----- if test x"$this_cpu" = "xalpha"; then AC_MSG_RESULT([enabling gcc memcpy bug workaround]) AC_DEFINE(HAVE_GCC_MEMCPY_BUG) fi need_dash_r=no fi dnl ----- Mac OSX specific ----- if test x"$this_os" = "xmacosx"; then AC_MSG_RESULT([ * Mac OSX specific configuration]) AC_DEFINE(BSD4_4) AC_DEFINE(HAVE_BROKEN_CPP) AC_DEFINE(HAVE_2ARG_DBTOB) AC_DEFINE(NO_DLFCN_H) AC_DEFINE(MACOSX_SERVER) fi dnl ----- NetBSD specific ----- if test x"$this_os" = "xnetbsd"; then AC_MSG_RESULT([ * NetBSD specific configuration]) AC_DEFINE(BSD4_4) AC_DEFINE(DLSYM_PREPEND_UNDERSCORE) CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS" need_dash_r=yes fi dnl ----- OpenBSD specific ----- if test x"$this_os" = "xopenbsd"; then AC_MSG_RESULT([ * OpenBSD specific configuration]) AC_DEFINE(BSD4_4) fi dnl ----- Solaris specific ----- if test x"$this_os" = "xsolaris"; then AC_MSG_RESULT([ * Solaris specific configuration]) AC_DEFINE(__svr4__) AC_DEFINE(_ISOC9X_SOURCE) AC_DEFINE(NO_STRUCT_TM_GMTOFF) AC_DEFINE(SOLARIS) need_dash_r=yes fi dnl -- look for openssl AC_ARG_WITH(ssl-dir, [ --with-ssl-dir=PATH specify path to openssl installation (must contain lib and include dirs) ], [ if test "x$withval" != "$xno"; then tryssldir=$withval fi ] ) for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl/ /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do if test -f "$ssldir/include/openssl/cast.h" ; then LIBS="$LIBS -L$ssldir/lib -L$ssldir" CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl" if test "$need_dash_r" = "yes"; then LIBS="$LIBS -R$ssldir/lib -R$ssldir" fi dnl Replace `main' with a function in -lcrypto: AC_CHECK_LIB(crypto, main) LIBS="$LIBS -lcrypto" AC_DEFINE(OPENSSL_DHX, 1) AC_DEFINE(UAM_DHX, 1) AC_DEFINE(UAM_RNDNUM, 1) compile_dhx=yes AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"]) break fi done dnl --------------------- last minute substitutions AC_SUBST(LIBS) AC_SUBST(CFLAGS) AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes) dnl --------------------- generate files AC_OUTPUT([Makefile bin/Makefile bin/adv1tov2/Makefile bin/aecho/Makefile bin/afile/Makefile bin/afppasswd/Makefile bin/getzones/Makefile bin/megatron/Makefile bin/nbp/Makefile bin/pap/Makefile bin/psorder/Makefile config/Makefile contrib/Makefile contrib/nu/Makefile contrib/printing/Makefile contrib/shell_utils/Makefile contrib/timelord/Makefile distrib/Makefile distrib/config/Makefile distrib/config/netatalk-config distrib/initscripts/Makefile distrib/m4/Makefile etc/Makefile etc/afpd/Makefile etc/afpd/nls/Makefile etc/atalkd/Makefile etc/uams/Makefile etc/papd/Makefile etc/psf/Makefile include/Makefile include/atalk/Makefile libatalk/Makefile libatalk/adouble/Makefile libatalk/asp/Makefile libatalk/atp/Makefile libatalk/compat/Makefile libatalk/dsi/Makefile libatalk/nbp/Makefile libatalk/netddp/Makefile libatalk/util/Makefile man/Makefile man/man1/Makefile man/man3/Makefile man/man4/Makefile man/man5/Makefile man/man8/Makefile sys/Makefile sys/netatalk/Makefile ], [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*] )