Blob


1 AC_INIT([telescope], [0.4.1-dev], [telescope@omarpolo.com], [telescope], [gemini://telescope.omarpolo.com])
2 AC_CONFIG_LIBOBJ_DIR(compat)
3 AC_CANONICAL_HOST
4 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
5 AC_PROG_CC_C99
6 AC_USE_SYSTEM_EXTENSIONS
7 AC_PROG_YACC
9 PKG_PROG_PKG_CONFIG
11 AC_REPLACE_FUNCS([
12 asprintf \
13 err \
14 freezero \
15 getdtablecount \
16 getdtablesize \
17 getprogname \
18 memmem \
19 recallocarray \
20 strcasestr \
21 strlcat \
22 strlcpy \
23 strsep \
24 strtonum \
25 setproctitle \
26 ])
28 AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE])
29 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
30 #include <sys/queue.h>
31 #include <stddef.h>
32 ], [
33 TAILQ_HEAD(tailhead, entry) head;
34 struct entry {
35 TAILQ_ENTRY(entry) entries;
36 } *np, *nt;
37 TAILQ_INIT(&head);
38 TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
39 /* nop */ ;
40 }
41 return 0;
42 ])], [
43 AC_MSG_RESULT(yes)
44 AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
45 ], AC_MSG_RESULT(no))
47 AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
48 [[#include <sys/prctl.h>]])
50 AC_SEARCH_LIBS([initscr], [ncursesw ncurses], [], [
51 AC_MSG_ERROR([requires either ncursesw or ncurses library])
52 ])
54 AC_CHECK_LIB(tls, tls_init, [], [
55 AC_MSG_ERROR([requires libtls])
56 ])
58 case "$host_os" in
59 *openbsd*)
60 AC_CHECK_LIB([event], [event_init], [],
61 [AC_MSG_ERROR([requires libevent])])
62 ;;
63 *)
64 PKG_CHECK_MODULES([libevent2], [libevent_core >= 2], [
65 AC_DEFINE([HAVE_EVENT2], 1, [1 if using event2])
66 CFLAGS="$libevent2_CFLAGS $CFLAGS"
67 LIBS="$libevent2_LIBS $LIBS"
68 ], [AC_MSG_ERROR([requires libevent])])
69 ;;
70 esac
72 AC_CHECK_LIB(util, imsg_init, [], [
73 AC_LIBOBJ(imsg)
74 AC_LIBOBJ(imsg-buffer)
75 AC_LIBOBJ(ohash)
76 AC_LIBOBJ(fmt_scaled)
77 ])
79 AC_CHECK_FUNCS([asr_run])
81 # check compiler flags
82 AC_DEFUN([CC_ADD_CHECK_FLAGS], [
83 AC_MSG_CHECKING([if $CC supports $1 flag])
84 old_CFLAGS="$CFLAGS"
85 CFLAGS="$CFLAGS $1"
86 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
87 AC_MSG_RESULT(yes),
88 AC_MSG_RESULT(no)
89 CFLAGS="$old_CFLAGS")
90 ])
91 CC_ADD_CHECK_FLAGS([-Wall])
92 CC_ADD_CHECK_FLAGS([-Wextra])
93 CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
94 CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
95 CC_ADD_CHECK_FLAGS([-Wwrite-strings])
96 CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
98 AC_CONFIG_HEADERS([config.h])
99 AC_CONFIG_FILES([
100 Makefile
101 pages/about_new.gmi
102 pages/about_crash.gmi
103 ])
105 AC_OUTPUT