masqmail

view configure.ac @ 202:5cecc214afc9

added docs/howto-static-linking
author meillo@marmaro.de
date Fri, 16 Jul 2010 14:43:55 +0200
parents 89f951be358f
children 45acc5727493
line source
1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ(2.59)
4 AC_INIT(masqmail, 0.3.0, meillo@marmaro.de)
5 AC_CONFIG_SRCDIR([src/masqmail.c])
6 AM_CONFIG_HEADER(config.h)
7 AM_INIT_AUTOMAKE()
9 dnl Checks for programs.
11 dnl Checks for libraries.
13 AC_PROG_CC
14 AC_ISC_POSIX
15 AC_STDC_HEADERS
16 dnl AC_ARG_PROGRAM
17 AC_PROG_RANLIB
19 PKG_CHECK_MODULES(GLIB, glib-2.0)
20 dnl # use the next line to use glib-1.2
21 dnl PKG_CHECK_MODULES(GLIB, glib)
23 AC_SUBST(GLIB_LIBS)
24 AC_SUBST(GLIB_CFLAGS)
26 dnl resolver support (default is use it)
27 AC_ARG_ENABLE(resolver,
28 [ --disable-resolver disable resolver support],
29 if test "$enable_resolver" != 'no'; then
30 resolver_enabled='yes'
31 fi,
32 resolver_enabled='yes'
33 )
35 if test "$resolver_enabled" = yes; then
36 AC_DEFINE(ENABLE_RESOLVER, 1, [If the resolver is to be used])
37 dnl checks necessary for libc5:
38 dnl if there is res_search in libc, it is probably libc5
39 dnl if not, it is probably libc6 and we need libresolv
40 AC_CHECK_LIB(c, res_search, need_resolv=no, need_resolv=yes)
41 if test "$need_resolv" = yes; then
42 AC_CHECK_LIB(resolv, res_search,
43 has_resolv=yes; RESOLV_LIBS="-lresolv",
44 has_resolv=no)
45 if test "$has_resolv" = no; then
46 saved_LIBS="$LIBS"
47 LIBS="$LIBS -lresolv"
48 AC_MSG_CHECKING(for res_search in -lresolv)
49 AC_TRY_LINK([#include <resolv.h>],
50 [res_search (0, 0, 0, 0, 0);],
51 RESOLV_LIBS="-lresolv"; has_resolv=yes; AC_MSG_RESULT(yes),
52 AC_MSG_RESULT(no));
53 LIBS="$saved_LIBS"
54 fi
55 if test "$has_resolv" = no; then
56 AC_MSG_ERROR("no libresolv")
57 RESOLV_LIBS=''
58 fi
59 fi
60 else
61 RESOLV_LIBS=''
62 fi
63 AC_SUBST(RESOLV_LIBS)
65 dnl if there is no getline, we define it using getdelim in src/masqmail.h
66 AC_CHECK_FUNCS(getline)
68 dnl if there is no fdatasync, we define it to fsync in src/masqmail.h
69 AC_CHECK_FUNCS(fdatasync)
71 dnl Checks for header files.
72 AC_HEADER_STDC
73 AC_CHECK_HEADERS(fcntl.h sys/time.h syslog.h unistd.h)
75 dnl Checks for typedefs, structures, and compiler characteristics.
76 AC_C_CONST
77 AC_TYPE_PID_T
78 AC_TYPE_SIZE_T
79 AC_HEADER_TIME
80 AC_STRUCT_TM
82 dnl Checks for library functions.
83 AC_FUNC_FNMATCH
84 AC_TYPE_SIGNAL
85 AC_FUNC_STRFTIME
86 AC_FUNC_VPRINTF
87 AC_CHECK_FUNCS(select socket strerror strstr)
89 dnl user and group configuration
90 AC_ARG_WITH(user,
91 [ --with-user=USER set user [mail]],
92 )
93 if test "x$with_user" = 'x'; then
94 with_user='mail'
95 fi
97 AC_ARG_WITH(group,
98 [ --with-group=GROUP set group [trusted]],
99 )
100 if test "x$with_group" = 'x'; then
101 with_group='trusted'
102 fi
104 dnl debugging support (default is use it)
105 AC_ARG_ENABLE(debug,
106 [ --disable-debug disable debugging],
107 if test "x$enable_debug" != 'xno'; then
108 debug_enabled='yes'
109 fi,
110 debug_enabled='yes'
111 )
112 if test "x$debug_enabled" = xyes; then
113 AC_DEFINE(ENABLE_DEBUG, 1, [If debugging is enabled])
114 fi
116 AC_DEFINE_UNQUOTED(DEF_MAIL_USER, "${with_user}", [The mail user])
117 AC_SUBST(with_user)
118 AC_DEFINE_UNQUOTED(DEF_MAIL_GROUP, "${with_group}", [The mail group])
119 AC_SUBST(with_group)
121 dnl link glib statically?
122 AC_ARG_WITH(glib_static,
123 [ --with-glib-static=path link glib statically (path mandatory!)],
124 )
125 if test "x$with_glib_static" != 'x'; then
126 GLIB_LIBS=$with_glib_static
127 AC_SUBST(GLIB_LIBS)
128 fi
130 dnl optional features
131 MD5_LIBS=''
132 BASE64_LIBS=''
134 dnl smtp server support (default is use it)
135 AC_ARG_ENABLE(smtp_server,
136 [ --disable-smtp-server disable smtp server support],
137 if test "x$enable_smtp_server" != 'xno'; then
138 smtp_server_enabled='yes'
139 fi,
140 smtp_server_enabled='yes'
141 )
142 if test "x$smtp_server_enabled" = xyes; then
143 AC_DEFINE(ENABLE_SMTP_SERVER, 1, [If the SMTP server is enabled])
144 fi
146 dnl auth support (default is to not use it)
147 AC_ARG_ENABLE(auth,
148 [ --enable-auth enable AUTH (RFC 2554) client support],
149 if test "x$enable_auth" != 'xno'; then
150 auth_enabled='yes'
151 fi,
152 )
153 if test "x$auth_enabled" = xyes; then
154 AC_DEFINE(ENABLE_AUTH, 1, [If AUTH is enabled])
155 BASE64_LIBS='base64/libbase64.a'
156 # MD5_LIBS='md5/libmd5c.a'
157 need_md5='yes'
158 fi
159 AC_SUBST(BASE64_LIBS)
161 dnl maildir support (default is to not use it)
162 AC_ARG_ENABLE(maildir,
163 [ --enable-maildir enable qmail style maildir support],
164 if test "x$enable_maildir" != 'xno'; then
165 maildir_enabled='yes'
166 fi,
167 )
168 if test "x$maildir_enabled" = xyes; then
169 AC_DEFINE(ENABLE_MAILDIR, 1, [If Maildirs are enabled])
170 fi
172 dnl libcrypto
173 AC_ARG_WITH(libcrypto,
174 [ --with-libcrypto use libcrypto],
175 )
176 if test "x$with_libcrypto" != 'xyes'; then
177 with_libcrypto='no'
178 fi
180 if test "x$need_md5" = 'xyes'; then
181 dnl check whether we have md5 in libcrypto if md5 needed and we shall link with libcrypto
182 if test "x$with_libcrypto" = "xyes"; then
183 AC_CHECK_LIB(crypto, MD5, has_crypto='yes', AC_MSG_ERROR('no libcrypto'))
184 if test "x$has_crypto" = 'xyes'; then
185 AC_DEFINE(USE_LIB_CRYPTO, 1, [If libcrypto is available])
186 MD5_LIBS='-lcrypto'
187 fi
188 else
189 MD5_LIBS='md5/libmd5c.a'
190 fi
191 fi
192 AC_SUBST(MD5_LIBS)
194 dnl ident support (default is to not use it)
195 IDENT_LIBS=''
196 AC_ARG_ENABLE(ident,
197 [ --enable-ident enable ident (RFC 1413) support],
198 if test "x$enable_ident" != 'xno'; then
199 ident_enabled='yes'
200 fi,
201 )
202 AC_SUBST(has_ident)
203 if test "x$ident_enabled" = xyes; then
204 AC_DEFINE(ENABLE_IDENT, 1, [If ident is enabled])
205 AC_CHECK_LIB(ident, ident_id, IDENT_LIBS='-lident', IDENT_LIBS='libident/libident.a')
206 fi
207 AC_SUBST(IDENT_LIBS)
209 dnl liblockfile
210 AC_ARG_WITH(liblockfile,
211 [ --with-liblockfile use liblock (for Debian)],
212 )
213 if test "x$with_liblockfile" = 'xno'; then
214 with_liblockfile=''
215 fi
216 if test "x$with_liblockfile" != 'x'; then
217 with_liblockfile='yes'
218 fi
219 if test "x$with_liblockfile" = xyes; then
220 AC_CHECK_LIB(lockfile, maillock, has_lockfile=yes, AC_MSG_ERROR("no liblockfile"))
221 LOCKFILE_LIBS='-llockfile'
222 AC_DEFINE(USE_LIBLOCKFILE, 1, [If liblockfile is to be used])
223 else
224 LOCKFILE_LIBS=''
225 fi
226 AC_SUBST(LOCKFILE_LIBS)
227 AC_SUBST(USE_LIBLOCKFILE)
229 dnl log and spool directories
230 AC_ARG_WITH(logdir,
231 [ --with-logdir=DIR set log directory [/var/log/masqmail]],
232 ,
233 with_logdir='/var/log/masqmail/'
234 )
235 AC_DEFINE_UNQUOTED(LOG_DIR, "${with_logdir}", [The log directory])
236 AC_SUBST(with_logdir)
238 AC_ARG_WITH(spooldir,
239 [ --with-spooldir=DIR set spool directory [/var/spool/masqmail]],
240 ,
241 with_spooldir='/var/spool/masqmail/'
242 )
243 AC_DEFINE_UNQUOTED(SPOOL_DIR, "${with_spooldir}", [The spool directory])
244 AC_SUBST(with_spooldir)
246 dnl configuration file
247 AC_ARG_WITH(confdir,
248 [ --with-confdir directory for configuration [/etc/masqmail]],
249 ,
250 with_confdir='/etc/masqmail'
251 )
252 AC_DEFINE_UNQUOTED(CONF_DIR, "${with_confdir}", [The configuration file location])
253 AC_SUBST(with_confdir)
255 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
257 dnl well, /me/ thought that autoconf should make things _easy_ ... -- oku
258 dnl I needed the two `eval's to get the variable expanded in all cases -- meillo
259 dnl this is just horrible! -- meillo
260 AC_DEFINE_UNQUOTED(DATA_DIR, "`eval eval echo $datadir`/masqmail", [The data directory])
262 dnl gymnastics to get the correct path where masqmail should be installed
263 dnl we need this to call ourselves in failmsg.c
264 if test "x${exec_prefix}" != 'xNONE'; then
265 AC_DEFINE_UNQUOTED(SBINDIR, "${exec_prefix}/sbin", [The sbin directory])
266 else
267 if test "x${prefix}" != 'xNONE'; then
268 AC_DEFINE_UNQUOTED(SBINDIR, "${prefix}/sbin")
269 else
270 AC_DEFINE_UNQUOTED(SBINDIR, "/usr/sbin")
271 fi
272 fi
274 AC_OUTPUT(Makefile \
275 src/Makefile \
276 src/base64/Makefile \
277 src/md5/Makefile \
278 src/libident/Makefile \
279 man/Makefile
280 )