Blame


1 1d081be3 2022-06-11 op AC_INIT([kamid], [0.2], [kamid@omarpolo.com], [],
2 bbcba3ed 2022-01-10 op [https://kamid.omarpolo.com])
3 bbcba3ed 2022-01-10 op AC_CONFIG_AUX_DIR(etc)
4 bbcba3ed 2022-01-10 op AC_CONFIG_LIBOBJ_DIR(compat)
5 bbcba3ed 2022-01-10 op AM_INIT_AUTOMAKE([foreign subdir-objects])
6 bbcba3ed 2022-01-10 op
7 bbcba3ed 2022-01-10 op KAMID_RELEASE=No
8 bbcba3ed 2022-01-10 op
9 bbcba3ed 2022-01-10 op AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
10 bbcba3ed 2022-01-10 op AC_SUBST(VERSION)
11 bbcba3ed 2022-01-10 op AC_SUBST(KAMID_RELEASE)
12 bbcba3ed 2022-01-10 op
13 bbcba3ed 2022-01-10 op AC_CANONICAL_HOST
14 bbcba3ed 2022-01-10 op
15 bbcba3ed 2022-01-10 op # When CFLAGS isn't set at this stage and gcc is detected by the macro below,
16 bbcba3ed 2022-01-10 op # autoconf will automatically use CFLAGS="-O2 -g". Prevent that by using an
17 bbcba3ed 2022-01-10 op # empty default.
18 bbcba3ed 2022-01-10 op : ${CFLAGS=""}
19 bbcba3ed 2022-01-10 op
20 bbcba3ed 2022-01-10 op # Save user CPPFLAGS, CFLAGS and LDFLAGS. We need to change them because
21 bbcba3ed 2022-01-10 op # AC_CHECK_HEADER doesn't give us any other way to update the include
22 bbcba3ed 2022-01-10 op # paths. But for Makefile.am we want to use AM_CPPFLAGS and friends.
23 bbcba3ed 2022-01-10 op SAVED_CFLAGS="$CFLAGS"
24 bbcba3ed 2022-01-10 op SAVED_CPPFLAGS="$CPPFLAGS"
25 bbcba3ed 2022-01-10 op SAVED_LDFLAGS="$LDFLAGS"
26 bbcba3ed 2022-01-10 op
27 bbcba3ed 2022-01-10 op # Checks for programs.
28 bbcba3ed 2022-01-10 op AC_PROG_CC
29 bbcba3ed 2022-01-10 op AC_PROG_CPP
30 bbcba3ed 2022-01-10 op AC_PROG_INSTALL
31 bbcba3ed 2022-01-10 op AC_PROG_LN_S
32 bbcba3ed 2022-01-10 op AC_PROG_MAKE_SET
33 45fcf992 2022-01-31 op AC_PROG_RANLIB
34 bbcba3ed 2022-01-10 op AC_PROG_YACC
35 bbcba3ed 2022-01-10 op PKG_PROG_PKG_CONFIG
36 bbcba3ed 2022-01-10 op AC_USE_SYSTEM_EXTENSIONS
37 bbcba3ed 2022-01-10 op
38 bbcba3ed 2022-01-10 op # Some functions can be in libbsd. Thanks to lldpb for the inspiration :)
39 bbcba3ed 2022-01-10 op AC_ARG_WITH([libbsd],
40 bbcba3ed 2022-01-10 op AS_HELP_STRING([--with-libbsd], [Use libbsd @<:@default=auto@:>@]),
41 bbcba3ed 2022-01-10 op [],
42 bbcba3ed 2022-01-10 op [with_libbsd=auto])
43 bbcba3ed 2022-01-10 op if test x"$with_libbsd" != x"no"; then
44 bbcba3ed 2022-01-10 op PKG_CHECK_MODULES([libbsd], [libbsd-overlay libbsd-ctor], [
45 bbcba3ed 2022-01-10 op AM_CFLAGS="$AM_CFLAGS $libbsd_CFLAGS"
46 bbcba3ed 2022-01-10 op LIBS="$LIBS $libbsd_LIBS"
47 bbcba3ed 2022-01-10 op ], [
48 bbcba3ed 2022-01-10 op if test x"$with_libbsd" = x"yes"; then
49 bbcba3ed 2022-01-10 op AC_MSG_FAILURE([*** no libbsd support found])
50 bbcba3ed 2022-01-10 op fi
51 bbcba3ed 2022-01-10 op with_libbsd=no
52 bbcba3ed 2022-01-10 op ])
53 bbcba3ed 2022-01-10 op fi
54 bbcba3ed 2022-01-10 op
55 bbcba3ed 2022-01-10 op AC_REPLACE_FUNCS([
56 bbcba3ed 2022-01-10 op asprintf \
57 d444fd2e 2022-12-21 op errc \
58 bbcba3ed 2022-01-10 op freezero \
59 bbcba3ed 2022-01-10 op getdtablecount \
60 bbcba3ed 2022-01-10 op getdtablesize \
61 bbcba3ed 2022-01-10 op getprogname \
62 bbcba3ed 2022-01-10 op memmem \
63 2dfdd11a 2022-10-13 op reallocarray \
64 bbcba3ed 2022-01-10 op recallocarray \
65 bbcba3ed 2022-01-10 op setproctitle \
66 bbcba3ed 2022-01-10 op setprogname \
67 bbcba3ed 2022-01-10 op strlcat \
68 bbcba3ed 2022-01-10 op strlcpy \
69 bbcba3ed 2022-01-10 op strsep \
70 bbcba3ed 2022-01-10 op strtonum \
71 bbcba3ed 2022-01-10 op vis \
72 bbcba3ed 2022-01-10 op ])
73 bbcba3ed 2022-01-10 op
74 bbcba3ed 2022-01-10 op AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE and STAILQ_ENTRY])
75 bbcba3ed 2022-01-10 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
76 bbcba3ed 2022-01-10 op #include <sys/queue.h>
77 bbcba3ed 2022-01-10 op #include <stddef.h>
78 bbcba3ed 2022-01-10 op ], [
79 bbcba3ed 2022-01-10 op TAILQ_HEAD(tailhead, entry) head;
80 bbcba3ed 2022-01-10 op struct entry {
81 bbcba3ed 2022-01-10 op TAILQ_ENTRY(entry) entries;
82 bbcba3ed 2022-01-10 op } *np, *nt;
83 bbcba3ed 2022-01-10 op TAILQ_INIT(&head);
84 bbcba3ed 2022-01-10 op TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
85 bbcba3ed 2022-01-10 op /* nop */ ;
86 bbcba3ed 2022-01-10 op }
87 bbcba3ed 2022-01-10 op
88 bbcba3ed 2022-01-10 op STAILQ_HEAD(listhead, qentry) qhead = STAILQ_HEAD_INITIALIZER(qhead);
89 bbcba3ed 2022-01-10 op struct qentry {
90 bbcba3ed 2022-01-10 op STAILQ_ENTRY(qentry) entries;
91 bbcba3ed 2022-01-10 op } foo;
92 bbcba3ed 2022-01-10 op
93 bbcba3ed 2022-01-10 op return 0;
94 bbcba3ed 2022-01-10 op ])], [
95 bbcba3ed 2022-01-10 op AC_MSG_RESULT(yes)
96 bbcba3ed 2022-01-10 op AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
97 bbcba3ed 2022-01-10 op ], AC_MSG_RESULT(no))
98 bbcba3ed 2022-01-10 op
99 541417a8 2022-12-21 op AC_MSG_CHECKING([for usable sys/tree.h])
100 541417a8 2022-12-21 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
101 541417a8 2022-12-21 op #include <sys/tree.h>
102 541417a8 2022-12-21 op #include <stdio.h>
103 bbcba3ed 2022-01-10 op
104 541417a8 2022-12-21 op struct client {
105 541417a8 2022-12-21 op int id;
106 541417a8 2022-12-21 op SPLAY_ENTRY(client) sp_entry;
107 541417a8 2022-12-21 op };
108 541417a8 2022-12-21 op SPLAY_HEAD(clients_tree_id, client) clients;
109 541417a8 2022-12-21 op
110 541417a8 2022-12-21 op static inline int
111 541417a8 2022-12-21 op clients_tree_cmp(struct client *a, struct client *b)
112 541417a8 2022-12-21 op {
113 541417a8 2022-12-21 op if (a->id == b->id)
114 541417a8 2022-12-21 op return 0;
115 541417a8 2022-12-21 op else if (a->id < b->id)
116 541417a8 2022-12-21 op return -1;
117 541417a8 2022-12-21 op else
118 541417a8 2022-12-21 op return +1;
119 541417a8 2022-12-21 op }
120 541417a8 2022-12-21 op
121 541417a8 2022-12-21 op SPLAY_PROTOTYPE(clients_tree_id, client, sp_entry, clients_tree_cmp);
122 541417a8 2022-12-21 op SPLAY_GENERATE(clients_tree_id, client, sp_entry, clients_tree_cmp);
123 541417a8 2022-12-21 op ], [
124 541417a8 2022-12-21 op return 0;
125 541417a8 2022-12-21 op ])], [
126 541417a8 2022-12-21 op AC_MSG_RESULT(yes)
127 541417a8 2022-12-21 op AC_DEFINE([HAVE_SYS_TREE_H], 1, [TREE_H])
128 541417a8 2022-12-21 op ], AC_MSG_RESULT(no))
129 541417a8 2022-12-21 op
130 315668d4 2022-11-22 op AC_CHECK_HEADER([endian.h], [AC_DEFINE(HAVE_ENDIAN_H, 1, [have endian.h])], [
131 315668d4 2022-11-22 op AC_CHECK_HEADER([sys/endian.h],
132 315668d4 2022-11-22 op [AC_DEFINE(HAVE_SYS_ENDIAN_H, 1, [have sys/endian.h])], [
133 315668d4 2022-11-22 op AC_CHECK_HEADERS([libkern/OSByteOrder.h],
134 315668d4 2022-11-22 op [AC_DEFINE(HAVE_LIBKERN_OSBYTEORDER_H, 1, [have OSByteOrder.h])],
135 315668d4 2022-11-22 op [AC_MSG_ERROR([can't find compatible endian.h header])],
136 315668d4 2022-11-22 op [#include <machine/endian.h>])
137 315668d4 2022-11-22 op ])
138 315668d4 2022-11-22 op ])
139 315668d4 2022-11-22 op
140 bbcba3ed 2022-01-10 op AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
141 bbcba3ed 2022-01-10 op [[#include <sys/prctl.h>]])
142 bbcba3ed 2022-01-10 op
143 bbcba3ed 2022-01-10 op AC_CHECK_LIB([crypto], [RAND_add], [], [
144 bbcba3ed 2022-01-10 op AC_MSG_ERROR([requires openssl])
145 bbcba3ed 2022-01-10 op ])
146 bbcba3ed 2022-01-10 op
147 bbcba3ed 2022-01-10 op AC_CHECK_LIB(tls, tls_init, [], [
148 bbcba3ed 2022-01-10 op AC_MSG_ERROR([requires libtls])
149 bbcba3ed 2022-01-10 op ])
150 bbcba3ed 2022-01-10 op
151 bbcba3ed 2022-01-10 op AS_CASE([$host_os],
152 bbcba3ed 2022-01-10 op [*openbsd*], [AC_CHECK_LIB([event], [event_init], [],
153 bbcba3ed 2022-01-10 op [AC_MSG_ERROR([requires libevent])])],
154 bbcba3ed 2022-01-10 op [PKG_CHECK_MODULES([libevent2], [libevent_core >= 2],
155 bbcba3ed 2022-01-10 op [
156 bbcba3ed 2022-01-10 op AC_DEFINE([HAVE_EVENT2], 1, [1 if using event2])
157 bbcba3ed 2022-01-10 op AM_CFLAGS="$libevent2_CFLAGS $AM_CFLAGS"
158 bbcba3ed 2022-01-10 op LIBS="$libevent2_LIBS $LIBS"
159 bbcba3ed 2022-01-10 op ], [AC_MSG_ERROR([requires libevent])])])
160 bbcba3ed 2022-01-10 op
161 bbcba3ed 2022-01-10 op AC_CHECK_LIB(util, imsg_init, [], [
162 bbcba3ed 2022-01-10 op AC_LIBOBJ(fmt_scaled)
163 bbcba3ed 2022-01-10 op AC_LIBOBJ(imsg)
164 bbcba3ed 2022-01-10 op AC_LIBOBJ(imsg-buffer)
165 bbcba3ed 2022-01-10 op AC_LIBOBJ(ohash)
166 bbcba3ed 2022-01-10 op ])
167 bbcba3ed 2022-01-10 op
168 91cfa92a 2022-01-10 op # Check for readline
169 91cfa92a 2022-01-10 op AS_CASE([$host_os],
170 91cfa92a 2022-01-10 op [*openbsd*], [
171 91cfa92a 2022-01-10 op AC_DEFINE([HAVE_READLINE], 1, [1 if readline found])
172 91cfa92a 2022-01-10 op READLINE_CFLAGS=''
173 91cfa92a 2022-01-10 op READLINE_LIBS='-lreadline'
174 91cfa92a 2022-01-10 op ], [
175 91cfa92a 2022-01-10 op PKG_CHECK_MODULES([READLINE], [readline], [
176 fa5821e5 2022-01-10 op AC_DEFINE([HAVE_READLINE], 1, [])
177 91cfa92a 2022-01-10 op ], [
178 91cfa92a 2022-01-10 op AC_DEFINE([HAVE_READLINE], 0, [])
179 91cfa92a 2022-01-10 op ])
180 91cfa92a 2022-01-10 op ]
181 91cfa92a 2022-01-10 op )
182 91cfa92a 2022-01-10 op AC_SUBST(READLINE_CFLAGS)
183 91cfa92a 2022-01-10 op AC_SUBST(READLINE_LIBS)
184 91cfa92a 2022-01-10 op
185 94343c1a 2022-01-29 op # check compiler flags
186 94343c1a 2022-01-29 op AC_DEFUN([CC_ADD_CHECK_FLAGS], [
187 94343c1a 2022-01-29 op AC_MSG_CHECKING([if $CC supports $1 flag])
188 94343c1a 2022-01-29 op old_AM_CFLAGS="$AM_CFLAGS"
189 94343c1a 2022-01-29 op AM_CFLAGS="$AM_CFLAGS $1"
190 94343c1a 2022-01-29 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
191 94343c1a 2022-01-29 op AC_MSG_RESULT(yes), [
192 94343c1a 2022-01-29 op AC_MSG_RESULT(no)
193 94343c1a 2022-01-29 op AM_CFLAGS="$old_AM_CFLAGS"
194 94343c1a 2022-01-29 op ])
195 94343c1a 2022-01-29 op ])
196 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wall])
197 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wextra])
198 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wmissing-declarations])
199 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
200 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
201 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wwrite-strings])
202 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
203 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wpointer-arith])
204 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wsign-compare])
205 94343c1a 2022-01-29 op CC_ADD_CHECK_FLAGS([-Wcast-align])
206 e4ccc7eb 2022-12-21 op CC_ADD_CHECK_FLAGS([-Wno-pointer-sign])
207 94343c1a 2022-01-29 op
208 bbcba3ed 2022-01-10 op # Save our CFLAGS/CPPFLAGS/LDFLAGS for the Makefile and restore the old user
209 bbcba3ed 2022-01-10 op # variables.
210 bbcba3ed 2022-01-10 op AC_SUBST(AM_CPPFLAGS)
211 bbcba3ed 2022-01-10 op CPPFLAGS="$SAVED_CPPFLAGS"
212 bbcba3ed 2022-01-10 op AC_SUBST(AM_CFLAGS)
213 bbcba3ed 2022-01-10 op CFLAGS="$SAVED_CFLAGS"
214 bbcba3ed 2022-01-10 op AC_SUBST(AM_LDFLAGS)
215 bbcba3ed 2022-01-10 op LDFLAGS="$SAVED_LDFLAGS"
216 bbcba3ed 2022-01-10 op
217 bbcba3ed 2022-01-10 op AC_CONFIG_HEADERS([config.h])
218 bbcba3ed 2022-01-10 op AC_CONFIG_FILES([
219 bbcba3ed 2022-01-10 op Makefile
220 45fcf992 2022-01-31 op compat/Makefile
221 862d0bc3 2022-01-31 op contrib/Makefile
222 bbcba3ed 2022-01-10 op kamictl/Makefile
223 bbcba3ed 2022-01-10 op kamid/Makefile
224 bbcba3ed 2022-01-10 op kamiftp/Makefile
225 d188f690 2022-02-04 op kamiproxy/Makefile
226 bbcba3ed 2022-01-10 op kamirepl/Makefile
227 bbcba3ed 2022-01-10 op ninepscript/Makefile
228 6cd13ce7 2022-01-13 op regress/Makefile
229 6cd13ce7 2022-01-13 op regress/lisp/Makefile
230 6cd13ce7 2022-01-13 op regress/ninepscript/Makefile
231 bbcba3ed 2022-01-10 op ])
232 bbcba3ed 2022-01-10 op
233 bbcba3ed 2022-01-10 op AC_OUTPUT