xref: /aosp_15_r20/external/ltp/configure.ac (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
1*49cdfc7eSAndroid Build Coastguard WorkerAC_PREREQ(2.64)
2*49cdfc7eSAndroid Build Coastguard WorkerAC_INIT([ltp], [LTP_VERSION], [[email protected]])
3*49cdfc7eSAndroid Build Coastguard WorkerAC_CONFIG_AUX_DIR([.])
4*49cdfc7eSAndroid Build Coastguard WorkerAM_INIT_AUTOMAKE
5*49cdfc7eSAndroid Build Coastguard WorkerAC_CONFIG_HEADERS([include/config.h])
6*49cdfc7eSAndroid Build Coastguard WorkerAC_CONFIG_MACRO_DIR([m4])
7*49cdfc7eSAndroid Build Coastguard WorkerAC_CONFIG_FILES([ \
8*49cdfc7eSAndroid Build Coastguard Worker    include/mk/config.mk \
9*49cdfc7eSAndroid Build Coastguard Worker    include/mk/config-openposix.mk \
10*49cdfc7eSAndroid Build Coastguard Worker    include/mk/features.mk \
11*49cdfc7eSAndroid Build Coastguard Worker    lib/ltp.pc \
12*49cdfc7eSAndroid Build Coastguard Worker    m4/Makefile \
13*49cdfc7eSAndroid Build Coastguard Worker])
14*49cdfc7eSAndroid Build Coastguard Worker
15*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_VAR(HOSTCC, [The C compiler on the host])
16*49cdfc7eSAndroid Build Coastguard Worker
17*49cdfc7eSAndroid Build Coastguard WorkerAM_MAINTAINER_MODE([enable])
18*49cdfc7eSAndroid Build Coastguard Worker
19*49cdfc7eSAndroid Build Coastguard WorkerAC_CANONICAL_HOST
20*49cdfc7eSAndroid Build Coastguard Worker
21*49cdfc7eSAndroid Build Coastguard WorkerAC_PROG_CC
22*49cdfc7eSAndroid Build Coastguard Worker# <= autoconf 2.61 doesn't have AC_PROG_AR, but 2.63 has it. Not sure about
23*49cdfc7eSAndroid Build Coastguard Worker# 2.62.
24*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
25*49cdfc7eSAndroid Build Coastguard WorkerAC_PROG_AR
26*49cdfc7eSAndroid Build Coastguard WorkerAC_PROG_RANLIB
27*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFUN([AC_PROG_STRIP], [AC_CHECK_TOOL(STRIP, strip, :)])
28*49cdfc7eSAndroid Build Coastguard WorkerAC_PROG_STRIP
29*49cdfc7eSAndroid Build Coastguard WorkerAC_PROG_YACC
30*49cdfc7eSAndroid Build Coastguard Worker
31*49cdfc7eSAndroid Build Coastguard Workerm4_ifndef([PKG_CHECK_EXISTS],
32*49cdfc7eSAndroid Build Coastguard Worker	[m4_fatal([must install pkg-config or pkgconfig and pkg.m4 macro (usual dependency), see INSTALL])])
33*49cdfc7eSAndroid Build Coastguard Worker
34*49cdfc7eSAndroid Build Coastguard WorkerAC_PREFIX_DEFAULT(/opt/ltp)
35*49cdfc7eSAndroid Build Coastguard Worker
36*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_DECLS([IFLA_NET_NS_PID],,,[#include <linux/if_link.h>])
37*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_DECLS([MADV_MERGEABLE],,,[#include <sys/mman.h>])
38*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_DECLS([NFTA_CHAIN_ID, NFTA_VERDICT_CHAIN_ID],,,[#include <linux/netfilter/nf_tables.h>])
39*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_DECLS([PR_CAPBSET_DROP, PR_CAPBSET_READ],,,[#include <sys/prctl.h>])
40*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_DECLS([SEM_STAT_ANY],,,[#include <sys/sem.h>])
41*49cdfc7eSAndroid Build Coastguard Worker
42*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_HEADERS_ONCE([ \
43*49cdfc7eSAndroid Build Coastguard Worker    asm/ldt.h \
44*49cdfc7eSAndroid Build Coastguard Worker    asm/prctl.h \
45*49cdfc7eSAndroid Build Coastguard Worker    cpuid.h \
46*49cdfc7eSAndroid Build Coastguard Worker    emmintrin.h \
47*49cdfc7eSAndroid Build Coastguard Worker    ifaddrs.h \
48*49cdfc7eSAndroid Build Coastguard Worker    keyutils.h \
49*49cdfc7eSAndroid Build Coastguard Worker    linux/can.h \
50*49cdfc7eSAndroid Build Coastguard Worker    linux/cgroupstats.h \
51*49cdfc7eSAndroid Build Coastguard Worker    linux/cryptouser.h \
52*49cdfc7eSAndroid Build Coastguard Worker    linux/close_range.h \
53*49cdfc7eSAndroid Build Coastguard Worker    linux/dccp.h \
54*49cdfc7eSAndroid Build Coastguard Worker    linux/fs.h \
55*49cdfc7eSAndroid Build Coastguard Worker    linux/futex.h \
56*49cdfc7eSAndroid Build Coastguard Worker    linux/genetlink.h \
57*49cdfc7eSAndroid Build Coastguard Worker    linux/if_alg.h \
58*49cdfc7eSAndroid Build Coastguard Worker    linux/if_ether.h \
59*49cdfc7eSAndroid Build Coastguard Worker    linux/if_packet.h \
60*49cdfc7eSAndroid Build Coastguard Worker    linux/io_uring.h \
61*49cdfc7eSAndroid Build Coastguard Worker    linux/ioprio.h \
62*49cdfc7eSAndroid Build Coastguard Worker    linux/keyctl.h \
63*49cdfc7eSAndroid Build Coastguard Worker    linux/mempolicy.h \
64*49cdfc7eSAndroid Build Coastguard Worker    linux/module.h \
65*49cdfc7eSAndroid Build Coastguard Worker    linux/mount.h \
66*49cdfc7eSAndroid Build Coastguard Worker    linux/netlink.h \
67*49cdfc7eSAndroid Build Coastguard Worker    linux/openat2.h \
68*49cdfc7eSAndroid Build Coastguard Worker    linux/seccomp.h \
69*49cdfc7eSAndroid Build Coastguard Worker    linux/securebits.h \
70*49cdfc7eSAndroid Build Coastguard Worker    linux/tls.h \
71*49cdfc7eSAndroid Build Coastguard Worker    linux/tty.h \
72*49cdfc7eSAndroid Build Coastguard Worker    linux/types.h \
73*49cdfc7eSAndroid Build Coastguard Worker    linux/userfaultfd.h \
74*49cdfc7eSAndroid Build Coastguard Worker    netinet/sctp.h \
75*49cdfc7eSAndroid Build Coastguard Worker    pthread.h \
76*49cdfc7eSAndroid Build Coastguard Worker    sys/epoll.h \
77*49cdfc7eSAndroid Build Coastguard Worker    sys/fanotify.h \
78*49cdfc7eSAndroid Build Coastguard Worker    sys/inotify.h \
79*49cdfc7eSAndroid Build Coastguard Worker    sys/pidfd.h
80*49cdfc7eSAndroid Build Coastguard Worker    sys/prctl.h \
81*49cdfc7eSAndroid Build Coastguard Worker    sys/random.h \
82*49cdfc7eSAndroid Build Coastguard Worker    sys/shm.h \
83*49cdfc7eSAndroid Build Coastguard Worker    sys/timerfd.h \
84*49cdfc7eSAndroid Build Coastguard Worker    sys/ustat.h \
85*49cdfc7eSAndroid Build Coastguard Worker    sys/utsname.h \
86*49cdfc7eSAndroid Build Coastguard Worker    sys/xattr.h \
87*49cdfc7eSAndroid Build Coastguard Worker    xfs/xqm.h \
88*49cdfc7eSAndroid Build Coastguard Worker])
89*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_HEADERS(fts.h, [have_fts=1])
90*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST(HAVE_FTS_H, $have_fts)
91*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_HEADERS(linux/vm_sockets.h, [], [], [#include <sys/socket.h>])
92*49cdfc7eSAndroid Build Coastguard Worker
93*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_FUNCS_ONCE([ \
94*49cdfc7eSAndroid Build Coastguard Worker    clone3 \
95*49cdfc7eSAndroid Build Coastguard Worker    close_range \
96*49cdfc7eSAndroid Build Coastguard Worker    copy_file_range \
97*49cdfc7eSAndroid Build Coastguard Worker    epoll_pwait \
98*49cdfc7eSAndroid Build Coastguard Worker    epoll_pwait2 \
99*49cdfc7eSAndroid Build Coastguard Worker    execveat \
100*49cdfc7eSAndroid Build Coastguard Worker    faccessat2 \
101*49cdfc7eSAndroid Build Coastguard Worker    fallocate \
102*49cdfc7eSAndroid Build Coastguard Worker    fsconfig \
103*49cdfc7eSAndroid Build Coastguard Worker    fsmount \
104*49cdfc7eSAndroid Build Coastguard Worker    fsopen \
105*49cdfc7eSAndroid Build Coastguard Worker    fspick \
106*49cdfc7eSAndroid Build Coastguard Worker    fstatat \
107*49cdfc7eSAndroid Build Coastguard Worker    getauxval \
108*49cdfc7eSAndroid Build Coastguard Worker    getcontext \
109*49cdfc7eSAndroid Build Coastguard Worker    getcpu \
110*49cdfc7eSAndroid Build Coastguard Worker    getdents \
111*49cdfc7eSAndroid Build Coastguard Worker    getdents64 \
112*49cdfc7eSAndroid Build Coastguard Worker    io_pgetevents \
113*49cdfc7eSAndroid Build Coastguard Worker    io_uring_setup \
114*49cdfc7eSAndroid Build Coastguard Worker    io_uring_register \
115*49cdfc7eSAndroid Build Coastguard Worker    io_uring_enter \
116*49cdfc7eSAndroid Build Coastguard Worker    kcmp \
117*49cdfc7eSAndroid Build Coastguard Worker    mallinfo \
118*49cdfc7eSAndroid Build Coastguard Worker    mallinfo2 \
119*49cdfc7eSAndroid Build Coastguard Worker    mallopt \
120*49cdfc7eSAndroid Build Coastguard Worker    modify_ldt \
121*49cdfc7eSAndroid Build Coastguard Worker    mount_setattr \
122*49cdfc7eSAndroid Build Coastguard Worker    move_mount \
123*49cdfc7eSAndroid Build Coastguard Worker    name_to_handle_at \
124*49cdfc7eSAndroid Build Coastguard Worker    open_tree \
125*49cdfc7eSAndroid Build Coastguard Worker    openat \
126*49cdfc7eSAndroid Build Coastguard Worker    openat2 \
127*49cdfc7eSAndroid Build Coastguard Worker    pidfd_getfd \
128*49cdfc7eSAndroid Build Coastguard Worker    pidfd_open \
129*49cdfc7eSAndroid Build Coastguard Worker    pidfd_send_signal \
130*49cdfc7eSAndroid Build Coastguard Worker    pkey_mprotect \
131*49cdfc7eSAndroid Build Coastguard Worker    preadv \
132*49cdfc7eSAndroid Build Coastguard Worker    preadv2 \
133*49cdfc7eSAndroid Build Coastguard Worker    profil \
134*49cdfc7eSAndroid Build Coastguard Worker    pwritev \
135*49cdfc7eSAndroid Build Coastguard Worker    pwritev2 \
136*49cdfc7eSAndroid Build Coastguard Worker    quotactl_fd \
137*49cdfc7eSAndroid Build Coastguard Worker    rand_r \
138*49cdfc7eSAndroid Build Coastguard Worker    recvmmsg \
139*49cdfc7eSAndroid Build Coastguard Worker    renameat2 \
140*49cdfc7eSAndroid Build Coastguard Worker    sched_getcpu \
141*49cdfc7eSAndroid Build Coastguard Worker    sendmmsg \
142*49cdfc7eSAndroid Build Coastguard Worker    sethostid \
143*49cdfc7eSAndroid Build Coastguard Worker    setns \
144*49cdfc7eSAndroid Build Coastguard Worker    sigpending \
145*49cdfc7eSAndroid Build Coastguard Worker    splice \
146*49cdfc7eSAndroid Build Coastguard Worker    statx \
147*49cdfc7eSAndroid Build Coastguard Worker    stime \
148*49cdfc7eSAndroid Build Coastguard Worker    sync_file_range \
149*49cdfc7eSAndroid Build Coastguard Worker    syncfs \
150*49cdfc7eSAndroid Build Coastguard Worker    tee \
151*49cdfc7eSAndroid Build Coastguard Worker    timerfd_create \
152*49cdfc7eSAndroid Build Coastguard Worker    timerfd_gettime \
153*49cdfc7eSAndroid Build Coastguard Worker    timerfd_settime \
154*49cdfc7eSAndroid Build Coastguard Worker    unshare \
155*49cdfc7eSAndroid Build Coastguard Worker    ustat \
156*49cdfc7eSAndroid Build Coastguard Worker    vmsplice \
157*49cdfc7eSAndroid Build Coastguard Worker])
158*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_FUNCS(mkdtemp,[],AC_MSG_ERROR(mkdtemp() not found!))
159*49cdfc7eSAndroid Build Coastguard Worker
160*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_MEMBERS([struct fanotify_event_info_fid.fsid.__val],,,[#include <sys/fanotify.h>])
161*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_MEMBERS([struct perf_event_mmap_page.aux_head],,,[#include <linux/perf_event.h>])
162*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_MEMBERS([struct sigaction.sa_sigaction],[],[],[#include <signal.h>])
163*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_MEMBERS([struct statx.stx_mnt_id, struct statx.stx_dio_mem_align],,,[
164*49cdfc7eSAndroid Build Coastguard Worker#define _GNU_SOURCE
165*49cdfc7eSAndroid Build Coastguard Worker#include <sys/stat.h>
166*49cdfc7eSAndroid Build Coastguard Worker])
167*49cdfc7eSAndroid Build Coastguard Worker
168*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_MEMBERS([struct utsname.domainname],,,[
169*49cdfc7eSAndroid Build Coastguard Worker#define _GNU_SOURCE
170*49cdfc7eSAndroid Build Coastguard Worker#include <sys/utsname.h>
171*49cdfc7eSAndroid Build Coastguard Worker])
172*49cdfc7eSAndroid Build Coastguard Worker
173*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([enum kcmp_type],,,[#include <linux/kcmp.h>])
174*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct acct_v3],,,[#include <sys/acct.h>])
175*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct af_alg_iv, struct sockaddr_alg],,,[# include <linux/if_alg.h>])
176*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct clone_args],,,[#include <sched.h>])
177*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct fanotify_event_info_fid, struct fanotify_event_info_error,
178*49cdfc7eSAndroid Build Coastguard Worker		struct fanotify_event_info_header, struct fanotify_event_info_pidfd],,,[#include <sys/fanotify.h>])
179*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct file_dedupe_range],,,[#include <linux/fs.h>])
180*49cdfc7eSAndroid Build Coastguard Worker
181*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct file_handle],,,[
182*49cdfc7eSAndroid Build Coastguard Worker#define _GNU_SOURCE
183*49cdfc7eSAndroid Build Coastguard Worker#include <fcntl.h>
184*49cdfc7eSAndroid Build Coastguard Worker])
185*49cdfc7eSAndroid Build Coastguard Worker
186*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct fs_quota_statv],,,[#include <xfs/xqm.h>])
187*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct if_nextdqblk],,,[#include <linux/quota.h>])
188*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct iovec],,,[#include <sys/uio.h>])
189*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct ipc64_perm],,,[#include <sys/ipcbuf.h>])
190*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct loop_config],,,[#include <linux/loop.h>])
191*49cdfc7eSAndroid Build Coastguard Worker
192*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct mmsghdr],,,[
193*49cdfc7eSAndroid Build Coastguard Worker#define _GNU_SOURCE
194*49cdfc7eSAndroid Build Coastguard Worker#include <sys/types.h>
195*49cdfc7eSAndroid Build Coastguard Worker#include <sys/socket.h>
196*49cdfc7eSAndroid Build Coastguard Worker])
197*49cdfc7eSAndroid Build Coastguard Worker
198*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct msqid64_ds],,,[#include <sys/msgbuf.h>])
199*49cdfc7eSAndroid Build Coastguard Worker
200*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct rlimit64],,,[
201*49cdfc7eSAndroid Build Coastguard Worker#define _LARGEFILE64_SOURCE
202*49cdfc7eSAndroid Build Coastguard Worker#include <sys/resource.h>
203*49cdfc7eSAndroid Build Coastguard Worker])
204*49cdfc7eSAndroid Build Coastguard Worker
205*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct semun],,,[#include <sys/sem.h>])
206*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct semid64_ds],,,[#include <sys/sem.h>])
207*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct shmid64_ds],,,[#include <sys/shmbuf.h>])
208*49cdfc7eSAndroid Build Coastguard Worker
209*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct statx, struct statx_timestamp],,,[
210*49cdfc7eSAndroid Build Coastguard Worker#define _GNU_SOURCE
211*49cdfc7eSAndroid Build Coastguard Worker#include <sys/stat.h>
212*49cdfc7eSAndroid Build Coastguard Worker])
213*49cdfc7eSAndroid Build Coastguard Worker
214*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct termio],,,[#include <sys/ioctl.h>])
215*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct tpacket_req3],,,[# include <linux/if_packet.h>])
216*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct user_desc, struct modify_ldt_ldt_s],[],[],[#include <asm/ldt.h>])
217*49cdfc7eSAndroid Build Coastguard Worker
218*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct xt_entry_match, struct xt_entry_target],,,[
219*49cdfc7eSAndroid Build Coastguard Worker#include <sys/types.h>
220*49cdfc7eSAndroid Build Coastguard Worker#include <netinet/in.h>
221*49cdfc7eSAndroid Build Coastguard Worker#include <net/if.h>
222*49cdfc7eSAndroid Build Coastguard Worker#include <limits.h>
223*49cdfc7eSAndroid Build Coastguard Worker#include <linux/netfilter_ipv4/ip_tables.h>
224*49cdfc7eSAndroid Build Coastguard Worker])
225*49cdfc7eSAndroid Build Coastguard Worker
226*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_itimerspec],,,[#include <linux/time_types.h>])
227*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_old_timespec],,,[#include <linux/time_types.h>])
228*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_old_timeval],,,[#include <linux/time_types.h>])
229*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_old_itimerval],,,[#include <linux/time_types.h>])
230*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_old_itimerspec],,,[#include <linux/time_types.h>])
231*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_timespec],,,[#include <linux/time_types.h>])
232*49cdfc7eSAndroid Build Coastguard Worker
233*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_timex],,,[#include <sys/timex.h>])
234*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_timex_timeval],,,[#include <sys/timex.h>])
235*49cdfc7eSAndroid Build Coastguard Worker
236*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct __kernel_old_timeval, struct __kernel_old_timespec, struct __kernel_timespec,
237*49cdfc7eSAndroid Build Coastguard Worker                struct __kernel_old_itimerspec, struct __kernel_itimerspec,
238*49cdfc7eSAndroid Build Coastguard Worker                struct __kernel_old_itimerval],,,[#include <sys/socket.h>])
239*49cdfc7eSAndroid Build Coastguard Worker
240*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct futex_waitv],,,[#include <linux/futex.h>])
241*49cdfc7eSAndroid Build Coastguard WorkerAC_CHECK_TYPES([struct mount_attr],,,[
242*49cdfc7eSAndroid Build Coastguard Worker#ifdef HAVE_MOUNT_SETATTR
243*49cdfc7eSAndroid Build Coastguard Worker# include <sys/mount.h>
244*49cdfc7eSAndroid Build Coastguard Worker#elif HAVE_LINUX_MOUNT_H
245*49cdfc7eSAndroid Build Coastguard Worker# include <linux/mount.h>
246*49cdfc7eSAndroid Build Coastguard Worker#endif
247*49cdfc7eSAndroid Build Coastguard Worker])
248*49cdfc7eSAndroid Build Coastguard Worker
249*49cdfc7eSAndroid Build Coastguard Worker# Tools knobs
250*49cdfc7eSAndroid Build Coastguard Worker
251*49cdfc7eSAndroid Build Coastguard Worker# Bash
252*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([bash],
253*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-bash],
254*49cdfc7eSAndroid Build Coastguard Worker    [have the Bourne Again Shell interpreter])],
255*49cdfc7eSAndroid Build Coastguard Worker  [with_bash=$withval],
256*49cdfc7eSAndroid Build Coastguard Worker  [with_bash=no]
257*49cdfc7eSAndroid Build Coastguard Worker)
258*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_bash" = xyes; then
259*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_BASH],["yes"])
260*49cdfc7eSAndroid Build Coastguard Workerelse
261*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_BASH],["no"])
262*49cdfc7eSAndroid Build Coastguard Workerfi
263*49cdfc7eSAndroid Build Coastguard Worker
264*49cdfc7eSAndroid Build Coastguard Worker# metadata
265*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_ENABLE([metadata],
266*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--disable-metadata],
267*49cdfc7eSAndroid Build Coastguard Worker	[Disable metadata generation (both HTML and PDF, default no)])],
268*49cdfc7eSAndroid Build Coastguard Worker  [], [enable_metadata=yes]
269*49cdfc7eSAndroid Build Coastguard Worker)
270*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_ENABLE([metadata_html],
271*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--disable-metadata-html],
272*49cdfc7eSAndroid Build Coastguard Worker	[Disable metadata HTML generation (default no)])],
273*49cdfc7eSAndroid Build Coastguard Worker  [], [enable_metadata_html=yes]
274*49cdfc7eSAndroid Build Coastguard Worker)
275*49cdfc7eSAndroid Build Coastguard Worker
276*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_ENABLE([metadata_pdf],
277*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--enable-metadata-pdf],
278*49cdfc7eSAndroid Build Coastguard Worker	[Enable metadata PDF generation (default no)])],
279*49cdfc7eSAndroid Build Coastguard Worker  [], [enable_metadata_pdf=no]
280*49cdfc7eSAndroid Build Coastguard Worker)
281*49cdfc7eSAndroid Build Coastguard Worker
282*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([metadata_generator],
283*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
284*49cdfc7eSAndroid Build Coastguard Worker	[Specify metadata generator to use (default autodetect)])],
285*49cdfc7eSAndroid Build Coastguard Worker  [with_metadata_generator=$withval],
286*49cdfc7eSAndroid Build Coastguard Worker  [with_metadata_generator=detect]
287*49cdfc7eSAndroid Build Coastguard Worker)
288*49cdfc7eSAndroid Build Coastguard Worker
289*49cdfc7eSAndroid Build Coastguard WorkerLTP_DOCPARSE
290*49cdfc7eSAndroid Build Coastguard Worker
291*49cdfc7eSAndroid Build Coastguard Worker# Expect
292*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([expect],
293*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-expect],
294*49cdfc7eSAndroid Build Coastguard Worker    [have the Tcl/expect library])],
295*49cdfc7eSAndroid Build Coastguard Worker  [with_expect=$withval],
296*49cdfc7eSAndroid Build Coastguard Worker  [with_expect=no]
297*49cdfc7eSAndroid Build Coastguard Worker)
298*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_expect" = xyes; then
299*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_EXPECT],["yes"])
300*49cdfc7eSAndroid Build Coastguard Workerelse
301*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_EXPECT],["no"])
302*49cdfc7eSAndroid Build Coastguard Workerfi
303*49cdfc7eSAndroid Build Coastguard Worker
304*49cdfc7eSAndroid Build Coastguard Worker# Numa
305*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([numa],
306*49cdfc7eSAndroid Build Coastguard Worker  AS_HELP_STRING([--without-numa],
307*49cdfc7eSAndroid Build Coastguard Worker    [without numa support]),
308*49cdfc7eSAndroid Build Coastguard Worker  [with_numa=$withval],
309*49cdfc7eSAndroid Build Coastguard Worker  [with_numa=yes]
310*49cdfc7eSAndroid Build Coastguard Worker)
311*49cdfc7eSAndroid Build Coastguard Worker
312*49cdfc7eSAndroid Build Coastguard Worker# Perl
313*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([perl],
314*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-perl],
315*49cdfc7eSAndroid Build Coastguard Worker    [have a perl interpreter])],
316*49cdfc7eSAndroid Build Coastguard Worker  [with_perl=$withval],
317*49cdfc7eSAndroid Build Coastguard Worker  [with_perl=no]
318*49cdfc7eSAndroid Build Coastguard Worker)
319*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_perl" = xyes; then
320*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_PERL],["yes"])
321*49cdfc7eSAndroid Build Coastguard Workerelse
322*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_PERL],["no"])
323*49cdfc7eSAndroid Build Coastguard Workerfi
324*49cdfc7eSAndroid Build Coastguard Worker
325*49cdfc7eSAndroid Build Coastguard Worker# Python
326*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([python],
327*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-python],
328*49cdfc7eSAndroid Build Coastguard Worker    [have a python interpreter])],
329*49cdfc7eSAndroid Build Coastguard Worker  [with_python=$withval],
330*49cdfc7eSAndroid Build Coastguard Worker  [with_python=no]
331*49cdfc7eSAndroid Build Coastguard Worker)
332*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_python" = xyes; then
333*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_PYTHON],["yes"])
334*49cdfc7eSAndroid Build Coastguard Workerelse
335*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_PYTHON],["no"])
336*49cdfc7eSAndroid Build Coastguard Workerfi
337*49cdfc7eSAndroid Build Coastguard Worker
338*49cdfc7eSAndroid Build Coastguard Worker# TI RPC
339*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([tirpc],
340*49cdfc7eSAndroid Build Coastguard Worker  AS_HELP_STRING([--without-tirpc],
341*49cdfc7eSAndroid Build Coastguard Worker    [without libtirpc support]),
342*49cdfc7eSAndroid Build Coastguard Worker  [with_tirpc=$withval],
343*49cdfc7eSAndroid Build Coastguard Worker  [with_tirpc=yes]
344*49cdfc7eSAndroid Build Coastguard Worker)
345*49cdfc7eSAndroid Build Coastguard Worker# END tools knobs
346*49cdfc7eSAndroid Build Coastguard Worker
347*49cdfc7eSAndroid Build Coastguard Worker# Testsuites knobs
348*49cdfc7eSAndroid Build Coastguard Worker
349*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([open-posix-testsuite],
350*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-open-posix-testsuite],
351*49cdfc7eSAndroid Build Coastguard Worker    [compile and install the open posix testsuite])],
352*49cdfc7eSAndroid Build Coastguard Worker  [with_open_posix_testsuite=$withval],
353*49cdfc7eSAndroid Build Coastguard Worker  [with_open_posix_testsuite=no]
354*49cdfc7eSAndroid Build Coastguard Worker)
355*49cdfc7eSAndroid Build Coastguard Worker
356*49cdfc7eSAndroid Build Coastguard Worker# Allow setting the directoy, where the open posix testsuite is installed to.
357*49cdfc7eSAndroid Build Coastguard Worker# If nothing is defined, we have to pass our default value to submake
358*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([open-posix-testdir],
359*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-open-posix-testdir=<dir>],
360*49cdfc7eSAndroid Build Coastguard Worker    [set the directory, where the open posix testsuite will be installed under prefix])],
361*49cdfc7eSAndroid Build Coastguard Worker  [],
362*49cdfc7eSAndroid Build Coastguard Worker  [ac_configure_args="$ac_configure_args --with-open-posix-testdir=testcases/open_posix_testsuite"]
363*49cdfc7eSAndroid Build Coastguard Worker)
364*49cdfc7eSAndroid Build Coastguard Worker
365*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_open_posix_testsuite" = xyes; then
366*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_OPEN_POSIX_TESTSUITE],["yes"])
367*49cdfc7eSAndroid Build Coastguard Worker    AC_CONFIG_SUBDIRS([testcases/open_posix_testsuite])
368*49cdfc7eSAndroid Build Coastguard Workerelse
369*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_OPEN_POSIX_TESTSUITE],["no"])
370*49cdfc7eSAndroid Build Coastguard Workerfi
371*49cdfc7eSAndroid Build Coastguard Worker
372*49cdfc7eSAndroid Build Coastguard Worker# TODO: testcases/realtime requires bash and python.
373*49cdfc7eSAndroid Build Coastguard WorkerAC_ARG_WITH([realtime-testsuite],
374*49cdfc7eSAndroid Build Coastguard Worker  [AS_HELP_STRING([--with-realtime-testsuite],
375*49cdfc7eSAndroid Build Coastguard Worker    [compile and install the realtime testsuite])],
376*49cdfc7eSAndroid Build Coastguard Worker  [with_realtime_testsuite=$withval],
377*49cdfc7eSAndroid Build Coastguard Worker  [with_realtime_testsuite=no]
378*49cdfc7eSAndroid Build Coastguard Worker)
379*49cdfc7eSAndroid Build Coastguard Worker
380*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_realtime_testsuite" = xyes; then
381*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_REALTIME_TESTSUITE],["yes"])
382*49cdfc7eSAndroid Build Coastguard Worker    # Run configure on testcases/realtime as well.
383*49cdfc7eSAndroid Build Coastguard Worker    AC_CONFIG_SUBDIRS([testcases/realtime])
384*49cdfc7eSAndroid Build Coastguard Workerelse
385*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_REALTIME_TESTSUITE],["no"])
386*49cdfc7eSAndroid Build Coastguard Workerfi
387*49cdfc7eSAndroid Build Coastguard Worker
388*49cdfc7eSAndroid Build Coastguard WorkerAC_CONFIG_COMMANDS([syscalls.h], [cd ${ac_top_srcdir}/include/lapi/syscalls; ./regen.sh])
389*49cdfc7eSAndroid Build Coastguard Worker
390*49cdfc7eSAndroid Build Coastguard Worker# custom functions
391*49cdfc7eSAndroid Build Coastguard Worker# NOTE: don't create custom functions for simple checks, put them into this file
392*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_ACL_SUPPORT
393*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_ATOMIC_MEMORY_MODEL
394*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_BUILTIN_CLEAR_CACHE
395*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_CAPABILITY_SUPPORT
396*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_CC_WARN_OLDSTYLE
397*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_CRYPTO
398*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_FORTIFY_SOURCE
399*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_KERNEL_DEVEL
400*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_KEYUTILS_SUPPORT
401*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_LIBMNL
402*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_LINUXRANDOM
403*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SELINUX
404*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SYNC_ADD_AND_FETCH
405*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SYSCALL_EVENTFD
406*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SYSCALL_FCNTL
407*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_FSVERITY
408*49cdfc7eSAndroid Build Coastguard Worker
409*49cdfc7eSAndroid Build Coastguard WorkerAX_CHECK_COMPILE_FLAG([-no-pie], [LTP_CFLAGS_NOPIE=1])
410*49cdfc7eSAndroid Build Coastguard WorkerAX_CHECK_COMPILE_FLAG([-ffixed-ebp], [LTP_CFLAGS_FFIXED_EBP=1])
411*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST([LTP_CFLAGS_NOPIE])
412*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST([LTP_CFLAGS_FFIXED_EBP])
413*49cdfc7eSAndroid Build Coastguard Worker
414*49cdfc7eSAndroid Build Coastguard Workerif test "x$with_numa" = xyes; then
415*49cdfc7eSAndroid Build Coastguard Worker	LTP_CHECK_SYSCALL_NUMA
416*49cdfc7eSAndroid Build Coastguard Worker	numa_error_msg="test requires libnuma development packages with LIBNUMA_API_VERSION >= 2"
417*49cdfc7eSAndroid Build Coastguard Workerelse
418*49cdfc7eSAndroid Build Coastguard Worker	numa_error_msg="NUMA support was disabled during build"
419*49cdfc7eSAndroid Build Coastguard Workerfi
420*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFINE_UNQUOTED(NUMA_ERROR_MSG, ["$numa_error_msg"], [Error message when no NUMA support])
421*49cdfc7eSAndroid Build Coastguard Worker
422*49cdfc7eSAndroid Build Coastguard Worker
423*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SYSCALL_SIGNALFD
424*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_SYSCALL_UTIMENSAT
425*49cdfc7eSAndroid Build Coastguard WorkerLTP_CHECK_TASKSTATS
426*49cdfc7eSAndroid Build Coastguard Workertest "x$with_tirpc" = xyes && LTP_CHECK_TIRPC
427*49cdfc7eSAndroid Build Coastguard WorkerLTP_DETECT_HOST_CPU
428*49cdfc7eSAndroid Build Coastguard Worker
429*49cdfc7eSAndroid Build Coastguard WorkerAC_MSG_CHECKING([whether linker can handle KVM payloads])
430*49cdfc7eSAndroid Build Coastguard Workerltp_backup_ldflags="$LDFLAGS"
431*49cdfc7eSAndroid Build Coastguard Workerltp_backup_flags="$[]_AC_LANG_PREFIX[]FLAGS"
432*49cdfc7eSAndroid Build Coastguard WorkerLDFLAGS="-T ${srcdir}/testcases/kernel/kvm/linker/${HOST_CPU}.lds"
433*49cdfc7eSAndroid Build Coastguard Worker_AC_LANG_PREFIX[]FLAGS=
434*49cdfc7eSAndroid Build Coastguard WorkerAC_LINK_IFELSE([AC_LANG_PROGRAM()],
435*49cdfc7eSAndroid Build Coastguard Worker  [
436*49cdfc7eSAndroid Build Coastguard Worker    AC_MSG_RESULT([yes])
437*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_KVM_TESTSUITE],["yes"])
438*49cdfc7eSAndroid Build Coastguard Worker  ],
439*49cdfc7eSAndroid Build Coastguard Worker  [
440*49cdfc7eSAndroid Build Coastguard Worker    AC_MSG_RESULT([no])
441*49cdfc7eSAndroid Build Coastguard Worker    AC_SUBST([WITH_KVM_TESTSUITE],["no"])
442*49cdfc7eSAndroid Build Coastguard Worker  ])
443*49cdfc7eSAndroid Build Coastguard Worker_AC_LANG_PREFIX[]FLAGS="$ltp_backup_flags"
444*49cdfc7eSAndroid Build Coastguard WorkerLDFLAGS="$ltp_backup_ldflags"
445*49cdfc7eSAndroid Build Coastguard Worker
446*49cdfc7eSAndroid Build Coastguard WorkerAC_OUTPUT
447*49cdfc7eSAndroid Build Coastguard Worker
448*49cdfc7eSAndroid Build Coastguard Workercat << EOF
449*49cdfc7eSAndroid Build Coastguard Worker
450*49cdfc7eSAndroid Build Coastguard WorkerTESTSUITES
451*49cdfc7eSAndroid Build Coastguard Workeropen posix testsuite: ${with_open_posix_testsuite:-no}
452*49cdfc7eSAndroid Build Coastguard Workerrealtime testsuite: ${with_realtime_testsuite:-no}
453*49cdfc7eSAndroid Build Coastguard Worker
454*49cdfc7eSAndroid Build Coastguard WorkerLIBRARIES
455*49cdfc7eSAndroid Build Coastguard Workerkeyutils: ${have_keyutils:-yes}
456*49cdfc7eSAndroid Build Coastguard Workerlibacl: ${have_libacl:-no}
457*49cdfc7eSAndroid Build Coastguard Workerlibaio: ${have_libaio:-no} (aio: ${have_aio:-no})
458*49cdfc7eSAndroid Build Coastguard Workerlibcap: $cap_libs (newer: ${has_newer_libcap:-no})
459*49cdfc7eSAndroid Build Coastguard Workerlibcrypto: ${have_libcrypto:-no} (sha: ${have_sha:-no})
460*49cdfc7eSAndroid Build Coastguard Workerlibmnl: ${have_libmnl:-yes}
461*49cdfc7eSAndroid Build Coastguard Workerlibnuma: ${have_libnuma:-no} (headers: ${have_numa_headers:-yes}, v2 headers: ${have_numa_headers_v2:-no})
462*49cdfc7eSAndroid Build Coastguard Workerlibtirpc: ${have_libtirpc:-no}
463*49cdfc7eSAndroid Build Coastguard Workerglibc SUN-RPC: ${have_rpc_glibc:-no}
464*49cdfc7eSAndroid Build Coastguard Worker
465*49cdfc7eSAndroid Build Coastguard WorkerMETADATA
466*49cdfc7eSAndroid Build Coastguard Workermetadata generator: $with_metadata_generator
467*49cdfc7eSAndroid Build Coastguard WorkerHTML metadata: $with_metadata_html
468*49cdfc7eSAndroid Build Coastguard WorkerPDF metadata: $with_metadata_pdf
469*49cdfc7eSAndroid Build Coastguard WorkerEOF
470