]> arthur.barton.de Git - netatalk.git/blob - configure.ac
Remove locking RPC stuff, netalockd, talloc, tevent, tsocket and libevent
[netatalk.git] / configure.ac
1 dnl configure.in for netatalk
2
3 AC_INIT(etc/afpd/main.c)
4
5 NETATALK_VERSION=`cat $srcdir/VERSION`
6 AC_SUBST(NETATALK_VERSION)
7
8 AC_CANONICAL_SYSTEM
9 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
10 AM_CONFIG_HEADER(config.h)
11 AM_MAINTAINER_MODE([enable])
12
13 dnl Checks for programs.
14 AC_PROG_AWK
15 AC_PROG_CC
16 AC_PROG_CC_C99
17 AC_PROG_INSTALL
18 AC_PROG_LN_S
19 AC_PROG_MAKE_SET
20 AC_LIBTOOL_DLOPEN
21 AC_PROG_LIBTOOL
22 AC_PROG_PERL
23 AC_PROG_GREP
24 AC_PROG_PS
25 AM_PROG_CC_C_O
26
27 dnl Checks for typedefs, structures, and compiler characteristics.
28 AC_C_INLINE
29
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"
32
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"
37   AC_MSG_RESULT(yes)
38 else
39   CFLAGS="-D_U_=\"\" $CFLAGS"
40   AC_MSG_RESULT(no)
41 fi
42
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>
55 #endif
56 ])
57
58 AC_SYS_LARGEFILE([], AC_MSG_ERROR([AFP 3.x support requires Large File Support.]))
59
60 dnl --------------------------------------------------------------------------
61 dnl check if dlsym needs to add an underscore, uses libtool macros 
62 dnl --------------------------------------------------------------------------
63 AC_LTDL_DLLIB
64 AC_CHECK_FUNCS(dlopen dlsym dlclose)
65 AC_LTDL_DLSYM_USCORE
66 if test x"$libltdl_cv_need_uscore" = xyes; then
67     AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
68 fi
69
70 dnl Special hecks
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)
76 fi
77 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
78
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
84
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
91 fi
92 AC_SUBST(PTHREAD_LIBS)
93
94 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
95
96 AC_CACHE_SAVE
97
98 dnl --------------------------------------------------------------------------
99 dnl 64bit platform check
100 dnl --------------------------------------------------------------------------
101
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
108     *"ELF 64"*)
109       atalk_cv_cc_64bit_output=yes
110       ;;
111     esac
112 fi
113 rm -rf conftest*
114
115 case $host_cpu:$atalk_cv_cc_64bit_output in
116 powerpc64:yes | s390x:yes | sparc*:yes | x86_64:yes | i386:yes)
117     case $target_os in
118     solaris2*)
119         AC_MSG_RESULT([yes])
120         atalk_libname="lib/64"
121         ;;
122     *bsd* | dragonfly*)
123         AC_MSG_RESULT([no])
124         atalk_libname="lib"
125         ;;
126     *)
127         AC_MSG_RESULT([yes])
128         atalk_libname="lib64"
129         ;;
130     esac
131     ;;
132 *:*)
133     AC_MSG_RESULT([no])
134     atalk_libname="lib"
135     ;;
136 esac
137
138 dnl --------------------------------------------------------------------------
139 dnl specific configuration comes in here:
140 dnl --------------------------------------------------------------------------
141
142 dnl Check for optional admin group support
143 AC_NETATALK_ADMIN_GROUP
144
145 dnl Check for optional AFS support
146 AC_NETATALK_AFS_CHECK
147
148 dnl --with-pkgconfdir check to change configuration directory location
149 AC_NETATALK_CONFIG_DIRS
150
151 dnl Check for optional cracklib support
152 AC_NETATALK_CRACKLIB
153
154 dnl Check whether to enable debug code
155 AC_NETATALK_DEBUG
156
157 dnl Check whethe to disable tickle SIGALARM stuff, which eases debugging
158 AC_NETATALK_DEBUGGING
159
160 dnl     Check for libiconv support
161 AC_NETATALK_CHECK_ICONV
162
163 dnl Check for CNID database backends
164 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
165
166 dnl Check for quota support
167 AC_NETATALK_CHECK_QUOTA
168
169 dnl Check for optional server location protocol support (used by MacOS X)
170 AC_NETATALK_SRVLOC
171
172 dnl Check for optional Zeroconf support
173 AC_NETATALK_ZEROCONF
174
175 dnl Check for optional TCP-wrappers support
176 AC_NETATALK_TCP_WRAPPERS
177
178 dnl Check for PAM libs
179 AC_NETATALK_PATH_PAM
180
181 dnl Check for optional shadow password support
182 AC_NETATALK_SHADOW
183         
184 dnl Check for optional valid-shell-check support
185 AC_NETATALK_SHELL_CHECK
186
187 dnl Check for optional Webmin
188 AC_NETATALK_WEBMIN
189
190 dnl Check for optional sysv initscript install
191 AC_NETATALK_SYSV_STYLE
192
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"])
195
196 dnl Check for libgcrypt, if found enables DHX2 UAM
197 AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3])
198
199 dnl Check for openssl, if found enables DHX UAM and Randnum UAM
200 AC_NETATALK_PATH_SSL
201
202 dnl Check for Berkeley DB library
203 AC_NETATALK_PATH_BDB
204
205 dnl Check for crypt
206 AC_NETATALK_CRYPT
207
208 dnl Check for building PGP UAM module
209 AC_NETATALK_PGP_UAM
210
211 dnl Check for building Kerberos V UAM module
212 AC_NETATALK_KRB5_UAM
213
214 dnl Check for overwrite the config files or not
215 AC_NETATALK_OVERWRITE_CONFIG
216
217 dnl Check for LDAP support, for client-side ACL visibility
218 AC_NETATALK_LDAP
219
220 dnl Check for ACL support
221 AC_NETATALK_ACL
222
223 dnl Check for Extended Attributes support
224 AC_NETATALK_EXTENDED_ATTRIBUTES
225
226 dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
227 AC_NETATALK_SMB_SHAREMODES
228
229 dnl Check if realpath() takes NULL
230 AC_NETATALK_REALPATH
231
232 dnl Check for sendfile()
233 AC_NETATALK_SENDFILE
234
235 dnl --------------------------------------------------------------------------
236 dnl FHS stuff has to be done last because it overrides other defaults
237 dnl --------------------------------------------------------------------------
238
239 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
240 AC_ARG_ENABLE(fhs,
241         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],[
242         if test "$enableval" = "yes"; then
243                 uams_path="${libdir}/netatalk"
244                 sysconfdir="/etc"
245                 PKGCONFDIR=${sysconfdir}/netatalk
246                 SERVERTEXT="${PKGCONFDIR}/msg"
247                 use_pam_so=yes
248                 mandir="/usr/share/man"
249                 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
250                 AC_MSG_RESULT([yes])
251         else
252                 AC_MSG_RESULT([no])
253         fi
254         ],[
255                 AC_MSG_RESULT([no])
256         ]
257 )
258
259 dnl --------------------------------------------------------------------------
260 dnl post-FHS substitutions, etc
261 dnl --------------------------------------------------------------------------
262
263 UAMS_PATH="${uams_path}"
264 AC_SUBST(UAMS_PATH)
265
266
267 dnl --------------------------------------------------------------------------
268 dnl OS specific configuration comes in here:
269 dnl --------------------------------------------------------------------------
270
271 AC_NETATALK_OS_SPECIFIC
272
273
274 dnl --------------------------------------------------------------------------
275 dnl drop in includes for top level directory structures here...
276 dnl --------------------------------------------------------------------------
277
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"
283
284
285 dnl --------------------------------------------------------------------------
286 dnl Last minute substitutions
287 dnl --------------------------------------------------------------------------
288
289 AC_SUBST(LIBS)
290 AC_SUBST(CFLAGS)
291
292 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
293 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
294 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
295 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
296 AM_CONDITIONAL(HAVE_LDAP, test x"$with_ldap" = x"yes")
297 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
298 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
299 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
300 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
301 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
302 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
303 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
304 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
305 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
306 AM_CONDITIONAL(HAVE_ATFUNCS, test x"$ac_neta_haveatfuncs" = x"yes")
307
308 dnl --------------------- generate files
309
310 AC_OUTPUT([Makefile
311         bin/Makefile
312         bin/ad/Makefile
313         bin/afppasswd/Makefile
314         bin/cnid/Makefile
315         bin/cnid/cnid2_create
316         bin/megatron/Makefile
317     bin/misc/Makefile
318         bin/uniconv/Makefile
319         config/Makefile
320         config/pam/Makefile
321         contrib/Makefile
322         contrib/macusers/Makefile
323         contrib/macusers/macusers
324         contrib/shell_utils/Makefile
325         contrib/shell_utils/apple_dump
326         contrib/shell_utils/asip-status.pl
327         distrib/Makefile
328         distrib/config/Makefile
329         distrib/config/netatalk-config
330         distrib/initscripts/Makefile
331         distrib/m4/Makefile
332         distrib/systemd/Makefile
333         doc/Makefile
334         etc/Makefile
335         etc/afpd/Makefile
336         etc/cnid_dbd/Makefile
337         etc/uams/Makefile
338         include/Makefile
339         include/atalk/Makefile
340         libatalk/Makefile
341         libatalk/acl/Makefile
342         libatalk/adouble/Makefile
343         libatalk/bstring/Makefile
344         libatalk/cnid/Makefile
345         libatalk/cnid/cdb/Makefile
346         libatalk/cnid/last/Makefile
347         libatalk/cnid/dbd/Makefile
348         libatalk/cnid/tdb/Makefile
349         libatalk/compat/Makefile
350         libatalk/dsi/Makefile
351         libatalk/tdb/Makefile
352         libatalk/unicode/Makefile
353         libatalk/unicode/charsets/Makefile
354         libatalk/util/Makefile
355         libatalk/vfs/Makefile
356         macros/Makefile
357         man/Makefile
358         man/man1/Makefile
359         man/man5/Makefile
360         man/man8/Makefile
361         test/Makefile
362         test/afpd/Makefile
363         ],
364         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
365 )
366
367 AC_NETATALK_LIBS_SUMMARY
368 AC_NETATALK_CONFIG_SUMMARY