root/libcrash/trunk/configure.in

Revision 145, 8.0 kB (checked in by athomas, 3 years ago)
  • Minor adjustments to configure.in
Line 
1 AC_INIT(crash/Crash.cc)
2 AM_INIT_AUTOMAKE(libCrash,0.0.10)
3
4 # For development only
5 #AC_DISABLE_SHARED
6
7 CRASH_MODULES=script
8
9 # -D_POSIX_C_SOURCE=2 required for mlock on Solaris
10 EXTRA_CXXFLAGS="-D_REENTRANT -Wall"
11
12 AM_PROG_LIBTOOL
13 AC_PROG_CXX
14 AC_PROG_MAKE_SET
15 AC_PROG_INSTALL
16
17 AC_CHECK_TYPE(struct flock, [ AC_DEFINE(HAVE_STRUCT_FLOCK, 1, [Have flock struct]) ], , [
18         #include <sys/fcntl.h>
19         ])
20 AC_CHECK_FUNCS(mlock bswap_64)
21
22 AC_CHECK_FUNC(nanosleep,
23         AC_DEFINE(HAVE_NANOSLEEP, 1, [Have nanosleep]),
24         AC_SEARCH_LIBS(nanosleep, rt,
25                 [
26                 AC_DEFINE(HAVE_NANOSLEEP, 1, [Have nanosleep])
27                 ])
28         )
29
30 AC_LANG_CPLUSPLUS
31
32 AC_ARG_ENABLE(debug,            [  --enable-debug          enable debugging CXXFLAGS (-Wall -g3) [off]])
33 AC_ARG_ENABLE(profiling,        [  --enable-profiling      enable profiling CXXFLAGS (-pg -g3) [off]])
34 AC_ARG_ENABLE(sqlite,           [  --enable-sqlite         enable SQLite support [on]])
35 AC_ARG_ENABLE(mysql,            [  --enable-mysql          enable MySQL support [on]])
36 AC_ARG_ENABLE(mhash,            [  --enable-mhash          enable mhash support [on]])
37 AC_ARG_ENABLE(mcrypt,           [  --enable-mcrypt         enable mcrypt support [on]])
38 AC_ARG_ENABLE(openssl,          [  --enable-openssl        enable OpenSSL support [yes]])
39
40 AC_CHECK_SIZEOF(char)
41 AC_CHECK_SIZEOF(short)
42 AC_CHECK_SIZEOF(int)
43 AC_CHECK_SIZEOF(long)
44 AC_CHECK_SIZEOF(long long)
45
46 # 1 byte type
47 AC_MSG_CHECKING([for type to use for 1 byte integer])
48 if test $ac_cv_sizeof_char = 1; then
49         AC_MSG_RESULT([char])
50         AC_SUBST(TYPEOF_INT1, char)
51 elif test $ac_cv_sizeof_short = 1; then
52         AC_MSG_RESULT([short])
53         AC_SUBST(TYPEOF_INT1, short)
54 elif test $ac_cv_sizeof_int = 1; then
55         AC_MSG_RESULT([int])
56         AC_SUBST(TYPEOF_INT1, int)
57 elif test $ac_cv_sizeof_long = 1; then
58         AC_MSG_RESULT([long])
59         AC_SUBST(TYPEOF_INT1, long)
60 elif test $ac_cv_sizeof_long_long = 1; then
61         AC_MSG_RESULT([long long])
62         AC_SUBST(TYPEOF_INT1, "long long")
63 else
64         AC_MSG_ERROR([no type found])
65 fi
66
67 # 2 byte type
68 AC_MSG_CHECKING([for type to use for 2 byte integer])
69 if test $ac_cv_sizeof_char = 2; then
70         AC_MSG_RESULT([char])
71         AC_SUBST(TYPEOF_INT2, char)
72 elif test $ac_cv_sizeof_short = 2; then
73         AC_MSG_RESULT([short])
74         AC_SUBST(TYPEOF_INT2, short)
75 elif test $ac_cv_sizeof_int = 2; then
76         AC_MSG_RESULT([int])
77         AC_SUBST(TYPEOF_INT2, int)
78 elif test $ac_cv_sizeof_long = 2; then
79         AC_MSG_RESULT([long])
80         AC_SUBST(TYPEOF_INT2, long)
81 elif test $ac_cv_sizeof_long_long = 2; then
82         AC_MSG_RESULT([long long])
83         AC_SUBST(TYPEOF_INT2, "long long")
84 else
85         AC_MSG_ERROR([no type found])
86 fi
87
88 # 4 byte type
89 AC_MSG_CHECKING([for type to use for 4 byte integer])
90 if test $ac_cv_sizeof_char = 4; then
91         AC_MSG_RESULT([char])
92         AC_SUBST(TYPEOF_INT4, char)
93 elif test $ac_cv_sizeof_short = 4; then
94         AC_MSG_RESULT([short])
95         AC_SUBST(TYPEOF_INT4, short)
96 elif test $ac_cv_sizeof_int = 4; then
97         AC_MSG_RESULT([int])
98         AC_SUBST(TYPEOF_INT4, int)
99 elif test $ac_cv_sizeof_long = 4; then
100         AC_MSG_RESULT([long])
101         AC_SUBST(TYPEOF_INT4, long)
102 elif test $ac_cv_sizeof_long_long = 4; then
103         AC_MSG_RESULT([long long])
104         AC_SUBST(TYPEOF_INT4, "long long")
105 else
106         AC_MSG_ERROR([no type found])
107 fi
108
109 # 8 byte type
110 AC_MSG_CHECKING([for type to use for 8 byte integer])
111 if test $ac_cv_sizeof_char = 8; then
112         AC_MSG_RESULT([char])
113         AC_SUBST(TYPEOF_INT8, char)
114 elif test $ac_cv_sizeof_short = 8; then
115         AC_MSG_RESULT([short])
116         AC_SUBST(TYPEOF_INT8, short)
117 elif test $ac_cv_sizeof_int = 8; then
118         AC_MSG_RESULT([int])
119         AC_SUBST(TYPEOF_INT8, int)
120 elif test $ac_cv_sizeof_long = 8; then
121         AC_MSG_RESULT([long])
122         AC_SUBST(TYPEOF_INT8, long)
123 elif test $ac_cv_sizeof_long_long = 8; then
124         AC_MSG_RESULT([long long])
125         AC_SUBST(TYPEOF_INT8, "long long")
126 else
127         AC_MSG_ERROR([no type found])
128 fi
129
130 if test "_$enable_debug" = _yes; then
131     EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -g3"
132     LDFLAGS="${LDFLAGS} -g3"
133 else
134     EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -DNDEBUG -O3 -fomit-frame-pointer"
135     LDFLAGS="${LDFLAGS} -s"
136 fi
137
138 if test "_$enable_profiling" = _yes; then
139     EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -pg"
140     LDFLAGS="${LDFLAGS} -pg"
141 fi
142
143 AC_CHECKING([for SQL drivers])
144 if test "_$enable_sqlite" = _yes; then
145     AC_CHECK_LIB(sqlite, sqlite_compile,
146         [
147             SQL_DRIVERS="${SQL_DRIVERS} SQLite.lo"
148             OPTIONAL_TESTS="${OPTIONAL_TESTS} sqlite"
149             SQLITE_LIBS="-lsqlite"
150             SQL_LIBS="${SQL_LIBS} ${SQLITE_LIBS}"
151             CRASH_MODULES="${CRASH_MODULES} sql/sqlite"
152         ]
153     )
154 fi
155
156 if test "_$enable_mysql" = _yes; then
157     AC_CHECK_PROG(LOOKFORMYSQL, mysql_config, found, [not found])
158     if test "$LOOKFORMYSQL" = "found"; then
159         OPTIONAL_TESTS="${OPTIONAL_TESTS} mysql"
160         SQL_DRIVERS="${SQL_DRIVERS} MySQL.lo"
161         MYSQL_LIBS="`mysql_config --libs`"
162         SQL_LIBS="${SQL_LIBS} ${MYSQL_LIBS}"
163         MYSQL_CFLAGS="`mysql_config --cflags`"
164         SQL_CFLAGS="${SQL_CFLAGS} ${MYSQL_CFLAGS}"
165         CRASH_MODULES="${CRASH_MODULES} sql/mysql"
166     fi
167 fi
168
169 AC_CHECKING([for posix threads])
170 AC_CHECK_LIB(pthread, pthread_mutex_init,
171         [
172         OPTIONAL_TESTS="${OPTIONAL_TESTS} thread"
173         AM_CONDITIONAL([USE_THREAD_MODULE], true)
174         CRASH_MODULES="${CRASH_MODULES} thread"
175         ],
176         [
177         AM_CONDITIONAL([USE_THREAD_MODULE], false)
178         ]
179         )
180
181 AC_CHECK_LIB(pthread, pthread_mutex_timedlock,
182         [ AC_DEFINE(HAVE_PTHREAD_MUTEX_TIMEDLOCK, 1, [Have POSIX timed lock mutex]) ])
183
184 AC_CHECKING([for crypto drivers])
185 AC_TRY_LINK_FUNC(drand48, [AC_DEFINE(HAVE_DRAND48, 1, [Have drand48])])
186
187 if test "_$enable_mhash" = _yes; then
188     AC_CHECK_LIB(mhash, mhash,
189         [
190                 CRYPTO_DRIVERS="${CRYPTO_DRIVERS} Hash.lo KeyGenerator.lo"
191                 OPTIONAL_TEST="${OPTIONAL_TEST} hash"
192                 CRASH_MODULES="${CRASH_MODULES} crypto/hash"
193                 CRYPTO_LDFLAGS="${CRYPTO_LDFLAGS} -lmhash"
194         ])
195 fi
196
197 if test "_$enable_mcrypt" = _yes; then
198     AC_CHECK_LIB(mcrypt, mcrypt_generic_init,
199         [
200                 CRYPTO_DRIVERS="${CRYPTO_DRIVERS} Crypt.lo"
201                 OPTIONAL_TESTS="${OPTIONAL_TESTS} cipher"
202                 CRASH_MODULES="${CRASH_MODULES} crypto/cipher"
203                 CRYPTO_LDFLAGS="${CRYPTO_LDFLAGS} `libmcrypt-config --libs`"
204                 CRYPTO_CFLAGS="${CRYPTO_CFLAGS} `libmcrypt-config --cflags`"
205         ])
206 fi
207
208 if test "_$enable_openssl" = _yes; then
209     AC_CHECK_LIB(crypto, DSA_generate_parameters,
210         [
211                 CRYPTO_DRIVERS="${CRYPTO_DRIVERS} BigNum.lo DH.lo DSA.lo RSA.lo SSLConnect.lo SSLListen.lo"
212                 OPTIONAL_TESTS="${OPTIONAL_TESTS} pk dh"
213                 CRASH_MODULES="${CRASH_MODULES} crypto/pk"
214                 CRYPTO_LDFLAGS="${CRYPTO_LDFLAGS} -lcrypto -lssl"
215         ])
216
217     if (echo "$CRYPTO_MODULES" | grep crypto/hash && echo "$CRYPTO_MODULES" | grep crypto/pk &&echo "$CRYPTO_MODULES" | grep crypto/cipher) > /dev/null 2>&1; then
218                 CRASH_MODULES="${CRASH_MODULES} crypto/pk-wrapper"
219                 CRYPTO_DRIVERS="${CRYPTO_DRIVERS} PKServer.lo PKClient.lo"
220     fi
221 fi
222
223 AC_SUBST(EXTRA_CXXFLAGS)
224 AC_SUBST(EXTRA_LDFLAGS)
225 AC_SUBST(CRASH_MODULES)
226 AC_SUBST(OPTIONAL_TESTS)
227 AC_SUBST(CRYPTO_DRIVERS)
228 AC_SUBST(SQL_LIBS)
229 AC_SUBST(SQL_CFLAGS)
230 AC_SUBST(MYSQL_LIBS)
231 AC_SUBST(MYSQL_CFLAGS)
232 AC_SUBST(SQLITE_LIBS)
233 AC_SUBST(SQLITE_CFLAGS)
234 AC_SUBST(SQL_DRIVERS)
235 AC_SUBST(CRYPTO_CFLAGS)
236 AC_SUBST(CRYPTO_LDFLAGS)
237
238 AC_CHECK_HEADERS(regex.h stdint.h string utility iterator stdexcept list \
239         map vector stack byteswap.h)
240
241 AM_CONFIG_HEADER(crash/crash-config.h)
242 AC_OUTPUT(Makefile crash/Makefile \
243         crash/types.h \
244         crash/sql/Makefile \
245         crash/script/Makefile \
246         crash/crypto/Makefile \
247         crash/thread/Makefile \
248         tests/Makefile \
249         utils/Makefile \
250         utils/crash-config \
251         utils/crash-module)
252
253 if echo "$CRASH_MODULES" | grep crypto/cipher > /dev/null 2>&1; then
254         USE_CIPHER_MODULE=yes
255 else
256         USE_CIPHER_MODULE=no
257 fi
258 if echo "$CRASH_MODULES" | grep crypto/hash > /dev/null 2>&1; then
259         USE_HASH_MODULE=yes
260 else
261         USE_HASH_MODULE=no
262 fi
263 if echo "$CRASH_MODULES" | grep crypto/pk > /dev/null 2>&1; then
264         USE_PK_MODULE=yes
265 else
266         USE_PK_MODULE=no
267 fi
268 if echo "$CRASH_MODULES" | grep thread > /dev/null 2>&1; then
269         USE_THREAD_MODULE=yes
270 else
271         USE_THREAD_MODULE=no
272 fi
273 if echo "$CRASH_MODULES" | grep sql/mysql > /dev/null 2>&1; then
274         USE_MYSQL_MODULE=yes
275 else
276         USE_MYSQL_MODULE=no
277 fi
278 if echo "$CRASH_MODULES" | grep sql/sqlite > /dev/null 2>&1; then
279         USE_SQLITE_MODULE=yes
280 else
281         USE_SQLITE_MODULE=no
282 fi
283
284 echo
285 echo "libCrash modules"
286 echo
287 echo "    Thread module:     $USE_THREAD_MODULE"
288 echo "    Hash module:       $USE_HASH_MODULE"
289 echo "    Cipher module:     $USE_CIPHER_MODULE"
290 echo "    PKI module:        $USE_PK_MODULE"
291 echo "    MySQL module:      $USE_MYSQL_MODULE"
292 echo "    SQLite module:     $USE_SQLITE_MODULE"
293 echo
Note: See TracBrowser for help on using the browser.