Blame


1 2f90eb01 2022-01-09 op AC_INIT([kamid-portable], [0.1], [kamid@omarpolo.com], [],
2 2f90eb01 2022-01-09 op [https://kamid.omarpolo.com])
3 2f90eb01 2022-01-09 op AC_CONFIG_AUX_DIR(etc)
4 2f90eb01 2022-01-09 op AC_CONFIG_LIBOBJ_DIR(compat)
5 2f90eb01 2022-01-09 op AM_INIT_AUTOMAKE([foreign subdir-objects])
6 2f90eb01 2022-01-09 op
7 2f90eb01 2022-01-09 op KAMID_RELEASE=No
8 2f90eb01 2022-01-09 op
9 2f90eb01 2022-01-09 op AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
10 2f90eb01 2022-01-09 op AC_SUBST(VERSION)
11 2f90eb01 2022-01-09 op AC_SUBST(KAMID_RELEASE)
12 2f90eb01 2022-01-09 op
13 2f90eb01 2022-01-09 op AC_CANONICAL_HOST
14 2f90eb01 2022-01-09 op
15 2f90eb01 2022-01-09 op # When CFLAGS isn't set at this stage and gcc is detected by the macro below,
16 2f90eb01 2022-01-09 op # autoconf will automatically use CFLAGS="-O2 -g". Prevent that by using an
17 2f90eb01 2022-01-09 op # empty default.
18 2f90eb01 2022-01-09 op : ${CFLAGS=""}
19 2f90eb01 2022-01-09 op
20 2f90eb01 2022-01-09 op # Save user CPPFLAGS, CFLAGS and LDFLAGS. We need to change them because
21 2f90eb01 2022-01-09 op # AC_CHECK_HEADER doesn't give us any other way to update the include
22 2f90eb01 2022-01-09 op # paths. But for Makefile.am we want to use AM_CPPFLAGS and friends.
23 2f90eb01 2022-01-09 op SAVED_CFLAGS="$CFLAGS"
24 2f90eb01 2022-01-09 op SAVED_CPPFLAGS="$CPPFLAGS"
25 2f90eb01 2022-01-09 op SAVED_LDFLAGS="$LDFLAGS"
26 2f90eb01 2022-01-09 op
27 2f90eb01 2022-01-09 op # Checks for programs.
28 2f90eb01 2022-01-09 op AC_PROG_CC
29 2f90eb01 2022-01-09 op AC_PROG_CPP
30 2f90eb01 2022-01-09 op AC_PROG_INSTALL
31 2f90eb01 2022-01-09 op AC_PROG_LN_S
32 2f90eb01 2022-01-09 op AC_PROG_MAKE_SET
33 2f90eb01 2022-01-09 op AC_PROG_YACC
34 2f90eb01 2022-01-09 op PKG_PROG_PKG_CONFIG
35 2f90eb01 2022-01-09 op AC_USE_SYSTEM_EXTENSIONS
36 2f90eb01 2022-01-09 op
37 2f90eb01 2022-01-09 op # Some functions can be in libbsd. Thanks to lldpb for the inspiration :)
38 2f90eb01 2022-01-09 op AC_ARG_WITH([libbsd],
39 2f90eb01 2022-01-09 op AS_HELP_STRING([--with-libbsd], [Use libbsd @<:@default=auto@:>@]),
40 2f90eb01 2022-01-09 op [],
41 2f90eb01 2022-01-09 op [with_libbsd=auto])
42 2f90eb01 2022-01-09 op if test x"$with_libbsd" != x"no"; then
43 2f90eb01 2022-01-09 op PKG_CHECK_MODULES([libbsd], [libbsd-overlay libbsd-ctor], [
44 2f90eb01 2022-01-09 op _save_AM_CFLAGS="$AM_CFLAGS"
45 2f90eb01 2022-01-09 op _save_LIBS="$LIBS"
46 2f90eb01 2022-01-09 op AM_CFLAGS="$AM_CFLAGS $libbsd_CFLAGS"
47 2f90eb01 2022-01-09 op LIBS="$LIBS $libbsd_LIBS"
48 2f90eb01 2022-01-09 op ], [
49 2f90eb01 2022-01-09 op if test x"$with_libbsd" = x"yes"; then
50 2f90eb01 2022-01-09 op AC_MSG_FAILURE([*** no libbsd support found])
51 2f90eb01 2022-01-09 op fi
52 2f90eb01 2022-01-09 op with_libbsd=no
53 2f90eb01 2022-01-09 op ])
54 2f90eb01 2022-01-09 op fi
55 2f90eb01 2022-01-09 op
56 2f90eb01 2022-01-09 op # Checks for library functions.
57 2f90eb01 2022-01-09 op AC_SEARCH_LIBS([arc4random], [],
58 2f90eb01 2022-01-09 op [AC_DEFINE([HAVE_ARC4RANDOM], 1, [arc4random])],
59 2f90eb01 2022-01-09 op [AC_DEFINE([HAVE_ARC4RANDOM], 0, [arc4random])])
60 2f90eb01 2022-01-09 op
61 2f90eb01 2022-01-09 op AC_REPLACE_FUNCS([
62 2f90eb01 2022-01-09 op asprintf \
63 2f90eb01 2022-01-09 op err \
64 2f90eb01 2022-01-09 op freezero \
65 2f90eb01 2022-01-09 op getdtablecount \
66 2f90eb01 2022-01-09 op getdtablesize \
67 2f90eb01 2022-01-09 op getprogname \
68 2f90eb01 2022-01-09 op memmem \
69 2f90eb01 2022-01-09 op recallocarray \
70 2f90eb01 2022-01-09 op setproctitle \
71 2f90eb01 2022-01-09 op setprogname \
72 2f90eb01 2022-01-09 op strlcat \
73 2f90eb01 2022-01-09 op strlcpy \
74 2f90eb01 2022-01-09 op strsep \
75 2f90eb01 2022-01-09 op strtonum \
76 2f90eb01 2022-01-09 op vis \
77 2f90eb01 2022-01-09 op ])
78 2f90eb01 2022-01-09 op
79 2f90eb01 2022-01-09 op AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE and STAILQ_ENTRY])
80 2f90eb01 2022-01-09 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
81 2f90eb01 2022-01-09 op #include <sys/queue.h>
82 2f90eb01 2022-01-09 op #include <stddef.h>
83 2f90eb01 2022-01-09 op ], [
84 2f90eb01 2022-01-09 op TAILQ_HEAD(tailhead, entry) head;
85 2f90eb01 2022-01-09 op struct entry {
86 2f90eb01 2022-01-09 op TAILQ_ENTRY(entry) entries;
87 2f90eb01 2022-01-09 op } *np, *nt;
88 2f90eb01 2022-01-09 op TAILQ_INIT(&head);
89 2f90eb01 2022-01-09 op TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
90 2f90eb01 2022-01-09 op /* nop */ ;
91 2f90eb01 2022-01-09 op }
92 2f90eb01 2022-01-09 op
93 2f90eb01 2022-01-09 op STAILQ_HEAD(listhead, qentry) qhead = STAILQ_HEAD_INITIALIZER(qhead);
94 2f90eb01 2022-01-09 op struct qentry {
95 2f90eb01 2022-01-09 op STAILQ_ENTRY(qentry) entries;
96 2f90eb01 2022-01-09 op } foo;
97 2f90eb01 2022-01-09 op
98 2f90eb01 2022-01-09 op return 0;
99 2f90eb01 2022-01-09 op ])], [
100 2f90eb01 2022-01-09 op AC_MSG_RESULT(yes)
101 2f90eb01 2022-01-09 op AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
102 2f90eb01 2022-01-09 op ], AC_MSG_RESULT(no))
103 2f90eb01 2022-01-09 op
104 2f90eb01 2022-01-09 op AC_CHECK_HEADERS([sys/tree.h])
105 2f90eb01 2022-01-09 op
106 2f90eb01 2022-01-09 op AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
107 2f90eb01 2022-01-09 op [[#include <sys/prctl.h>]])
108 2f90eb01 2022-01-09 op
109 2f90eb01 2022-01-09 op AC_CHECK_LIB([crypto], [RAND_add], [], [
110 2f90eb01 2022-01-09 op AC_MSG_ERROR([requires openssl])
111 2f90eb01 2022-01-09 op ])
112 2f90eb01 2022-01-09 op
113 2f90eb01 2022-01-09 op AC_CHECK_LIB(tls, tls_init, [], [
114 2f90eb01 2022-01-09 op AC_MSG_ERROR([requires libtls])
115 2f90eb01 2022-01-09 op ])
116 2f90eb01 2022-01-09 op
117 2f90eb01 2022-01-09 op AS_CASE([$host_os],
118 2f90eb01 2022-01-09 op [*openbsd*], [AC_CHECK_LIB([event], [event_init], [],
119 2f90eb01 2022-01-09 op [AC_MSG_ERROR([requires libevent])])],
120 2f90eb01 2022-01-09 op [PKG_CHECK_MODULES([libevent2], [libevent_core >= 2],
121 2f90eb01 2022-01-09 op [
122 2f90eb01 2022-01-09 op AC_DEFINE([HAVE_EVENT2], 1, [1 if using event2])
123 2f90eb01 2022-01-09 op AM_CFLAGS="$libevent2_CFLAGS $AM_CFLAGS"
124 2f90eb01 2022-01-09 op LIBS="$libevent2_LIBS $LIBS"
125 2f90eb01 2022-01-09 op ], [AC_MSG_ERROR([requires libevent])])])
126 2f90eb01 2022-01-09 op
127 2f90eb01 2022-01-09 op AC_CHECK_LIB(util, imsg_init, [], [
128 2f90eb01 2022-01-09 op AC_LIBOBJ(fmt_scaled)
129 2f90eb01 2022-01-09 op AC_LIBOBJ(imsg)
130 2f90eb01 2022-01-09 op AC_LIBOBJ(imsg-buffer)
131 2f90eb01 2022-01-09 op AC_LIBOBJ(ohash)
132 2f90eb01 2022-01-09 op ])
133 2f90eb01 2022-01-09 op
134 2f90eb01 2022-01-09 op # Save our CFLAGS/CPPFLAGS/LDFLAGS for the Makefile and restore the old user
135 2f90eb01 2022-01-09 op # variables.
136 2f90eb01 2022-01-09 op AC_SUBST(AM_CPPFLAGS)
137 2f90eb01 2022-01-09 op CPPFLAGS="$SAVED_CPPFLAGS"
138 2f90eb01 2022-01-09 op AC_SUBST(AM_CFLAGS)
139 2f90eb01 2022-01-09 op CFLAGS="$SAVED_CFLAGS"
140 2f90eb01 2022-01-09 op AC_SUBST(AM_LDFLAGS)
141 2f90eb01 2022-01-09 op LDFLAGS="$SAVED_LDFLAGS"
142 2f90eb01 2022-01-09 op
143 2f90eb01 2022-01-09 op AC_CONFIG_FILES([
144 2f90eb01 2022-01-09 op Makefile
145 2f90eb01 2022-01-09 op kamictl/Makefile
146 2f90eb01 2022-01-09 op kamid/Makefile
147 2f90eb01 2022-01-09 op kamiftp/Makefile
148 2f90eb01 2022-01-09 op kamirepl/Makefile
149 2f90eb01 2022-01-09 op ninepscript/Makefile
150 2f90eb01 2022-01-09 op ])
151 2f90eb01 2022-01-09 op
152 2f90eb01 2022-01-09 op AC_OUTPUT