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