19
19
# #
20
20
# #==============================================================================
21
21
22
+ FLAMBORP="asdf"
22
23
23
24
# #-----------------------------
24
25
# # Init:
25
26
# #-----------------------------
26
- AS_BOX ( [ Init] )
27
+ YMO_BOX ([ Init] )
27
28
AC_INIT (
28
29
[ libyimmo] , [ 0.0.0] ,
29
30
[ andrew.canaday@gmail.com] ,[ libyimmo] ,
@@ -33,171 +34,96 @@ AC_CONFIG_MACRO_DIR([m4])
33
34
AC_USE_SYSTEM_EXTENSIONS
34
35
35
36
37
+ # HACK HACK HACK: color output for "checking..."
38
+ YMO_TERM_CHECK()
39
+ YMO_MSG_RESULT() AC_MSG_RESULT ( [ $1 ] )
40
+ m4_pushdef ( [ AC_MSG_RESULT] , [ {
41
+ AS_IF ( [ test "x$ymo_configure_has_color" == "x1" ] ,[
42
+ AS_CASE ( [ "x$1 "] ,
43
+ [ xyes*] , [ ymo_color_l="\\033@<:@ 00;32;m"] ,
44
+ [ xno*] , [ ymo_color_l="\\033@<:@ 01;31;m"] ,
45
+ [ ymo_color_l="\\033@<:@ 01;m"]
46
+ )
47
+ ymo_color_r="\\033@<:@ 00;m"
48
+ ] )
49
+ printf "${ymo_color_l}" >&AS_MESSAGE_FD
50
+ YMO_MSG_RESULT $1
51
+ printf "${ymo_color_r}" >&AS_MESSAGE_FD
52
+ }dnl
53
+ ] )
54
+
36
55
# #-----------------------------
37
56
# # Metadata:
38
57
# #-----------------------------
39
- AS_BOX ( [ Metadata] )
58
+ YMO_BOX([ Metadata] )
59
+
60
+ # # Package Info:
40
61
AC_DEFINE ( [ PACKAGE_LICENSE] ,[ "GPLv3"] ,[ Package License] )
41
62
AC_SUBST ( [ PACKAGE_VENDOR] ,[ "Andrew Canaday"] )
42
63
AC_COPYRIGHT ( [ © copyright 2014 Andrew Canaday] )
43
- AC_DEFINE ( [ PACKAGE_COPYRIGHT] ,
64
+ YMO_DEFINE_AND_SUB ([ PACKAGE_COPYRIGHT] ,
44
65
[ "© copyright 2014 Andrew Canaday"] ,
45
66
[ Copyright Info] )
46
- AC_SUBST ( [ PACKAGE_COPYRIGHT] ,[ "© copyright 2014 Andrew Canaday"] )
47
67
AC_SUBST ( [ PACKAGE_DESCRIPTION] ,
48
68
[ "Lightweight socket server framework"] )
49
69
AC_SUBST ( [ PACKAGE_SUMMARY] ,[ "Lightweight socket server framework"] )
50
- AC_SUBST ( [ YMO_LIB_VERSION] ,[ 0:0:0] )
51
70
71
+ # # ABI Version:
72
+ YMO_DEFINE_AND_SUB([ YMO_ABI_CURRENT] ,[ 0] ,[ Yimmo libtool ABI current] )
73
+ YMO_DEFINE_AND_SUB([ YMO_ABI_AGE] ,[ 0] ,[ Yimmo libtool ABI age] )
74
+ YMO_DEFINE_AND_SUB([ YMO_ABI_REVISION] ,[ 0] ,[ Yimmo libtool ABI revision] )
75
+ YMO_DEFINE_STR_AND_SUB(
76
+ [ YMO_LIB_VERSION] ,
77
+ "$YMO_ABI_CURRENT:$YMO_ABI_AGE:$YMO_ABI_REVISION",
78
+ [ Yimmo libtool ABI version]
79
+ )
80
+
81
+ # # Package Version:
52
82
# # HACK: get the version components (note: we get awk early here)
53
83
AC_PROG_AWK
54
- AC_SUBST ( [ PACKAGE_MAJOR] ,[ `echo $PACKAGE_VERSION | awk -F. '{print $1 }'`] )
55
- AC_SUBST ( [ PACKAGE_MINOR] ,[ `echo $PACKAGE_VERSION | awk -F. '{print $2 }'`] )
56
- AC_SUBST ( [ PACKAGE_PATCH] ,[ `echo $PACKAGE_VERSION | awk -F. '{print $3 }'`] )
84
+
85
+ YMO_DEFINE_AND_SUB(
86
+ [ PACKAGE_MAJOR] ,
87
+ [ `echo $PACKAGE_VERSION | awk -F. '{print $1 }'`] ,
88
+ [ Yimmo package major version] )
89
+ YMO_DEFINE_AND_SUB(
90
+ [ PACKAGE_MINOR] ,[ `echo $PACKAGE_VERSION | awk -F. '{print $2 }'`] ,
91
+ [ Yimmo package minor version] )
92
+ YMO_DEFINE_AND_SUB(
93
+ [ PACKAGE_PATCH] ,[ `echo $PACKAGE_VERSION | awk -F. '{print $3 }'`] ,
94
+ [ Yimmo package patch level] )
57
95
58
96
# # This is the top-level directory into which API headers are installed:
59
97
AC_SUBST ( [ YIMMO_INCLUDE] ,[ yimmo-$PACKAGE_MAJOR.$PACKAGE_MINOR] )
60
98
AC_SUBST ( [ YIMMO_INCLUDEDIR] ,[ $includedir/$YIMMO_INCLUDE] )
61
99
100
+ # # There are a lot of these, so they're moved into the m4 directory:
101
+ YMO_CHECK_DEPENDENCIES
102
+ YMO_CHECK_FEATURES
62
103
63
- # #-----------------------------
64
- # # Programs:
65
- # #-----------------------------
66
- AS_BOX ( [ Checking for required programs] )
67
- AM_INIT_AUTOMAKE ( [ -Wall foreign] )
68
- AC_PROG_CC
69
- m4_ifdef ( [ AM_PROG_AR] , [ AM_PROG_AR] )
70
- LT_INIT
71
- PKG_PROG_PKG_CONFIG([ 0.24] )
72
- AC_PROG_LN_S
73
- # TODO: make these subject to --enable/--disable-docs
74
- AC_PROG_SED
75
- AC_PATH_PROG ( [ POMD4C] ,[ pomd4c] )
76
- AM_CONDITIONAL([ HAVE_POMD4C] , [ test "x$POMD4C" != "x"] )
77
- AC_PATH_PROG ( [ C2SPHINX] ,[ c2sphinx] )
78
- AM_CONDITIONAL([ HAVE_C2SPHINX] , [ test "x$C2SPHINX" != "x"] )
79
- AC_PATH_PROG ( [ PLANTUML] ,[ plantuml] )
80
- AM_CONDITIONAL([ HAVE_PLANTUML] , [ test "x$PLANTUML" != "x"] )
81
-
82
-
83
- # #-----------------------------
84
- # # Libraries:
85
- # #-----------------------------
86
- AS_BOX ( [ Checking for required libraries] )
87
- AX_PTHREAD
88
- AX_LIB_SOCKET_NSL
89
- YMO_LIB_EV
90
- AX_CHECK_UUID_UTIL_LINUX([ ] ,
91
- [ AC_MSG_ERROR ( [ util-linux libuuid required to build libyimmo] ) ] )
92
- PKG_CHECK_MODULES([ BSAT] , [ libbsat] )
93
- PKG_CHECK_MODULES([ PYTHON] , [ python-3.9-embed] , [ AC_MSG_NOTICE ( [ Found python 3.9] ) ] , [
94
- PKG_CHECK_MODULES([ PYTHON] , [ python-3.8-embed] , [ AC_MSG_NOTICE ( [ Found python 3.8] ) ] , [
95
- PKG_CHECK_MODULES([ PYTHON] , [ python3] , [ AC_MSG_NOTICE ( [ Found python 3] ) ] )
96
- ] )
97
- ] )
98
-
99
-
100
- AX_CHECK_OPENSSL ( [ ] ,[ AC_MSG_ERROR ( [ openssl required to build libyimmo] ) ] )
101
-
102
-
103
- # #-----------------------------
104
- # # Headers:
105
- # #-----------------------------
106
- AS_BOX ( [ Checking for required C header files] )
107
- AC_HEADER_ASSERT
108
- AC_CHECK_HEADERS ( [ stdarg.h stdbool.h stddef.h] )
109
- AC_CHECK_HEADERS ( [ sys/socket.h sys/time.h] )
110
- AC_CHECK_HEADERS ( [ netinet/in.h] )
111
-
112
-
113
- # #-----------------------------
114
- # # Types:
115
- # #-----------------------------
116
- #
117
- # TODO:
118
- # - in_port_t
119
- # - socklen_t
120
- # - uuid_t
121
- # #-----------------------------
122
- AS_BOX ( [ Checking for required types] )
123
- AC_TYPE_OFF_T
124
- AC_TYPE_UINT8_T
125
- AC_TYPE_UINT16_T
126
- AC_TYPE_UINT32_T
127
- AC_TYPE_UINTMAX_T
128
- AC_TYPE_UINTPTR_T
129
- AC_TYPE_SIZE_T
130
- AC_TYPE_SSIZE_T
131
- AC_CHECK_TYPES ( [ ptrdiff_t] )
132
- AC_CHECK_SIZEOF ( [ size_t] )
104
+ # #---------------------------------------------
105
+ # # Configuration Options:
106
+ # #---------------------------------------------
107
+ YMO_BOX([ Checking user configuration settings] )
133
108
134
109
135
110
# #-----------------------------
136
- # # Arch/Compiler Traits :
111
+ # # Override Options :
137
112
# #-----------------------------
138
- AS_BOX ( [ Checking compiler features] )
139
- AC_C_BIGENDIAN
140
- AC_C_RESTRICT
141
- # AC_C_VOLATILE
142
- AC_C_INLINE
143
- AC_C_STRINGIZE
144
- AC_C_FLEXIBLE_ARRAY_MEMBER
145
- AC_C_VARARRAYS
146
- AC_C_TYPEOF
147
-
148
-
149
- # #-----------------------------
150
- # # Compiler Attributes:
151
- # #-----------------------------
152
- AS_BOX ( [ Checking for available compile C attributes] )
153
- # AX_GCC_FUNC_ATTRIBUTE([access])
154
- # AX_GCC_FUNC_ATTRIBUTE([alloc_align])
155
- AX_GCC_FUNC_ATTRIBUTE ( [ alias] )
156
- AX_GCC_FUNC_ATTRIBUTE ( [ alloc_size] )
157
- AX_GCC_FUNC_ATTRIBUTE ( [ always_inline] )
158
- AX_GCC_FUNC_ATTRIBUTE ( [ cold] )
159
- AX_GCC_FUNC_ATTRIBUTE ( [ const] )
160
- AX_GCC_FUNC_ATTRIBUTE ( [ deprecated] )
161
- AX_GCC_FUNC_ATTRIBUTE ( [ flatten] )
162
- AX_GCC_FUNC_ATTRIBUTE ( [ format] )
163
- AX_GCC_FUNC_ATTRIBUTE ( [ gnu_inline] )
164
- AX_GCC_FUNC_ATTRIBUTE ( [ hot] )
165
- AX_GCC_FUNC_ATTRIBUTE ( [ malloc] )
166
- AX_GCC_FUNC_ATTRIBUTE ( [ nonnull] )
167
- # AX_GCC_FUNC_ATTRIBUTE([noplt])
168
- # AX_GCC_FUNC_ATTRIBUTE([pure])
169
- # AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
170
- # AX_GCC_FUNC_ATTRIBUTE([simd])
171
- AX_GCC_FUNC_ATTRIBUTE ( [ unused] )
172
- AX_GCC_FUNC_ATTRIBUTE ( [ used] )
173
- AX_GCC_FUNC_ATTRIBUTE ( [ warn_unused_result] )
174
- AX_GCC_FUNC_ATTRIBUTE ( [ weak] )
175
- AX_GCC_FUNC_ATTRIBUTE ( [ weakref] )
176
- AX_GCC_FUNC_ATTRIBUTE ( [ fallthrough] )
177
-
178
-
179
- # #-----------------------------
180
- # # Function Checks:
181
- # #-----------------------------
182
- AS_BOX ( [ Checking for required functions] )
183
- AC_FUNC_MALLOC
184
- AC_CHECK_FUNCS ( [ gettimeofday] )
185
- AC_CHECK_FUNCS ( [ memset] )
186
- AC_CHECK_FUNCS ( [ socket] )
187
- AC_CHECK_FUNCS ( [ strcasecmp] )
188
- AC_CHECK_FUNCS ( [ strdup] )
189
- AC_CHECK_FUNCS ( [ strerror] )
190
- AC_CHECK_FUNCS ( [ strstr] )
191
- AC_CHECK_FUNCS ( [ strtol] )
192
- YMO_CHECK_SOCKET_API
193
-
113
+ YMO_OPTION([ ALLOC_ALLOW_WEAKREF] ,[ 1] ,
114
+ [ Allow ymo_alloc functions to be overridden using weakref] )
115
+ YMO_OPTION([ ALLOC_ALLOW_WEAK] ,[ 1] ,
116
+ [ Allow ymo_alloc functions to be overridden using weak] )
117
+ YMO_OPTION([ ALLOC_ALLOW_ALIAS] ,[ 1] ,
118
+ [ Allow ymo_alloc functions to be overridden using alias] )
119
+ YMO_OPTION([ HDR_HASH_ALLOW_WEAK] ,[ 0] ,
120
+ [ Allow ymo_http_hdr_hash functions to be overridden using weak] )
194
121
195
122
# #-----------------------------
196
- # # Configuration Options:
123
+ # # Server Options:
197
124
# #-----------------------------
198
- AS_BOX ( [ Checking user configuration settings] )
199
- YMO_OPTION_DEPRECATED([ SERVER_IDLE_TIMEOUT] ,[ 5] ,
200
- [ Client idle disconnect period in seconds] )
125
+ YMO_OPTION([ SERVER_IDLE_TIMEOUT] ,[ 5] ,
126
+ [ Default client idle disconnect period in seconds] )
201
127
YMO_OPTION_DEPRECATED([ SERVER_RECV_BUF_SIZE] ,[ 8192] ,
202
128
[ Server receive buffer size for calls to recv] )
203
129
@@ -221,7 +147,7 @@ YMO_OPTION_DEPRECATED([MQTT_RECV_BUF_SIZE],[4096],
221
147
222
148
223
149
# #-----------------------------
224
- # # Advanced Options:
150
+ # # I/O Options:
225
151
# #-----------------------------
226
152
# # Server settings:
227
153
YMO_OPTION([ BUCKET_MAX_IOVEC] ,[ 32] ,
@@ -235,7 +161,7 @@ m4_ifdef([PKG_INSTALLDIR],[PKG_INSTALLDIR],[
235
161
# #-----------------------------
236
162
# # Features:
237
163
# #-----------------------------
238
- AS_BOX ( [ Checking feature configuration] )
164
+ YMO_BOX ([ Checking feature configuration] )
239
165
# #--- Examples: ---
240
166
# # Add flag to explicitly build example code, by default. If absent, example
241
167
# # programs are compiled as an automake "EXTRA" target:
@@ -268,7 +194,7 @@ AC_ARG_ENABLE([maintainer-debug],
268
194
269
195
# # If set, extend CFLAGS with ALL KINDS OF VERBOSE INFORMATION.
270
196
AS_IF ( [ test "x$enable_maintainer_debug" = "xyes"] , [
271
- AC_MSG_NOTICE ( [ COMPILING WITH MAINTAINER DEBUG CFLAGS] )
197
+ YMO_NOTICE ([ COMPILING WITH MAINTAINER DEBUG CFLAGS] )
272
198
CFLAGS="${CFLAGS} \
273
199
-Og -g \
274
200
-std=c11 -pedantic \
@@ -317,15 +243,15 @@ AC_ARG_ENABLE([verbose-assert],
317
243
318
244
# # If set, extend CFLAGS with verbose assertions
319
245
AS_IF ( [ test "x$enable_verbose_assert" = "xyes"] , [
320
- AC_MSG_NOTICE ( [ COMPILING WITH VERBOSE ASSERTIONS] )
246
+ YMO_NOTICE ([ COMPILING WITH VERBOSE ASSERTIONS] )
321
247
CFLAGS="${CFLAGS} -DYMO_ASSERT_VERBOSE=1"
322
248
] )
323
249
324
250
325
251
# #-----------------------------
326
252
# # Output:
327
253
# #-----------------------------
328
- AS_BOX ( [ Generating output files] )
254
+ YMO_BOX ([ Generating output files] )
329
255
AC_CONFIG_HEADERS ( [ ymo_config.h] )
330
256
331
257
AC_CONFIG_LINKS ( [ example/index.html:example/index.html] )
@@ -384,6 +310,6 @@ AC_CONFIG_FILES([
384
310
AC_REQUIRE_AUX_FILE ( [ tap-driver.sh] )
385
311
386
312
AC_OUTPUT
387
- AS_BOX ( [ libyimmo configuration complete] )
313
+ YMO_BOX ([ libyimmo configuration complete] )
388
314
389
315
# # end configure.ac
0 commit comments