configure.ac 16.6 KB
Newer Older
Tiago Peixoto's avatar
Tiago Peixoto committed
1 2
dnl Process this file with autoconf to produce a configure script.

3
dnl graph-tool package version number
Tiago Peixoto's avatar
Tiago Peixoto committed
4
m4_define(graph_tool_version_major, 2)
Tiago Peixoto's avatar
Tiago Peixoto committed
5
m4_define(graph_tool_version_minor, 21dev)
6

7 8 9 10 11
AC_INIT([graph-tool],
        [graph_tool_version_major().graph_tool_version_minor()],
        [http://graph-tool.skewed.de/issues],
        [graph-tool],
        [http://graph-tool.skewed.de])
12 13 14 15 16 17

GRAPH_TOOL_VERSION_MAJOR=graph_tool_version_major()
GRAPH_TOOL_VERSION_MINOR=graph_tool_version_minor()
AC_SUBST(GRAPH_TOOL_VERSION_MAJOR)
AC_SUBST(GRAPH_TOOL_VERSION_MINOR)

Tiago Peixoto's avatar
Tiago Peixoto committed
18
AC_CANONICAL_TARGET
Tiago Peixoto's avatar
Tiago Peixoto committed
19
AC_CONFIG_SRCDIR(src)
20 21
AM_INIT_AUTOMAKE([foreign])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Tiago Peixoto's avatar
Tiago Peixoto committed
22
AM_PROG_CC_C_O
23
AC_CONFIG_HEADERS([config.h])
Tiago Peixoto's avatar
Tiago Peixoto committed
24
AC_CONFIG_MACRO_DIR([m4])
Tiago Peixoto's avatar
Tiago Peixoto committed
25

26
AC_SEARCH_LIBS([strerror],[cposix])
Tiago Peixoto's avatar
Tiago Peixoto committed
27
AC_SUBST(CXXFLAGS,$CXXFLAGS)
28
AC_USE_SYSTEM_EXTENSIONS
Tiago Peixoto's avatar
Tiago Peixoto committed
29
AC_PROG_CXX
30
AC_LANG([C++])
Tiago Peixoto's avatar
Tiago Peixoto committed
31 32
AC_PROG_CC_STDC
AC_HEADER_STDC
Tiago Peixoto's avatar
Tiago Peixoto committed
33
AC_DISABLE_STATIC
Tiago Peixoto's avatar
Tiago Peixoto committed
34
AC_PROG_INSTALL
35
LT_INIT
Tiago Peixoto's avatar
Tiago Peixoto committed
36

Tiago Peixoto's avatar
Tiago Peixoto committed
37 38 39 40
# pkg-config generation
PKG_PROG_PKG_CONFIG
PKG_INSTALLDIR

Tiago Peixoto's avatar
Tiago Peixoto committed
41
AX_CXX_COMPILE_STDCXX_14([ext],[mandatory])
42

43
dnl turn on warnings
44
[CXXFLAGS="-Wall -Wextra -ftemplate-backtrace-limit=0 ${CXXFLAGS}"]
45

Tiago Peixoto's avatar
Tiago Peixoto committed
46 47 48
dnl Checks for options

dnl Turn debugging on or off
49
AC_MSG_CHECKING(whether to enable debug info)
50

51 52 53 54 55 56 57 58 59 60 61 62
AC_ARG_ENABLE([debug],
              [AS_HELP_STRING([--enable-debug],[compile debug information [default=disabled] ])],
              if test $enableval = yes; then
                  [AC_DEFINE([DEBUG], 1, [compile debug info])]
                  [CXXFLAGS="-g ${CXXFLAGS}"]
                  [AC_MSG_RESULT(yes)]
              else
                  [CXXFLAGS="-DNDEBUG ${CXXFLAGS}"]
                  [AC_MSG_RESULT(no)]
              fi,
              [CXXFLAGS="-DNDEBUG ${CXXFLAGS}"]
              [AC_MSG_RESULT(no)])
Tiago Peixoto's avatar
Tiago Peixoto committed
63

Tiago Peixoto's avatar
Tiago Peixoto committed
64
dnl set template depth
65
[CXXFLAGS="-ftemplate-depth-250  ${CXXFLAGS}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
66

67
dnl disable deprecation warning, to silence some harmless BGL-related warnings
68 69 70 71 72 73 74 75 76
[CXXFLAGS="-Wno-deprecated ${CXXFLAGS}"]

dnl set default visibility
[CXXFLAGS="-fvisibility=default -fvisibility-inlines-hidden ${CXXFLAGS}"]

dnl set default optimizations
[CXXFLAGS="-O3 ${CXXFLAGS}"]

dnl OpenMP
77
AC_DEFINE([OPENMP_MIN_THRESH], 300, [default minimum number of vertices for parallel loops])
78
AC_MSG_CHECKING(whether to enable parallel algorithms with openmp)
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
AC_ARG_ENABLE([openmp], [AS_HELP_STRING([--disable-openmp],[disable openmp [default=enabled] ])],
              if test $enableval = yes; then
                  [AC_MSG_RESULT(yes)]
                  [USING_OPENMP=yes]
                  [AX_OPENMP([], [USING_OPENMP=no]
                                 [OPENMP_CXXFLAGS="-Wno-unknown-pragmas"])]
              else
                  [AC_MSG_RESULT(no)]              
                  [USING_OPENMP=no]
                  [OPENMP_CXXFLAGS="-Wno-unknown-pragmas"]
              fi,
              [USING_OPENMP=yes]
              [AX_OPENMP([], [USING_OPENMP=no]
                             [OPENMP_CXXFLAGS="-Wno-unknown-pragmas"])])
if test ${USING_OPENMP} = yes; then
    AC_DEFINE([USING_OPENMP], 1, [using openmp])
95 96
    dnl clang is retarded
    if test "$(${CXX} --version | grep clang)x" != "x"; then
Tiago Peixoto's avatar
Tiago Peixoto committed
97
        [OPENMP_LDFLAGS="-lomp ${OPENMP_LDFLAGS}"]
98
    fi
99 100
fi
[CXXFLAGS="${OPENMP_CXXFLAGS} ${CXXFLAGS}"]
101

Tiago Peixoto's avatar
Tiago Peixoto committed
102
[USING_CAIRO=yes]
103
AC_MSG_CHECKING(whether to enable cairo drawing)
Tiago Peixoto's avatar
Tiago Peixoto committed
104
AC_ARG_ENABLE([cairo], [AS_HELP_STRING([--disable-cairo],[disable cairo drawing [default=enabled] ])],
105 106 107 108 109 110 111
              if test $enableval = no; then
                 [USING_CAIRO=no]
                 [AC_MSG_RESULT(no)]
              else
                 [AC_MSG_RESULT(yes)]
              fi,
              [AC_MSG_RESULT(yes)])
Tiago Peixoto's avatar
Tiago Peixoto committed
112

113 114
dnl Override prefix with default value if not set
if test "x${prefix}" = "xNONE"; then
115
   prefix=${ac_default_prefix}
116
fi
117

Tiago Peixoto's avatar
Tiago Peixoto committed
118 119 120 121
dnl Checks for programs.

dnl Checks for libraries.
dnl expat
122 123 124 125
AX_LIB_EXPAT()
if test "$HAVE_EXPAT" = "no"; then
    AC_MSG_ERROR([expat library not found])
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
126

127
dnl python
128
AM_PATH_PYTHON([2.7])
129 130 131 132
AC_SUBST(PYTHON_VERSION)
PYTHON_FULL_VERSION=[`${PYTHON} -c "import sys; print(sys.version.split()[0])"`]
AC_SUBST(PYTHON_FULL_VERSION)
AC_PYTHON_DEVEL([== '${PYTHON_FULL_VERSION}'])
133

134 135
# default directory for submodules
[MOD_DIR="${PYTHON_SITE_PKG}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
136 137 138 139
AC_ARG_WITH([python-module-path],
            [AS_HELP_STRING([--with-python-module-path=DIR],
                            [directory where python module will be installed
                             [default=auto-detected]])],
140 141 142 143 144
            MOD_DIR=$withval)

[MOD_DIR="${MOD_DIR}/graph_tool"]
AC_SUBST(MOD_DIR)

145
dnl boost
146
AX_BOOST_BASE([[1.54.0]])
147 148 149 150 151 152 153 154
AX_BOOST_PYTHON
if test "$BOOST_PYTHON_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::python found])
fi
AX_BOOST_IOSTREAMS
if test "$BOOST_IOSTREAMS_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::iostreams found])
fi
155 156 157 158
AX_BOOST_REGEX
if test "$BOOST_REGEX_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::regex found])
fi
159 160
AX_BOOST_COROUTINE
if test "$BOOST_COROUTINE_LIB" = ""; then
Tiago Peixoto's avatar
Tiago Peixoto committed
161
   AC_MSG_WARN([No usable boost::coroutine found! Some functionality will be disabled in the library.])
162
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
163 164 165 166
AX_BOOST_GRAPH
if test "$BOOST_GRAPH_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::graph found])
fi
167

168 169 170 171 172
[BOOST_LIBS="${BOOST_IOSTREAMS_LIB} -l${BOOST_PYTHON_LIB} ${BOOST_REGEX_LIB} ${BOOST_COROUTINE_LIB}"]

dnl GNU MP library (needed by CGAL)
AC_CHECK_LIB(gmp, __gmpz_init, ,
             [AC_MSG_ERROR([GNU MP not found (CGAL dependency), see https://gmplib.org/])])
173
dnl CGAL
174
AX_LIB_CGAL_CORE([], AC_MSG_ERROR([CGAL library not found.]))
175
[CGAL_FLAGS="-frounding-math"]
176
AC_MSG_CHECKING(whether to enable cgal debbuging with valgrind)
177
AC_ARG_ENABLE([cgal-valgrind], [AS_HELP_STRING([--enable-cgal-valgrind],[enable CGAL valgrind debugging [default=disabled] ])],
178 179 180 181 182
              if test $enableval = yes; then
                 [AC_MSG_RESULT(yes)]
                 [CGAL_FLAGS="${CGAL_FLAGS} -DCGAL_DISABLE_ROUNDING_MATH_CHECK=ON"]
              else
                 [AC_MSG_RESULT(no)]    
183
              fi,                       
184
              [AC_MSG_RESULT(no)])
185
AC_SUBST(CGAL_FLAGS)
186

Tiago Peixoto's avatar
Tiago Peixoto committed
187
dnl Checks for header files.
188 189

dnl numpy
190
AX_PYTHON_MODULE(numpy, fatal)
191
[NUMPY_DIR=`$PYTHON -c "import numpy; print(numpy.get_include())"`]
192
AC_ARG_WITH([numpy], [AS_HELP_STRING([--with-numpy=DIR],[directory where numpy is installed
193
                      [default=auto-detected] ])],
194
            NUMPY_DIR=$withval)
195
[NUMPY_CPPFLAGS="-I${NUMPY_DIR}"]
196 197

[CPPFLAGS_TEMP=${CPPFLAGS}]
198 199
[CPPFLAGS=${PYTHON_CPPFLAGS} ${NUMPY_CPPFLAGS} ${CPPFLAGS}]
AC_CHECK_HEADER([numpy/arrayobject.h],
200
                [],
201
                [AC_MSG_ERROR([Numpy extension header not found])],
202 203 204 205 206 207 208 209 210 211 212
                [[#include "Python.h"]]
                [[#define NO_IMPORT_ARRAY]]
                [[#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION]])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include "Python.h"]]
                                  [[// numpy unique symbol weirdness]]
                                  [[#define NO_IMPORT_ARRAY]]
                                  [[#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION]]
                                  [[#include "numpy/arrayobject.h"]]
                                  [[#if NPY_API_VERSION < 0x00000007]]
                                  [[   #error]]
                                  [[#endif]])],
Tiago Peixoto's avatar
Tiago Peixoto committed
213 214
                  [],
                  [AC_MSG_ERROR([Numpy is too old. Version 1.7 or above is required.])])
215
[CPPFLAGS=${CPPFLAGS_TEMP}]
216

Tiago Peixoto's avatar
Tiago Peixoto committed
217 218 219 220 221 222
dnl cairo
if test "$USING_CAIRO" = "yes"; then
   PKG_CHECK_MODULES(CAIROMM, [cairomm-1.0], AC_DEFINE([HAVE_CAIROMM], [1],
                     [Cairomm is available]), [])
   AC_SUBST(CAIROMM_CFLAGS)
   AC_SUBST(CAIROMM_LIBS)
223
   AX_PYTHON_MODULE(cairo)
224 225 226 227 228 229
   PYTHON_VERSION_MAJOR=$(echo $PYTHON_VERSION | cut -d'.' -f1)
   if test "$PYTHON_VERSION_MAJOR" = "3"; then
      [PYCAIRO_HEADER=pycairo/py3cairo.h]
   else
      [PYCAIRO_HEADER=pycairo/pycairo.h]
   fi
230 231
   [CPPFLAGS_TEMP=${CPPFLAGS}]
   [CPPFLAGS="${CAIROMM_CPPFLAGS} ${CAIROMM_CFLAGS} ${PYTHON_CPPFLAGS} ${CPPFLAGS}"]
232
   AC_DEFINE_UNQUOTED([PYCAIRO_HEADER], <${PYCAIRO_HEADER}>, [pycairo header file])
233 234
   AC_CHECK_HEADER(${PYCAIRO_HEADER},
                   [],
235
                   [AC_MSG_ERROR([pycairo headers not found])])
236
   [CPPFLAGS=${CPPFLAGS_TEMP}]
Tiago Peixoto's avatar
Tiago Peixoto committed
237 238
fi

239
dnl sparsehash
240 241
[SPARSEHASH_PREFIX=sparsehash]
AC_ARG_WITH([sparsehash-prefix], [AS_HELP_STRING([--with-sparsehash-prefix=prefix],
242 243
                                                 [include directory prefix for sparsehash
                                                  [default=sparsehash] ])],
244 245
            [SPARSEHASH_PREFIX=$withval])

246
[USING_SPARSEHASH=yes]
247
AC_MSG_CHECKING(whether to enable sparsehash)
248 249 250 251 252 253 254 255 256
AC_ARG_ENABLE([sparsehash],
              [AS_HELP_STRING([--disable-sparsehash],[disable use of google's sparsehash [default=enabled] ])],
              if test $enableval = no; then
                  [USING_SPARSEHASH=no]
                  [AC_MSG_RESULT(no)]
              else
                  [AC_MSG_RESULT(yes)]
              fi,
              [AC_MSG_RESULT(yes)])
257

258
if test "$USING_SPARSEHASH" = "yes"; then
259 260 261
   PKG_CHECK_MODULES(SPARSEHASH, [libsparsehash],
                     AC_DEFINE([HAVE_SPARSEHASH], [1], [Using google's sparsehash]),
                     [AC_MSG_RESULT([not found by pkgconfig, trying default...])])
262
   AC_SUBST(SPARSEHASH_CFLAGS)
263 264
   AC_DEFINE_UNQUOTED([SPARSEHASH_PREFIX], [${SPARSEHASH_PREFIX}],
                      [Sparsehash include prefix])
265
   AC_DEFINE_UNQUOTED([SPARSEHASH_INCLUDE(f)], [<${SPARSEHASH_PREFIX}/f>],
266
                      [Sparsehash include macro])
267
   AC_CHECK_HEADER([${SPARSEHASH_PREFIX}/dense_hash_set], [],
268 269
                   [AC_MSG_ERROR([sparsehash headers not found])])
fi
270

Tiago Peixoto's avatar
Tiago Peixoto committed
271 272 273
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.

274
dnl Checks for Additional stuff.
Tiago Peixoto's avatar
Tiago Peixoto committed
275 276 277

dnl Set PACKAGE PREFIX
if test "x${prefix}" = "xNONE"; then
278
   packageprefix=${ac_default_prefix}
Tiago Peixoto's avatar
Tiago Peixoto committed
279
else
280
   packageprefix=${prefix}
Tiago Peixoto's avatar
Tiago Peixoto committed
281 282 283 284
fi

dnl Set PACKAGE DATA & DOC DIR
packagedatadir=share/${PACKAGE}
285
packagedocdir=doc/${PACKAGE}
Tiago Peixoto's avatar
Tiago Peixoto committed
286 287 288 289 290 291 292 293 294 295 296 297


dnl Subst PACKAGE_DATA_DIR.
NO_PREFIX_PACKAGE_DATA_DIR="${packagedatadir}"
AC_SUBST(NO_PREFIX_PACKAGE_DATA_DIR)
PACKAGE_DATA_DIR="${packageprefix}/${packagedatadir}"
AC_SUBST(PACKAGE_DATA_DIR)

dnl Subst PACKAGE_DOC_DIR.
NO_PREFIX_PACKAGE_DOC_DIR="${packagedocdir}"
AC_SUBST(NO_PREFIX_PACKAGE_DOC_DIR)
PACKAGE_DOC_DIR="${packageprefix}/${packagedocdir}"
298 299 300 301 302 303

if test "x${docdir}" = "xNONE"; then
  PACKAGE_DOC_DIR="${packageprefix}/${packagedocdir}"
else
  PACKAGE_DOC_DIR="${docdir}"
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
304 305
AC_SUBST(PACKAGE_DOC_DIR)

306 307 308 309 310 311 312 313 314 315
# Allow the pkg-config directory to be set
AC_ARG_WITH(pkgconfigdir,
            AC_HELP_STRING([--with-pkgconfigdir],
            [Use the specified pkgconfig dir (default is libdir/pkgconfig)]),
            [pkgconfigdir=${withval}],
            [pkgconfigdir='${libdir}/pkgconfig'])

AC_SUBST([pkgconfigdir])
AC_MSG_NOTICE([pkgconfig directory is ${pkgconfigdir}])

316 317
dnl Subst PYTHON_DIR.
AC_DEFINE_UNQUOTED([INSTALL_PREFIX],"${prefix}", [python prefix])
Tiago Peixoto's avatar
Tiago Peixoto committed
318
AC_DEFINE_UNQUOTED([PYTHON_DIR], "${PYTHON_SITE_PKG}", [The directory name for the site-packages subdirectory of the standard Python install tree.])
319 320

AC_DEFINE_UNQUOTED([CXXFLAGS],"${CXXFLAGS}", [c++ compilation options])
321
AC_DEFINE_UNQUOTED([CPPFLAGS],"${CPPFLAGS}", [c++ preprocessor compilation options])
Tiago Peixoto's avatar
Tiago Peixoto committed
322
AC_DEFINE_UNQUOTED([LDFLAGS],"${LDFLAGS}", [linker options])
323

324 325
AC_DEFINE_UNQUOTED([PACKAGE_DATA_DIR], "${PACKAGE_DATA_DIR}", [package data dir])
AC_DEFINE_UNQUOTED([PACKAGE_DOC_DIR], "${PACKAGE_DOC_DIR}", [package doc dir])
Tiago Peixoto's avatar
Tiago Peixoto committed
326

Tiago Peixoto's avatar
Tiago Peixoto committed
327
AC_DEFINE_UNQUOTED([AUTHOR], "Tiago de Paula Peixoto <tiago@skewed.de>", [program author(s)])
Tiago Peixoto's avatar
Tiago Peixoto committed
328 329

AC_DEFINE_UNQUOTED([COPYRIGHT],
Tiago Peixoto's avatar
Tiago Peixoto committed
330
    "Copyright (C) 2006-2017 Tiago de Paula Peixoto\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.",
331
        [copyright info])
332

333
# git information
334 335
AC_DEFINE([GIT_COMMIT], "esyscmd(git show | head -n 1 | sed 's/commit //' |  grep -o -e '.\{8\}' | head -n 1 |tr -d '\n')", [git HEAD commit hash])
AC_DEFINE([GIT_COMMIT_DATE], "esyscmd(git log -1 | head -n 3 | grep 'Date:' | sed s/'Date:   '// | tr -d '\n')", [git HEAD commit date])
336

337 338 339
# GCC version
AC_DEFINE([GCC_VERSION], [(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)], [GCC version value])

340
# set automake variables
Tiago Peixoto's avatar
Tiago Peixoto committed
341

342 343 344 345 346 347
# global CPP flags
AC_SUBST(CPPFLAGS)

# global CXX flags
AC_SUBST(CXXFLAGS)

348 349
# extra CPP flags for submodules
[MOD_CPPFLAGS="${PYTHON_CPPFLAGS} ${BOOST_CPPFLAGS} ${NUMPY_CPPFLAGS} ${EXPAT_CFLAGS} -I\$(top_srcdir)/src/boost-workaround -DHAVE_CONFIG_H -I\$(top_srcdir)/src/graph -I\$(top_builddir)"]
Tiago Peixoto's avatar
Tiago Peixoto committed
350 351
AC_SUBST(MOD_CPPFLAGS)

352
# extra LIBADD flags for submodules
Tiago Peixoto's avatar
Tiago Peixoto committed
353
[MOD_LIBADD="${PYTHON_LIBS} ${BOOST_LIBS} ${EXPAT_LIBS} ${EXPAT_LDFLAGS} ${OPENMP_LDFLAGS}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
354 355 356 357
AC_SUBST(MOD_LIBADD)

# needed for typeinfo objects to work across DSO boundaries.
# see http://gcc.gnu.org/faq.html#dso
358
[MOD_LDFLAGS="-module -avoid-version -export-dynamic -no-undefined -Wl,-E -Wl,--as-needed"]
Tiago Peixoto's avatar
Tiago Peixoto committed
359

360
# MacOS needs different options
361
if [[ `echo ${target_os} | grep -c -e "^darwin"` == 1 ]]; then
362 363
   [MOD_LDFLAGS="-module -dynamiclib"]
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
364

Tiago Peixoto's avatar
Tiago Peixoto committed
365 366
AC_SUBST(MOD_LDFLAGS)

Tiago Peixoto's avatar
Tiago Peixoto committed
367
AX_CREATE_PKGCONFIG_INFO([graph-tool-py${PYTHON_VERSION}.pc], [],
368
                         [${PYTHON_LIBS} -l${BOOST_PYTHON_LIB}],
Tiago Peixoto's avatar
Tiago Peixoto committed
369
                         [graph-tool Python library],
370
                         [-ftemplate-depth-250 ${PYTHON_CPPFLAGS} ${BOOST_CPPFLAGS} ${SPARSEHASH_CFLAGS} ${NUMPY_CPPFLAGS} -I${MOD_DIR}/include -I${MOD_DIR}/include/boost-workaround],
Tiago Peixoto's avatar
Tiago Peixoto committed
371
                         [])
Tiago Peixoto's avatar
Tiago Peixoto committed
372

373
AC_CONFIG_FILES([
Tiago Peixoto's avatar
Tiago Peixoto committed
374 375 376
Makefile
src/Makefile
src/graph/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
377
src/graph/centrality/Makefile
378
src/graph/clustering/Makefile
379 380
src/graph/correlations/Makefile
src/graph/draw/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
381
src/graph/flow/Makefile
382
src/graph/generation/Makefile
383
src/graph/inference/Makefile
384
src/graph/layout/Makefile
385
src/graph/search/Makefile
386 387 388 389
src/graph/spectral/Makefile
src/graph/stats/Makefile
src/graph/topology/Makefile
src/graph/util/Makefile
390
src/graph_tool/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
391
])
392
AC_OUTPUT
393

394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
if test ${TERM}x != x -a ${TERM} != dumb; then
    color () {
        tput setaf $1
    }
    reset () {
        tput sgr0
    }
else
    color () {
        :
    }
    reset () {
        :
    }
fi

echo "$(color 2)================================================================================$(reset)"
echo "$(color 2)                             CONFIGURATION SUMMARY                              $(reset)"
echo "$(color 2)================================================================================$(reset)"
413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
echo -e "$(color 3)Using python version:   $(color 4)${PYTHON_FULL_VERSION}$(reset)"
echo -e "$(color 3)Python interpreter:     $(color 4)${PYTHON}$(reset)"
echo -e "$(color 3)Installation path:      $(color 4)${MOD_DIR}$(reset)\n"

echo -e "$(color 3)C++ compiler (CXX):     $(color 4)${CXX}$(reset)"
echo -e "$(color 3)C++ compiler version:   $(color 4)`${CXX} -dumpversion`$(reset)\n"

echo -e "$(color 3)Prefix:                 $(color 4)${prefix}$(reset)"
echo -e "$(color 3)Pkgconfigdir:           $(color 4)${pkgconfigdir}$(reset)\n"

echo -e "$(color 3)Python CPP flags:       $(color 4)${PYTHON_CPPFLAGS}$(reset)"
echo -e "$(color 3)Python LD flags:        $(color 4)${PYTHON_LIBS}$(reset)"
echo -e "$(color 3)Boost CPP flags:        $(color 4)${BOOST_CPPFLAGS}$(reset)"
echo -e "$(color 3)Boost LD flags:         $(color 4)${BOOST_LIBS}$(reset)"
echo -e "$(color 3)Numpy CPP flags:        $(color 4)${NUMPY_CPPFLAGS}$(reset)"
echo -e "$(color 3)Sparsehash CPP flags:   $(color 4)${SPARSEHASH_CFLAGS}$(reset)"
echo -e "$(color 3)CGAL CPP flags:         $(color 4)${CGAL_CPPFLAGS}$(reset)"
echo -e "$(color 3)CGAL LD flags:          $(color 4)${CGAL_LDFLAGS}$(reset)"
echo -e "$(color 3)Expat CPP flags:        $(color 4)${EXPAT_CFLAGS}$(reset)"
echo -e "$(color 3)Expat LD flags:         $(color 4)${EXPAT_LDFLAGS} ${EXPAT_LIBS}$(reset)"
433 434
echo -e "$(color 3)Cairomm CPP flags:      $(color 4)${CAIROMM_CFLAGS}$(reset)"
echo -e "$(color 3)Cairomm LD flags:       $(color 4)${CAIROMM_LIBS}$(reset)"
435 436 437 438 439 440
echo -e "$(color 3)OpenMP compiler flags:  $(color 4)${OPENMP_CXXFLAGS}$(reset)"
echo -e "$(color 3)OpenMP LD flags:        $(color 4)${OPENMP_LDFLAGS}$(reset)"
echo -e "$(color 3)Extra CPPFLAGS:         $(color 4)${CPPFLAGS}$(reset)"
echo -e "$(color 3)Extra CXXFLAGS:         $(color 4)${CXXFLAGS}$(reset)"
echo -e "$(color 3)Extra LDFLAGS:          $(color 4)${LDFLAGS}$(reset)\n"
echo -n -e "$(color 3)Using OpenMP:           "
441
if test ${USING_OPENMP} = yes; then
442
   echo "$(color 5)yes$(reset)"
443
else
444
   echo "$(color 1)no$(reset)"
445
fi
446
echo -n -e "$(color 3)Using sparsehash:       "
447
if test ${USING_SPARSEHASH} = yes; then
448
   echo "$(color 5)yes$(reset)"
449
else
450
   echo "$(color 1)no$(reset)"
451
fi
452
echo -n -e "$(color 3)Using cairo:            "
453
if test ${USING_CAIRO} = yes; then
454
   echo "$(color 5)yes$(reset)"
455
else
456
   echo "$(color 1)no$(reset)"
457
fi
458
echo -e "$(color 2)================================================================================$(reset)"
459