Annotation of acopm/configure.ac, Revision 1.1.1.1
1.1 bountyht 1: # Initialise autoconf
2:
3: AC_PREREQ([2.65])
4: AC_LANG([C])
5: AC_INIT([ACOPM], [0.99], [], [acopm], [https://packages.alphachat.net/projects/ACOPM.git/])
6: AC_CONFIG_MACRO_DIR([m4])
7: AC_CONFIG_SRCDIR([src/acopm.c])
8: AC_PREFIX_DEFAULT([$HOME/ACOPM])
9:
10:
11:
12: # Initialise automake
13:
14: AM_INIT_AUTOMAKE([subdir-objects])
15:
16:
17:
18: # Optional features
19:
20: AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [build with debugging information and runtime checks]), [], [enable_debug="no"])
21: AC_ARG_WITH([mbedtls], AS_HELP_STRING([--with-mbedtls], [build with support for ARM mbedTLS, =internal to build internal copy]), [], [with_mbedtls="no"])
22:
23:
24:
25: # Test for required toolchain utilities or features
26:
27: CFLAGS_GIVEN="${CFLAGS}"
28: CFLAGS=""
29:
30: AC_PROG_CC_C99
31: AM_PROG_CC_C_O
32: AM_PROG_AR
33: AC_PROG_RANLIB
34: AC_PROG_INSTALL
35: AC_PROG_MKDIR_P
36:
37:
38:
39: # Test for required compiler keywords, header includes, functions, or data types (and members)
40:
41: AC_C_CONST
42: AC_C_INLINE
43: AC_C_RESTRICT
44:
45: AC_CHECK_HEADERS(
46: [arpa/inet.h errno.h fcntl.h getopt.h limits.h netdb.h netinet/in.h regex.h signal.h stdarg.h stdbool.h],
47: [], AC_MSG_ERROR([required header not found])
48: )
49:
50: AC_CHECK_HEADERS(
51: [stddef.h stdio.h sys/socket.h sys/wait.h time.h],
52: [], AC_MSG_ERROR([required header not found])
53: )
54:
55: AC_CHECK_FUNCS(
56: [calloc close dup2 execve exit fclose fcntl fileno fflush fopen fork fprintf free malloc memchr memmove],
57: [], AC_MSG_ERROR([required function not found])
58: )
59:
60: AC_CHECK_FUNCS(
61: [memset open realloc socket strcasecmp strchr strcmp strdup strerror strstr strtoul vfprintf vsprintf],
62: [], AC_MSG_ERROR([required function not found])
63: )
64:
65: AC_CHECK_FUNCS(
66: [vsnprintf],
67: [], AC_MSG_ERROR([required function not found])
68: )
69:
70: AC_CHECK_FUNCS(
71: [regcomp regerror regexec regfree],
72: [], AC_MSG_ERROR([required function not found]), [[#include <regex.h>]]
73: )
74:
75: AC_CHECK_FUNCS(
76: [localtime strftime time],
77: [], AC_MSG_ERROR([required function not found]), [[#include <time.h>]]
78: )
79:
80: AC_CHECK_TYPES(
81: [pid_t, size_t, ssize_t, uid_t, uint8_t, uint16_t, uint32_t, uint64_t, long long int],
82: [], AC_MSG_ERROR([required type not found])
83: )
84:
85: AC_CHECK_TYPES(
86: [sa_family_t, socklen_t],
87: [], AC_MSG_ERROR([required type not found]), [[#include <sys/socket.h>]]
88: )
89:
90: AC_CHECK_MEMBERS(
91: [regex_t.re_nsub, regmatch_t.rm_so, regmatch_t.rm_eo],
92: [], AC_MSG_ERROR([required 'regex_t' or 'regmatch_t' member not found]), [[#include <regex.h>]]
93: )
94:
95: AC_CHECK_MEMBERS(
96: [struct addrinfo.ai_flags, struct addrinfo.ai_family, struct addrinfo.ai_socktype],
97: [], AC_MSG_ERROR([required 'struct addrinfo' member not found]), [[#include <netdb.h>]]
98: )
99:
100: AC_CHECK_MEMBERS(
101: [struct addrinfo.ai_protocol, struct addrinfo.ai_addrlen, struct addrinfo.ai_addr, struct addrinfo.ai_next],
102: [], AC_MSG_ERROR([required 'struct addrinfo' member not found]), [[#include <netdb.h>]]
103: )
104:
105:
106:
107: # Test for libconfig
108:
109: LIBCONFIG_ERRSTR="your libconfig is missing, broken or too old"
110: AC_CHECK_HEADERS([libconfig.h], [], AC_MSG_ERROR([$LIBCONFIG_ERRSTR]))
111: AC_SEARCH_LIBS([config_init], [config], [], AC_MSG_ERROR([$LIBCONFIG_ERRSTR]))
112:
113:
114:
115: # Test for libevent
116:
117: LIBEVENT_ERRSTR="your libevent is missing, broken or too old"
118: AC_CHECK_HEADERS([event2/dns.h event2/event.h], [], AC_MSG_ERROR([$LIBEVENT_ERRSTR]))
119: AC_SEARCH_LIBS([event_base_dispatch], [event], [], AC_MSG_ERROR([$LIBEVENT_ERRSTR]))
120:
121:
122:
123: # Test for MbedTLS
124:
125: AM_CONDITIONAL([WITH_MBEDTLS_INTERNAL], [test "x${with_mbedtls}" = "xinternal"])
126:
127: if test "x${with_mbedtls}" = "xyes"
128: then
129: AC_DEFINE([BUILD_WITH_MBEDTLS], [1], [build with support for ARM mbedTLS])
130:
131: LIBMBEDTLS_ERRSTR="your ARM mbedTLS libraries are missing, broken or too old"
132: AC_CHECK_HEADERS(
133: [mbedtls/ctr_drbg.h mbedtls/entropy.h mbedtls/error.h mbedtls/md.h],
134: [], AC_MSG_ERROR([$LIBMBEDTLS_ERRSTR])
135: )
136: AC_CHECK_HEADERS(
137: [mbedtls/pk.h mbedtls/ssl.h mbedtls/version.h mbedtls/x509_crt.h],
138: [], AC_MSG_ERROR([$LIBMBEDTLS_ERRSTR])
139: )
140: AC_SEARCH_LIBS([mbedtls_ctr_drbg_init], [mbedcrypto], [], AC_MSG_ERROR($LIBMBEDTLS_ERRSTR))
141: AC_SEARCH_LIBS([mbedtls_x509_crt_init], [mbedx509], [], AC_MSG_ERROR($LIBMBEDTLS_ERRSTR))
142: AC_SEARCH_LIBS([mbedtls_ssl_init], [mbedtls], [], AC_MSG_ERROR($LIBMBEDTLS_ERRSTR))
143:
144: test_cflags_mbedtls="yes"
145: with_mbedtls="Yes"
146: else
147: if test "x${with_mbedtls}" = "xinternal"
148: then
149: AC_DEFINE([BUILD_WITH_MBEDTLS], [1], [build with support for ARM mbedTLS])
150:
151: git_submodule_update_remote="yes"
152: test_cflags_mbedtls="yes"
153: with_mbedtls="Yes (Building Internal Copy)"
154: else
155: if test "x${with_mbedtls}" = "xno"
156: then
157: with_mbedtls="No"
158: else
159: with_mbedtls="No (unrecognised argument '${with_mbedtls}')"
160: fi
161: fi
162: fi
163:
164:
165:
166: # If we were instructed to build with debugging support, check assert(3) works correctly
167:
168: if test "x${enable_debug}" = "xyes"
169: then
170: AC_DEFINE([BUILD_WITH_DEBUG], [1], [build with debugging information and runtime checks])
171: AC_CHECK_HEADERS([assert.h], [], AC_MSG_ERROR([assert.h not found or unusable]))
172: ACOPM_TEST_ASSERT
173: fi
174:
175:
176:
177: # Test for C compiler diagnostic flags
178:
179: ACOPM_TEST_CFLAGS_DIAGNOSTICS
180:
181: if test "x${test_cflags_mbedtls}" = "xyes"
182: then
183: ACOPM_TEST_CFLAGS([-Wno-redundant-decls])
184: ACOPM_TEST_CFLAGS([-Wno-switch-enum])
185: fi
186:
187:
188:
189: # If no CFLAGS were given to the configure script, check for optimisation flags
190:
191: if test "x${CFLAGS_GIVEN}" = "x"
192: then
193: ACOPM_TEST_CFLAGS_EXTRA
194:
195: if test "x${enable_debug}" = "xno"
196: then
197: ACOPM_TEST_CFLAGS_NODEBUG
198:
199: enable_debug="No"
200: fi
201: else
202: CFLAGS="${CFLAGS} ${CFLAGS_GIVEN}"
203: fi
204:
205: if test "x${enable_debug}" = "xyes"
206: then
207: ACOPM_TEST_CFLAGS_DEBUG
208:
209: enable_debug="Yes"
210: fi
211:
212:
213:
214: # Define some compile-time directories
215:
216: AC_DEFINE_PATH([BINDIR], ["${bindir}"], [Binary installation directory])
217: AC_DEFINE_PATH([SYSCONFDIR], ["${sysconfdir}"], [System configuration directory])
218:
219:
220:
221: # Generate the output files
222:
223: if test "x${git_submodule_update_remote}" = "xyes"
224: then
225: AC_MSG_NOTICE([checking out ARM mbedTLS repository])
226:
227: if ! git submodule update --init --remote --recursive
228: then
229: AC_MSG_ERROR([failed])
230: fi
231: fi
232:
233: AC_CONFIG_FILES([Makefile dist/acopm-dronebl-submit.py])
234: AC_CONFIG_HEADERS([lib/acopm-config.h])
235: AC_OUTPUT
236:
237:
238:
239: # Give some information to the user
240:
241: echo " "
242: echo " Configuration of ${PACKAGE_NAME} version ${PACKAGE_VERSION}"
243: echo " "
244: echo " Installation prefix .......: $(eval echo ${prefix})"
245: echo " Binary directory ..........: $(eval echo ${bindir})"
246: echo " Configuration directory ...: $(eval echo ${sysconfdir})"
247: echo " "
248: echo " Debugging Support .........: ${enable_debug}"
249: echo " ARM mbedTLS Support .......: ${with_mbedtls}"
250: echo " "
CVSweb