@@ -7,6 +7,11 @@ AC_CONFIG_MACRO_DIRS([m4])
77AM_SILENT_RULES ([ yes] )
88AC_LANG ( [ C++] )
99
10+ GMOCK_DIR="${GMOCK_DIR=/usr/src/gmock}"
11+ AC_ARG_VAR ( [ GMOCK_DIR] , [ directory containing Google Mock] )
12+ GTEST_DIR="${GTEST_DIR="$GMOCK_DIR/gtest"}"
13+ AC_ARG_VAR ( [ GTEST_DIR] , [ directory containing Google Test] )
14+
1015# Checks for programs.
1116AC_PROG_AWK
1217AC_PROG_CXX
@@ -24,6 +29,24 @@ PKG_CHECK_MODULES([json_c], [json-c])
2429AC_HEADER_RESOLV
2530AC_CHECK_HEADERS ( [ arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h] )
2631
32+ # Check for working GTest/GMock.
33+ saved_CPPFLAGS="$CPPFLAGS"
34+ AS_UNSET ( [ missing_gtest] )
35+ AS_UNSET ( [ missing_gmock] )
36+ AS_VAR_APPEND ( [ CPPFLAGS] , [ " -I$GTEST_DIR/include"] )
37+ AC_CHECK_HEADER ( [ gtest/gtest.h] ,, [ missing_gtest=1] )
38+ AS_VAR_APPEND ( [ CPPFLAGS] , [ " -I$GMOCK_DIR/include"] )
39+ AC_CHECK_HEADER ( [ gmock/gmock.h] ,, [ missing_gmock=1] )
40+ AS_VAR_APPEND ( [ CPPFLAGS] , [ " -I$GTEST_DIR"] )
41+ AC_CHECK_HEADER ( [ $GTEST_DIR/src/gtest-all.cc] ,, [ missing_gtest=1] )
42+ AS_VAR_APPEND ( [ CPPFLAGS] , [ " -I$GMOCK_DIR"] )
43+ AC_CHECK_HEADER ( [ $GMOCK_DIR/src/gmock-all.cc] ,, [ missing_gmock=1] )
44+ CPPFLAGS="$saved_CPPFLAGS"
45+ AS_IF ( [ test -n "$missing_gtest"] ,
46+ [ AC_MSG_ERROR ( [ could not find a working Google Test] ) ] )
47+ AS_IF ( [ test -n "$missing_gmock"] ,
48+ [ AC_MSG_ERROR ( [ could not find a working Google Mock] ) ] )
49+
2750# Checks for libraries.
2851AC_SEARCH_LIBS ( [ __b64_ntop] , [ resolv] )
2952
@@ -42,11 +65,6 @@ AC_TYPE_UINT8_T
4265AC_FUNC_FORK
4366AC_CHECK_FUNCS ( [ alarm gettimeofday memset mkdir select socket strdup strerror strtol] )
4467
45- GMOCK_DIR="${GMOCK_DIR=/usr/src/gmock}"
46- AC_ARG_VAR ( [ GMOCK_DIR] , [ directory containing Google Mock] )
47- GTEST_DIR="${GTEST_DIR="\$\(GMOCK_DIR\)/gtest"}"
48- AC_ARG_VAR ( [ GTEST_DIR] , [ directory containing Google Test] )
49-
5068# TODO(pphaneuf): We should validate that we have all the tools and
5169# libraries that we require here, instead of letting the compilation
5270# fail later during the build (sometimes in ways that are unclear to
0 commit comments