configure.ac revision 13481
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