File: configure.ac

package info (click to toggle)
memtailor 1.0~git20160311-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 288 kB
  • sloc: cpp: 1,103; makefile: 44; sh: 33
file content (129 lines) | stat: -rwxr-xr-x 5,238 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
dnl AC_INIT sets up autoconf and must be first macro.
AC_INIT([memtailor], [1.0]) # package, version, bug-report-email

# set up information about directories
AC_CONFIG_MACRO_DIR([build/autotools/m4]) # directory of extra autoconf macroes
AC_CONFIG_AUX_DIR([build/autotools]) # directory for auxiliary build tools (install-sh etc)

# check that source directory is correct
dnl  if autoconf is told the source code is in a directory that does not
dnl  contain this file then it knows that the directory is wrong.
AC_CONFIG_SRCDIR([src/memtailor.h])

AM_PROG_AR

dnl ----- The gtest dependency

AC_ARG_WITH([gtest], AS_HELP_STRING(
    [--with-gtest], [use gtest, which is required for running the unit tests
      with make check. The value download, which is the default, downloads
      gtest if a gtest source directory cannot be found. Per the recommendation
      of the gtest documentation, gtest is compiled with the tests, so an
      installed gtest is not usable - you need the gtest source. GTEST_PATH
      indicates where to look for gtest and it is also where gtest
      will be downloaded to if not found. The default path is srcdir/libs/gtest/ so
      that gtest needs to be at srcdir/libs/gtest/ where srcdir is the
      base of the directory being configured from.]
))

AC_MSG_CHECKING([for gtest])
AS_IF([test "x$GTEST_PATH" == "x"], [GTEST_PATH="$srcdir/libs/gtest"])
AS_IF([test "x$GTEST_VERSION" == "x"], [GTEST_VERSION="1.6.0"])
AS_IF([test "x$with_gtest" == "x"], [with_gtest="download"])

AS_IF([test "x$with_gtest" == "xdownload"],
  [with_gtest="yes"; AC_CHECK_FILE([$GTEST_PATH/src/gtest-all.cc], [], [
    echo "downloading of gtest disabled" >&2; exit 1
    mkdir -p "$GTEST_PATH";
    (
      cd $GTEST_PATH;
      rm -rf gtest-$GTEST_VERSION.zip
      wget http://googletest.googlecode.com/files/gtest-$GTEST_VERSION.zip;
      unzip gtest-$GTEST_VERSION.zip;
      rm gtest-$GTEST_VERSION.zip
      rm -rf gtest/
      mv gtest-$GTEST_VERSION/ gtest/
    );
    if test ! -e "$GTEST_PATH/src/gtest-all.cc"; then
      AC_MSG_WARN([Failed to download or extract gtest.]);
      with_gtest="no";
    else
      with_gtest="yes";
    fi
  ])],
  [test "x$with_gtest" == "xyes"], [
    AC_CHECK_FILE([$GTEST_PATH/src/gtest-all.cc], [], [
      AC_MSG_ERROR([could not find gtest source at path $GTEST_PATH.])
    ])
  ],
  [test "x$with_gtest" == "xno"], [],
  [AC_MSG_ERROR([invalid value $with_gtest for with_gtest.])]
)
AS_IF([test "x$with_gtest" == "xyes"],
  [GTEST_CFLAGS="-I$GTEST_PATH/include -I$GTEST_PATH"]);
AM_CONDITIONAL(with_gtest, test "x$with_gtest" == "xyes")

DEPS_CFLAGS="$GTEST_CFLAGS"
DEPS_LIBS="$GTEST_LIBS"
AC_SUBST(DEPS_CFLAGS)
AC_SUBST(DEPS_LIBS)

# Enable optional maintainer mode (off by default)
dnl AM_MAINTAINER_MODE turns off automatic reconstruction of the build
dnl files if the source build files have changed. A developer will want
dnl those automatic reconstructions to happen so that changes to the
dnl build system are actually carried out. However, a user might not
dnl have the tools required to reconfigure and the need for
dnl reconstruction might be spurious if the last-modified date is set
dnl incorrectly on the build files.
dnl
dnl Passing the option [enable] to AM_MAINTAINER_MODE makes the
dnl non-reconstruction feature available, but only when turned on by
dnl passing the option –disable-maintainer-mode. This option is
dnl apparently useful to some package distributors.
AM_MAINTAINER_MODE([enable])

# Set up Automake
dnl foreign: do not create the GNU-specific file COPYING and do not complain
dnl   that GNU-specific files like NEWS, README, AUTHORS and ChangeLog are
dnl   missing.
dnl -Wall: set Automake to emit all warnings it can. Is NOT RELATED to setting
dnl   warnings for other tools. For example, it wil not make the compiler
dnl   get a -Wall option.
dnl subdir-objects: Put object files in a directory structure based on
dnl   the directory structure of the source files. This way, two source
dnl   files with the same name in different directories do not conflict.
AM_INIT_AUTOMAKE([foreign subdir-objects -Wall])

# if --enable-silent-rules is passed to ./configure or if V=0 is passed
# to make, then the compilation output will be much less verbose making
# it possible to spot warnings and errors as they go by.
AM_SILENT_RULES()

# Set up the $(LN_S) macro, which creates symbolic links
AC_PROG_LN_S

# set output variable INSTALL to the name of a BSD-compatible install program.
# Requires install-sh to be present as a fallback, even on systems where
# the fallback is not used.
AC_PROG_INSTALL

# Locate the C++ compiler.
AC_PROG_CXX

# Set up LibTool
LT_INIT([disable-shared])

dnl Set the version for the library -- this concerns compatibility of the
dnl source and binary interface of the library and is not the same as the
dnl version of the project.
AC_SUBST([MEMTAILOR_SO_VERSION], [0:0:0])

dnl Set up AC_OUTPUT to create each file by copying an input file
dnl while substituting the output variable values.
AC_CONFIG_FILES([Makefile
  build/autotools/memtailor.pc:build/autotools/memtailor.pc.in])

dnl Macro that is required to be at the end of any Autoconf script.
dnl Creates config.status and launches it.
AC_OUTPUT