]>
Commit | Line | Data |
---|---|---|
31f18b77 FG |
1 | m4_include(../googletest/m4/acx_pthread.m4) |
2 | ||
3 | AC_INIT([Google C++ Mocking Framework], | |
4 | [1.7.0], | |
5 | [googlemock@googlegroups.com], | |
6 | [gmock]) | |
7 | ||
8 | # Provide various options to initialize the Autoconf and configure processes. | |
9 | AC_PREREQ([2.59]) | |
10 | AC_CONFIG_SRCDIR([./LICENSE]) | |
11 | AC_CONFIG_AUX_DIR([build-aux]) | |
12 | AC_CONFIG_HEADERS([build-aux/config.h]) | |
13 | AC_CONFIG_FILES([Makefile]) | |
14 | AC_CONFIG_FILES([scripts/gmock-config], [chmod +x scripts/gmock-config]) | |
15 | ||
16 | # Initialize Automake with various options. We require at least v1.9, prevent | |
17 | # pedantic complaints about package files, and enable various distribution | |
18 | # targets. | |
19 | AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects]) | |
20 | ||
21 | # Check for programs used in building Google Test. | |
22 | AC_PROG_CC | |
23 | AC_PROG_CXX | |
24 | AC_LANG([C++]) | |
25 | AC_PROG_LIBTOOL | |
26 | ||
27 | # TODO(chandlerc@google.com): Currently we aren't running the Python tests | |
28 | # against the interpreter detected by AM_PATH_PYTHON, and so we condition | |
29 | # HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's | |
30 | # version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env" | |
31 | # hashbang. | |
32 | PYTHON= # We *do not* allow the user to specify a python interpreter | |
33 | AC_PATH_PROG([PYTHON],[python],[:]) | |
34 | AS_IF([test "$PYTHON" != ":"], | |
35 | [AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])]) | |
36 | AM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"]) | |
37 | ||
38 | # TODO(chandlerc@google.com) Check for the necessary system headers. | |
39 | ||
40 | # Configure pthreads. | |
41 | AC_ARG_WITH([pthreads], | |
42 | [AS_HELP_STRING([--with-pthreads], | |
43 | [use pthreads (default is yes)])], | |
44 | [with_pthreads=$withval], | |
45 | [with_pthreads=check]) | |
46 | ||
47 | have_pthreads=no | |
48 | AS_IF([test "x$with_pthreads" != "xno"], | |
49 | [ACX_PTHREAD( | |
50 | [], | |
51 | [AS_IF([test "x$with_pthreads" != "xcheck"], | |
52 | [AC_MSG_FAILURE( | |
53 | [--with-pthreads was specified, but unable to be used])])]) | |
54 | have_pthreads="$acx_pthread_ok"]) | |
55 | AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" == "xyes"]) | |
56 | AC_SUBST(PTHREAD_CFLAGS) | |
57 | AC_SUBST(PTHREAD_LIBS) | |
58 | ||
59 | # GoogleMock currently has hard dependencies upon GoogleTest above and beyond | |
60 | # running its own test suite, so we both provide our own version in | |
61 | # a subdirectory and provide some logic to use a custom version or a system | |
62 | # installed version. | |
63 | AC_ARG_WITH([gtest], | |
64 | [AS_HELP_STRING([--with-gtest], | |
65 | [Specifies how to find the gtest package. If no | |
66 | arguments are given, the default behavior, a | |
67 | system installed gtest will be used if present, | |
68 | and an internal version built otherwise. If a | |
69 | path is provided, the gtest built or installed at | |
70 | that prefix will be used.])], | |
71 | [], | |
72 | [with_gtest=yes]) | |
73 | AC_ARG_ENABLE([external-gtest], | |
74 | [AS_HELP_STRING([--disable-external-gtest], | |
75 | [Disables any detection or use of a system | |
76 | installed or user provided gtest. Any option to | |
77 | '--with-gtest' is ignored. (Default is enabled.)]) | |
78 | ], [], [enable_external_gtest=yes]) | |
79 | AS_IF([test "x$with_gtest" == "xno"], | |
80 | [AC_MSG_ERROR([dnl | |
81 | Support for GoogleTest was explicitly disabled. Currently GoogleMock has a hard | |
82 | dependency upon GoogleTest to build, please provide a version, or allow | |
83 | GoogleMock to use any installed version and fall back upon its internal | |
84 | version.])]) | |
85 | ||
86 | # Setup various GTEST variables. TODO(chandlerc@google.com): When these are | |
87 | # used below, they should be used such that any pre-existing values always | |
88 | # trump values we set them to, so that they can be used to selectively override | |
89 | # details of the detection process. | |
90 | AC_ARG_VAR([GTEST_CONFIG], | |
91 | [The exact path of Google Test's 'gtest-config' script.]) | |
92 | AC_ARG_VAR([GTEST_CPPFLAGS], | |
93 | [C-like preprocessor flags for Google Test.]) | |
94 | AC_ARG_VAR([GTEST_CXXFLAGS], | |
95 | [C++ compile flags for Google Test.]) | |
96 | AC_ARG_VAR([GTEST_LDFLAGS], | |
97 | [Linker path and option flags for Google Test.]) | |
98 | AC_ARG_VAR([GTEST_LIBS], | |
99 | [Library linking flags for Google Test.]) | |
100 | AC_ARG_VAR([GTEST_VERSION], | |
101 | [The version of Google Test available.]) | |
102 | HAVE_BUILT_GTEST="no" | |
103 | ||
104 | GTEST_MIN_VERSION="1.7.0" | |
105 | ||
106 | AS_IF([test "x${enable_external_gtest}" = "xyes"], | |
107 | [# Begin filling in variables as we are able. | |
108 | AS_IF([test "x${with_gtest}" != "xyes"], | |
109 | [AS_IF([test -x "${with_gtest}/scripts/gtest-config"], | |
110 | [GTEST_CONFIG="${with_gtest}/scripts/gtest-config"], | |
111 | [GTEST_CONFIG="${with_gtest}/bin/gtest-config"]) | |
112 | AS_IF([test -x "${GTEST_CONFIG}"], [], | |
113 | [AC_MSG_ERROR([dnl | |
114 | Unable to locate either a built or installed Google Test at '${with_gtest}'.]) | |
115 | ])]) | |
116 | ||
117 | AS_IF([test -x "${GTEST_CONFIG}"], [], | |
118 | [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])]) | |
119 | AS_IF([test -x "${GTEST_CONFIG}"], | |
120 | [AC_MSG_CHECKING([for Google Test version >= ${GTEST_MIN_VERSION}]) | |
121 | AS_IF([${GTEST_CONFIG} --min-version=${GTEST_MIN_VERSION}], | |
122 | [AC_MSG_RESULT([yes]) | |
123 | HAVE_BUILT_GTEST="yes"], | |
124 | [AC_MSG_RESULT([no])])])]) | |
125 | ||
126 | AS_IF([test "x${HAVE_BUILT_GTEST}" = "xyes"], | |
127 | [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags` | |
128 | GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags` | |
129 | GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` | |
130 | GTEST_LIBS=`${GTEST_CONFIG} --libs` | |
131 | GTEST_VERSION=`${GTEST_CONFIG} --version`], | |
132 | [AC_CONFIG_SUBDIRS([../googletest]) | |
133 | # GTEST_CONFIG needs to be executable both in a Makefile environmont and | |
134 | # in a shell script environment, so resolve an absolute path for it here. | |
135 | GTEST_CONFIG="`pwd -P`/../googletest/scripts/gtest-config" | |
136 | GTEST_CPPFLAGS='-I$(top_srcdir)/../googletest/include' | |
137 | GTEST_CXXFLAGS='-g' | |
138 | GTEST_LDFLAGS='' | |
139 | GTEST_LIBS='$(top_builddir)/../googletest/lib/libgtest.la' | |
140 | GTEST_VERSION="${GTEST_MIN_VERSION}"]) | |
141 | ||
142 | # TODO(chandlerc@google.com) Check the types, structures, and other compiler | |
143 | # and architecture characteristics. | |
144 | ||
145 | # Output the generated files. No further autoconf macros may be used. | |
146 | AC_OUTPUT |