1 dnl configure.in for netatalk
3 AC_INIT(etc/afpd/main.c)
5 NETATALK_VERSION=`cat $srcdir/VERSION`
6 AC_SUBST(NETATALK_VERSION)
9 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
10 AM_CONFIG_HEADER(config.h)
12 dnl Checks for programs.
26 dnl Checks for typedefs, structures, and compiler characteristics.
29 dnl Request SUSv3 standard interfaces plus anything else the platform may have
30 CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -D_GNU_SOURCE"
32 dnl Check if we can use attribute unused (gcc only) from ethereal
33 AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS)
34 if test x$GCC != x ; then
35 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
38 CFLAGS="-D_U_=\"\" $CFLAGS"
42 dnl Configure libevent
43 AC_CONFIG_SUBDIRS([libevent])
45 dnl Checks for header files, some checks are obsolete, unfortunately the code
46 dnl uses the resulting macros, so the code has to cleaned up too before
47 dnl we can remove the checks here.
48 AC_CHECK_HEADERS(mntent.h unistd.h termios.h ufs/quota.h)
49 AC_CHECK_HEADERS(netdb.h sgtty.h statfs.h dlfcn.h langinfo.h locale.h)
50 AC_CHECK_HEADERS(sys/param.h sys/fcntl.h sys/termios.h)
51 AC_CHECK_HEADERS(sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h)
52 dnl Checks for header files, confirmed to be required as of 2011
53 AC_CHECK_HEADERS(sys/epoll.h)
54 AC_CHECK_HEADERS([sys/mount.h], , ,
55 [#ifdef HAVE_SYS_PARAM_H
56 #include <sys/param.h>
60 AC_SYS_LARGEFILE([], AC_MSG_ERROR([AFP 3.x support requires Large File Support.]))
62 dnl --------------------------------------------------------------------------
63 dnl check if dlsym needs to add an underscore, uses libtool macros
64 dnl --------------------------------------------------------------------------
66 AC_CHECK_FUNCS(dlopen dlsym dlclose)
68 if test x"$libltdl_cv_need_uscore" = xyes; then
69 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
73 ac_neta_haveatfuncs=yes
74 AC_CHECK_FUNCS(openat renameat fstatat unlinkat, , ac_neta_haveatfuncs=no)
75 if test x"$ac_neta_haveatfuncs" = x"yes" ; then
76 AC_DEFINE([_ATFILE_SOURCE], 1, AT file source)
77 AC_DEFINE([HAVE_ATFUNCS], 1, whether at funcs are available)
79 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
81 dnl these tests have been comfirmed to be needed in 2011
82 AC_CHECK_FUNC(epoll_create, AC_DEFINE([HAVE_EPOLL], 1, Whether Linux epoll is available))
83 AC_CHECK_FUNCS(backtrace_symbols dirfd getusershell pread pwrite pselect)
84 AC_CHECK_FUNCS(setlinebuf strlcat strlcpy strnlen)
85 AC_CHECK_FUNCS(mmap utime getpagesize) dnl needed by tbd
87 dnl search for necessary libraries
88 AC_SEARCH_LIBS(gethostbyname, nsl)
89 AC_SEARCH_LIBS(connect, socket)
90 AC_SEARCH_LIBS(pthread_sigmask, pthread,,[AC_MSG_ERROR([missing pthread_sigmask])])
91 if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then
92 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask
94 AC_SUBST(PTHREAD_LIBS)
96 dnl --------------------- Check if realpath() takes NULL
97 AC_CACHE_CHECK([if the realpath function allows a NULL argument],
98 neta_cv_REALPATH_TAKES_NULL, [
104 void exit_on_core(int ignored) {
110 signal(SIGSEGV, exit_on_core);
111 newpath = realpath("/tmp", NULL);
112 exit((newpath != NULL) ? 0 : 1);
114 neta_cv_REALPATH_TAKES_NULL=yes,
115 neta_cv_REALPATH_TAKES_NULL=no,
116 neta_cv_REALPATH_TAKES_NULL=cross
121 if test x"$neta_cv_REALPATH_TAKES_NULL" = x"yes"; then
122 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
127 dnl --------------------------------------------------------------------------
128 dnl 64bit platform check
129 dnl --------------------------------------------------------------------------
131 AC_MSG_CHECKING([whether to check for 64bit libraries])
132 # Test if the compiler is in 64bit mode
133 echo 'int i;' > conftest.$ac_ext
134 atalk_cv_cc_64bit_output=no
135 if AC_TRY_EVAL(ac_compile); then
136 case `/usr/bin/file conftest.$ac_objext` in
138 atalk_cv_cc_64bit_output=yes
144 case $host_cpu:$atalk_cv_cc_64bit_output in
145 powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes)
149 atalk_libname="lib/64"
152 atalk_libname="lib64"
162 dnl --------------------------------------------------------------------------
163 dnl specific configuration comes in here:
164 dnl --------------------------------------------------------------------------
166 dnl Check for optional admin group support
167 AC_NETATALK_ADMIN_GROUP
169 dnl Check for optional AFS support
170 AC_NETATALK_AFS_CHECK
172 dnl --with-pkgconfdir check to change configuration directory location
173 AC_NETATALK_CONFIG_DIRS
175 dnl Check for optional cracklib support
178 dnl Check whether to enable debug code
181 dnl Check whethe to disable tickle SIGALARM stuff, which eases debugging
182 AC_NETATALK_DEBUGGING
184 dnl Check for libiconv support
185 AC_NETATALK_CHECK_ICONV
187 dnl Check for CNID database backends
188 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
190 dnl Check for quota support
191 AC_NETATALK_CHECK_QUOTA
193 dnl Check for optional server location protocol support (used by MacOS X)
196 dnl Check for optional Zeroconf support
199 dnl Check for optional TCP-wrappers support
200 AC_NETATALK_TCP_WRAPPERS
202 dnl Check for PAM libs
205 dnl Check for optional shadow password support
208 dnl Check for optional valid-shell-check support
209 AC_NETATALK_SHELL_CHECK
211 dnl Check for optional Webmin
214 dnl Check for optional sysv initscript install
215 AC_NETATALK_SYSV_STYLE
217 dnl Path where UAM modules shall be installed
218 AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], [uams_path="$withval"], [uams_path="${PKGCONFDIR}/uams"])
220 dnl Check for libgcrypt, if found enables DHX2 UAM
221 AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3])
223 dnl Check for openssl, if found enables DHX UAM and Randnum UAM
226 dnl Check for Berkeley DB library
232 dnl Check for building PGP UAM module
235 dnl Check for building Kerberos V UAM module
238 dnl Check for overwrite the config files or not
239 AC_NETATALK_OVERWRITE_CONFIG
241 dnl Check for LDAP support, for client-side ACL visibility
244 dnl Check for ACL support
247 dnl Check for Extended Attributes support
248 AC_NETATALK_EXTENDED_ATTRIBUTES
250 dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
251 AC_NETATALK_SMB_SHAREMODES
253 dnl --------------------------------------------------------------------------
254 dnl FHS stuff has to be done last because it overrides other defaults
255 dnl --------------------------------------------------------------------------
257 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
259 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
260 if test "$enableval" = "yes"; then
261 uams_path="${libdir}/netatalk"
263 PKGCONFDIR=${sysconfdir}/netatalk
264 SERVERTEXT="${PKGCONFDIR}/msg"
266 mandir="/usr/share/man"
267 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
277 dnl --------------------------------------------------------------------------
278 dnl post-FHS substitutions, etc
279 dnl --------------------------------------------------------------------------
281 UAMS_PATH="${uams_path}"
285 dnl --------------------------------------------------------------------------
286 dnl OS specific configuration comes in here:
287 dnl --------------------------------------------------------------------------
289 AC_NETATALK_OS_SPECIFIC
292 dnl --------------------------------------------------------------------------
293 dnl drop in includes for top level directory structures here...
294 dnl --------------------------------------------------------------------------
296 dnl Note: $(top_srcdir)/include should be added before all other includes
297 dnl so that includes from that directory a preferred to includes from
298 dnl /usr/include or similar places.
299 LIBS="$LIBS -L\$(top_srcdir)/libatalk -L\$(top_srcdir)/libevent"
300 CFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/sys -I\$(top_srcdir)/libevent/include $CFLAGS"
302 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
305 dnl --------------------------------------------------------------------------
306 dnl Last minute substitutions
307 dnl --------------------------------------------------------------------------
311 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
312 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
313 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
314 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
315 AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes")
316 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
317 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
318 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
319 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
320 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
321 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
322 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
323 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
324 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
325 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
326 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
327 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
328 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
329 AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
330 AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
331 AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian)
332 AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
333 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
334 AM_CONDITIONAL(HAVE_ATFUNCS, test x"$ac_neta_haveatfuncs" = x"yes")
336 dnl --------------------- generate files
341 bin/afppasswd/Makefile
343 bin/cnid/cnid2_create
344 bin/megatron/Makefile
350 contrib/macusers/Makefile
351 contrib/macusers/macusers
352 contrib/shell_utils/Makefile
353 contrib/shell_utils/afpd-mtab.pl
354 contrib/shell_utils/apple_dump
355 contrib/shell_utils/asip-status.pl
357 distrib/config/Makefile
358 distrib/config/netatalk-config
359 distrib/initscripts/Makefile
364 etc/cnid_dbd/Makefile
365 etc/netalockd/Makefile
368 include/atalk/Makefile
370 libatalk/acl/Makefile
371 libatalk/adouble/Makefile
372 libatalk/bstring/Makefile
373 libatalk/cnid/Makefile
374 libatalk/cnid/cdb/Makefile
375 libatalk/cnid/last/Makefile
376 libatalk/cnid/dbd/Makefile
377 libatalk/cnid/tdb/Makefile
378 libatalk/compat/Makefile
379 libatalk/dsi/Makefile
380 libatalk/locking/Makefile
381 libatalk/rpc/Makefile
382 libatalk/talloc/Makefile
383 libatalk/tevent/Makefile
384 libatalk/tsocket/Makefile
385 libatalk/tdb/Makefile
386 libatalk/unicode/Makefile
387 libatalk/unicode/charsets/Makefile
388 libatalk/util/Makefile
389 libatalk/vfs/Makefile
397 test/netalockd/Makefile
399 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
402 AC_NETATALK_LIBS_SUMMARY
403 AC_NETATALK_CONFIG_SUMMARY