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 Configure libevent
44 AC_CONFIG_SUBDIRS([libevent])
46 dnl Checks for header files, some checks are obsolete, unfortunately the code
47 dnl uses the resulting macros, so the code has to cleaned up too before
48 dnl we can remove the checks here.
49 AC_CHECK_HEADERS(mntent.h unistd.h termios.h ufs/quota.h)
50 AC_CHECK_HEADERS(netdb.h sgtty.h statfs.h dlfcn.h langinfo.h locale.h)
51 AC_CHECK_HEADERS(sys/param.h sys/fcntl.h sys/termios.h)
52 AC_CHECK_HEADERS(sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h)
53 dnl Checks for header files, confirmed to be required as of 2011
54 AC_CHECK_HEADERS(sys/epoll.h)
55 AC_CHECK_HEADERS([sys/mount.h], , ,
56 [#ifdef HAVE_SYS_PARAM_H
57 #include <sys/param.h>
61 AC_SYS_LARGEFILE([], AC_MSG_ERROR([AFP 3.x support requires Large File Support.]))
63 dnl --------------------------------------------------------------------------
64 dnl check if dlsym needs to add an underscore, uses libtool macros
65 dnl --------------------------------------------------------------------------
67 AC_CHECK_FUNCS(dlopen dlsym dlclose)
69 if test x"$libltdl_cv_need_uscore" = xyes; then
70 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
74 ac_neta_haveatfuncs=yes
75 AC_CHECK_FUNCS(openat renameat fstatat unlinkat, , ac_neta_haveatfuncs=no)
76 if test x"$ac_neta_haveatfuncs" = x"yes" ; then
77 AC_DEFINE([_ATFILE_SOURCE], 1, AT file source)
78 AC_DEFINE([HAVE_ATFUNCS], 1, whether at funcs are available)
80 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
82 dnl these tests have been comfirmed to be needed in 2011
83 AC_CHECK_FUNC(epoll_create, AC_DEFINE([HAVE_EPOLL], 1, Whether Linux epoll is available))
84 AC_CHECK_FUNCS(backtrace_symbols dirfd getusershell pread pwrite pselect)
85 AC_CHECK_FUNCS(setlinebuf strlcat strlcpy strnlen)
86 AC_CHECK_FUNCS(mmap utime getpagesize) dnl needed by tbd
88 dnl search for necessary libraries
89 AC_SEARCH_LIBS(gethostbyname, nsl)
90 AC_SEARCH_LIBS(connect, socket)
91 AC_SEARCH_LIBS(pthread_sigmask, pthread,,[AC_MSG_ERROR([missing pthread_sigmask])])
92 if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then
93 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask
95 AC_SUBST(PTHREAD_LIBS)
97 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
101 dnl --------------------------------------------------------------------------
102 dnl 64bit platform check
103 dnl --------------------------------------------------------------------------
105 AC_MSG_CHECKING([whether to check for 64bit libraries])
106 # Test if the compiler is in 64bit mode
107 echo 'int i;' > conftest.$ac_ext
108 atalk_cv_cc_64bit_output=no
109 if AC_TRY_EVAL(ac_compile); then
110 case `/usr/bin/file conftest.$ac_objext` in
112 atalk_cv_cc_64bit_output=yes
118 case $host_cpu:$atalk_cv_cc_64bit_output in
119 powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes)
123 atalk_libname="lib/64"
131 atalk_libname="lib64"
141 dnl --------------------------------------------------------------------------
142 dnl specific configuration comes in here:
143 dnl --------------------------------------------------------------------------
145 dnl Check for optional admin group support
146 AC_NETATALK_ADMIN_GROUP
148 dnl Check for optional AFS support
149 AC_NETATALK_AFS_CHECK
151 dnl --with-pkgconfdir check to change configuration directory location
152 AC_NETATALK_CONFIG_DIRS
154 dnl Check for optional cracklib support
157 dnl Check whether to enable debug code
160 dnl Check whethe to disable tickle SIGALARM stuff, which eases debugging
161 AC_NETATALK_DEBUGGING
163 dnl Check for libiconv support
164 AC_NETATALK_CHECK_ICONV
166 dnl Check for CNID database backends
167 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
169 dnl Check for quota support
170 AC_NETATALK_CHECK_QUOTA
172 dnl Check for optional server location protocol support (used by MacOS X)
175 dnl Check for optional Zeroconf support
178 dnl Check for optional TCP-wrappers support
179 AC_NETATALK_TCP_WRAPPERS
181 dnl Check for PAM libs
184 dnl Check for optional shadow password support
187 dnl Check for optional valid-shell-check support
188 AC_NETATALK_SHELL_CHECK
190 dnl Check for optional Webmin
193 dnl Check for optional sysv initscript install
194 AC_NETATALK_SYSV_STYLE
196 dnl Path where UAM modules shall be installed
197 AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], [uams_path="$withval"], [uams_path="${PKGCONFDIR}/uams"])
199 dnl Check for libgcrypt, if found enables DHX2 UAM
200 AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3])
202 dnl Check for openssl, if found enables DHX UAM and Randnum UAM
205 dnl Check for Berkeley DB library
211 dnl Check for building PGP UAM module
214 dnl Check for building Kerberos V UAM module
217 dnl Check for overwrite the config files or not
218 AC_NETATALK_OVERWRITE_CONFIG
220 dnl Check for LDAP support, for client-side ACL visibility
223 dnl Check for ACL support
226 dnl Check for Extended Attributes support
227 AC_NETATALK_EXTENDED_ATTRIBUTES
229 dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
230 AC_NETATALK_SMB_SHAREMODES
232 dnl Check if realpath() takes NULL
235 dnl Check for sendfile()
238 dnl --------------------------------------------------------------------------
239 dnl FHS stuff has to be done last because it overrides other defaults
240 dnl --------------------------------------------------------------------------
242 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
244 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
245 if test "$enableval" = "yes"; then
246 uams_path="${libdir}/netatalk"
248 PKGCONFDIR=${sysconfdir}/netatalk
249 SERVERTEXT="${PKGCONFDIR}/msg"
251 mandir="/usr/share/man"
252 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
262 dnl --------------------------------------------------------------------------
263 dnl post-FHS substitutions, etc
264 dnl --------------------------------------------------------------------------
266 UAMS_PATH="${uams_path}"
270 dnl --------------------------------------------------------------------------
271 dnl OS specific configuration comes in here:
272 dnl --------------------------------------------------------------------------
274 AC_NETATALK_OS_SPECIFIC
277 dnl --------------------------------------------------------------------------
278 dnl drop in includes for top level directory structures here...
279 dnl --------------------------------------------------------------------------
281 dnl Note: $(top_srcdir)/include should be added before all other includes
282 dnl so that includes from that directory a preferred to includes from
283 dnl /usr/include or similar places.
284 LIBS="$LIBS -L\$(top_srcdir)/libatalk -L\$(top_srcdir)/libevent"
285 CFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/sys -I\$(top_srcdir)/libevent/include $CFLAGS"
288 dnl --------------------------------------------------------------------------
289 dnl Last minute substitutions
290 dnl --------------------------------------------------------------------------
295 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
296 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
297 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
298 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
299 AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes")
300 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
301 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
302 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
303 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
304 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
305 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
306 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
307 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
308 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
309 AM_CONDITIONAL(USE_REDHAT_SYSV, test x$sysv_style = xredhat-sysv)
310 AM_CONDITIONAL(USE_REDHAT_SYSTEMD, test x$sysv_style = xredhat-systemd)
311 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
312 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
313 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
314 AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
315 AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
316 AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian)
317 AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
318 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
319 AM_CONDITIONAL(HAVE_ATFUNCS, test x"$ac_neta_haveatfuncs" = x"yes")
321 dnl --------------------- generate files
326 bin/afppasswd/Makefile
328 bin/cnid/cnid2_create
329 bin/megatron/Makefile
335 contrib/macusers/Makefile
336 contrib/macusers/macusers
337 contrib/shell_utils/Makefile
338 contrib/shell_utils/apple_dump
339 contrib/shell_utils/asip-status.pl
341 distrib/config/Makefile
342 distrib/config/netatalk-config
343 distrib/initscripts/Makefile
345 distrib/systemd/Makefile
349 etc/cnid_dbd/Makefile
350 etc/netalockd/Makefile
353 include/atalk/Makefile
355 libatalk/acl/Makefile
356 libatalk/adouble/Makefile
357 libatalk/bstring/Makefile
358 libatalk/cnid/Makefile
359 libatalk/cnid/cdb/Makefile
360 libatalk/cnid/last/Makefile
361 libatalk/cnid/dbd/Makefile
362 libatalk/cnid/tdb/Makefile
363 libatalk/compat/Makefile
364 libatalk/dsi/Makefile
365 libatalk/locking/Makefile
366 libatalk/rpc/Makefile
367 libatalk/talloc/Makefile
368 libatalk/tevent/Makefile
369 libatalk/tsocket/Makefile
370 libatalk/tdb/Makefile
371 libatalk/unicode/Makefile
372 libatalk/unicode/charsets/Makefile
373 libatalk/util/Makefile
374 libatalk/vfs/Makefile
382 test/netalockd/Makefile
384 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
387 AC_NETATALK_LIBS_SUMMARY
388 AC_NETATALK_CONFIG_SUMMARY