configure.ac revision 1.8 1 1.1 pooka #
2 1.1 pooka # Rump kernel POSIX hypervisor autoconf support.
3 1.1 pooka #
4 1.1 pooka # NOTE! regen by doing the following
5 1.1 pooka # 1) autoreconf -iv
6 1.1 pooka # 2) edit rumpuser_port.h (search for RUMPUSER_CONFIG for instructions)
7 1.1 pooka # 3) rm -rf autom4te.cache
8 1.6 lukem # 4) commit to NetBSD, pullup to https://github.com/rumpkernel/
9 1.1 pooka #
10 1.1 pooka
11 1.1 pooka AC_PREREQ([2.66])
12 1.6 lukem AC_INIT([rumpuser-posix], [999], [https://github.com/rumpkernel/])
13 1.1 pooka
14 1.1 pooka AC_CONFIG_HEADERS([rumpuser_config.h])
15 1.1 pooka AC_CONFIG_AUX_DIR([build-aux])
16 1.7 lukem AC_CONFIG_MACRO_DIR([build-aux])
17 1.1 pooka
18 1.1 pooka AC_LANG([C])
19 1.1 pooka
20 1.1 pooka AC_SYS_LARGEFILE
21 1.1 pooka
22 1.4 pooka AC_CHECK_HEADERS([sys/param.h sys/sysctl.h sys/disk.h \
23 1.1 pooka sys/disklabel.h sys/dkio.h sys/atomic.h paths.h])
24 1.1 pooka
25 1.1 pooka AC_CANONICAL_TARGET
26 1.1 pooka
27 1.1 pooka AC_CHECK_TYPES([clockid_t, register_t])
28 1.1 pooka
29 1.1 pooka AC_CHECK_FUNCS([kqueue chflags strsuftoll setprogname getprogname \
30 1.3 pooka getenv_r posix_memalign memalign aligned_alloc \
31 1.8 ozaki arc4random_buf getsubopt fsync_range __quotactl utimensat \
32 1.8 ozaki preadv pwritev])
33 1.1 pooka
34 1.1 pooka AC_TRY_LINK_FUNC([clock_nanosleep],,
35 1.1 pooka AC_CHECK_LIB([rt], [clock_nanosleep])
36 1.1 pooka )
37 1.3 pooka AC_CHECK_LIB([rt], [clock_gettime],
38 1.3 pooka AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [clock_gettime]),
39 1.3 pooka AC_TRY_LINK_FUNC([clock_gettime],
40 1.3 pooka AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [clock_gettime])))
41 1.2 pooka AC_CHECK_LIB([rt], [clock_nanosleep],
42 1.2 pooka AC_DEFINE([HAVE_CLOCK_NANOSLEEP], 1, [clock_nanosleep]),
43 1.2 pooka AC_TRY_LINK_FUNC([clock_nanosleep],
44 1.2 pooka AC_DEFINE([HAVE_CLOCK_NANOSLEEP], 1, [clock_nanosleep])))
45 1.1 pooka AC_CHECK_LIB([dl], [dlinfo],
46 1.1 pooka AC_DEFINE([HAVE_DLINFO], 1, [dlinfo]),
47 1.1 pooka AC_TRY_LINK_FUNC([dlinfo], AC_DEFINE([HAVE_DLINFO], 1, [dlinfo])))
48 1.1 pooka
49 1.1 pooka AC_CHECK_MEMBERS([struct sockaddr_in.sin_len],,,[#include <netinet/in.h>])
50 1.1 pooka
51 1.1 pooka dnl
52 1.1 pooka dnl pthread_setname() sillyness is a bit longer; we need the signature
53 1.1 pooka dnl
54 1.1 pooka SAVE_CFLAGS="${CFLAGS}"
55 1.1 pooka CFLAGS="${SAVE_CFLAGS} -Werror"
56 1.4 pooka
57 1.4 pooka dnl check sys/cdefs.h creatively to process only with cc, not cpp
58 1.4 pooka dnl (sys/cdefs.h in at least in musl contains a #warning)
59 1.4 pooka AC_CHECK_HEADERS([sys/cdefs.h], [], [], [#include <sys/cdefs.h>])
60 1.4 pooka
61 1.1 pooka SAVE_LIBS="${LIBS}"
62 1.1 pooka LIBS="${LIBS} -lpthread"
63 1.1 pooka AC_MSG_CHECKING([for two-argument pthread_setname_np()])
64 1.1 pooka AC_COMPILE_IFELSE(
65 1.1 pooka [AC_LANG_PROGRAM(
66 1.1 pooka [[#define _GNU_SOURCE
67 1.1 pooka #include <pthread.h>]],
68 1.1 pooka [[pthread_t pt;]
69 1.1 pooka [pthread_setname_np(pt, "x");return 0;]])
70 1.1 pooka ],[
71 1.1 pooka AC_MSG_RESULT([yes])
72 1.1 pooka AC_DEFINE(HAVE_PTHREAD_SETNAME2, [1],
73 1.1 pooka [Define to 1 if you have 2-arg pthread_setname_np()])
74 1.1 pooka ],[
75 1.1 pooka AC_MSG_RESULT([no])
76 1.1 pooka ])
77 1.1 pooka AC_MSG_CHECKING([for three-argument pthread_setname_np()])
78 1.1 pooka AC_COMPILE_IFELSE(
79 1.1 pooka [AC_LANG_PROGRAM(
80 1.1 pooka [[#define _GNU_SOURCE
81 1.1 pooka #include <pthread.h>]],
82 1.1 pooka [[pthread_t pt;]
83 1.1 pooka [pthread_setname_np(pt, "X", (void *)0);return 0;]])
84 1.1 pooka ],[
85 1.1 pooka AC_MSG_RESULT([yes])
86 1.1 pooka AC_DEFINE(HAVE_PTHREAD_SETNAME3, [1],
87 1.1 pooka [Define to 1 if you have 3-arg pthread_setname_np()])
88 1.1 pooka ],[
89 1.1 pooka AC_MSG_RESULT([no])
90 1.1 pooka ])
91 1.1 pooka LIBS="${SAVELIBS}"
92 1.1 pooka
93 1.1 pooka AC_MSG_CHECKING([for ioctl cmd being int])
94 1.1 pooka AC_COMPILE_IFELSE(
95 1.1 pooka [AC_LANG_PROGRAM(
96 1.1 pooka [[#include <sys/ioctl.h>
97 1.1 pooka #include <unistd.h>
98 1.1 pooka int ioctl(int fd, int, ...);]],
99 1.1 pooka [[]
100 1.1 pooka [return 0;]])
101 1.1 pooka ],[
102 1.1 pooka AC_MSG_RESULT([yes])
103 1.1 pooka AC_DEFINE(HAVE_IOCTL_CMD_INT, [1],
104 1.1 pooka [Define to 1 if ioctl()'s cmd arg is int])
105 1.1 pooka ],[
106 1.1 pooka AC_MSG_RESULT([no])
107 1.1 pooka ])
108 1.1 pooka CFLAGS="${SAVE_CFLAGS}"
109 1.1 pooka
110 1.1 pooka AC_OUTPUT
111