configure.ac 16.5 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, 23dev)
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
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
58
                  [CPPFLAGS="-DNDEBUG ${CPPFLAGS}"]
59 60
                  [AC_MSG_RESULT(no)]
              fi,
61
              [CPPFLAGS="-DNDEBUG ${CPPFLAGS}"]
62
              [AC_MSG_RESULT(no)])
Tiago Peixoto's avatar
Tiago Peixoto committed
63

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

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

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

dnl OpenMP
74
AC_DEFINE([OPENMP_MIN_THRESH], 300, [default minimum number of vertices for parallel loops])
75
AC_MSG_CHECKING(whether to enable parallel algorithms with openmp)
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
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])
92 93
    dnl clang is retarded
    if test "$(${CXX} --version | grep clang)x" != "x"; then
Tiago Peixoto's avatar
Tiago Peixoto committed
94
        [OPENMP_LDFLAGS="-lomp ${OPENMP_LDFLAGS}"]
95
    fi
96 97
fi
[CXXFLAGS="${OPENMP_CXXFLAGS} ${CXXFLAGS}"]
98

Tiago Peixoto's avatar
Tiago Peixoto committed
99
[USING_CAIRO=yes]
100
AC_MSG_CHECKING(whether to enable cairo drawing)
Tiago Peixoto's avatar
Tiago Peixoto committed
101
AC_ARG_ENABLE([cairo], [AS_HELP_STRING([--disable-cairo],[disable cairo drawing [default=enabled] ])],
102 103 104 105 106 107 108
              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
109

110 111
dnl Override prefix with default value if not set
if test "x${prefix}" = "xNONE"; then
112
   prefix=${ac_default_prefix}
113
fi
114

Tiago Peixoto's avatar
Tiago Peixoto committed
115 116 117 118
dnl Checks for programs.

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

124
dnl python
125
AM_PATH_PYTHON([2.7])
126 127 128 129
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}'])
130

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

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

142
dnl boost
143
AX_BOOST_BASE([[1.55.0]])
144 145 146 147 148 149 150 151
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
152 153 154 155
AX_BOOST_REGEX
if test "$BOOST_REGEX_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::regex found])
fi
156 157
AX_BOOST_COROUTINE
if test "$BOOST_COROUTINE_LIB" = ""; then
Tiago Peixoto's avatar
Tiago Peixoto committed
158
   AC_MSG_WARN([No usable boost::coroutine found! Some functionality will be disabled in the library.])
159
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
160 161 162 163
AX_BOOST_GRAPH
if test "$BOOST_GRAPH_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::graph found])
fi
164

165 166 167 168 169
[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/])])
170
dnl CGAL
171
AX_LIB_CGAL_CORE([], AC_MSG_ERROR([CGAL library not found.]))
172
[CGAL_FLAGS="-frounding-math"]
173
AC_MSG_CHECKING(whether to enable cgal debbuging with valgrind)
174
AC_ARG_ENABLE([cgal-valgrind], [AS_HELP_STRING([--enable-cgal-valgrind],[enable CGAL valgrind debugging [default=disabled] ])],
175 176 177 178 179
              if test $enableval = yes; then
                 [AC_MSG_RESULT(yes)]
                 [CGAL_FLAGS="${CGAL_FLAGS} -DCGAL_DISABLE_ROUNDING_MATH_CHECK=ON"]
              else
                 [AC_MSG_RESULT(no)]    
Tiago Peixoto's avatar
Tiago Peixoto committed
180
              fi,
181
              [AC_MSG_RESULT(no)])
182
AC_SUBST(CGAL_FLAGS)
183

Tiago Peixoto's avatar
Tiago Peixoto committed
184
dnl Checks for header files.
185 186

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

Tiago Peixoto's avatar
Tiago Peixoto committed
194 195
[CPPFLAGS_TEMP="${CPPFLAGS}"]
[CPPFLAGS="${PYTHON_CPPFLAGS} ${NUMPY_CPPFLAGS} ${CPPFLAGS}"]
196
AC_CHECK_HEADER([numpy/arrayobject.h],
197
                [],
198
                [AC_MSG_ERROR([Numpy extension header not found])],
199 200 201 202 203 204 205 206 207 208 209
                [[#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
210 211
                  [],
                  [AC_MSG_ERROR([Numpy is too old. Version 1.7 or above is required.])])
Tiago Peixoto's avatar
Tiago Peixoto committed
212
[CPPFLAGS="${CPPFLAGS_TEMP}"]
213

Tiago Peixoto's avatar
Tiago Peixoto committed
214 215 216 217 218 219
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)
220
   AX_PYTHON_MODULE(cairo)
221 222 223 224 225 226
   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
Tiago Peixoto's avatar
Tiago Peixoto committed
227
   [CPPFLAGS_TEMP="${CPPFLAGS}"]
228
   [CPPFLAGS="${CAIROMM_CPPFLAGS} ${CAIROMM_CFLAGS} ${PYTHON_CPPFLAGS} ${CPPFLAGS}"]
229
   AC_DEFINE_UNQUOTED([PYCAIRO_HEADER], <${PYCAIRO_HEADER}>, [pycairo header file])
230 231
   AC_CHECK_HEADER(${PYCAIRO_HEADER},
                   [],
232
                   [AC_MSG_ERROR([pycairo headers not found])])
Tiago Peixoto's avatar
Tiago Peixoto committed
233
   [CPPFLAGS="${CPPFLAGS_TEMP}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
234 235
fi

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

243
[USING_SPARSEHASH=yes]
244
AC_MSG_CHECKING(whether to enable sparsehash)
245 246 247 248 249 250 251 252 253
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)])
254

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

Tiago Peixoto's avatar
Tiago Peixoto committed
268 269 270
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.

271
dnl Checks for Additional stuff.
Tiago Peixoto's avatar
Tiago Peixoto committed
272 273 274

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

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


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}"
295 296 297 298 299 300

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

303 304 305 306 307 308 309 310 311 312
# 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}])

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

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

321 322
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
323

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

AC_DEFINE_UNQUOTED([COPYRIGHT],
Tiago Peixoto's avatar
Tiago Peixoto committed
327
    "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.",
328
        [copyright info])
329

330
# git information
331 332
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])
333

334 335 336
# GCC version
AC_DEFINE([GCC_VERSION], [(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)], [GCC version value])

337
# set automake variables
Tiago Peixoto's avatar
Tiago Peixoto committed
338

339 340 341 342 343 344
# global CPP flags
AC_SUBST(CPPFLAGS)

# global CXX flags
AC_SUBST(CXXFLAGS)

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

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

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

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

Tiago Peixoto's avatar
Tiago Peixoto committed
362 363
AC_SUBST(MOD_LDFLAGS)

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

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

391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409
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)"
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429
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)"
430 431
echo -e "$(color 3)Cairomm CPP flags:      $(color 4)${CAIROMM_CFLAGS}$(reset)"
echo -e "$(color 3)Cairomm LD flags:       $(color 4)${CAIROMM_LIBS}$(reset)"
432 433 434 435 436 437
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:           "
438
if test ${USING_OPENMP} = yes; then
439
   echo "$(color 5)yes$(reset)"
440
else
441
   echo "$(color 1)no$(reset)"
442
fi
443
echo -n -e "$(color 3)Using sparsehash:       "
444
if test ${USING_SPARSEHASH} = yes; then
445
   echo "$(color 5)yes$(reset)"
446
else
447
   echo "$(color 1)no$(reset)"
448
fi
449
echo -n -e "$(color 3)Using cairo:            "
450
if test ${USING_CAIRO} = yes; then
451
   echo "$(color 5)yes$(reset)"
452
else
453
   echo "$(color 1)no$(reset)"
454
fi
455
echo -e "$(color 2)================================================================================$(reset)"
456