Blame


1 8d1b399b 2021-07-22 op AC_INIT([kamid], [0.1], [kamid@omarpolo.com], [kamid], [gemini://kamid.omarpolo.com])
2 8d1b399b 2021-07-22 op AC_CONFIG_LIBOBJ_DIR(compat)
3 af9b96a0 2021-07-27 op AC_CANONICAL_HOST
4 8d1b399b 2021-07-22 op AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
5 8d1b399b 2021-07-22 op AC_PROG_CC
6 8d1b399b 2021-07-22 op AC_USE_SYSTEM_EXTENSIONS
7 8d1b399b 2021-07-22 op AC_PROG_YACC
8 8d1b399b 2021-07-22 op
9 af9b96a0 2021-07-27 op PKG_PROG_PKG_CONFIG
10 af9b96a0 2021-07-27 op
11 e0dbe6b8 2021-07-26 op # Some functions can be in libbsd. Thanks to lldpb for the inspiration :)
12 e0dbe6b8 2021-07-26 op AC_ARG_WITH([libbsd],
13 e0dbe6b8 2021-07-26 op AS_HELP_STRING([--with-libbsd], [Use libbsd @<:@default=auto@:>@]),
14 e0dbe6b8 2021-07-26 op [],
15 e0dbe6b8 2021-07-26 op [with_libbsd=auto])
16 e0dbe6b8 2021-07-26 op if test x"$with_libbsd" != x"no"; then
17 e0dbe6b8 2021-07-26 op PKG_CHECK_MODULES([libbsd], [libbsd-overlay libbsd-ctor], [
18 a7584ea6 2021-08-04 op _save_AM_CFLAGS="$AM_CFLAGS"
19 e0dbe6b8 2021-07-26 op _save_LIBS="$LIBS"
20 a7584ea6 2021-08-04 op AM_CFLAGS="$AM_CFLAGS $libbsd_CFLAGS"
21 e0dbe6b8 2021-07-26 op LIBS="$LIBS $libbsd_LIBS"
22 e0dbe6b8 2021-07-26 op AC_MSG_CHECKING([if libbsd can be linked correctly])
23 e0dbe6b8 2021-07-26 op AC_LINK_IFELSE([AC_LANG_PROGRAM([[
24 e0dbe6b8 2021-07-26 op @%:@include <sys/time.h>
25 e0dbe6b8 2021-07-26 op @%:@include <sys/types.h>
26 e0dbe6b8 2021-07-26 op ]], [[]])],[
27 e0dbe6b8 2021-07-26 op AC_MSG_RESULT(yes)
28 a7584ea6 2021-08-04 op AM_CFLAGS="$AM_CFLAGS $libbsd_CFLAGS"
29 a7584ea6 2021-08-04 op AM_LDFLAGS="$AM_LDFLAGS $libbsd_LIBS"
30 e0dbe6b8 2021-07-26 op with_libbsd=yes
31 e0dbe6b8 2021-07-26 op ],[
32 e0dbe6b8 2021-07-26 op AC_MSG_RESULT(no)
33 a7584ea6 2021-08-04 op AM_CFLAGS="$_save_AM_CFLAGS"
34 e0dbe6b8 2021-07-26 op LIBS="$_save_LIBS"
35 e0dbe6b8 2021-07-26 op if test x"$with_libbsd" = x"yes"; then
36 e0dbe6b8 2021-07-26 op AC_MSG_FAILURE([*** no libbsd support found])
37 e0dbe6b8 2021-07-26 op fi
38 e0dbe6b8 2021-07-26 op with_libbsd=no
39 e0dbe6b8 2021-07-26 op ])
40 e0dbe6b8 2021-07-26 op ], [
41 e0dbe6b8 2021-07-26 op if test x"$with_libbsd" = x"yes"; then
42 e0dbe6b8 2021-07-26 op AC_MSG_FAILURE([*** no libbsd support found])
43 e0dbe6b8 2021-07-26 op fi
44 e0dbe6b8 2021-07-26 op with_libbsd=no
45 e0dbe6b8 2021-07-26 op ])
46 e0dbe6b8 2021-07-26 op fi
47 53dd4db6 2021-07-23 op
48 a79f5e90 2021-07-26 op AC_SEARCH_LIBS([arc4random], [],
49 a79f5e90 2021-07-26 op [AC_DEFINE([HAVE_ARC4RANDOM], 1, [arc4random])],
50 a79f5e90 2021-07-26 op [AC_DEFINE([HAVE_ARC4RANDOM], 0, [arc4random])])
51 a79f5e90 2021-07-26 op
52 8d1b399b 2021-07-22 op AC_REPLACE_FUNCS([
53 805e39bf 2021-07-22 op asprintf \
54 805e39bf 2021-07-22 op err \
55 8563e129 2021-07-22 op freezero \
56 805e39bf 2021-07-22 op getdtablecount \
57 805e39bf 2021-07-22 op getdtablesize \
58 8d1b399b 2021-07-22 op getprogname \
59 f5299d10 2021-08-04 op memmem \
60 805e39bf 2021-07-22 op recallocarray \
61 805e39bf 2021-07-22 op setproctitle \
62 8d1b399b 2021-07-22 op setprogname \
63 805e39bf 2021-07-22 op strlcat \
64 805e39bf 2021-07-22 op strlcpy \
65 15974c9d 2021-07-28 op strsep \
66 805e39bf 2021-07-22 op strtonum \
67 3d179b77 2021-12-15 op vis \
68 8d1b399b 2021-07-22 op ])
69 8d1b399b 2021-07-22 op
70 c25feded 2021-07-26 op AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE and STAILQ_ENTRY])
71 8d1b399b 2021-07-22 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
72 8d1b399b 2021-07-22 op #include <sys/queue.h>
73 8d1b399b 2021-07-22 op #include <stddef.h>
74 8d1b399b 2021-07-22 op ], [
75 8d1b399b 2021-07-22 op TAILQ_HEAD(tailhead, entry) head;
76 8d1b399b 2021-07-22 op struct entry {
77 8d1b399b 2021-07-22 op TAILQ_ENTRY(entry) entries;
78 8d1b399b 2021-07-22 op } *np, *nt;
79 8d1b399b 2021-07-22 op TAILQ_INIT(&head);
80 8d1b399b 2021-07-22 op TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
81 8d1b399b 2021-07-22 op /* nop */ ;
82 8d1b399b 2021-07-22 op }
83 e0dbe6b8 2021-07-26 op
84 c25feded 2021-07-26 op STAILQ_HEAD(listhead, qentry) qhead = STAILQ_HEAD_INITIALIZER(qhead);
85 c25feded 2021-07-26 op struct qentry {
86 c25feded 2021-07-26 op STAILQ_ENTRY(qentry) entries;
87 e0dbe6b8 2021-07-26 op } foo;
88 e0dbe6b8 2021-07-26 op
89 8d1b399b 2021-07-22 op return 0;
90 8d1b399b 2021-07-22 op ])], [
91 8d1b399b 2021-07-22 op AC_MSG_RESULT(yes)
92 8d1b399b 2021-07-22 op AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
93 8d1b399b 2021-07-22 op ], AC_MSG_RESULT(no))
94 8d1b399b 2021-07-22 op
95 1a443ec0 2021-07-22 op AC_CHECK_HEADERS([sys/tree.h])
96 1a443ec0 2021-07-22 op
97 8d1b399b 2021-07-22 op AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
98 8d1b399b 2021-07-22 op [[#include <sys/prctl.h>]])
99 8d1b399b 2021-07-22 op
100 2ac95ad9 2021-07-22 op AC_CHECK_LIB([crypto], [RAND_add], [], [
101 2ac95ad9 2021-07-22 op AC_MSG_ERROR([requires openssl])
102 2ac95ad9 2021-07-22 op ])
103 2ac95ad9 2021-07-22 op
104 8d1b399b 2021-07-22 op AC_CHECK_LIB(tls, tls_init, [], [
105 8d1b399b 2021-07-22 op AC_MSG_ERROR([requires libtls])
106 8d1b399b 2021-07-22 op ])
107 8d1b399b 2021-07-22 op
108 ce3844d2 2021-12-14 op # small hack to avoid linking *everything* to readline.
109 ce3844d2 2021-12-14 op libs_orig="${LIBS}"
110 ce3844d2 2021-12-14 op AC_CHECK_LIB(readline, readline, [], [
111 688f54f0 2021-12-14 op AC_DEFINE([HAVE_READLINE], 0, [1 if readline is found])
112 ce3844d2 2021-12-14 op ])
113 ce3844d2 2021-12-14 op KAMIFTP_LIBS="${LIBS}"
114 ce3844d2 2021-12-14 op LIBS="${libs_orig}"
115 ce3844d2 2021-12-14 op AC_SUBST([KAMIFTP_LIBS])
116 ce3844d2 2021-12-14 op
117 af9b96a0 2021-07-27 op AS_CASE([$host_os],
118 af9b96a0 2021-07-27 op [*openbsd*], [AC_CHECK_LIB([event], [event_init], [],
119 af9b96a0 2021-07-27 op [AC_MSG_ERROR([requires libevent])])],
120 af9b96a0 2021-07-27 op [PKG_CHECK_MODULES([libevent2], [libevent_core >= 2],
121 af9b96a0 2021-07-27 op [
122 af9b96a0 2021-07-27 op AC_DEFINE([HAVE_EVENT2], 1, [1 if using event2])
123 a7584ea6 2021-08-04 op AM_CFLAGS="$libevent2_CFLAGS $AM_CFLAGS"
124 af9b96a0 2021-07-27 op LIBS="$libevent2_LIBS $LIBS"
125 af9b96a0 2021-07-27 op ], [AC_MSG_ERROR([requires libevent])])])
126 8d1b399b 2021-07-22 op
127 8d1b399b 2021-07-22 op AC_CHECK_LIB(util, imsg_init, [], [
128 8d1b399b 2021-07-22 op AC_LIBOBJ(imsg)
129 8d1b399b 2021-07-22 op AC_LIBOBJ(imsg-buffer)
130 b4252034 2021-07-22 op AC_LIBOBJ(ohash)
131 8d1b399b 2021-07-22 op ])
132 8d1b399b 2021-07-22 op
133 8d1b399b 2021-07-22 op # check compiler flags
134 8d1b399b 2021-07-22 op AC_DEFUN([CC_ADD_CHECK_FLAGS], [
135 8d1b399b 2021-07-22 op AC_MSG_CHECKING([if $CC supports $1 flag])
136 a7584ea6 2021-08-04 op old_AM_CFLAGS="$AM_CFLAGS"
137 a7584ea6 2021-08-04 op AM_CFLAGS="$AM_CFLAGS $1"
138 a7584ea6 2021-08-04 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], [
139 a7584ea6 2021-08-04 op AC_MSG_RESULT(yes)
140 a7584ea6 2021-08-04 op ], [
141 8d1b399b 2021-07-22 op AC_MSG_RESULT(no)
142 a7584ea6 2021-08-04 op AM_CFLAGS="$old_AM_CFLAGS"
143 a7584ea6 2021-08-04 op ])
144 8d1b399b 2021-07-22 op ])
145 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wall])
146 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wextra])
147 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
148 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
149 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wwrite-strings])
150 8d1b399b 2021-07-22 op CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
151 8d1b399b 2021-07-22 op
152 2f27a08d 2021-12-13 op AC_SUBST([AM_CFLAGS])
153 2f27a08d 2021-12-13 op
154 8d1b399b 2021-07-22 op AC_CONFIG_HEADERS([config.h])
155 8d1b399b 2021-07-22 op AC_CONFIG_FILES([
156 8d1b399b 2021-07-22 op Makefile
157 8d1b399b 2021-07-22 op ])
158 8d1b399b 2021-07-22 op
159 8d1b399b 2021-07-22 op AC_OUTPUT