1##############################################################################
2#
3#                             SkyPat Configuration
4#
5#  This file is distributed under the New BSD License.
6#  See LICENSE for details.
7#
8##############################################################################
9
10####################
11#  Autoconf/Automake Initialization
12
13dnl AC_INIT(PKG_NAME, BUILD_VERSION, BUG_REPORTER)
14AC_INIT([skypat],[bourbon],[skypat-dev@@googlegroups.com])
15AC_PREREQ(2.59)
16
17AC_CONFIG_SRCDIR([LICENSE])
18AC_CONFIG_AUX_DIR([scripts])
19AC_CONFIG_MACRO_DIR([m4])
20AC_CONFIG_HEADERS([include/skypat/Config/Config.h])
21
22####################
23#  Check environments - `host`, `target` and `build`
24CHECK_CANONICAL_SYSTEM
25
26AM_INIT_AUTOMAKE([1.9 dist-bzip2 foreign nostdinc subdir-objects])
27
28####################
29#  Versioning, see VERSION
30CURRENT_VERSION=3
31REVISION_VERSION=1
32AGE_VERSION=0
33FULL_VERSION_NAME=Bourbon
34BUILD_VERSION=bourbon
35
36SKYPAT_VERSION=$CURRENT_VERSION:$REVISION_VERSION:$AGE_VERSION
37PACKAGE_VERSION=$CURRENT_VERSION.$REVISION_VERSION.$AGE_VERSION-$BUILD_VERSION
38AC_SUBST(PACKAGE_VERSION)
39AC_SUBST(SKYPAT_VERSION)
40
41####################
42#  Languages
43AC_PROG_CC
44AC_PROG_CXX
45AC_LANG([C++])
46AC_CXX_STL_HASH
47AM_CONDITIONAL(GCC, test "$GCC" = yes)   # let the Makefile know if we're gcc
48AC_ENABLE_SHARED
49LT_INIT
50
51####################
52# Check for compiler warnings
53CHECK_WERROR_FLAGS
54CXX_FLAG_CHECK([-Wno-variadic-macros])
55
56####################
57# Check for headers
58AC_CHECK_HEADERS([sys/time.h])
59AC_CHECK_HEADERS([linux/perf_event.h])
60AC_CHECK_HEADERS([asm/unistd.h])
61
62####################
63# Check for functions
64AC_SEARCH_LIBS([clock_gettime], [rt], [
65    AC_DEFINE(HAVE_CLOCK_GETTIME, 1,[Have clock_gettime])
66])
67AC_CHECK_FUNCS([gettimeofday])
68
69####################
70# Check for types
71AC_CHECK_TYPES([int8_t, int16_t, int32_t, int64_t, intptr_t])
72AC_CHECK_TYPES([uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t])
73AC_CHECK_TYPES([long double, long long, long long int, unsigned long long int])
74AC_CHECK_TYPES([off_t, size_t, ssize_t])
75AC_TYPE_LONG_DOUBLE_WIDER
76
77####################
78# Check for options
79CHECK_PTHREAD
80CHECK_ZLIB
81CHECK_ENABLE_UNITTEST
82CHECK_ENABLE_OPTIMIZE
83CHECK_ENABLE_OPTION([clock_gettime], [no], [ENABLE_CLOCK_GETTIME])
84CHECK_ENABLE_OPTION([gettimeofday], [yes], [ENABLE_GETTIMEOFDAY])
85
86####################
87# OUTPUT
88AC_CONFIG_FILES([Makefile])
89AC_CONFIG_FILES([include/Makefile])
90AC_CONFIG_FILES([lib/Makefile])
91AC_CONFIG_FILES([lib/skypat.pc])
92AC_CONFIG_FILES([examples/Makefile])
93AC_CONFIG_FILES([examples/assertion/Makefile])
94AC_CONFIG_FILES([examples/multi_assert/Makefile])
95AC_CONFIG_FILES([examples/multi_expect/Makefile])
96AC_CONFIG_FILES([examples/multi_case/Makefile])
97AC_CONFIG_FILES([examples/performance/Makefile])
98AC_CONFIG_FILES([examples/smoke/Makefile])
99AC_CONFIG_FILES([examples/fail/Makefile])
100AC_CONFIG_FILES([examples/skypat_c/Makefile])
101AC_CONFIG_FILES([examples/thread/Makefile])
102
103AC_OUTPUT
104