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)
11 AM_MAINTAINER_MODE([enable])
13 dnl Checks for programs.
27 dnl Checks for typedefs, structures, and compiler characteristics.
30 dnl Request SUSv3 standard interfaces plus anything else the platform may have
31 CFLAGS="$CFLAGS -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -D_GNU_SOURCE"
33 dnl Check if we can use attribute unused (gcc only) from ethereal
34 AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS)
35 if test x$GCC != x ; then
36 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
39 CFLAGS="-D_U_=\"\" $CFLAGS"
43 dnl Checks for header files, some checks are obsolete, unfortunately the code
44 dnl uses the resulting macros, so the code has to cleaned up too before
45 dnl we can remove the checks here.
46 AC_CHECK_HEADERS(mntent.h unistd.h termios.h ufs/quota.h)
47 AC_CHECK_HEADERS(netdb.h sgtty.h statfs.h dlfcn.h langinfo.h locale.h)
48 AC_CHECK_HEADERS(sys/param.h sys/fcntl.h sys/termios.h)
49 AC_CHECK_HEADERS(sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h)
50 dnl Checks for header files, confirmed to be required as of 2011
51 AC_CHECK_HEADERS(sys/epoll.h)
52 AC_CHECK_HEADERS([sys/mount.h], , ,
53 [#ifdef HAVE_SYS_PARAM_H
54 #include <sys/param.h>
58 AC_SYS_LARGEFILE([], AC_MSG_ERROR([AFP 3.x support requires Large File Support.]))
60 dnl --------------------------------------------------------------------------
61 dnl check if dlsym needs to add an underscore, uses libtool macros
62 dnl --------------------------------------------------------------------------
64 AC_CHECK_FUNCS(dlopen dlsym dlclose)
66 if test x"$libltdl_cv_need_uscore" = xyes; then
67 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
71 ac_neta_haveatfuncs=yes
72 AC_CHECK_FUNCS(openat renameat fstatat unlinkat, , ac_neta_haveatfuncs=no)
73 if test x"$ac_neta_haveatfuncs" = x"yes" ; then
74 AC_DEFINE([_ATFILE_SOURCE], 1, AT file source)
75 AC_DEFINE([HAVE_ATFUNCS], 1, whether at funcs are available)
77 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
79 dnl these tests have been comfirmed to be needed in 2011
80 AC_CHECK_FUNC(epoll_create, AC_DEFINE([HAVE_EPOLL], 1, Whether Linux epoll is available))
81 AC_CHECK_FUNCS(backtrace_symbols dirfd getusershell pread pwrite pselect)
82 AC_CHECK_FUNCS(setlinebuf strlcat strlcpy strnlen)
83 AC_CHECK_FUNCS(mmap utime getpagesize) dnl needed by tbd
85 dnl search for necessary libraries
86 AC_SEARCH_LIBS(gethostbyname, nsl)
87 AC_SEARCH_LIBS(connect, socket)
88 AC_SEARCH_LIBS(pthread_sigmask, pthread,,[AC_MSG_ERROR([missing pthread_sigmask])])
89 if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then
90 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask
92 AC_SUBST(PTHREAD_LIBS)
94 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
98 dnl --------------------------------------------------------------------------
99 dnl 64bit platform check
100 dnl --------------------------------------------------------------------------
102 AC_MSG_CHECKING([whether to check for 64bit libraries])
103 # Test if the compiler is in 64bit mode
104 echo 'int i;' > conftest.$ac_ext
105 atalk_cv_cc_64bit_output=no
106 if AC_TRY_EVAL(ac_compile); then
107 case `/usr/bin/file conftest.$ac_objext` in
109 atalk_cv_cc_64bit_output=yes
115 case $host_cpu:$atalk_cv_cc_64bit_output in
116 powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes)
120 atalk_libname="lib/64"
128 atalk_libname="lib64"
138 dnl --------------------------------------------------------------------------
139 dnl specific configuration comes in here:
140 dnl --------------------------------------------------------------------------
142 dnl Check for optional admin group support
143 AC_NETATALK_ADMIN_GROUP
145 dnl Check for optional AFS support
146 AC_NETATALK_AFS_CHECK
148 dnl --with-pkgconfdir check to change configuration directory location
149 AC_NETATALK_CONFIG_DIRS
151 dnl Check for optional cracklib support
154 dnl Check whether to enable debug code
157 dnl Check whethe to disable tickle SIGALARM stuff, which eases debugging
158 AC_NETATALK_DEBUGGING
160 dnl Check for libiconv support
161 AC_NETATALK_CHECK_ICONV
163 dnl Check for CNID database backends
164 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
166 dnl Check for quota support
167 AC_NETATALK_CHECK_QUOTA
169 dnl Check for optional server location protocol support (used by MacOS X)
172 dnl Check for optional Zeroconf support
175 dnl Check for optional TCP-wrappers support
176 AC_NETATALK_TCP_WRAPPERS
178 dnl Check for PAM libs
181 dnl Check for optional shadow password support
184 dnl Check for optional valid-shell-check support
185 AC_NETATALK_SHELL_CHECK
187 dnl Check for optional Webmin
190 dnl Check for optional sysv initscript install
191 AC_NETATALK_SYSV_STYLE
193 dnl Path where UAM modules shall be installed
194 AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], [uams_path="$withval"], [uams_path="${PKGCONFDIR}/uams"])
196 dnl Check for libgcrypt, if found enables DHX2 UAM
197 AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3])
199 dnl Check for openssl, if found enables DHX UAM and Randnum UAM
202 dnl Check for Berkeley DB library
208 dnl Check for building PGP UAM module
211 dnl Check for building Kerberos V UAM module
214 dnl Check for overwrite the config files or not
215 AC_NETATALK_OVERWRITE_CONFIG
217 dnl Check for LDAP support, for client-side ACL visibility
220 dnl Check for ACL support
223 dnl Check for Extended Attributes support
224 AC_NETATALK_EXTENDED_ATTRIBUTES
226 dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
227 AC_NETATALK_SMB_SHAREMODES
229 dnl Check if realpath() takes NULL
232 dnl Check for sendfile()
235 dnl --------------------------------------------------------------------------
236 dnl FHS stuff has to be done last because it overrides other defaults
237 dnl --------------------------------------------------------------------------
239 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
241 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
242 if test "$enableval" = "yes"; then
243 uams_path="${libdir}/netatalk"
245 PKGCONFDIR=${sysconfdir}/netatalk
246 SERVERTEXT="${PKGCONFDIR}/msg"
248 mandir="/usr/share/man"
249 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
259 dnl --------------------------------------------------------------------------
260 dnl post-FHS substitutions, etc
261 dnl --------------------------------------------------------------------------
263 UAMS_PATH="${uams_path}"
267 dnl --------------------------------------------------------------------------
268 dnl OS specific configuration comes in here:
269 dnl --------------------------------------------------------------------------
271 AC_NETATALK_OS_SPECIFIC
274 dnl --------------------------------------------------------------------------
275 dnl drop in includes for top level directory structures here...
276 dnl --------------------------------------------------------------------------
278 dnl Note: $(top_srcdir)/include should be added before all other includes
279 dnl so that includes from that directory a preferred to includes from
280 dnl /usr/include or similar places.
281 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
282 CFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/sys $CFLAGS"
285 dnl --------------------------------------------------------------------------
286 dnl Last minute substitutions
287 dnl --------------------------------------------------------------------------
289 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
293 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
294 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
295 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
296 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
297 AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes")
298 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
299 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
300 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
301 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
302 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
303 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
304 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
305 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
306 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
307 AM_CONDITIONAL(HAVE_ATFUNCS, test x"$ac_neta_haveatfuncs" = x"yes")
309 dnl --------------------- generate files
314 bin/afppasswd/Makefile
316 bin/cnid/cnid2_create
317 bin/megatron/Makefile
323 contrib/macusers/Makefile
324 contrib/macusers/macusers
325 contrib/shell_utils/Makefile
326 contrib/shell_utils/apple_dump
327 contrib/shell_utils/asip-status.pl
329 distrib/config/Makefile
330 distrib/config/netatalk-config
331 distrib/initscripts/Makefile
333 distrib/systemd/Makefile
337 etc/cnid_dbd/Makefile
340 include/atalk/Makefile
342 libatalk/acl/Makefile
343 libatalk/adouble/Makefile
344 libatalk/bstring/Makefile
345 libatalk/cnid/Makefile
346 libatalk/cnid/cdb/Makefile
347 libatalk/cnid/last/Makefile
348 libatalk/cnid/dbd/Makefile
349 libatalk/cnid/tdb/Makefile
350 libatalk/compat/Makefile
351 libatalk/dsi/Makefile
352 libatalk/tdb/Makefile
353 libatalk/unicode/Makefile
354 libatalk/unicode/charsets/Makefile
355 libatalk/util/Makefile
356 libatalk/vfs/Makefile
365 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
368 AC_NETATALK_LIBS_SUMMARY
369 AC_NETATALK_CONFIG_SUMMARY