Blob


1 AC_INIT([kamid], [0.1], [kamid@omarpolo.com], [kamid], [gemini://kamid.omarpolo.com])
2 AC_CONFIG_LIBOBJ_DIR(compat)
3 AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
4 AC_PROG_CC
5 AC_USE_SYSTEM_EXTENSIONS
6 AC_PROG_YACC
8 AC_REPLACE_FUNCS([
9 getprogname \
10 setprogname \
11 ])
13 AC_MSG_CHECKING([for sys/queue.h with TAILQ_FOREACH_SAFE])
14 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
15 #include <sys/queue.h>
16 #include <stddef.h>
17 ], [
18 TAILQ_HEAD(tailhead, entry) head;
19 struct entry {
20 TAILQ_ENTRY(entry) entries;
21 } *np, *nt;
22 TAILQ_INIT(&head);
23 TAILQ_FOREACH_SAFE(np, &head, entries, nt) {
24 /* nop */ ;
25 }
26 return 0;
27 ])], [
28 AC_MSG_RESULT(yes)
29 AC_DEFINE([HAVE_QUEUE_H], 1, [QUEUE_H])
30 ], AC_MSG_RESULT(no))
32 AC_CHECK_DECL(PR_SET_NAME, AC_DEFINE([HAVE_PR_SET_NAME], 1, [pr_set_name]), [],
33 [[#include <sys/prctl.h>]])
35 AC_CHECK_LIB(tls, tls_init, [], [
36 AC_MSG_ERROR([requires libtls])
37 ])
39 AC_CHECK_LIB(event, event_init, [], [
40 AC_MSG_ERROR([requires libevent])
41 ])
43 AC_CHECK_LIB(util, imsg_init, [], [
44 AC_LIBOBJ(imsg)
45 AC_LIBOBJ(imsg-buffer)
46 ])
48 # check compiler flags
49 AC_DEFUN([CC_ADD_CHECK_FLAGS], [
50 AC_MSG_CHECKING([if $CC supports $1 flag])
51 old_CFLAGS="$CFLAGS"
52 CFLAGS="$CFLAGS $1"
53 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
54 AC_MSG_RESULT(yes),
55 AC_MSG_RESULT(no)
56 CFLAGS="$old_CFLAGS")
57 ])
58 CC_ADD_CHECK_FLAGS([-Wall])
59 CC_ADD_CHECK_FLAGS([-Wextra])
60 CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
61 CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
62 CC_ADD_CHECK_FLAGS([-Wwrite-strings])
63 CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
65 AC_CONFIG_HEADERS([config.h])
66 AC_CONFIG_FILES([
67 Makefile
68 ])
70 AC_OUTPUT