Commit | Line | Data |
---|---|---|
2cbca301 MJ |
1 | # SPDX-License-Identifier: MIT |
2 | # | |
3 | # Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com> | |
4 | # | |
5 | ||
6 | AC_PREREQ(2.59) | |
7 | AC_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 | |
11 | AC_SUBST([RSEQ_LIBRARY_VERSION], [0:0:0]) | |
12 | ||
13 | AC_CONFIG_HEADERS([include/config.h]) | |
14 | AC_CONFIG_AUX_DIR([config]) | |
15 | AC_CONFIG_MACRO_DIR([m4]) | |
16 | ||
17 | AC_CANONICAL_TARGET | |
18 | AC_CANONICAL_HOST | |
19 | ||
20 | AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip nostdinc]) | |
21 | AM_MAINTAINER_MODE([enable]) | |
22 | ||
23 | # Enable silent rules if available (Introduced in AM 1.11) | |
24 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) | |
25 | ||
26 | AC_REQUIRE_AUX_FILE([tap-driver.sh]) | |
27 | ||
28 | # Checks for C compiler | |
29 | AC_USE_SYSTEM_EXTENSIONS | |
30 | AC_PROG_CC | |
31 | AC_PROG_CC_STDC | |
32 | AC_PROG_CXX | |
33 | ||
34 | # Checks for programs. | |
35 | AC_PROG_AWK | |
36 | AC_PROG_MAKE_SET | |
37 | ||
38 | LT_INIT | |
39 | ||
40 | # Checks for typedefs, structures, and compiler characteristics. | |
41 | AC_C_INLINE | |
42 | AC_TYPE_INT32_T | |
43 | AC_TYPE_INT64_T | |
44 | AC_TYPE_OFF_T | |
45 | AC_TYPE_SIZE_T | |
46 | AC_TYPE_UINT32_T | |
47 | AC_TYPE_UINT64_T | |
48 | ||
49 | AX_C___ATTRIBUTE__ | |
50 | AS_IF([test "x$ax_cv___attribute__" = "xyes"], | |
51 | [:], | |
52 | [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) | |
53 | ||
54 | AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])]) | |
55 | ||
56 | AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" | |
57 | ||
58 | # Checks for library functions. | |
59 | AC_FUNC_MMAP | |
60 | AC_FUNC_FORK | |
61 | AC_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 | |
70 | AC_HEADER_STDBOOL | |
71 | AC_CHECK_HEADERS([ \ | |
72 | limits.h \ | |
73 | stddef.h \ | |
74 | ]) | |
75 | ||
76 | AC_CHECK_HEADER([linux/rseq.h]) | |
77 | AS_IF([test "x${ac_cv_header_linux_rseq_h}" != "xyes"], [ | |
78 | AC_MSG_ERROR([Cannot find 'linux/rseq.h'.]) | |
79 | ]) | |
80 | ||
2cbca301 MJ |
81 | AM_CPPFLAGS="-include config.h" |
82 | AC_SUBST(AM_CPPFLAGS) | |
83 | ||
84 | AM_CFLAGS="-Wall -Wextra $AM_CFLAGS" | |
85 | AC_SUBST(AM_CFLAGS) | |
86 | ||
87 | AC_CONFIG_FILES([ | |
88 | Makefile | |
6146efae MD |
89 | doc/Makefile |
90 | doc/man/Makefile | |
2cbca301 MJ |
91 | include/Makefile |
92 | src/Makefile | |
2cbca301 | 93 | src/librseq.pc |
b848736e | 94 | tests/Makefile |
2cbca301 MJ |
95 | ]) |
96 | ||
97 | AC_OUTPUT | |
aa4ed6d6 MJ |
98 | |
99 | # | |
100 | # Mini-report on what will be built. | |
101 | # | |
102 | ||
103 | PPRINT_INIT | |
104 | PPRINT_SET_INDENT(1) | |
105 | PPRINT_SET_TS(38) | |
106 | ||
107 | AS_ECHO | |
108 | AS_ECHO("${PPRINT_COLOR_BLDBLU}librseq $PACKAGE_VERSION${PPRINT_COLOR_RST}") | |
109 | AS_ECHO | |
110 | ||
111 | PPRINT_SUBTITLE([Features]) | |
112 | ||
113 | PPRINT_PROP_STRING([Target architecture], $host_cpu) | |
114 | ||
aa4ed6d6 MJ |
115 | report_bindir="`eval eval echo $bindir`" |
116 | report_libdir="`eval eval echo $libdir`" | |
117 | ||
118 | # Print the bindir and libdir this `make install' will install into. | |
119 | AS_ECHO | |
120 | PPRINT_SUBTITLE([Install directories]) | |
121 | PPRINT_PROP_STRING([Binaries], [$report_bindir]) | |
122 | PPRINT_PROP_STRING([Libraries], [$report_libdir]) |