Skip to content

Commit 7859db3

Browse files
Bring up to speed with develop — mostly docs + tidying.
1 parent 60627f8 commit 7859db3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1541
-1049
lines changed

configure.ac

Lines changed: 71 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
##
2020
##==============================================================================
2121

22+
FLAMBORP="asdf"
2223

2324
##-----------------------------
2425
## Init:
2526
##-----------------------------
26-
AS_BOX([Init])
27+
YMO_BOX([Init])
2728
AC_INIT(
2829
[libyimmo], [0.0.0],
2930
[andrew.canaday@gmail.com],[libyimmo],
@@ -33,171 +34,96 @@ AC_CONFIG_MACRO_DIR([m4])
3334
AC_USE_SYSTEM_EXTENSIONS
3435

3536

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+
3655
##-----------------------------
3756
## Metadata:
3857
##-----------------------------
39-
AS_BOX([Metadata])
58+
YMO_BOX([Metadata])
59+
60+
## Package Info:
4061
AC_DEFINE([PACKAGE_LICENSE],["GPLv3"],[Package License])
4162
AC_SUBST([PACKAGE_VENDOR],["Andrew Canaday"])
4263
AC_COPYRIGHT([© copyright 2014 Andrew Canaday])
43-
AC_DEFINE([PACKAGE_COPYRIGHT],
64+
YMO_DEFINE_AND_SUB([PACKAGE_COPYRIGHT],
4465
["© copyright 2014 Andrew Canaday"],
4566
[Copyright Info])
46-
AC_SUBST([PACKAGE_COPYRIGHT],["© copyright 2014 Andrew Canaday"])
4767
AC_SUBST([PACKAGE_DESCRIPTION],
4868
["Lightweight socket server framework"])
4969
AC_SUBST([PACKAGE_SUMMARY],["Lightweight socket server framework"])
50-
AC_SUBST([YMO_LIB_VERSION],[0:0:0])
5170

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:
5282
## HACK: get the version components (note: we get awk early here)
5383
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])
5795

5896
## This is the top-level directory into which API headers are installed:
5997
AC_SUBST([YIMMO_INCLUDE],[yimmo-$PACKAGE_MAJOR.$PACKAGE_MINOR])
6098
AC_SUBST([YIMMO_INCLUDEDIR],[$includedir/$YIMMO_INCLUDE])
6199

100+
## There are a lot of these, so they're moved into the m4 directory:
101+
YMO_CHECK_DEPENDENCIES
102+
YMO_CHECK_FEATURES
62103

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])
133108

134109

135110
##-----------------------------
136-
## Arch/Compiler Traits:
111+
## Override Options:
137112
##-----------------------------
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])
194121

195122
##-----------------------------
196-
## Configuration Options:
123+
## Server Options:
197124
##-----------------------------
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])
201127
YMO_OPTION_DEPRECATED([SERVER_RECV_BUF_SIZE],[8192],
202128
[Server receive buffer size for calls to recv])
203129

@@ -221,7 +147,7 @@ YMO_OPTION_DEPRECATED([MQTT_RECV_BUF_SIZE],[4096],
221147

222148

223149
##-----------------------------
224-
## Advanced Options:
150+
## I/O Options:
225151
##-----------------------------
226152
## Server settings:
227153
YMO_OPTION([BUCKET_MAX_IOVEC],[32],
@@ -235,7 +161,7 @@ m4_ifdef([PKG_INSTALLDIR],[PKG_INSTALLDIR],[
235161
##-----------------------------
236162
## Features:
237163
##-----------------------------
238-
AS_BOX([Checking feature configuration])
164+
YMO_BOX([Checking feature configuration])
239165
##--- Examples: ---
240166
## Add flag to explicitly build example code, by default. If absent, example
241167
## programs are compiled as an automake "EXTRA" target:
@@ -268,7 +194,7 @@ AC_ARG_ENABLE([maintainer-debug],
268194

269195
## If set, extend CFLAGS with ALL KINDS OF VERBOSE INFORMATION.
270196
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])
272198
CFLAGS="${CFLAGS} \
273199
-Og -g \
274200
-std=c11 -pedantic \
@@ -317,15 +243,15 @@ AC_ARG_ENABLE([verbose-assert],
317243

318244
## If set, extend CFLAGS with verbose assertions
319245
AS_IF([test "x$enable_verbose_assert" = "xyes"], [
320-
AC_MSG_NOTICE([COMPILING WITH VERBOSE ASSERTIONS])
246+
YMO_NOTICE([COMPILING WITH VERBOSE ASSERTIONS])
321247
CFLAGS="${CFLAGS} -DYMO_ASSERT_VERBOSE=1"
322248
])
323249

324250

325251
##-----------------------------
326252
## Output:
327253
##-----------------------------
328-
AS_BOX([Generating output files])
254+
YMO_BOX([Generating output files])
329255
AC_CONFIG_HEADERS([ymo_config.h])
330256

331257
AC_CONFIG_LINKS([example/index.html:example/index.html])
@@ -384,6 +310,6 @@ AC_CONFIG_FILES([
384310
AC_REQUIRE_AUX_FILE([tap-driver.sh])
385311

386312
AC_OUTPUT
387-
AS_BOX([libyimmo configuration complete])
313+
YMO_BOX([libyimmo configuration complete])
388314

389315
## end configure.ac

0 commit comments

Comments
 (0)