1dnl configure.in for netatalk 2 3AC_INIT(etc/afpd/main.c) 4 5NETATALK_VERSION=`cat $srcdir/VERSION` 6AC_SUBST(NETATALK_VERSION) 7 8AC_CANONICAL_SYSTEM 9AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION}) 10AM_CONFIG_HEADER(config.h) 11AM_MAINTAINER_MODE([enable]) 12 13dnl Checks for programs. 14AC_PROG_AWK 15AC_PROG_CC 16AC_PROG_CC_C99 17AC_PROG_INSTALL 18AC_PROG_LN_S 19AC_PROG_MAKE_SET 20AC_LIBTOOL_DLOPEN 21AC_PROG_LIBTOOL 22AC_PROG_PERL 23AC_PROG_GREP 24AC_PROG_PS 25 26AM_PROG_CC_C_O 27 28dnl Checks for header files. 29AC_HEADER_DIRENT 30AC_HEADER_STDC 31AC_HEADER_SYS_WAIT 32AC_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 langinfo.h locale.h sys/filio.h) 33AC_CHECK_HEADER(sys/cdefs.h,, 34 AC_MSG_RESULT([enabling generic cdefs.h from tree]) 35 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" 36) 37AC_CHECK_HEADERS([sys/mount.h], , , 38[#ifdef HAVE_SYS_PARAM_H 39#include <sys/param.h> 40#endif 41]) 42 43dnl Checks for typedefs, structures, and compiler characteristics. 44AC_C_CONST 45AC_TYPE_UID_T 46AC_C_INLINE 47AC_TYPE_MODE_T 48AC_TYPE_OFF_T 49AC_TYPE_PID_T 50AC_TYPE_SIZE_T 51AC_STRUCT_ST_RDEV 52AC_HEADER_TIME 53AC_STRUCT_TM 54 55dnl -------------------------------------------------------------------------- 56dnl check if dlsym needs to add an underscore, uses libtool macros 57dnl -------------------------------------------------------------------------- 58AC_LTDL_DLLIB 59AC_CHECK_FUNCS(dlopen dlsym dlclose) 60AC_LTDL_DLSYM_USCORE 61if test x"$libltdl_cv_need_uscore" = xyes; then 62 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) 63fi 64 65dnl Checks for library functions. 66AC_TYPE_GETGROUPS 67AC_PROG_GCC_TRADITIONAL 68AC_FUNC_MEMCMP 69AC_HEADER_MAJOR 70AC_FUNC_MMAP 71AC_TYPE_SIGNAL 72AC_FUNC_UTIME_NULL 73AC_FUNC_WAIT3 74AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul strchr memcpy) 75AC_CHECK_FUNCS(backtrace_symbols setlocale nl_langinfo strlcpy strlcat setlinebuf dirfd pselect access pread pwrite) 76AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64) 77ac_neta_haveatfuncs=yes 78AC_CHECK_FUNCS(openat renameat fstatat unlinkat, , ac_neta_haveatfuncs=no) 79if test x"$ac_neta_haveatfuncs" = x"yes" ; then 80 AC_DEFINE([_ATFILE_SOURCE], 1, AT file source) 81 AC_DEFINE([HAVE_ATFUNCS], 1, whether at funcs are available) 82fi 83 84AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>]) 85 86AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) 87AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)]) 88dnl search for necessary libs for libpthread stuff 89AC_SEARCH_LIBS(pthread_sigmask, pthread,, 90 [AC_MSG_ERROR([cannot find pthread_sigmask in libc or libpthread])]) 91if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then 92 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask 93fi 94AC_SUBST(PTHREAD_LIBS) 95AC_CACHE_SAVE 96 97dnl Checks for (v)snprintf 98NETATALK_SNPRINTF_CHECK 99 100dnl -------------------------------------------------------------------------- 101dnl 64bit platform check 102dnl -------------------------------------------------------------------------- 103 104AC_MSG_CHECKING([whether to check for 64bit libraries]) 105# Test if the compiler is in 64bit mode 106echo 'int i;' > conftest.$ac_ext 107atalk_cv_cc_64bit_output=no 108if AC_TRY_EVAL(ac_compile); then 109 case `/usr/bin/file conftest.$ac_objext` in 110 *"ELF 64"*) 111 atalk_cv_cc_64bit_output=yes 112 ;; 113 esac 114fi 115rm -rf conftest* 116 117case $host_cpu:$atalk_cv_cc_64bit_output in 118powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes) 119 case $target_os in 120 solaris2*) 121 AC_MSG_RESULT([yes]) 122 atalk_libname="lib/64" 123 ;; 124 *bsd* | dragonfly*) 125 AC_MSG_RESULT([no]) 126 atalk_libname="lib" 127 ;; 128 *) 129 AC_MSG_RESULT([yes]) 130 atalk_libname="lib64" 131 ;; 132 esac 133 ;; 134*:*) 135 AC_MSG_RESULT([no]) 136 atalk_libname="lib" 137 ;; 138esac 139 140dnl -------------------------------------------------------------------------- 141dnl specific configuration comes in here: 142dnl -------------------------------------------------------------------------- 143 144 145netatalk_cv_admin_group=yes 146AC_MSG_CHECKING([for administrative group support]) 147AC_ARG_ENABLE(admin-group, 148 [ --disable-admin-group disable admin group],[ 149 if test x"$enableval" = x"no"; then 150 AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled]) 151 netatalk_cv_admin_group=no 152 AC_MSG_RESULT([no]) 153 else 154 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) 155 AC_MSG_RESULT([yes]) 156 fi],[ 157 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) 158 AC_MSG_RESULT([yes]) 159 ] 160) 161 162NETATALK_AFS_CHECK 163 164NETATALK_CONFIG_DIRS 165 166netatalk_cv_with_cracklib=no 167AC_ARG_WITH(cracklib, 168 [ --with-cracklib=DICT enable/set location of cracklib dictionary],[ 169 if test "x$withval" != "xno" ; then 170 cracklib="$withval" 171 AC_CHECK_LIB(crack, main, [ 172 AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used]) 173 LIBS="$LIBS -lcrack" 174 if test "$cracklib" = "yes"; then 175 cracklib="/usr/$atalk_libname/cracklib_dict" 176 fi 177 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", 178 [path to cracklib dictionary]) 179 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]) 180 netatalk_cv_with_cracklib=yes 181 ],[ 182 AC_MSG_ERROR([cracklib not found!]) 183 ] 184 ) 185 fi 186 ] 187) 188AC_MSG_CHECKING([for cracklib support]) 189AC_MSG_RESULT([$netatalk_cv_with_cracklib]) 190 191netatalk_cv_ddp_enabled=no 192AC_MSG_CHECKING([whether to enable DDP]) 193AC_ARG_ENABLE(ddp, 194 [ --enable-ddp enable DDP (AppleTalk)],[ 195 if test "$enableval" = "yes"; then 196 AC_MSG_RESULT([yes]) 197 netatalk_cv_ddp_enabled=yes 198 else 199 AC_MSG_RESULT([yes]) 200 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) 201 fi 202 ],[ 203 AC_MSG_RESULT([no]) 204 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) 205 ] 206) 207 208AC_MSG_CHECKING([whether to enable debug code]) 209AC_ARG_ENABLE(debug1, 210 [ --enable-debug1 enable debug code],[ 211 if test "$enableval" != "no"; then 212 if test "$enableval" = "yes"; then 213 AC_DEFINE(DEBUG1, 1, [Define if debugging information should be included]) 214 else 215 AC_DEFINE_UNQUOTED(DEBUG1, $enableval, [Define if debugging information should be included]) 216 fi 217 AC_MSG_RESULT([yes]) 218 else 219 AC_MSG_RESULT([no]) 220 fi 221 ],[ 222 AC_MSG_RESULT([no]) 223 ] 224) 225 226AC_MSG_CHECKING([whether to enable verbose debug code]) 227AC_ARG_ENABLE(debug, 228 [ --enable-debug enable verbose debug code],[ 229 if test "$enableval" != "no"; then 230 if test "$enableval" = "yes"; then 231 AC_DEFINE(DEBUG, 1, [Define if verbose debugging information should be included]) 232 else 233 AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if verbose debugging information should be included]) 234 fi 235 AC_MSG_RESULT([yes]) 236 else 237 AC_MSG_RESULT([no]) 238 AC_DEFINE(NDEBUG, 1, [Disable assertions]) 239 fi 240 ],[ 241 AC_MSG_RESULT([no]) 242 AC_DEFINE(NDEBUG, 1, [Disable assertions]) 243 ] 244) 245 246AC_MSG_CHECKING([whether to enable debugging with debuggers]) 247AC_ARG_ENABLE(debugging, 248 [ --enable-debugging disable SIGALRM timers and DSI tickles (eg for debugging with gdb/dbx/...)],[ 249 if test "$enableval" != "no"; then 250 if test "$enableval" = "yes"; then 251 AC_DEFINE(DEBUGGING, 1, [Define if you want to disable SIGALRM timers and DSI tickles]) 252 else 253 AC_DEFINE_UNQUOTED(DEBUGGING, $enableval, [Define if you want to disable SIGALRM timers and DSI tickles]) 254 fi 255 AC_MSG_RESULT([yes]) 256 else 257 AC_MSG_RESULT([no]) 258 fi 259 ],[ 260 AC_MSG_RESULT([no]) 261 ] 262) 263 264AC_SYS_LARGEFILE([], AC_MSG_ERROR([AFP 3.x support requires Large File Support.])) 265AC_CHECK_ICONV 266 267dnl ----------- A NOTE ABOUT DROPKLUDGE 268dnl The trouble with this fix is that if you know what the file is called, it 269dnl can be read from the Unix side. That's okay for most academic institutions 270dnl since the students don't have telnet access to the Mac servers. There is 271dnl currently no one working on further development/fixes of DROPKLUDGE. 272dnl ----------- 273 274netatalk_cv_dropkludge=no 275AC_MSG_CHECKING([whether to enable experimental dropbox support]) 276AC_ARG_ENABLE(dropkludge, 277 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],[ 278 if test "$enableval" = "yes"; then 279 AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support]) 280 AC_MSG_RESULT([yes]) 281 netatalk_cv_dropkludge=yes 282 else 283 AC_MSG_RESULT([no]) 284 fi 285 ],[ 286 AC_MSG_RESULT([no]) 287 ] 288) 289 290netatalk_cv_force_uidgid=no 291AC_MSG_CHECKING([whether to enable forcing of uid/gid per volume]) 292AC_ARG_ENABLE(force-uidgid, 293 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],[ 294 if test "$enableval" = "yes"; then 295 AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume]) 296 AC_MSG_RESULT([enabling forcing of uid/gid per volume]) 297 AC_MSG_RESULT([yes]) 298 netatalk_cv_force_uidgid=yes 299 else 300 AC_MSG_RESULT([no]) 301 fi 302 ],[ 303 AC_MSG_RESULT([no]) 304 ] 305) 306 307dnl Check for CNID database backends 308bdb_required=no 309AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no]) 310 311dnl Check for quota support 312AC_CHECK_QUOTA 313 314dnl Check for optional server location protocol support (used by MacOS X) 315NETATALK_SRVLOC 316 317dnl Check for optional Zeroconf support 318NETATALK_ZEROCONF 319 320dnl Check for PAM libs 321netatalk_cv_use_pam=no 322AC_PATH_PAM([ 323 use_pam_so=yes 324 compile_pam=yes 325 netatalk_cv_use_pam=yes 326 AC_DEFINE(USE_PAM, 1, [Define to enable PAM support]) 327]) 328 329netatalk_cv_use_shadowpw=no 330AC_ARG_WITH(shadow, 331 [ --with-shadow enable shadow password support [[auto]]], 332 [netatalk_cv_use_shadowpw="$withval"], 333 [netatalk_cv_use_shadowpw=auto] 334) 335 336if test "x$netatalk_cv_use_shadowpw" != "xno"; then 337 AC_CHECK_HEADER([shadow.h]) 338 if test x"$ac_cv_header_shadow_h" = x"yes"; then 339 netatalk_cv_use_shadowpw=yes 340 AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used]) 341 else 342 if test "x$shadowpw" = "xyes"; then 343 AC_MSG_ERROR([shadow support not available]) 344 else 345 netatalk_cv_use_shadowpw=no 346 fi 347 fi 348fi 349 350AC_MSG_CHECKING([whether shadow support should be enabled]) 351if test "x$netatalk_cv_use_shadowpw" = "xyes"; then 352 AC_MSG_RESULT([yes]) 353else 354 AC_MSG_RESULT([no]) 355fi 356 357 358 359netatalk_cv_use_shellcheck=yes 360AC_MSG_CHECKING([whether checking for a valid shell should be enabled]) 361AC_ARG_ENABLE(shell-check, 362 [ --disable-shell-check disable checking for a valid shell],[ 363 if test "$enableval" = "no"; then 364 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled]) 365 AC_MSG_RESULT([no]) 366 netatalk_cv_use_shellcheck=no 367 else 368 AC_MSG_RESULT([yes]) 369 fi 370 ],[ 371 AC_MSG_RESULT([yes]) 372 ] 373) 374 375NETATALK_TCP_WRAPPERS 376 377AC_MSG_CHECKING([whether system (fcntl) locking should be disabled]) 378AC_ARG_ENABLE(locking, 379 [ --disable-locking disable system locking],[ 380 if test "$enableval" = "no"; then 381 AC_DEFINE(DISABLE_LOCKING, 1, [Define if system (fcntl) locking should be disabled]) 382 AC_MSG_RESULT([yes]) 383 else 384 AC_MSG_RESULT([no]) 385 fi 386 387 ],[ 388 AC_MSG_RESULT([no]) 389 ] 390 391) 392 393AC_ARG_ENABLE(redhat, 394 [ --enable-redhat obsoleted ],[ 395 echo "ERROR: --enable-redhat is obsoleted. Use --enable-redhat-sysv or --enable-redhat-systemd." 396 exit 1 397 ] 398) 399 400AC_ARG_ENABLE(redhat-sysv, 401 [ --enable-redhat-sysv use redhat-style sysv (upstart) configuration ],[ 402 if test "$enableval" = "yes"; then 403 sysv_style=redhat-sysv 404 fi 405 AC_MSG_RESULT([enabling redhat-style sysv support]) 406 ] 407) 408 409AC_ARG_ENABLE(redhat-systemd, 410 [ --enable-redhat-systemd use redhat-style systemd (>=Fedora15) configuration ],[ 411 if test "$enableval" = "yes"; then 412 sysv_style=redhat-systemd 413 fi 414 AC_MSG_RESULT([enabling redhat-style systemd support]) 415 ] 416) 417 418AC_ARG_ENABLE(suse, 419 [ --enable-suse obsoleted ],[ 420 echo "ERROR: --enable-suse is obsoleted. Use --enable-suse-sysv or --enable-suse-systemd." 421 exit 1 422 ] 423) 424 425AC_ARG_ENABLE(suse-sysv, 426 [ --enable-suse-sysv use suse-style sysv configuration ],[ 427 if test "$enableval" = "yes"; then 428 sysv_style=suse-sysv 429 fi 430 AC_MSG_RESULT([enabling suse-style sysv support]) 431 ] 432) 433 434AC_ARG_ENABLE(suse-systemd, 435 [ --enable-suse-systemd use suse-style systemd (>=openSUSE12.1) configuration ],[ 436 if test "$enableval" = "yes"; then 437 sysv_style=suse-systemd 438 fi 439 AC_MSG_RESULT([enabling suse-style systemd support]) 440 ] 441) 442 443AC_ARG_ENABLE(gentoo, 444 [ --enable-gentoo use gentoo-style sysv configuration ],[ 445 if test "$enableval" = "yes"; then 446 sysv_style=gentoo 447 fi 448 AC_MSG_RESULT([enabling gentoo-style sysv support]) 449 ] 450) 451 452AC_ARG_ENABLE(netbsd, 453 [ --enable-netbsd use NetBSD-style rc.d configuration ], 454 if test "x$enableval" = "xyes"; then 455 sysv_style=netbsd 456 fi 457 AC_MSG_RESULT([enabling NetBSD-style rc.d support]) 458) 459 460AC_ARG_ENABLE(debian, 461 [ --enable-debian use debian-style sysv configuration ],[ 462 if test "$enableval" = "yes"; then 463 sysv_style=debian 464 fi 465 AC_MSG_RESULT([enabling debian-style sysv support]) 466 ] 467) 468 469AC_ARG_ENABLE(systemd, 470 [ --enable-systemd use general systemd configuration],[ 471 if test "$enableval" = "yes"; then 472 sysv_style=systemd 473 fi 474 AC_MSG_RESULT([enabling general systemd support]) 475 ] 476) 477 478dnl ----- timelord compilation (disabled by default) 479AC_MSG_CHECKING([whether timelord should be compiled]) 480compile_timelord=no 481AC_ARG_ENABLE(timelord, 482 [ --enable-timelord enable compilation of timelord server], 483 [compile_timelord="$enableval"], 484 [compile_timelord="no"] 485) 486AC_MSG_RESULT([$compile_timelord]) 487 488dnl ----- a2boot compilation (disabled by default) 489AC_MSG_CHECKING([whether a2boot should be compiled]) 490compile_a2boot=no 491AC_ARG_ENABLE(a2boot, 492 [ --enable-a2boot enable compilation of Apple2 boot server], 493 [compile_a2boot="$enableval"], 494 [compile_a2boot="no"] 495) 496AC_MSG_RESULT([$compile_a2boot]) 497 498AC_ARG_WITH(uams-path, 499 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],[ 500 uams_path="$withval" 501 ],[ 502 uams_path="${PKGCONFDIR}/uams" 503 ] 504) 505 506NETATALK_AC_CUPS 507 508dnl check if we can use attribute unused (gcc only) from ethereal 509AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS) 510if test x$GCC != x ; then 511 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS" 512 AC_MSG_RESULT(yes) 513else 514 CFLAGS="-D_U_=\"\" $CFLAGS" 515 AC_MSG_RESULT(no) 516fi 517 518dnl -------------------------------------------------------------------------- 519dnl FHS stuff has to be done last because it overrides other defaults 520dnl -------------------------------------------------------------------------- 521 522AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility]) 523AC_ARG_ENABLE(fhs, 524 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[ 525 if test "$enableval" = "yes"; then 526 uams_path="${libdir}/netatalk" 527 sysconfdir="/etc" 528 PKGCONFDIR=${sysconfdir}/netatalk 529 SERVERTEXT="${PKGCONFDIR}/msg" 530 use_pam_so=yes 531 mandir="/usr/share/man" 532 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS]) 533 AC_MSG_RESULT([yes]) 534 else 535 AC_MSG_RESULT([no]) 536 fi 537 ],[ 538 AC_MSG_RESULT([no]) 539 ] 540) 541 542dnl -------------------------------------------------------------------------- 543dnl post-FHS substitutions, etc 544dnl -------------------------------------------------------------------------- 545 546dnl ***** UAMS_PATH 547dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}", 548dnl [path to UAMs [default=PKGCONF/uams]]) 549UAMS_PATH="${uams_path}" 550AC_SUBST(UAMS_PATH) 551 552dnl -------------------------------------------------------------------------- 553dnl drop in includes for top level directory structures here... 554dnl -------------------------------------------------------------------------- 555 556dnl Note: $(top_srcdir)/include should be added before all other includes 557dnl so that includes from that directory a preferred to includes from 558dnl /usr/include or similar places. 559LIBS="$LIBS -L\$(top_srcdir)/libatalk" 560CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys" 561 562AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW) 563 564dnl -------------------------------------------------------------------------- 565dnl specific configuration comes in here: 566dnl -------------------------------------------------------------------------- 567 568dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu 569 570dnl --------------------- determine operating system from "target" 571case "$host_os" in 572 *aix*) this_os=aix ;; 573 *kfreebsd*-gnu) this_os=kfreebsd-gnu ;; 574 *freebsd*) this_os=freebsd ;; 575 *hpux11*) this_os=hpux11 ;; 576 *irix*) this_os=irix ;; 577 *linux*) this_os=linux ;; 578 *osx*) this_os=macosx ;; 579 *darwin*) this_os=macosx ;; 580 *netbsd*) this_os=netbsd ;; 581 *openbsd*) this_os=openbsd ;; 582 *osf*) this_os=tru64 ;; 583 *solaris*) this_os=solaris ;; 584esac 585 586case "$host_cpu" in 587 i386|i486|i586|i686|k7) this_cpu=x86 ;; 588 alpha) this_cpu=alpha ;; 589 mips) this_cpu=mips ;; 590 powerpc|ppc) this_cpu=ppc ;; 591esac 592 593dnl --------------------- GNU source 594case "$this_os" in 595 linux) AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions]) 596 ;; 597 kfreebsd-gnu) AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions]) 598 ;; 599esac 600 601dnl --------------------- operating system specific flags (port from sys/*) 602 603dnl ----- AIX specific ----- 604if test x"$this_os" = "xaix"; then 605 AC_MSG_RESULT([ * AIX specific configuration]) 606 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) 607 608 dnl This is probably a lie; AIX 4.3 supports a 64-bit long 609 dnl compilation environment. It's enough to get things defined 610 dnl right in endian.h provided that long long is supported, though. 611 AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit]) 612fi 613 614dnl ----- FreeBSD specific ----- 615if test x"$this_os" = "xfreebsd"; then 616 AC_MSG_RESULT([ * FreeBSD specific configuration]) 617 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) 618 AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD]) 619 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, EMLINK, errno returned by open with O_NOFOLLOW) 620fi 621 622dnl ----- GNU/kFreeBSD specific ----- 623if test x"$this_os" = "xkfreebsd-gnu"; then 624 AC_MSG_RESULT([ * GNU/kFreeBSD specific configuration]) 625 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) 626 AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD]) 627 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, EMLINK, errno returned by open with O_NOFOLLOW) 628fi 629 630dnl ----- HP-UX 11 specific ----- 631if test x"$this_os" = "xhpux11"; then 632 AC_MSG_RESULT([ * HP-UX 11 specific configuration]) 633 634 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro]) 635 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) 636fi 637 638dnl ----- IRIX specific ----- 639if test x"$this_os" = "xirix"; then 640 AC_MSG_RESULT([ * IRIX specific configuration]) 641 642 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) 643fi 644 645dnl ----- Linux specific ----- 646if test x"$this_os" = "xlinux"; then 647 AC_MSG_RESULT([ * Linux specific configuration]) 648 649 dnl ----- kernel 2.6 changed struct at_addr to atalk_addr 650 AC_MSG_CHECKING([for struct atalk_addr]) 651dnl AC_COMPILE_IFELSE([ 652 AC_TRY_COMPILE([ 653#include <sys/socket.h> 654#include <asm/types.h> 655#include <linux/atalk.h> 656 657 struct atalk_addr foo; 658], 659[ ], [ 660 ac_have_atalk_addr=yes 661 AC_MSG_RESULT([yes]) 662 ], [ 663 AC_MSG_RESULT([no]) 664 ]) 665 666if test "x$ac_have_atalk_addr" = "xyes"; then 667 AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr]) 668fi 669 670 dnl ----- check if we need the quotactl wrapper 671# AC_CHECK_HEADERS(sys/quota.h linux/quota.h) 672# AC_CHECK_FUNC(quotactl,, 673# AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed]) 674# AC_MSG_RESULT([enabling quotactl wrapper]) 675# ) 676 677 # For quotas on Linux XFS filesystems 678 679 # For linux > 2.5.56 680 AC_CHECK_HEADERS(linux/dqblk_xfs.h,, 681 [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) 682 AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)] 683 ) 684 685 686 dnl ----- as far as I can tell, dbtob always does the wrong thing 687 dnl ----- on every single version of linux I've ever played with. 688 dnl ----- see etc/afpd/quota.c 689 AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken]) 690 691 692 dnl ----- Linux/alpha specific ----- 693 if test x"$this_cpu" = "xalpha"; then 694 AC_MSG_RESULT([enabling gcc memcpy bug workaround]) 695 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy]) 696 fi 697 need_dash_r=no 698 699 700fi 701 702dnl ----- Mac OSX specific ----- 703if test x"$this_os" = "xmacosx"; then 704 AC_MSG_RESULT([ * Mac OSX specific configuration]) 705 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) 706 AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments]) 707 dnl AC_DEFINE(NO_DLFCN_H) 708 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) 709 AC_DEFINE(NO_QUOTA_SUPPORT, 1, [Define if Quota support should be disabled]) 710 AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server]) 711fi 712 713dnl ----- NetBSD specific ----- 714if test x"$this_os" = "xnetbsd"; then 715 AC_MSG_RESULT([ * NetBSD specific configuration]) 716 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) 717 AC_DEFINE(NETBSD, 1, [Define if OS is NetBSD]) 718 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, EFTYPE, errno returned by open with O_NOFOLLOW) 719 720 CFLAGS="-I\$(top_srcdir)/sys/netbsd $CFLAGS" 721 need_dash_r=yes 722 723 dnl ----- NetBSD does not have crypt.h, uses unistd.h ----- 724 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled]) 725fi 726 727dnl ----- OpenBSD specific ----- 728if test x"$this_os" = "xopenbsd"; then 729 AC_MSG_RESULT([ * OpenBSD specific configuration]) 730 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) 731 dnl ----- OpenBSD does not have crypt.h, uses unistd.h ----- 732 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled]) 733 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) 734fi 735 736dnl ----- Solaris specific ----- 737if test x"$this_os" = "xsolaris"; then 738 AC_MSG_RESULT([ * Solaris specific configuration]) 739 AC_DEFINE(__svr4__, 1, [Solaris compatibility macro]) 740 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro]) 741 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) 742 AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro]) 743 AC_DEFINE(_XOPEN_SOURCE, 600, [Solaris compilation environment]) 744 AC_DEFINE(__EXTENSIONS__, 1, [Solaris compilation environment]) 745 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" 746 need_dash_r=yes 747 sysv_style=solaris 748 749 solaris_module=no 750 AC_MSG_CHECKING([if we can build Solaris kernel module]) 751 if test -x /usr/ccs/bin/ld && test x"$netatalk_cv_ddp_enabled" = x"yes" ; then 752 solaris_module=yes 753 fi 754 AC_MSG_RESULT([$solaris_module]) 755 756 COMPILE_64BIT_KMODULE=no 757 KCFLAGS="" 758 KLDFLAGS="" 759 COMPILE_KERNEL_GCC=no 760 761 if test "$solaris_module" = "yes"; then 762 dnl Solaris kernel module stuff 763 AC_MSG_CHECKING([if we have to build a 64bit kernel module]) 764 765 # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6) 766 if test -x /usr/bin/isainfo; then 767 # check for 64 bit platform 768 if isainfo -kv | grep '^64-bit'; then 769 COMPILE_64BIT_KMODULE=yes 770 fi 771 fi 772 773 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) 774 775 if test "${GCC}" = yes; then 776 COMPILE_KERNEL_GCC=yes 777 if test "$COMPILE_64BIT_KMODULE" = yes; then 778 779 AC_MSG_CHECKING([if we can build a 64bit kernel module]) 780 781 case `$CC --version 2>/dev/null` in 782 [[12]].* | 3.0.*) 783 COMPILE_64BIT_KMODULE=no 784 COMPILE_KERNEL_GCC=no 785 solaris_module=no;; 786 *) 787 # use for 64 bit 788 KCFLAGS="-m64" 789 #KLDFLAGS="-melf64_sparc" 790 KLDFLAGS="-64";; 791 esac 792 793 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) 794 795 else 796 KCFLAGS="" 797 KLDFLAGS="" 798 fi 799 KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes" 800 else 801 if test "$COMPILE_64BIT_KMODULE" = yes; then 802 # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ") 803 KCFLAGS="-xarch=v9 -xregs=no%appl" 804 KLDFLAGS="-64" 805 else 806 KCFLAGS="" 807 KLDFLAGS="" 808 fi 809 KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return" 810 fi 811 812 AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[ 813 AC_TRY_LINK([\ 814#include <sys/stream.h> 815#include <sys/ddi.h>], 816[\ 817timeout_id_t dummy; 818], 819netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)]) 820 821 AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t]) 822 fi 823 824 AC_SUBST(COMPILE_KERNEL_GCC) 825 AC_SUBST(COMPILE_64BIT_KMODULE) 826 AC_SUBST(KCFLAGS) 827 AC_SUBST(KLDFLAGS) 828fi 829 830dnl ----- Tru64 specific ----- 831if test x"$this_os" = "xtru64"; then 832 AC_MSG_RESULT([ * Tru64 specific configuration]) 833 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) 834 AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit]) 835 dnl AC_DEFINE(USE_MOUNT_H) 836 AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota]) 837 dnl AC_DEFINE(USE_UFS_QUOTA_H) 838 AC_DEFINE(TRU64, 1, [Define on Tru64 platforms]) 839 AC_DEFINE(_OSF_SOURCE, 1, [Define if the *passwd UAMs should be used]) 840 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define for Berkeley DB 4]) 841 AC_CHECK_LIB(security,set_auth_parameters) 842 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS" 843 need_dash_r=no 844 sysv_style=tru64 845fi 846 847dnl ------ Check for sendfile() -------- 848netatalk_cv_search_sendfile=yes 849AC_ARG_ENABLE(sendfile, 850 [ --disable-sendfile disable sendfile syscall], 851 [if test x"$enableval" = x"no"; then 852 netatalk_cv_search_sendfile=no 853 fi] 854) 855 856if test x"$netatalk_cv_search_sendfile" = x"yes"; then 857 case "$host_os" in 858 *linux*) 859 AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available]) 860 AC_CHECK_FUNC([sendfile], [netatalk_cv_HAVE_SENDFILE=yes]) 861 ;; 862 863 *solaris*) 864 AC_DEFINE(SENDFILE_FLAVOR_SOLARIS, 1, [Solaris sendfile()]) 865 AC_SEARCH_LIBS(sendfile, sendfile) 866 AC_CHECK_FUNC([sendfile], [netatalk_cv_HAVE_SENDFILE=yes]) 867 ;; 868 869 *freebsd*) 870 AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics]) 871 AC_CHECK_FUNC([sendfile], [netatalk_cv_HAVE_SENDFILE=yes]) 872 ;; 873 874 *) 875 ;; 876 877 esac 878 879 if test x"$netatalk_cv_HAVE_SENDFILE" = x"yes"; then 880 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used]) 881 fi 882fi 883 884dnl -- check for libgcrypt, if found enables DHX UAM 885AM_PATH_LIBGCRYPT([1:1.2.3],[neta_cv_compile_dhx2=yes 886 neta_cv_have_libgcrypt=yes 887 AC_MSG_NOTICE([Enabling DHX2 UAM]) 888 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt]) 889 AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled]) 890 ]) 891 892dnl -- look for openssl, if found enables DHX UAM and Randnum UAM 893AC_PATH_SSL 894 895dnl Check for Berkeley DB library 896if test "x$bdb_required" = "xyes"; then 897 AC_PATH_BDB(, [ 898 AC_MSG_RESULT([]) 899 AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.]) 900 AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.]) 901 AC_MSG_RESULT([If you have installed BDB in a non standard location use the]) 902 AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure]) 903 AC_MSG_RESULT([your linker is configured to check for libraries there.]) 904 AC_MSG_ERROR([Berkeley DB library required but not found!]) 905 ]) 906fi 907 908dnl -- check for crypt 909AC_CRYPT 910 911dnl --------------------- check for building PGP UAM module 912 913AC_MSG_CHECKING([whether the PGP UAM should be build]) 914AC_ARG_ENABLE(pgp-uam, 915 [ --enable-pgp-uam enable build of PGP UAM module],[ 916 if test "$enableval" = "yes"; then 917 if test "x$neta_cv_have_openssl" = "xyes"; then 918 AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled]) 919 compile_pgp=yes 920 AC_MSG_RESULT([yes]) 921 else 922 AC_MSG_RESULT([no]) 923 fi 924 fi 925 ],[ 926 AC_MSG_RESULT([no]) 927 ] 928) 929 930dnl --------------------- check for building Kerberos v4 UAM module 931 932AC_MSG_CHECKING([whether the Kerberos IV UAM should be build]) 933AC_ARG_ENABLE(krb4-uam, 934 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],[ 935 if test "$enableval" = "yes"; then 936 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled]) 937 compile_kerberos=yes 938 AC_MSG_RESULT([yes]) 939 else 940 AC_MSG_RESULT([no]) 941 fi 942 ],[ 943 AC_MSG_RESULT([no]) 944 ] 945) 946 947dnl --------------------- check for building Kerberos V UAM module 948 949netatalk_cv_build_krb5_uam=no 950AC_ARG_ENABLE(krbV-uam, 951 [ --enable-krbV-uam enable build of Kerberos V UAM module], 952 [ 953 if test x"$enableval" = x"yes"; then 954 NETATALK_GSSAPI_CHECK([ 955 netatalk_cv_build_krb5_uam=yes 956 ],[ 957 AC_MSG_ERROR([need GSSAPI to build Kerberos V UAM]) 958 ]) 959 fi 960 ] 961 962) 963 964AC_MSG_CHECKING([whether Kerberos V UAM should be build]) 965if test x"$netatalk_cv_build_krb5_uam" = x"yes"; then 966 AC_MSG_RESULT([yes]) 967else 968 AC_MSG_RESULT([no]) 969fi 970AM_CONDITIONAL(USE_GSSAPI, test x"$netatalk_cv_build_krb5_uam" = x"yes") 971 972dnl --------------------- overwrite the config files . . . or not. 973 974AC_MSG_CHECKING([whether configuration files should be overwritten]) 975AC_ARG_ENABLE(overwrite, 976 [ --enable-overwrite overwrite configuration files during installation], 977 [OVERWRITE_CONFIG="${enable_overwrite}"], 978 [OVERWRITE_CONFIG="no"] 979) 980AC_MSG_RESULT([$OVERWRITE_CONFIG]) 981 982dnl --------------------- check for LDAP support, for client-side ACL visibility 983AC_MSG_CHECKING(for LDAP (necessary for client-side ACL visibility)) 984AC_ARG_WITH(ldap, 985 [AS_HELP_STRING([--with-ldap], 986 [LDAP support (default=auto)])], 987 [ case "$withval" in 988 yes|no) 989 with_ldap="$withval" 990 ;; 991 *) 992 with_ldap=auto 993 ;; 994 esac ]) 995AC_MSG_RESULT($with_ldap) 996 997if test x"$with_ldap" != x"no" ; then 998 AC_CHECK_HEADER([ldap.h], with_ldap=yes, 999 [ if test x"$with_ldap" = x"yes" ; then 1000 AC_MSG_ERROR([Missing LDAP headers]) 1001 fi 1002 with_ldap=no 1003 ]) 1004 AC_CHECK_LIB(ldap, ldap_init, with_ldap=yes, 1005 [ if test x"$with_ldap" = x"yes" ; then 1006 AC_MSG_ERROR([Missing LDAP library]) 1007 fi 1008 with_ldap=no 1009 ]) 1010fi 1011 1012if test x"$with_ldap" = x"yes"; then 1013 AC_DEFINE(HAVE_LDAP,1,[Whether LDAP is available]) 1014fi 1015 1016dnl --------------------- check for ACL support 1017AC_MSG_CHECKING(whether to support ACLs) 1018AC_ARG_WITH(acls, 1019 [AS_HELP_STRING([--with-acls], 1020 [Include ACL support (default=auto)])], 1021 [ case "$withval" in 1022 yes|no) 1023 with_acl_support="$withval" 1024 ;; 1025 *) 1026 with_acl_support=auto 1027 ;; 1028 esac ], 1029 [with_acl_support=auto]) 1030AC_MSG_RESULT($with_acl_support) 1031 1032if test x"$with_acl_support" = x"no"; then 1033 AC_MSG_RESULT(Disabling ACL support) 1034 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in]) 1035else 1036 with_acl_support=yes 1037fi 1038 1039if test x"$with_acl_support" = x"yes" ; then 1040 AC_MSG_NOTICE(checking whether ACL support is available:) 1041 case "$host_os" in 1042 *sysv5*) 1043 AC_MSG_NOTICE(Using UnixWare ACLs) 1044 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available]) 1045 ;; 1046 *solaris*) 1047 AC_MSG_NOTICE(Using solaris ACLs) 1048 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available]) 1049 ACL_LIBS="$ACL_LIBS -lsec" 1050 ;; 1051 *hpux*) 1052 AC_MSG_NOTICE(Using HPUX ACLs) 1053 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available]) 1054 ;; 1055 *irix*) 1056 AC_MSG_NOTICE(Using IRIX ACLs) 1057 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available]) 1058 ;; 1059 *aix*) 1060 AC_MSG_NOTICE(Using AIX ACLs) 1061 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available]) 1062 ;; 1063 *osf*) 1064 AC_MSG_NOTICE(Using Tru64 ACLs) 1065 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available]) 1066 ACL_LIBS="$ACL_LIBS -lpacl" 1067 ;; 1068 *darwin*) 1069 AC_MSG_NOTICE(ACLs on Darwin currently not supported) 1070 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) 1071 ;; 1072 *) 1073 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"]) 1074 case "$host_os" in 1075 *linux*) 1076 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"]) 1077 ;; 1078 esac 1079 AC_CACHE_CHECK([for POSIX ACL support],netatalk_cv_HAVE_POSIX_ACLS,[ 1080 acl_LIBS=$LIBS 1081 LIBS="$LIBS $ACL_LIBS" 1082 AC_TRY_LINK([ 1083 #include <sys/types.h> 1084 #include <sys/acl.h> 1085 ],[ 1086 acl_t acl; 1087 int entry_id; 1088 acl_entry_t *entry_p; 1089 return acl_get_entry(acl, entry_id, entry_p); 1090 ], 1091 [netatalk_cv_HAVE_POSIX_ACLS=yes], 1092 [netatalk_cv_HAVE_POSIX_ACLS=no 1093 with_acl_support=no]) 1094 LIBS=$acl_LIBS 1095 ]) 1096 if test x"$netatalk_cv_HAVE_POSIX_ACLS" = x"yes"; then 1097 AC_MSG_NOTICE(Using POSIX ACLs) 1098 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available]) 1099 AC_CACHE_CHECK([for acl_get_perm_np],netatalk_cv_HAVE_ACL_GET_PERM_NP,[ 1100 acl_LIBS=$LIBS 1101 LIBS="$LIBS $ACL_LIBS" 1102 AC_TRY_LINK([ 1103 #include <sys/types.h> 1104 #include <sys/acl.h> 1105 ],[ 1106 acl_permset_t permset_d; 1107 acl_perm_t perm; 1108 return acl_get_perm_np(permset_d, perm); 1109 ], 1110 [netatalk_cv_HAVE_ACL_GET_PERM_NP=yes], 1111 [netatalk_cv_HAVE_ACL_GET_PERM_NP=no]) 1112 LIBS=$acl_LIBS 1113 ]) 1114 if test x"$netatalk_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then 1115 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available]) 1116 fi 1117 1118 AC_CACHE_CHECK([for acl_from_mode], netatalk_cv_HAVE_ACL_FROM_MODE,[ 1119 acl_LIBS=$LIBS 1120 LIBS="$LIBS $ACL_LIBS" 1121 AC_CHECK_FUNCS(acl_from_mode, 1122 [netatalk_cv_HAVE_ACL_FROM_MODE=yes], 1123 [netatalk_cv_HAVE_ACL_FROM_MODE=no]) 1124 LIBS=$acl_LIBS 1125 ]) 1126 if test x"netatalk_cv_HAVE_ACL_FROM_MODE" = x"yes"; then 1127 AC_DEFINE(HAVE_ACL_FROM_MODE,1,[Whether acl_from_mode() is available]) 1128 fi 1129 1130 1131 else 1132 AC_MSG_NOTICE(ACL support is not avaliable) 1133 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available]) 1134 fi 1135 ;; 1136 esac 1137fi 1138 1139if test x"$with_acl_support" = x"yes" ; then 1140 AC_CHECK_HEADERS([acl/libacl.h]) 1141 AC_DEFINE(HAVE_ACLS,1,[Whether ACLs support is available]) 1142 AC_SUBST(ACL_LIBS) 1143fi 1144 1145dnl --------------------- check for Extended Attributes support 1146neta_cv_eas="ad" 1147neta_cv_eas_sys_found=no 1148neta_cv_eas_sys_not_found=no 1149 1150AC_CHECK_HEADERS(sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h sys/ea.h) 1151 1152case "$this_os" in 1153 1154 *osf*) 1155 AC_SEARCH_LIBS(getproplist, [proplist]) 1156 AC_CHECK_FUNCS([getproplist fgetproplist setproplist fsetproplist], 1157 [neta_cv_eas_sys_found=yes], 1158 [neta_cv_eas_sys_not_found=yes]) 1159 AC_CHECK_FUNCS([delproplist fdelproplist add_proplist_entry get_proplist_entry],, 1160 [neta_cv_eas_sys_not_found=yes]) 1161 AC_CHECK_FUNCS([sizeof_proplist_entry],, 1162 [neta_cv_eas_sys_not_found=yes]) 1163 ;; 1164 1165 *solaris*) 1166 AC_CHECK_FUNCS([attropen], 1167 [neta_cv_eas_sys_found=yes], 1168 [neta_cv_eas_sys_not_found=yes]) 1169 ;; 1170 1171 'freebsd') 1172 AC_CHECK_FUNCS([extattr_delete_fd extattr_delete_file extattr_delete_link], 1173 [neta_cv_eas_sys_found=yes], 1174 [neta_cv_eas_sys_not_found=yes]) 1175 AC_CHECK_FUNCS([extattr_get_fd extattr_get_file extattr_get_link],, 1176 [neta_cv_eas_sys_not_found=yes]) 1177 AC_CHECK_FUNCS([extattr_list_fd extattr_list_file extattr_list_link],, 1178 [neta_cv_eas_sys_not_found=yes]) 1179 AC_CHECK_FUNCS([extattr_set_fd extattr_set_file extattr_set_link],, 1180 [neta_cv_eas_sys_not_found=yes]) 1181 ;; 1182 1183 *freebsd4* | *dragonfly* ) 1184 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work]) 1185 ;; 1186 1187 *) 1188 AC_SEARCH_LIBS(getxattr, [attr]) 1189 1190 if test "x$neta_cv_eas_sys_found" != "xyes" ; then 1191 AC_CHECK_FUNCS([getxattr lgetxattr fgetxattr listxattr llistxattr], 1192 [neta_cv_eas_sys_found=yes], 1193 [neta_cv_eas_sys_not_found=yes]) 1194 AC_CHECK_FUNCS([flistxattr removexattr lremovexattr fremovexattr],, 1195 [neta_cv_eas_sys_not_found=yes]) 1196 AC_CHECK_FUNCS([setxattr lsetxattr fsetxattr],, 1197 [neta_cv_eas_sys_not_found=yes]) 1198 fi 1199 1200 if test "x$neta_cv_eas_sys_found" != "xyes" ; then 1201 AC_CHECK_FUNCS([getea fgetea lgetea listea flistea llistea], 1202 [neta_cv_eas_sys_found=yes], 1203 [neta_cv_eas_sys_not_found=yes]) 1204 AC_CHECK_FUNCS([removeea fremoveea lremoveea setea fsetea lsetea],, 1205 [neta_cv_eas_sys_not_found=yes]) 1206 fi 1207 1208 if test "x$neta_cv_eas_sys_found" != "xyes" ; then 1209 AC_CHECK_FUNCS([attr_get attr_list attr_set attr_remove],, 1210 [neta_cv_eas_sys_not_found=yes]) 1211 AC_CHECK_FUNCS([attr_getf attr_listf attr_setf attr_removef],, 1212 [neta_cv_eas_sys_not_found=yes]) 1213 fi 1214 ;; 1215esac 1216 1217# Do xattr functions take additional options like on Darwin? 1218if test x"$ac_cv_func_getxattr" = x"yes" ; then 1219 AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [ 1220 old_LIBS=$LIBS 1221 LIBS="$LIBS $ACL_LIBS" 1222 AC_TRY_COMPILE([ 1223 #include <sys/types.h> 1224 #if HAVE_ATTR_XATTR_H 1225 #include <attr/xattr.h> 1226 #elif HAVE_SYS_XATTR_H 1227 #include <sys/xattr.h> 1228 #endif 1229 ],[ 1230 getxattr(0, 0, 0, 0, 0, 0); 1231 ], 1232 [smb_attr_cv_xattr_add_opt=yes], 1233 [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS]) 1234 ]) 1235 if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then 1236 AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options]) 1237 fi 1238fi 1239 1240if test "x$neta_cv_eas_sys_found" = "xyes" ; then 1241 if test "x$neta_cv_eas_sys_not_found" != "xyes" ; then 1242 neta_cv_eas="$neta_cv_eas | sys" 1243 fi 1244fi 1245AC_DEFINE_UNQUOTED(EA_MODULES,["$neta_cv_eas"],[Available Extended Attributes modules]) 1246 1247dnl --------------------- Check if realpath() takes NULL 1248AC_CACHE_CHECK([if the realpath function allows a NULL argument], 1249 neta_cv_REALPATH_TAKES_NULL, [ 1250 AC_TRY_RUN([ 1251 #include <stdio.h> 1252 #include <limits.h> 1253 #include <signal.h> 1254 1255 void exit_on_core(int ignored) { 1256 exit(1); 1257 } 1258 1259 main() { 1260 char *newpath; 1261 signal(SIGSEGV, exit_on_core); 1262 newpath = realpath("/tmp", NULL); 1263 exit((newpath != NULL) ? 0 : 1); 1264 }], 1265 neta_cv_REALPATH_TAKES_NULL=yes, 1266 neta_cv_REALPATH_TAKES_NULL=no, 1267 neta_cv_REALPATH_TAKES_NULL=cross 1268 ) 1269 ] 1270) 1271 1272if test x"$neta_cv_REALPATH_TAKES_NULL" = x"yes"; then 1273 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL]) 1274fi 1275 1276dnl --------------------- Netatalk Webmin 1277NETATALK_WEBMIN 1278 1279dnl --------------------- last minute substitutions 1280 1281AC_SUBST(LIBS) 1282AC_SUBST(CFLAGS) 1283AC_SUBST(OVERWRITE_CONFIG) 1284 1285AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes) 1286AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes) 1287AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes) 1288AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes) 1289AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes) 1290AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes") 1291AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes") 1292AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes) 1293AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes) 1294AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes) 1295AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes) 1296AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes) 1297AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes) 1298AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes) 1299AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes) 1300AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes) 1301AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd) 1302AM_CONDITIONAL(USE_REDHAT_SYSV, test x$sysv_style = xredhat-sysv) 1303AM_CONDITIONAL(USE_SUSE_SYSV, test x$sysv_style = xsuse-sysv) 1304AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes) 1305AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64) 1306AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris) 1307AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo) 1308AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian) 1309AM_CONDITIONAL(USE_SYSTEMD, test x$sysv_style = xsystemd || test x$sysv_style = xredhat-systemd || test x$sysv_style = xsuse-systemd) 1310AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x) 1311AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes) 1312AM_CONDITIONAL(USE_APPLETALK, test x$netatalk_cv_ddp_enabled = xyes) 1313AM_CONDITIONAL(HAVE_ATFUNCS, test x"$ac_neta_haveatfuncs" = x"yes") 1314 1315dnl --------------------- generate files 1316 1317AC_OUTPUT([Makefile 1318 bin/Makefile 1319 bin/ad/Makefile 1320 bin/adv1tov2/Makefile 1321 bin/aecho/Makefile 1322 bin/afppasswd/Makefile 1323 bin/cnid/Makefile 1324 bin/cnid/cnid2_create 1325 bin/getzones/Makefile 1326 bin/megatron/Makefile 1327 bin/misc/Makefile 1328 bin/nbp/Makefile 1329 bin/pap/Makefile 1330 bin/psorder/Makefile 1331 bin/uniconv/Makefile 1332 config/Makefile 1333 config/pam/Makefile 1334 contrib/Makefile 1335 contrib/macusers/Makefile 1336 contrib/macusers/macusers 1337 contrib/misc/Makefile 1338 contrib/printing/Makefile 1339 contrib/shell_utils/Makefile 1340 contrib/shell_utils/apple_dump 1341 contrib/shell_utils/asip-status.pl 1342 contrib/timelord/Makefile 1343 contrib/a2boot/Makefile 1344 distrib/Makefile 1345 distrib/config/Makefile 1346 distrib/config/netatalk-config 1347 distrib/initscripts/Makefile 1348 distrib/m4/Makefile 1349 distrib/systemd/Makefile 1350 doc/Makefile 1351 etc/Makefile 1352 etc/afpd/Makefile 1353 etc/atalkd/Makefile 1354 etc/cnid_dbd/Makefile 1355 etc/uams/Makefile 1356 etc/uams/uams_krb4/Makefile 1357 etc/papd/Makefile 1358 etc/psf/Makefile 1359 include/Makefile 1360 include/atalk/Makefile 1361 libatalk/Makefile 1362 libatalk/acl/Makefile 1363 libatalk/adouble/Makefile 1364 libatalk/asp/Makefile 1365 libatalk/atp/Makefile 1366 libatalk/bstring/Makefile 1367 libatalk/cnid/Makefile 1368 libatalk/cnid/cdb/Makefile 1369 libatalk/cnid/last/Makefile 1370 libatalk/cnid/dbd/Makefile 1371 libatalk/cnid/tdb/Makefile 1372 libatalk/compat/Makefile 1373 libatalk/dsi/Makefile 1374 libatalk/nbp/Makefile 1375 libatalk/netddp/Makefile 1376 libatalk/util/Makefile 1377 libatalk/tdb/Makefile 1378 libatalk/unicode/Makefile 1379 libatalk/unicode/charsets/Makefile 1380 libatalk/vfs/Makefile 1381 macros/Makefile 1382 man/Makefile 1383 man/man1/Makefile 1384 man/man3/Makefile 1385 man/man4/Makefile 1386 man/man5/Makefile 1387 man/man8/Makefile 1388 sys/Makefile 1389 sys/generic/Makefile 1390 sys/generic/sys/Makefile 1391 sys/netatalk/Makefile 1392 sys/netbsd/Makefile 1393 sys/netbsd/netatalk/Makefile 1394 sys/solaris/Makefile 1395 sys/sunos/Makefile 1396 sys/ultrix/Makefile 1397 test/Makefile 1398 test/afpd/Makefile 1399 ], 1400 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*] 1401) 1402 1403AC_NETATALK_LIBS_SUMMARY 1404AC_NETATALK_CONFIG_SUMMARY 1405