configure.ac 14.9 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, 2)
Tiago Peixoto's avatar
Tiago Peixoto committed
6
m4_define(graph_tool_version_micro, 43dev)
7

Tiago Peixoto's avatar
Tiago Peixoto committed
8
AC_INIT([graph-tool],[graph_tool_version_major().graph_tool_version_minor().graph_tool_version_micro()],[http://graph-tool.skewed.de/tickets], [graph-tool], [http://graph-tool.skewed.de])
9 10 11 12 13 14 15 16

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

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

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

36
dnl turn on warnings
37
[CXXFLAGS="-Wall -Wextra -Wno-unused-local-typedefs -Wno-unused-parameter ${CXXFLAGS}"]
38

Tiago Peixoto's avatar
Tiago Peixoto committed
39 40 41 42
dnl Checks for options

dnl Turn debugging on or off
AC_MSG_CHECKING(whether to enable debug info...)
43

Tiago Peixoto's avatar
Tiago Peixoto committed
44
AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[compile debug information [default=disabled] ])],
45 46
        if test $enableval = yes; then
           [AC_DEFINE([DEBUG], 1, [compile debug info])]
47
           [CXXFLAGS="${CXXFLAGS} -ggdb3"]
48 49
           [AC_MSG_RESULT(yes)] 
        else
50
           [CXXFLAGS="${CXXFLAGS} -DNDEBUG"]
51 52
           [AC_MSG_RESULT(no)]
        fi
53 54 55
        ,
        [CXXFLAGS="${CXXFLAGS} -DNDEBUG"]
        [AC_MSG_RESULT(no)]
Tiago Peixoto's avatar
Tiago Peixoto committed
56 57
        )

Tiago Peixoto's avatar
Tiago Peixoto committed
58
dnl enable c++11
59
old_cxxflags="$CXXFLAGS"
Tiago Peixoto's avatar
Tiago Peixoto committed
60
[CXXFLAGS="${CXXFLAGS} -std=gnu++11"]
61 62 63 64 65
AC_MSG_CHECKING([whether C++ compiler supports -std=gnu++11])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
    [AC_MSG_RESULT([yes])],
    [AC_MSG_RESULT([no])]
    [CXXFLAGS="${old_cxxflags} -std=gnu++0x"])
Tiago Peixoto's avatar
Tiago Peixoto committed
66 67

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

70
dnl disable deprecation warning, to silence some harmless BGL-related warnings
71
[CXXFLAGS="${CXXFLAGS} -Wno-deprecated -Wno-unknown-pragmas"]
72

Tiago Peixoto's avatar
Tiago Peixoto committed
73
AC_MSG_CHECKING(whether to enable function inlining...)
74

75
[NO_INLINE=no]
76
AC_ARG_ENABLE([inline], [AS_HELP_STRING([--disable-inline],[disable inline functions [default=enabled] ])],
Tiago Peixoto's avatar
Tiago Peixoto committed
77 78
        if test $enableval = no; then
           [AC_DEFINE([NO_INLINE], 1, [disable function inlining])]
79
           [CXXFLAGS="${CXXFLAGS} -fno-inline -fno-default-inline"]
80 81
           [NO_INLINE=yes]
           [AC_MSG_RESULT(no)]
Tiago Peixoto's avatar
Tiago Peixoto committed
82 83 84 85 86 87
        else
           [AC_MSG_RESULT(yes)]
        fi
        ,
        [AC_MSG_RESULT(yes)]
        )
88

Tiago Peixoto's avatar
Tiago Peixoto committed
89 90 91
AM_CONDITIONAL(NO_INLINE, test $NO_INLINE = yes)

AC_MSG_CHECKING(whether to enable optimizations...)
92

93
AC_ARG_ENABLE([optimization], [AS_HELP_STRING([--disable-optimization],[disable optimization [default=enabled] ])],
94 95
        if test $enableval = no; then
           [AC_MSG_RESULT(no)]
96
    else
97
           [CXXFLAGS="${CXXFLAGS} -O3"]
98 99
       [AC_MSG_RESULT(yes)]
    fi
Tiago Peixoto's avatar
Tiago Peixoto committed
100
        ,
101
        [CXXFLAGS="${CXXFLAGS} -O3"]
102
        [AC_MSG_RESULT(yes)]
Tiago Peixoto's avatar
Tiago Peixoto committed
103 104
        )

Tiago Peixoto's avatar
Tiago Peixoto committed
105
AC_MSG_CHECKING(whether to enable symbol visibility manipulation...)
106

107
AC_ARG_ENABLE([visibility], [AS_HELP_STRING([--disable-visibility],[disable symbol visibility manipulation [default=enabled] ])],
108 109
        if test $enableval = yes; then
           [CXXFLAGS="${CXXFLAGS} -fvisibility=default -fvisibility-inlines-hidden"]
110 111
       [AC_MSG_RESULT(yes)]
    else
112
           [AC_MSG_RESULT(no)]
113
    fi
114
        ,
Tiago Peixoto's avatar
Tiago Peixoto committed
115
        [CXXFLAGS="${CXXFLAGS} -fvisibility=default -fvisibility-inlines-hidden"]
116
        [AC_MSG_RESULT(yes)]
117 118 119
        )


120
[NO_GRAPH_FILTERING=no]
121 122 123 124 125 126 127 128 129 130 131 132
# AC_MSG_CHECKING(whether to enable graph filtering...)
# AC_ARG_ENABLE([graph-filtering], [AS_HELP_STRING([--disable-graph-filtering],[disable graph filtering [default=enabled] ])],
#         if test $enableval = no; then
#            [AC_DEFINE([NO_GRAPH_FILTERING], 1, [disable graph filtering])]
#            [NO_GRAPH_FILTERING=yes]
#            [AC_MSG_RESULT(no)]
#         else
#            [AC_MSG_RESULT(yes)]
#         fi
#         ,
#         [AC_MSG_RESULT(yes)]
#         )
133

134 135
[USING_OPENMP=yes]
[OPENMP_LDFLAGS=""]
136
AC_MSG_CHECKING(whether to enable parallel algorithms with openmp...)
137
AC_ARG_ENABLE([openmp], [AS_HELP_STRING([--enable-openmp],[enable openmp [default=disabled] ])],
138 139 140
        if test $enableval = yes; then
           [AC_MSG_RESULT(yes)]
           [AC_DEFINE([USING_OPENMP], 1, [using openmp])]
141
           [CXXFLAGS="${CXXFLAGS} -fopenmp"]
142
           [OPENMP_LDFLAGS=" -lgomp "]
143
        else
144 145 146
       [USING_OPENMP=no]
       [CXXFLAGS="${CXXFLAGS} -Wno-unknown-pragmas"]
           [AC_MSG_RESULT(no)]    
147 148
        fi
        ,
149
        [CXXFLAGS="${CXXFLAGS} -Wno-unknown-pragmas"]
150
        [AC_MSG_RESULT(no)]
151 152 153
        )
AC_SUBST(OPENMP_LDFLAGS)

Tiago Peixoto's avatar
Tiago Peixoto committed
154 155 156 157 158 159 160 161 162 163 164 165 166
[USING_CAIRO=yes]
AC_MSG_CHECKING(whether to enable cairo drawing...)
AC_ARG_ENABLE([cairo], [AS_HELP_STRING([--disable-cairo],[disable cairo drawing [default=enabled] ])],
        if test $enableval = no; then
           [USING_CAIRO=no]
           [AC_MSG_RESULT(no)]
        else
           [AC_MSG_RESULT(yes)]
        fi
        ,
        [AC_MSG_RESULT(yes)]
        )

167 168 169 170
dnl Override prefix with default value if not set
if test "x${prefix}" = "xNONE"; then
  prefix=${ac_default_prefix}
fi
171

Tiago Peixoto's avatar
Tiago Peixoto committed
172 173 174 175 176 177 178 179 180 181 182 183 184
dnl Checks for programs.

dnl Checks for libraries.

dnl math library
AC_CHECK_LIB(m,main)

dnl bzip2 compression library
AC_CHECK_LIB(bz2,main)

dnl expat
AC_CHECK_LIB(expat,main)

185
dnl python
186 187 188 189 190 191 192
echo "================"
echo "Detecting python"
echo "================"
AM_PATH_PYTHON([2.6])
AC_SUBST(PYTHON_VERSION)
PYTHON_FULL_VERSION=[`${PYTHON} -c "import sys; print(sys.version.split()[0])"`]
AC_SUBST(PYTHON_FULL_VERSION)
193
[TEMP_CPPFLAGS="${CPPFLAGS}"]
194
AC_PYTHON_DEVEL([== '${PYTHON_FULL_VERSION}'])
195 196 197
[CPPFLAGS="${CPPFLAGS} ${PYTHON_CPPFLAGS}"]
[LDFLAGS="${LDFLAGS} ${PYTHON_LDFLAGS}"]

198 199
# default directory for submodules
[MOD_DIR="${PYTHON_SITE_PKG}"]
200
AC_ARG_WITH([python-module-path], [AS_HELP_STRING([--with-python-module-path=DIR],
201 202
                    [directory where python module will be installed
                                [default=auto-detected] ])],
203 204 205 206 207 208
            MOD_DIR=$withval)
echo "graph-tool will be installed at: ${MOD_DIR}"

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

209 210 211 212 213
echo "==========================="
echo "Using python version: ${PYTHON_FULL_VERSION}"
echo "==========================="


214
dnl boost
215
AX_BOOST_BASE([[1.53.0]])
216 217 218 219 220 221 222 223
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
224 225 226 227
AX_BOOST_REGEX
if test "$BOOST_REGEX_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::regex found])
fi
228

Tiago Peixoto's avatar
Tiago Peixoto committed
229 230 231 232
AX_BOOST_GRAPH
if test "$BOOST_GRAPH_LIB" = ""; then
   AC_MSG_ERROR([No usable boost::graph found])
fi
233

234
[CPPFLAGS="${CPPFLAGS} ${BOOST_CPPFLAGS}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
235

236 237
dnl CGAL
AC_CHECK_LIB(CGAL,main)
238
[CGAL_LIBADD="-lCGAL -lgmp"]
239
AC_SUBST(CGAL_LIBADD)
240
[CGAL_FLAGS="-frounding-math"]
241 242 243 244
AC_MSG_CHECKING(whether to cgal debbuging with valgrind...)
AC_ARG_ENABLE([cgal-valgrind], [AS_HELP_STRING([--enable-cgal-valgrind],[enable CGAL valgrind debugging [default=disabled] ])],
        if test $enableval = yes; then
           [AC_MSG_RESULT(yes)]
245
       [CGAL_FLAGS="${CGAL_FLAGS} -DCGAL_DISABLE_ROUNDING_MATH_CHECK=ON"]
246
        else
247
           [AC_MSG_RESULT(no)]    
248 249 250 251
        fi
        ,
        [AC_MSG_RESULT(no)]
        )
252
AC_SUBST(CGAL_FLAGS)
253

Tiago Peixoto's avatar
Tiago Peixoto committed
254
dnl Checks for header files.
255 256

dnl numpy
257
AX_PYTHON_MODULE(numpy, fatal)
258
dnl [NUMPY_DIR="${PYTHON_SITE_PKG}/numpy"]
259
[NUMPY_DIR=`$PYTHON -c "import numpy; print(numpy.get_include())"`]
260
AC_ARG_WITH([numpy], [AS_HELP_STRING([--with-numpy=DIR],[directory where numpy is installed
261
                      [default=auto-detected] ])],
262 263
            NUMPY_DIR=$withval)
AC_CHECK_HEADER([${NUMPY_DIR}/numpy/arrayobject.h],
264
                [CPPFLAGS="${CPPFLAGS} -I${NUMPY_DIR}"],
265 266 267 268
                [AC_MSG_ERROR([Numpy extension header not found])],
                [#include "Python.h"])

dnl scipy
269
AX_PYTHON_MODULE(scipy, fatal)
270
dnl [SCIPY_DIR="${PYTHON_SITE_PKG}/scipy"]
271
[SCIPY_DIR=`$PYTHON -c "import os, scipy; print(os.path.dirname(scipy.__file__))"`]
272
AC_ARG_WITH([scipy], [AS_HELP_STRING([--with-scipy=DIR],[scipy install directory
273
                      [default=auto-detected] ])],
274
            [SCIPY_DIR=$withval])
275 276
AC_CHECK_HEADER([${SCIPY_DIR}/weave/scxx/object.h],
                [AC_DEFINE([HAVE_SCIPY], [1], [using scipy's weave])]
277
                [CPPFLAGS="${CPPFLAGS} -I${SCIPY_DIR}"],
278
                [AC_MSG_WARN([Scipy weave/scxx header not found! (Ignore this if python 3 is being used.)])])
279 280 281 282 283

dnl expat
AC_CHECK_HEADER([expat.h],
                [],
                [AC_MSG_ERROR([Expat header not found])])
Tiago Peixoto's avatar
Tiago Peixoto committed
284

285 286 287 288 289
dnl cgal
AC_CHECK_HEADER([CGAL/version.h],
                [],
                [AC_MSG_ERROR([CGAL headers not found])])

290

Tiago Peixoto's avatar
Tiago Peixoto committed
291 292 293 294 295 296
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)
297
   AX_PYTHON_MODULE(cairo)
298 299 300 301
   [OLD_CXXFLAGS="${CXXFLAGS}"]
   [OLD_CPPFLAGS="${CPPFLAGS}"]
   [CXXFLAGS="${CXXFLAGS} ${CAIROMM_CFLAGS}"]
   [CPPFLAGS="${CPPFLAGS} ${CAIROMM_CFLAGS}"]
302 303
   AC_CHECK_HEADER([pycairo/pycairo.h], [],    
               [AC_MSG_ERROR([pycairo headers not found])])
304 305
   [CXXFLAGS="${OLD_CXXFLAGS}"]
   [CPPFLAGS="${OLD_CPPFLAGS}"]
Tiago Peixoto's avatar
Tiago Peixoto committed
306 307
fi

308
dnl sparsehash
309 310
[SPARSEHASH_PREFIX=sparsehash]
AC_ARG_WITH([sparsehash-prefix], [AS_HELP_STRING([--with-sparsehash-prefix=prefix],
311 312
                    [include directory prefix for sparsehash
                                [default=sparsehash] ])],
313 314
            [SPARSEHASH_PREFIX=$withval])

315 316 317 318 319 320 321 322 323 324 325 326 327
[USING_SPARSEHASH=yes]
AC_MSG_CHECKING(whether to enable sparsehash...)
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)]
        )

328
if test "$USING_SPARSEHASH" = "yes"; then
329 330 331 332
   PKG_CHECK_MODULES(SPARSEHASH, [libsparsehash],
                     AC_DEFINE([HAVE_SPARSEHASH], [1], [Using google's sparsehash]),
                     [AC_MSG_RESULT([not found by pkgconfig, trying default...])])

333
   [SPARSEHASH_CFLAGS="${SPARSEHASH_CFLAGS} -DSPARSEHASH_PREFIX=${SPARSEHASH_PREFIX}"]
334
   AC_SUBST(SPARSEHASH_CFLAGS)
335
   AC_DEFINE_UNQUOTED([SPARSEHASH_INCLUDE(f)], [<${SPARSEHASH_PREFIX}/f>],
336
                      [Sparsehash include macro])
337 338
   [CXXFLAGS="${CXXFLAGS} ${SPARSEHASH_CFLAGS}"]
   [CPPFLAGS="${CPPFLAGS} ${SPARSEHASH_CFLAGS}"]
339
   AC_CHECK_HEADER([${SPARSEHASH_PREFIX}/dense_hash_set], [],
340 341
                   [AC_MSG_ERROR([sparsehash headers not found])])
fi
342

Tiago Peixoto's avatar
Tiago Peixoto committed
343 344 345
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.

346
dnl Checks for Additional stuff.
Tiago Peixoto's avatar
Tiago Peixoto committed
347 348 349 350 351 352 353 354 355 356 357 358 359

dnl Set PACKAGE SOURCE DIR in config.h.
packagesrcdir=`cd $srcdir && pwd`

dnl Set PACKAGE PREFIX
if test "x${prefix}" = "xNONE"; then
  packageprefix=${ac_default_prefix}
else
  packageprefix=${prefix}
fi

dnl Set PACKAGE DATA & DOC DIR
packagedatadir=share/${PACKAGE}
360
packagedocdir=doc/${PACKAGE}
Tiago Peixoto's avatar
Tiago Peixoto committed
361 362 363 364 365 366 367 368 369 370 371 372


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}"
373 374 375 376 377 378

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

381 382
dnl Subst PYTHON_DIR.
AC_DEFINE_UNQUOTED([INSTALL_PREFIX],"${prefix}", [python prefix])
Tiago Peixoto's avatar
Tiago Peixoto committed
383
AC_DEFINE_UNQUOTED([PYTHON_DIR], "${PYTHON_SITE_PKG}", [The directory name for the site-packages subdirectory of the standard Python install tree.])
384 385

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

389 390
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
391 392
AC_DEFINE_UNQUOTED([PACKAGE_SOURCE_DIR], "${packagesrcdir}", [package source dir])

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

AC_DEFINE_UNQUOTED([COPYRIGHT],
Tiago Peixoto's avatar
Tiago Peixoto committed
396
    "Copyright (C) 2006-2014 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.",
397
        [copyright info])
398

399
# git information
400 401
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])
402

403 404 405
# GCC version
AC_DEFINE([GCC_VERSION], [(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)], [GCC version value])

Tiago Peixoto's avatar
Tiago Peixoto committed
406 407
# set some automake variables

408 409 410 411 412 413
# global CPP flags
AC_SUBST(CPPFLAGS)

# global CXX flags
AC_SUBST(CXXFLAGS)

Tiago Peixoto's avatar
Tiago Peixoto committed
414
# CPP flags for submodules
Tiago Peixoto's avatar
Tiago Peixoto committed
415
[MOD_CPPFLAGS="-I\$(srcdir) -I\$(srcdir)/.. -I\$(srcdir)/../../boost-workaround \
Tiago Peixoto's avatar
Tiago Peixoto committed
416 417 418 419
-DHAVE_CONFIG_H"]
AC_SUBST(MOD_CPPFLAGS)

# default LIBADD flags for submodules
420 421
[MOD_LIBADD="${PYTHON_LDFLAGS} -l${BOOST_IOSTREAMS_LIB} -l${BOOST_PYTHON_LIB} \
-l${BOOST_REGEX_LIB} ${OPENMP_LDFLAGS} -lexpat"]
Tiago Peixoto's avatar
Tiago Peixoto committed
422 423 424 425
AC_SUBST(MOD_LIBADD)

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

428
# MacOS needs different options
429
if [[ `echo ${target_os} | grep -c -e "^darwin"` == 1 ]]; then
430 431
   [MOD_LDFLAGS="-module -dynamiclib"]
fi
Tiago Peixoto's avatar
Tiago Peixoto committed
432

Tiago Peixoto's avatar
Tiago Peixoto committed
433 434
AC_SUBST(MOD_LDFLAGS)

Tiago Peixoto's avatar
Tiago Peixoto committed
435

436
AC_CONFIG_FILES([
Tiago Peixoto's avatar
Tiago Peixoto committed
437 438 439
Makefile
src/Makefile
src/graph/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
440
src/graph/centrality/Makefile
441
src/graph/clustering/Makefile
442
src/graph/community/Makefile
443 444
src/graph/correlations/Makefile
src/graph/draw/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
445
src/graph/flow/Makefile
446
src/graph/generation/Makefile
447
src/graph/layout/Makefile
448
src/graph/search/Makefile
449 450 451 452
src/graph/spectral/Makefile
src/graph/stats/Makefile
src/graph/topology/Makefile
src/graph/util/Makefile
453
src/graph_tool/Makefile
Tiago Peixoto's avatar
Tiago Peixoto committed
454
])
455
AC_OUTPUT
Tiago Peixoto's avatar
Tiago Peixoto committed
456

457 458 459 460 461 462
# ugly, dirty, smelly hack to force libtool to link to libstc++ before anything
# else, to avoid strange exception-related segfaults in
# __cxa_allocate_exception() see:
# http://www.nabble.com/preventing-boost::python::throw_error_already_set-td20958723.html
# http://wiki.fifengine.de/Segfault_in_cxa_allocate_exception
AC_MSG_NOTICE([Modifying libtool to correctly link libstdc++ before anything else...])
463
eval "sed -i -e 's/-nostdlib/-nostdlib -lstdc++/g' libtool"