masqmail

annotate configure.ac @ 209:10da50168dab

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