113481Sgiacomo.travaglini@arm.comm4_include(../googletest/m4/acx_pthread.m4)
213481Sgiacomo.travaglini@arm.com
313481Sgiacomo.travaglini@arm.comAC_INIT([Google C++ Mocking Framework],
413481Sgiacomo.travaglini@arm.com        [1.7.0],
513481Sgiacomo.travaglini@arm.com        [googlemock@googlegroups.com],
613481Sgiacomo.travaglini@arm.com        [gmock])
713481Sgiacomo.travaglini@arm.com
813481Sgiacomo.travaglini@arm.com# Provide various options to initialize the Autoconf and configure processes.
913481Sgiacomo.travaglini@arm.comAC_PREREQ([2.59])
1013481Sgiacomo.travaglini@arm.comAC_CONFIG_SRCDIR([./LICENSE])
1113481Sgiacomo.travaglini@arm.comAC_CONFIG_AUX_DIR([build-aux])
1213481Sgiacomo.travaglini@arm.comAC_CONFIG_HEADERS([build-aux/config.h])
1313481Sgiacomo.travaglini@arm.comAC_CONFIG_FILES([Makefile])
1413481Sgiacomo.travaglini@arm.comAC_CONFIG_FILES([scripts/gmock-config], [chmod +x scripts/gmock-config])
1513481Sgiacomo.travaglini@arm.com
1613481Sgiacomo.travaglini@arm.com# Initialize Automake with various options. We require at least v1.9, prevent
1713481Sgiacomo.travaglini@arm.com# pedantic complaints about package files, and enable various distribution
1813481Sgiacomo.travaglini@arm.com# targets.
1913481Sgiacomo.travaglini@arm.comAM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects])
2013481Sgiacomo.travaglini@arm.com
2113481Sgiacomo.travaglini@arm.com# Check for programs used in building Google Test.
2213481Sgiacomo.travaglini@arm.comAC_PROG_CC
2313481Sgiacomo.travaglini@arm.comAC_PROG_CXX
2413481Sgiacomo.travaglini@arm.comAC_LANG([C++])
2513481Sgiacomo.travaglini@arm.comAC_PROG_LIBTOOL
2613481Sgiacomo.travaglini@arm.com
2713481Sgiacomo.travaglini@arm.com# TODO(chandlerc@google.com): Currently we aren't running the Python tests
2813481Sgiacomo.travaglini@arm.com# against the interpreter detected by AM_PATH_PYTHON, and so we condition
2913481Sgiacomo.travaglini@arm.com# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's
3013481Sgiacomo.travaglini@arm.com# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env"
3113481Sgiacomo.travaglini@arm.com# hashbang.
3213481Sgiacomo.travaglini@arm.comPYTHON=  # We *do not* allow the user to specify a python interpreter
3313481Sgiacomo.travaglini@arm.comAC_PATH_PROG([PYTHON],[python],[:])
3413481Sgiacomo.travaglini@arm.comAS_IF([test "$PYTHON" != ":"],
3513481Sgiacomo.travaglini@arm.com      [AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])])
3613481Sgiacomo.travaglini@arm.comAM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"])
3713481Sgiacomo.travaglini@arm.com
3813481Sgiacomo.travaglini@arm.com# TODO(chandlerc@google.com) Check for the necessary system headers.
3913481Sgiacomo.travaglini@arm.com
4013481Sgiacomo.travaglini@arm.com# Configure pthreads.
4113481Sgiacomo.travaglini@arm.comAC_ARG_WITH([pthreads],
4213481Sgiacomo.travaglini@arm.com            [AS_HELP_STRING([--with-pthreads],
4313481Sgiacomo.travaglini@arm.com               [use pthreads (default is yes)])],
4413481Sgiacomo.travaglini@arm.com            [with_pthreads=$withval],
4513481Sgiacomo.travaglini@arm.com            [with_pthreads=check])
4613481Sgiacomo.travaglini@arm.com
4713481Sgiacomo.travaglini@arm.comhave_pthreads=no
4813481Sgiacomo.travaglini@arm.comAS_IF([test "x$with_pthreads" != "xno"],
4913481Sgiacomo.travaglini@arm.com      [ACX_PTHREAD(
5013481Sgiacomo.travaglini@arm.com        [],
5113481Sgiacomo.travaglini@arm.com        [AS_IF([test "x$with_pthreads" != "xcheck"],
5213481Sgiacomo.travaglini@arm.com               [AC_MSG_FAILURE(
5313481Sgiacomo.travaglini@arm.com                 [--with-pthreads was specified, but unable to be used])])])
5413481Sgiacomo.travaglini@arm.com       have_pthreads="$acx_pthread_ok"])
5513481Sgiacomo.travaglini@arm.comAM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" == "xyes"])
5613481Sgiacomo.travaglini@arm.comAC_SUBST(PTHREAD_CFLAGS)
5713481Sgiacomo.travaglini@arm.comAC_SUBST(PTHREAD_LIBS)
5813481Sgiacomo.travaglini@arm.com
5913481Sgiacomo.travaglini@arm.com# GoogleMock currently has hard dependencies upon GoogleTest above and beyond
6013481Sgiacomo.travaglini@arm.com# running its own test suite, so we both provide our own version in
6113481Sgiacomo.travaglini@arm.com# a subdirectory and provide some logic to use a custom version or a system
6213481Sgiacomo.travaglini@arm.com# installed version.
6313481Sgiacomo.travaglini@arm.comAC_ARG_WITH([gtest],
6413481Sgiacomo.travaglini@arm.com            [AS_HELP_STRING([--with-gtest],
6513481Sgiacomo.travaglini@arm.com                            [Specifies how to find the gtest package. If no
6613481Sgiacomo.travaglini@arm.com                            arguments are given, the default behavior, a
6713481Sgiacomo.travaglini@arm.com                            system installed gtest will be used if present,
6813481Sgiacomo.travaglini@arm.com                            and an internal version built otherwise. If a
6913481Sgiacomo.travaglini@arm.com                            path is provided, the gtest built or installed at
7013481Sgiacomo.travaglini@arm.com                            that prefix will be used.])],
7113481Sgiacomo.travaglini@arm.com            [],
7213481Sgiacomo.travaglini@arm.com            [with_gtest=yes])
7313481Sgiacomo.travaglini@arm.comAC_ARG_ENABLE([external-gtest],
7413481Sgiacomo.travaglini@arm.com              [AS_HELP_STRING([--disable-external-gtest],
7513481Sgiacomo.travaglini@arm.com                              [Disables any detection or use of a system
7613481Sgiacomo.travaglini@arm.com                              installed or user provided gtest. Any option to
7713481Sgiacomo.travaglini@arm.com                              '--with-gtest' is ignored. (Default is enabled.)])
7813481Sgiacomo.travaglini@arm.com              ], [], [enable_external_gtest=yes])
7913481Sgiacomo.travaglini@arm.comAS_IF([test "x$with_gtest" == "xno"],
8013481Sgiacomo.travaglini@arm.com      [AC_MSG_ERROR([dnl
8113481Sgiacomo.travaglini@arm.comSupport for GoogleTest was explicitly disabled. Currently GoogleMock has a hard
8213481Sgiacomo.travaglini@arm.comdependency upon GoogleTest to build, please provide a version, or allow
8313481Sgiacomo.travaglini@arm.comGoogleMock to use any installed version and fall back upon its internal
8413481Sgiacomo.travaglini@arm.comversion.])])
8513481Sgiacomo.travaglini@arm.com
8613481Sgiacomo.travaglini@arm.com# Setup various GTEST variables. TODO(chandlerc@google.com): When these are
8713481Sgiacomo.travaglini@arm.com# used below, they should be used such that any pre-existing values always
8813481Sgiacomo.travaglini@arm.com# trump values we set them to, so that they can be used to selectively override
8913481Sgiacomo.travaglini@arm.com# details of the detection process.
9013481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_CONFIG],
9113481Sgiacomo.travaglini@arm.com           [The exact path of Google Test's 'gtest-config' script.])
9213481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_CPPFLAGS],
9313481Sgiacomo.travaglini@arm.com           [C-like preprocessor flags for Google Test.])
9413481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_CXXFLAGS],
9513481Sgiacomo.travaglini@arm.com           [C++ compile flags for Google Test.])
9613481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_LDFLAGS],
9713481Sgiacomo.travaglini@arm.com           [Linker path and option flags for Google Test.])
9813481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_LIBS],
9913481Sgiacomo.travaglini@arm.com           [Library linking flags for Google Test.])
10013481Sgiacomo.travaglini@arm.comAC_ARG_VAR([GTEST_VERSION],
10113481Sgiacomo.travaglini@arm.com           [The version of Google Test available.])
10213481Sgiacomo.travaglini@arm.comHAVE_BUILT_GTEST="no"
10313481Sgiacomo.travaglini@arm.com
10413481Sgiacomo.travaglini@arm.comGTEST_MIN_VERSION="1.7.0"
10513481Sgiacomo.travaglini@arm.com
10613481Sgiacomo.travaglini@arm.comAS_IF([test "x${enable_external_gtest}" = "xyes"],
10713481Sgiacomo.travaglini@arm.com      [# Begin filling in variables as we are able.
10813481Sgiacomo.travaglini@arm.com      AS_IF([test "x${with_gtest}" != "xyes"],
10913481Sgiacomo.travaglini@arm.com            [AS_IF([test -x "${with_gtest}/scripts/gtest-config"],
11013481Sgiacomo.travaglini@arm.com                   [GTEST_CONFIG="${with_gtest}/scripts/gtest-config"],
11113481Sgiacomo.travaglini@arm.com                   [GTEST_CONFIG="${with_gtest}/bin/gtest-config"])
11213481Sgiacomo.travaglini@arm.com            AS_IF([test -x "${GTEST_CONFIG}"], [],
11313481Sgiacomo.travaglini@arm.com                  [AC_MSG_ERROR([dnl
11413481Sgiacomo.travaglini@arm.comUnable to locate either a built or installed Google Test at '${with_gtest}'.])
11513481Sgiacomo.travaglini@arm.com                  ])])
11613481Sgiacomo.travaglini@arm.com
11713481Sgiacomo.travaglini@arm.com      AS_IF([test -x "${GTEST_CONFIG}"], [],
11813481Sgiacomo.travaglini@arm.com            [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])])
11913481Sgiacomo.travaglini@arm.com      AS_IF([test -x "${GTEST_CONFIG}"],
12013481Sgiacomo.travaglini@arm.com            [AC_MSG_CHECKING([for Google Test version >= ${GTEST_MIN_VERSION}])
12113481Sgiacomo.travaglini@arm.com            AS_IF([${GTEST_CONFIG} --min-version=${GTEST_MIN_VERSION}],
12213481Sgiacomo.travaglini@arm.com                  [AC_MSG_RESULT([yes])
12313481Sgiacomo.travaglini@arm.com                  HAVE_BUILT_GTEST="yes"],
12413481Sgiacomo.travaglini@arm.com                  [AC_MSG_RESULT([no])])])])
12513481Sgiacomo.travaglini@arm.com
12613481Sgiacomo.travaglini@arm.comAS_IF([test "x${HAVE_BUILT_GTEST}" = "xyes"],
12713481Sgiacomo.travaglini@arm.com      [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
12813481Sgiacomo.travaglini@arm.com      GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
12913481Sgiacomo.travaglini@arm.com      GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
13013481Sgiacomo.travaglini@arm.com      GTEST_LIBS=`${GTEST_CONFIG} --libs`
13113481Sgiacomo.travaglini@arm.com      GTEST_VERSION=`${GTEST_CONFIG} --version`],
13213481Sgiacomo.travaglini@arm.com      [AC_CONFIG_SUBDIRS([../googletest])
13313481Sgiacomo.travaglini@arm.com      # GTEST_CONFIG needs to be executable both in a Makefile environmont and
13413481Sgiacomo.travaglini@arm.com      # in a shell script environment, so resolve an absolute path for it here.
13513481Sgiacomo.travaglini@arm.com      GTEST_CONFIG="`pwd -P`/../googletest/scripts/gtest-config"
13613481Sgiacomo.travaglini@arm.com      GTEST_CPPFLAGS='-I$(top_srcdir)/../googletest/include'
13713481Sgiacomo.travaglini@arm.com      GTEST_CXXFLAGS='-g'
13813481Sgiacomo.travaglini@arm.com      GTEST_LDFLAGS=''
13913481Sgiacomo.travaglini@arm.com      GTEST_LIBS='$(top_builddir)/../googletest/lib/libgtest.la'
14013481Sgiacomo.travaglini@arm.com      GTEST_VERSION="${GTEST_MIN_VERSION}"])
14113481Sgiacomo.travaglini@arm.com
14213481Sgiacomo.travaglini@arm.com# TODO(chandlerc@google.com) Check the types, structures, and other compiler
14313481Sgiacomo.travaglini@arm.com# and architecture characteristics.
14413481Sgiacomo.travaglini@arm.com
14513481Sgiacomo.travaglini@arm.com# Output the generated files. No further autoconf macros may be used.
14613481Sgiacomo.travaglini@arm.comAC_OUTPUT
147