Adapt rseq registration to glibc's userspace ABI for __rseq_abi
[librseq.git] / configure.ac
CommitLineData
2cbca301
MJ
1# SPDX-License-Identifier: MIT
2#
3# Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
4#
5
6AC_PREREQ(2.59)
7AC_INIT([librseq],[0.1.0-pre],[mathieu dot desnoyers at efficios dot com], [], [https://github.com/compudj/librseq/])
8
9# Following the numbering scheme proposed by libtool for the library version
10# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
11AC_SUBST([RSEQ_LIBRARY_VERSION], [0:0:0])
12
13AC_CONFIG_HEADERS([include/config.h])
14AC_CONFIG_AUX_DIR([config])
15AC_CONFIG_MACRO_DIR([m4])
16
17AC_CANONICAL_TARGET
18AC_CANONICAL_HOST
19
20AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip nostdinc])
21AM_MAINTAINER_MODE([enable])
22
23# Enable silent rules if available (Introduced in AM 1.11)
24m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
25
26AC_REQUIRE_AUX_FILE([tap-driver.sh])
27
28# Checks for C compiler
29AC_USE_SYSTEM_EXTENSIONS
30AC_PROG_CC
31AC_PROG_CC_STDC
32AC_PROG_CXX
33
34# Checks for programs.
35AC_PROG_AWK
36AC_PROG_MAKE_SET
37
38LT_INIT
39
40# Checks for typedefs, structures, and compiler characteristics.
41AC_C_INLINE
42AC_TYPE_INT32_T
43AC_TYPE_INT64_T
44AC_TYPE_OFF_T
45AC_TYPE_SIZE_T
46AC_TYPE_UINT32_T
47AC_TYPE_UINT64_T
48
49AX_C___ATTRIBUTE__
50AS_IF([test "x$ax_cv___attribute__" = "xyes"],
51 [:],
52 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
53
54AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])])
55
56AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
57
58# Checks for library functions.
59AC_FUNC_MMAP
60AC_FUNC_FORK
61AC_CHECK_FUNCS([ \
62 memset \
63 strerror \
64])
65
66# AC_FUNC_MALLOC causes problems when cross-compiling.
67#AC_FUNC_MALLOC
68
69# Check for headers
70AC_HEADER_STDBOOL
71AC_CHECK_HEADERS([ \
72 limits.h \
73 stddef.h \
74])
75
76AC_CHECK_HEADER([linux/rseq.h])
77AS_IF([test "x${ac_cv_header_linux_rseq_h}" != "xyes"], [
78 AC_MSG_ERROR([Cannot find 'linux/rseq.h'.])
79])
80
2cbca301
MJ
81AM_CPPFLAGS="-include config.h"
82AC_SUBST(AM_CPPFLAGS)
83
84AM_CFLAGS="-Wall -Wextra $AM_CFLAGS"
85AC_SUBST(AM_CFLAGS)
86
87AC_CONFIG_FILES([
88 Makefile
6146efae
MD
89 doc/Makefile
90 doc/man/Makefile
2cbca301
MJ
91 include/Makefile
92 src/Makefile
2cbca301
MJ
93 src/librseq.pc
94])
95
96AC_OUTPUT
aa4ed6d6
MJ
97
98#
99# Mini-report on what will be built.
100#
101
102PPRINT_INIT
103PPRINT_SET_INDENT(1)
104PPRINT_SET_TS(38)
105
106AS_ECHO
107AS_ECHO("${PPRINT_COLOR_BLDBLU}librseq $PACKAGE_VERSION${PPRINT_COLOR_RST}")
108AS_ECHO
109
110PPRINT_SUBTITLE([Features])
111
112PPRINT_PROP_STRING([Target architecture], $host_cpu)
113
aa4ed6d6
MJ
114report_bindir="`eval eval echo $bindir`"
115report_libdir="`eval eval echo $libdir`"
116
117# Print the bindir and libdir this `make install' will install into.
118AS_ECHO
119PPRINT_SUBTITLE([Install directories])
120PPRINT_PROP_STRING([Binaries], [$report_bindir])
121PPRINT_PROP_STRING([Libraries], [$report_libdir])
This page took 0.027522 seconds and 4 git commands to generate.