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_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
75 dnl these tests have been comfirmed to be needed in 2011
76 AC_CHECK_FUNC(renameat, AC_DEFINE([_ATFILE_SOURCE], 1, AT file source))
77 AC_CHECK_FUNC(epoll_create, AC_DEFINE([HAVE_EPOLL], 1, Whether Linux epoll is available))
78 AC_CHECK_FUNCS(backtrace_symbols dirfd getusershell pread pwrite pselect)
79 AC_CHECK_FUNCS(setlinebuf strlcat strlcpy strnlen)
80 AC_CHECK_FUNCS(mmap utime getpagesize) dnl needed by tbd
82 dnl search for necessary libraries
83 AC_SEARCH_LIBS(gethostbyname, nsl)
84 AC_SEARCH_LIBS(connect, socket)
85 AC_SEARCH_LIBS(pthread_sigmask, pthread,,[AC_MSG_ERROR([missing pthread_sigmask])])
86 if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then
87 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask
89 AC_SUBST(PTHREAD_LIBS)
91 dnl --------------------- Check if realpath() takes NULL
92 AC_CACHE_CHECK([if the realpath function allows a NULL argument],
93 neta_cv_REALPATH_TAKES_NULL, [
99 void exit_on_core(int ignored) {
105 signal(SIGSEGV, exit_on_core);
106 newpath = realpath("/tmp", NULL);
107 exit((newpath != NULL) ? 0 : 1);
109 neta_cv_REALPATH_TAKES_NULL=yes,
110 neta_cv_REALPATH_TAKES_NULL=no,
111 neta_cv_REALPATH_TAKES_NULL=cross
116 if test x"$neta_cv_REALPATH_TAKES_NULL" = x"yes"; then
117 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
122 dnl --------------------------------------------------------------------------
123 dnl 64bit platform check
124 dnl --------------------------------------------------------------------------
126 AC_MSG_CHECKING([whether to check for 64bit libraries])
127 # Test if the compiler is in 64bit mode
128 echo 'int i;' > conftest.$ac_ext
129 atalk_cv_cc_64bit_output=no
130 if AC_TRY_EVAL(ac_compile); then
131 case `/usr/bin/file conftest.$ac_objext` in
133 atalk_cv_cc_64bit_output=yes
139 case $host_cpu:$atalk_cv_cc_64bit_output in
140 powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes)
144 atalk_libname="lib/64"
147 atalk_libname="lib64"
157 dnl --------------------------------------------------------------------------
158 dnl specific configuration comes in here:
159 dnl --------------------------------------------------------------------------
161 dnl Check for optional admin group support
162 AC_NETATALK_ADMIN_GROUP
164 dnl Check for optional AFS support
165 AC_NETATALK_AFS_CHECK
167 dnl --with-pkgconfdir check to change configuration directory location
168 AC_NETATALK_CONFIG_DIRS
170 dnl Check for optional cracklib support
173 dnl Check whether to enable debug code
176 dnl Check whethe to disable tickle SIGALARM stuff, which eases debugging
177 AC_NETATALK_DEBUGGING
179 dnl Check for libiconv support
180 AC_NETATALK_CHECK_ICONV
182 dnl Check for CNID database backends
183 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
185 dnl Check for quota support
186 AC_NETATALK_CHECK_QUOTA
188 dnl Check for optional server location protocol support (used by MacOS X)
191 dnl Check for optional Zeroconf support
194 dnl Check for optional TCP-wrappers support
195 AC_NETATALK_TCP_WRAPPERS
197 dnl Check for PAM libs
200 dnl Check for optional shadow password support
203 dnl Check for optional valid-shell-check support
204 AC_NETATALK_SHELL_CHECK
206 dnl Check for optional Webmin
209 dnl Check for optional sysv initscript install
210 AC_NETATALK_SYSV_STYLE
212 dnl Path where UAM modules shall be installed
213 AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], [uams_path="$withval"], [uams_path="${PKGCONFDIR}/uams"])
215 dnl Check for libgcrypt, if found enables DHX2 UAM
216 AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3])
218 dnl Check for openssl, if found enables DHX UAM and Randnum UAM
221 dnl Check for Berkeley DB library
227 dnl Check for building PGP UAM module
230 dnl Check for building Kerberos V UAM module
233 dnl Check for overwrite the config files or not
234 AC_NETATALK_OVERWRITE_CONFIG
236 dnl Check for LDAP support, for client-side ACL visibility
239 dnl Check for ACL support
242 dnl Check for Extended Attributes support
243 AC_NETATALK_EXTENDED_ATTRIBUTES
245 dnl --------------------------------------------------------------------------
246 dnl FHS stuff has to be done last because it overrides other defaults
247 dnl --------------------------------------------------------------------------
249 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
251 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
252 if test "$enableval" = "yes"; then
253 uams_path="${libdir}/netatalk"
255 PKGCONFDIR=${sysconfdir}/netatalk
256 SERVERTEXT="${PKGCONFDIR}/msg"
258 mandir="/usr/share/man"
259 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
269 dnl --------------------------------------------------------------------------
270 dnl post-FHS substitutions, etc
271 dnl --------------------------------------------------------------------------
273 UAMS_PATH="${uams_path}"
277 dnl --------------------------------------------------------------------------
278 dnl OS specific configuration comes in here:
279 dnl --------------------------------------------------------------------------
281 AC_NETATALK_OS_SPECIFIC
284 dnl --------------------------------------------------------------------------
285 dnl drop in includes for top level directory structures here...
286 dnl --------------------------------------------------------------------------
288 dnl Note: $(top_srcdir)/include should be added before all other includes
289 dnl so that includes from that directory a preferred to includes from
290 dnl /usr/include or similar places.
291 LIBS="$LIBS -L\$(top_srcdir)/libatalk -L\$(top_srcdir)/libevent"
292 CFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/sys -I\$(top_srcdir)/libevent/include $CFLAGS"
294 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
297 dnl --------------------------------------------------------------------------
298 dnl Last minute substitutions
299 dnl --------------------------------------------------------------------------
303 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
304 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
305 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
306 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
307 AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes")
308 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
309 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
310 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
311 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
312 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
313 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
314 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
315 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
316 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
317 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
318 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
319 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
320 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
321 AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
322 AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
323 AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian)
324 AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
325 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
327 dnl --------------------- generate files
332 bin/afppasswd/Makefile
334 bin/cnid/cnid2_create
335 bin/megatron/Makefile
341 contrib/macusers/Makefile
342 contrib/macusers/macusers
343 contrib/shell_utils/Makefile
344 contrib/shell_utils/afpd-mtab.pl
345 contrib/shell_utils/apple_dump
346 contrib/shell_utils/asip-status.pl
348 distrib/config/Makefile
349 distrib/config/netatalk-config
350 distrib/initscripts/Makefile
355 etc/cnid_dbd/Makefile
356 etc/netalockd/Makefile
359 include/atalk/Makefile
361 libatalk/acl/Makefile
362 libatalk/adouble/Makefile
363 libatalk/bstring/Makefile
364 libatalk/cnid/Makefile
365 libatalk/cnid/cdb/Makefile
366 libatalk/cnid/last/Makefile
367 libatalk/cnid/dbd/Makefile
368 libatalk/cnid/tdb/Makefile
369 libatalk/compat/Makefile
370 libatalk/dsi/Makefile
371 libatalk/locking/Makefile
372 libatalk/rpc/Makefile
373 libatalk/talloc/Makefile
374 libatalk/tevent/Makefile
375 libatalk/tsocket/Makefile
376 libatalk/tdb/Makefile
377 libatalk/unicode/Makefile
378 libatalk/unicode/charsets/Makefile
379 libatalk/util/Makefile
380 libatalk/vfs/Makefile
388 test/netalockd/Makefile
390 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
393 AC_NETATALK_LIBS_SUMMARY
394 AC_NETATALK_CONFIG_SUMMARY