Blame


1 d9051b65 2024-06-29 op AC_INIT([telescope], [0.10.1-current], [telescope@omarpolo.com],
2 d82db283 2024-06-27 op [telescope], [gemini://telescope-browser.org])
3 2758e1bb 2022-02-24 op AC_CONFIG_AUX_DIR(etc)
4 b0003f58 2021-03-08 op AC_CONFIG_LIBOBJ_DIR(compat)
5 1470eab3 2021-07-27 op AC_CANONICAL_HOST
6 60c891c2 2021-03-12 op AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
7 81d99233 2023-10-14 op AC_PROG_CC
8 a625907c 2021-03-19 op AC_USE_SYSTEM_EXTENSIONS
9 69bdd906 2021-06-15 op AC_PROG_YACC
10 5e11c00c 2021-03-02 op
11 268c151a 2024-06-04 thomasada # AC_PROC_YACC sets the environment variable $YACC for a suitable program to
12 268c151a 2024-06-04 thomasada # use, but doesn't check to see if it exists. Test for this -- if it's not
13 268c151a 2024-06-04 thomasada # present, error out.
14 268c151a 2024-06-04 thomasada AC_CHECK_PROG(found_yacc, $YACC, yes, no)
15 268c151a 2024-06-04 thomasada AS_IF([test "x$found_yacc" = "xno"], [AC_MSG_ERROR("yacc/bison not found")])
16 268c151a 2024-06-04 thomasada
17 e1c04e2a 2024-06-02 op PKG_PROG_PKG_CONFIG
18 e1c04e2a 2024-06-02 op
19 71066d24 2021-11-26 op AC_ARG_VAR(HOSTCC, [The C compiler on the host.])
20 71066d24 2021-11-26 op AC_ARG_VAR(HOSTCFLAGS, [CFLAGS for the host compiler])
21 71066d24 2021-11-26 op
22 71066d24 2021-11-26 op test -z "${HOSTCC}" && HOSTCC='$(CC)'
23 71066d24 2021-11-26 op test -z "${HOSTCFLAGS}" && HOSTCFLAGS='$(CFLAGS)'
24 f59d8a39 2024-06-18 op
25 f59d8a39 2024-06-18 op AC_MSG_CHECKING([platform])
26 f59d8a39 2024-06-18 op case "$host_os" in
27 f59d8a39 2024-06-18 op *darwin*)
28 f59d8a39 2024-06-18 op PLATFORM=darwin
29 f59d8a39 2024-06-18 op ;;
30 f59d8a39 2024-06-18 op *linux*)
31 f59d8a39 2024-06-18 op PLATFORM=linux
32 f59d8a39 2024-06-18 op ;;
33 f59d8a39 2024-06-18 op *freebsd*)
34 f59d8a39 2024-06-18 op PLATFORM=freebsd
35 f59d8a39 2024-06-18 op ;;
36 f59d8a39 2024-06-18 op *openbsd*)
37 f59d8a39 2024-06-18 op PLATFORM=openbsd
38 f59d8a39 2024-06-18 op ;;
39 f59d8a39 2024-06-18 op *)
40 f59d8a39 2024-06-18 op PLATFORM=unknown
41 f59d8a39 2024-06-18 op ;;
42 f59d8a39 2024-06-18 op esac
43 f59d8a39 2024-06-18 op AC_MSG_RESULT($PLATFORM)
44 f59d8a39 2024-06-18 op AC_SUBST(PLATFORM)
45 71066d24 2021-11-26 op
46 d94e08d2 2024-01-13 op AC_ARG_WITH([Werror],
47 d94e08d2 2024-01-13 op AS_HELP_STRING([--with-Werror],
48 d94e08d2 2024-01-13 op [Add the compiler flag -Werror]))
49 d94e08d2 2024-01-13 op
50 7eaf997f 2021-08-19 op AC_ARG_WITH([libimsg],
51 7eaf997f 2021-08-19 op AS_HELP_STRING([--with-libimsg],
52 7eaf997f 2021-08-19 op [Build with imsg-compat library (default: disabled)]))
53 7eaf997f 2021-08-19 op
54 86ce72db 2021-08-19 op AC_ARG_WITH([libbsd],
55 86ce72db 2021-08-19 op AS_HELP_STRING([--with-libbsd],
56 86ce72db 2021-08-19 op [Build with libbsd library (default: disabled)]))
57 7e346d82 2024-06-10 thomas.ad
58 7e346d82 2024-06-10 thomas.ad AC_ARG_WITH([default-editor],
59 7e346d82 2024-06-10 thomas.ad AS_HELP_STRING([--with-default-editor],
60 7e346d82 2024-06-10 thomas.ad [Set the default editor to use (default: ed)]),
61 7e346d82 2024-06-10 thomas.ad [DEFAULT_EDITOR=$withval],
62 7e346d82 2024-06-10 thomas.ad [DEFAULT_EDITOR=ed])
63 7e346d82 2024-06-10 thomas.ad AC_MSG_NOTICE([Using default-editor: $DEFAULT_EDITOR])
64 7e346d82 2024-06-10 thomas.ad AC_DEFINE_UNQUOTED([DEFAULT_EDITOR], ["$DEFAULT_EDITOR"], [The default editor])
65 d37f7580 2024-06-18 op
66 d37f7580 2024-06-18 op DEFAULT_OPENER=xdg-open
67 d37f7580 2024-06-18 op AS_IF([test "x$platform" = "xdarwin"], [
68 d37f7580 2024-06-18 op DEFAULT_OPENER=open
69 d37f7580 2024-06-18 op ])
70 d37f7580 2024-06-18 op
71 d37f7580 2024-06-18 op AC_ARG_WITH([default-opener],
72 d37f7580 2024-06-18 op AS_HELP_STRING([--with-default-opener],
73 d37f7580 2024-06-18 op [Set the default program to use (default: $DEFAULT_OPENER)]),
74 d37f7580 2024-06-18 op [DEFAULT_OPENER=$withval])
75 d37f7580 2024-06-18 op AC_MSG_NOTICE([Using default-opener: $DEFAULT_OPENER])
76 d37f7580 2024-06-18 op AC_DEFINE_UNQUOTED([DEFAULT_OPENER], ["$DEFAULT_OPENER"], [The default opener])
77 e234161f 2024-06-12 thomas.ad
78 e234161f 2024-06-12 thomas.ad AC_CHECK_HEADERS([ \
79 e234161f 2024-06-12 thomas.ad libutil.h \
80 16c7aa4b 2024-06-14 thomas.ad util.h \
81 e234161f 2024-06-12 thomas.ad ])
82 86ce72db 2021-08-19 op
83 86ce72db 2021-08-19 op AS_IF([test "x$with_libbsd" = "xyes"], [
84 86ce72db 2021-08-19 op PKG_CHECK_MODULES([libbsd], [libbsd-overlay libbsd-ctor], [
85 86ce72db 2021-08-19 op CFLAGS="$libbsd_CFLAGS $CFLAGS"
86 86ce72db 2021-08-19 op LIBS="$libbsd_LIBS $LIBS"
87 86ce72db 2021-08-19 op ])
88 86ce72db 2021-08-19 op ])
89 86ce72db 2021-08-19 op
90 835caeb0 2024-06-06 thomas.ad if test "x$PLATFORM" = "xdarwin"; then
91 835caeb0 2024-06-06 thomas.ad export LDFLAGS="-L/opt/homebrew/opt/libressl/lib $LDFLAGS"
92 835caeb0 2024-06-06 thomas.ad export CPPFLAGS="-I/opt/homebrew/opt/libressl/include $CPPFLAGS"
93 835caeb0 2024-06-06 thomas.ad export PKG_CONFIG_PATH="/opt/homebrew/opt/libressl/lib/pkgconfig $PKG_CONFIG_PATH"
94 835caeb0 2024-06-06 thomas.ad fi
95 835caeb0 2024-06-06 thomas.ad
96 b0003f58 2021-03-08 op AC_REPLACE_FUNCS([
97 b0003f58 2021-03-08 op asprintf \
98 b0003f58 2021-03-08 op err \
99 beada781 2021-07-28 op explicit_bzero \
100 e234161f 2024-06-12 thomas.ad fgetln \
101 e234161f 2024-06-12 thomas.ad fparseln \
102 b0003f58 2021-03-08 op freezero \
103 b0003f58 2021-03-08 op getdtablecount \
104 b0003f58 2021-03-08 op getdtablesize \
105 b0003f58 2021-03-08 op getprogname \
106 e21e40a9 2021-03-13 op memmem \
107 abe0273c 2024-02-06 op reallocarray \
108 60c891c2 2021-03-12 op recallocarray \
109 e80a23a1 2021-07-14 op strcasestr \
110 b0003f58 2021-03-08 op strlcat \
111 b0003f58 2021-03-08 op strlcpy \
112 fbaf9fba 2021-04-25 op strsep \
113 b0003f58 2021-03-08 op strtonum \
114 b0003f58 2021-03-08 op setproctitle \
115 b0003f58 2021-03-08 op ])
116 b0003f58 2021-03-08 op
117 87e40628 2021-05-14 op AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE])
118 87e40628 2021-05-14 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
119 87e40628 2021-05-14 op #include <sys/queue.h>
120 87e40628 2021-05-14 op #include <stddef.h>
121 87e40628 2021-05-14 op ], [
122 87e40628 2021-05-14 op TAILQ_HEAD(tailhead, entry) head;
123 87e40628 2021-05-14 op struct entry {
124 87e40628 2021-05-14 op TAILQ_ENTRY(entry) entries;
125 87e40628 2021-05-14 op } *np, *nt;
126 87e40628 2021-05-14 op TAILQ_INIT(&head);
127 87e40628 2021-05-14 op TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
128 87e40628 2021-05-14 op /* nop */ ;
129 87e40628 2021-05-14 op }
130 87e40628 2021-05-14 op return 0;
131 87e40628 2021-05-14 op ])], [
132 87e40628 2021-05-14 op AC_MSG_RESULT(yes)
133 87e40628 2021-05-14 op AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
134 87e40628 2021-05-14 op ], AC_MSG_RESULT(no))
135 87e40628 2021-05-14 op
136 b45ef13d 2024-02-19 op AC_CHECK_DECL(timespecsub,
137 b45ef13d 2024-02-19 op [AC_DEFINE([HAVE_TIMESPECSUB], 1, [have timespecsub])], [],
138 b45ef13d 2024-02-19 op [#include <sys/time.h>])
139 b45ef13d 2024-02-19 op
140 b45ef13d 2024-02-19 op AC_CHECK_DECL(timercmp,
141 b45ef13d 2024-02-19 op [AC_DEFINE([HAVE_TIMERCMP], 1, [have timercmp])], [],
142 b45ef13d 2024-02-19 op [#include <sys/time.h>])
143 b45ef13d 2024-02-19 op
144 b45ef13d 2024-02-19 op dnl can't be used as r-value.
145 b45ef13d 2024-02-19 op AC_MSG_CHECKING([for TIMEVAL_TO_TIMESPEC])
146 b45ef13d 2024-02-19 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
147 b45ef13d 2024-02-19 op #include <sys/time.h>
148 b45ef13d 2024-02-19 op ], [
149 b45ef13d 2024-02-19 op struct timeval a = {0, 0};
150 b45ef13d 2024-02-19 op struct timespec b;
151 b45ef13d 2024-02-19 op TIMEVAL_TO_TIMESPEC(&a, &b);
152 b45ef13d 2024-02-19 op return (int)b.tv_sec;
153 b45ef13d 2024-02-19 op ])], [
154 b45ef13d 2024-02-19 op AC_MSG_RESULT(yes)
155 b45ef13d 2024-02-19 op AC_DEFINE([HAVE_TIMEVAL_TO_TIMESPEC], 1, [have TIMEVAL_TO_TIMESPEC])
156 b45ef13d 2024-02-19 op ], AC_MSG_RESULT(no))
157 b45ef13d 2024-02-19 op
158 b3ea1dea 2023-07-02 op AC_CHECK_HEADER([endian.h], [AC_DEFINE(HAVE_ENDIAN_H, 1, [have endian.h])], [
159 b3ea1dea 2023-07-02 op AC_CHECK_HEADER([sys/endian.h],
160 b3ea1dea 2023-07-02 op [AC_DEFINE(HAVE_SYS_ENDIAN_H, 1, [have sys/endian.h])], [
161 b3ea1dea 2023-07-02 op AC_CHECK_HEADERS([libkern/OSByteOrder.h],
162 b3ea1dea 2023-07-02 op [AC_DEFINE(HAVE_LIBKERN_OSBYTEORDER_H, 1, [have OSByteOrder.h])],
163 b3ea1dea 2023-07-02 op [AC_MSG_ERROR([can't find compatible endian.h header])],
164 b3ea1dea 2023-07-02 op [#include <machine/endian.h>])
165 b3ea1dea 2023-07-02 op ])
166 b3ea1dea 2023-07-02 op ])
167 b3ea1dea 2023-07-02 op
168 b0003f58 2021-03-08 op AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
169 b0003f58 2021-03-08 op [[#include <sys/prctl.h>]])
170 b0003f58 2021-03-08 op
171 1d08c280 2021-03-06 op AC_SEARCH_LIBS([initscr], [ncursesw ncurses], [], [
172 1d08c280 2021-03-06 op AC_MSG_ERROR([requires either ncursesw or ncurses library])
173 1d08c280 2021-03-06 op ])
174 5e11c00c 2021-03-02 op
175 8671caea 2021-08-19 op AC_SEARCH_LIBS([keyname], [ncursesw ncurses tinfow tinfo], [], [
176 8671caea 2021-08-19 op AC_MSG_ERROR([requires either ncursesw or ncurses library with terminfo support])
177 8671caea 2021-08-19 op ])
178 8671caea 2021-08-19 op
179 f6fb796a 2024-06-06 thomas.ad AC_SEARCH_LIBS([tls_init], [tls], [found_tls=yes], [found_tls=no])
180 f6fb796a 2024-06-06 thomas.ad
181 f6fb796a 2024-06-06 thomas.ad AS_IF([test "x$found_tls" = "xno"], [
182 f6fb796a 2024-06-06 thomas.ad PKG_CHECK_MODULES([libtls], [libtls], [
183 f6fb796a 2024-06-06 thomas.ad CFLAGS="$libtls_CFLAGS $CFLAGS"
184 f6fb796a 2024-06-06 thomas.ad LIBS="$libtls_LIBS $LIBS"
185 f6fb796a 2024-06-06 thomas.ad ], [AC_MSG_ERROR([libtls not found.])])
186 1d08c280 2021-03-06 op ])
187 5e11c00c 2021-03-02 op
188 a7d562e2 2022-11-02 op PKG_CHECK_MODULES([libgrapheme], [libgrapheme], [
189 3448adb0 2022-11-02 op AC_SUBST([LIBGRAPHEME], [])
190 a7d562e2 2022-11-02 op CFLAGS="$libgrapheme_CFLAGS $CFLAGS"
191 a7d562e2 2022-11-02 op LIBS="$libgrapheme_LIBS $LIBS"
192 3448adb0 2022-11-02 op ], [
193 3448adb0 2022-11-02 op # build the bundled version.
194 3448adb0 2022-11-02 op AC_SUBST([LIBGRAPHEME], "$srcdir/libgrapheme/libgrapheme.a")
195 3448adb0 2022-11-02 op CFLAGS="-I$srcdir/libgrapheme $CFLAGS"
196 d5e0ee08 2022-10-09 op ])
197 d5e0ee08 2022-10-09 op
198 7eaf997f 2021-08-19 op AS_IF([test "x$with_libimsg" = "xyes"], [
199 7eaf997f 2021-08-19 op PKG_CHECK_MODULES([libimsg], [libimsg], [
200 7eaf997f 2021-08-19 op CFLAGS="$libimsg_CFLAGS $CFLAGS"
201 7eaf997f 2021-08-19 op LIBS="$libimsg_LIBS $LIBS"
202 7eaf997f 2021-08-19 op ])
203 7eaf997f 2021-08-19 op ])
204 7eaf997f 2021-08-19 op
205 c8b8dc5c 2025-03-28 op AC_SEARCH_LIBS([imsgbuf_init], [util], [
206 7eaf997f 2021-08-19 op AC_DEFINE([HAVE_IMSG], 1,
207 7eaf997f 2021-08-19 op [Define to 1 if you have imsg functions (-lutil or -limsg).])
208 7eaf997f 2021-08-19 op ], [
209 7eaf997f 2021-08-19 op AC_LIBOBJ(imsg)
210 7eaf997f 2021-08-19 op AC_LIBOBJ(imsg-buffer)
211 7eaf997f 2021-08-19 op ]
212 7eaf997f 2021-08-19 op )
213 7eaf997f 2021-08-19 op
214 27437492 2023-10-14 op AC_SEARCH_LIBS([ohash_init], [util], [], [
215 82550776 2021-03-17 op AC_LIBOBJ(ohash)
216 0e1eff5b 2021-06-23 op AC_LIBOBJ(fmt_scaled)
217 b0003f58 2021-03-08 op ])
218 5e11c00c 2021-03-02 op
219 cc4953ef 2021-03-16 op AC_CHECK_FUNCS([asr_run])
220 cc4953ef 2021-03-16 op
221 7d2a2ace 2024-01-24 op AC_SEARCH_LIBS([RAND_add], [crypto], [:], [
222 7d2a2ace 2024-01-24 op AC_MSG_ERROR([can't find libcrypto])
223 7d2a2ace 2024-01-24 op ])
224 7d2a2ace 2024-01-24 op
225 7de68a82 2024-06-14 thomas.ad AS_IF([test "x$PLATFORM" != "xdarwin"], [
226 7de68a82 2024-06-14 thomas.ad AC_SEARCH_LIBS([SSL_CTX_new], [ssl], [:], [
227 7de68a82 2024-06-14 thomas.ad AC_MSG_ERROR([can't find libssl])
228 7de68a82 2024-06-14 thomas.ad ])
229 7d2a2ace 2024-01-24 op ])
230 7d2a2ace 2024-01-24 op
231 1afd6a68 2024-03-25 op # Sanity check for Libre/OpenSSL headers vs library mismatch
232 1afd6a68 2024-03-25 op AC_MSG_CHECKING([whether libcrypto headers match the library])
233 1afd6a68 2024-03-25 op AC_RUN_IFELSE([AC_LANG_PROGRAM([[
234 1afd6a68 2024-03-25 op #include <openssl/opensslv.h>
235 1afd6a68 2024-03-25 op #include <openssl/crypto.h>
236 1afd6a68 2024-03-25 op ]], [[
237 1afd6a68 2024-03-25 op return (OpenSSL_version_num() != OPENSSL_VERSION_NUMBER);
238 1afd6a68 2024-03-25 op ]])], [
239 1afd6a68 2024-03-25 op AC_MSG_RESULT([yes])
240 1afd6a68 2024-03-25 op ], [
241 1afd6a68 2024-03-25 op AC_MSG_RESULT([no])
242 1afd6a68 2024-03-25 op AC_MSG_ERROR([libcrypto headers do not match the library.])
243 1afd6a68 2024-03-25 op ], [
244 1afd6a68 2024-03-25 op AC_MSG_WARN([skip (due to cross-compiling)])
245 1afd6a68 2024-03-25 op ])
246 1afd6a68 2024-03-25 op
247 d58e3018 2024-02-12 op AC_CHECK_HEADERS([linux/landlock.h])
248 a9d11f81 2021-10-08 op
249 d94e08d2 2024-01-13 op dnl after all the function checks, add optional support for -Werror
250 d94e08d2 2024-01-13 op AS_IF([test "x$with_Werror" = "xyes"], [
251 d94e08d2 2024-01-13 op CFLAGS="$CFLAGS -Werror"
252 d94e08d2 2024-01-13 op ])
253 d94e08d2 2024-01-13 op
254 e18a9f14 2021-03-15 op # check compiler flags
255 e18a9f14 2021-03-15 op AC_DEFUN([CC_ADD_CHECK_FLAGS], [
256 e18a9f14 2021-03-15 op AC_MSG_CHECKING([if $CC supports $1 flag])
257 e18a9f14 2021-03-15 op old_CFLAGS="$CFLAGS"
258 f924a1df 2024-02-19 op CFLAGS="$CFLAGS -Werror $1"
259 f924a1df 2024-02-19 op AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], [
260 f924a1df 2024-02-19 op AC_MSG_RESULT(yes)
261 f924a1df 2024-02-19 op CFLAGS="$old_CFLAGS $1"
262 f924a1df 2024-02-19 op ], [
263 e18a9f14 2021-03-15 op AC_MSG_RESULT(no)
264 f924a1df 2024-02-19 op CFLAGS="$old_CFLAGS"
265 f924a1df 2024-02-19 op ])
266 e18a9f14 2021-03-15 op ])
267 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wall])
268 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wextra])
269 6ecb1353 2022-01-20 op CC_ADD_CHECK_FLAGS([-Wmissing-declarations])
270 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
271 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
272 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wwrite-strings])
273 e18a9f14 2021-03-15 op CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
274 db067589 2024-02-19 op CC_ADD_CHECK_FLAGS([-Wno-format-truncation])
275 db067589 2024-02-19 op CC_ADD_CHECK_FLAGS([-Wno-pointer-sign])
276 9ce0974d 2024-06-14 op CC_ADD_CHECK_FLAGS([-Wno-unused-result])
277 6ecb1353 2022-01-20 op CC_ADD_CHECK_FLAGS([-Wpointer-arith])
278 6ecb1353 2022-01-20 op CC_ADD_CHECK_FLAGS([-Wsign-compare])
279 6ecb1353 2022-01-20 op CC_ADD_CHECK_FLAGS([-Wcast-align])
280 e18a9f14 2021-03-15 op
281 5e11c00c 2021-03-02 op AC_CONFIG_HEADERS([config.h])
282 5e11c00c 2021-03-02 op AC_CONFIG_FILES([
283 5e11c00c 2021-03-02 op Makefile
284 23a912c2 2022-01-20 op test/Makefile
285 0e4c3d62 2022-02-26 op pages/about_about.gmi
286 0e4c3d62 2022-02-26 op pages/about_blank.gmi
287 8064b849 2021-07-20 op pages/about_crash.gmi
288 0e4c3d62 2022-02-26 op pages/about_help.gmi
289 0e4c3d62 2022-02-26 op pages/about_license.gmi
290 0e4c3d62 2022-02-26 op pages/about_new.gmi
291 0e4c3d62 2022-02-26 op pages/bookmarks.gmi
292 5e11c00c 2021-03-02 op ])
293 5e11c00c 2021-03-02 op
294 5e11c00c 2021-03-02 op AC_OUTPUT