configure.ac 25.4 KB
Newer Older
1
# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 EPITA
2
# Research and Development Laboratory (LRDE).
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#
# This file is part of Olena.
#
# Olena is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, version 2 of the License.
#
# Olena is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Olena.  If not, see <http://www.gnu.org/licenses/>.
17

18
19
dnl Catch macros that are not expanded.
m4_pattern_forbid([^(AX|OLN)_])
20

Roland Levillain's avatar
Roland Levillain committed
21
AC_PREREQ([2.61])
22
23
24
25
26
27


## ---------------- ##
## Package set up.  ##
## ---------------- ##

28
29
AC_INIT([Olena], [2.0a], [olena@lrde.epita.fr], [olena],
        [http://olena.lrde.epita.fr])
30

Roland Levillain's avatar
Roland Levillain committed
31
32
33
# M4 macros.
AC_CONFIG_MACRO_DIR([m4])

34
35
36
37
38
# Auxiliary files.
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_FILES([build-aux/Makefile])

# Automake.
39
40
41
42
#
# Disable the -Wextra-portability option until developers can all use
# Automake 1.11.2 or newer (Debian GNU/Linux 6 ships Automake 1.11.1
# only), at which point we'll use the new AM_PROG_AR macro instead.
43
AM_INIT_AUTOMAKE([1.11 subdir-objects check-news tar-pax dist-bzip2
44
                  parallel-tests nostdinc silent-rules
45
                  -Wall -Wno-extra-portability])
46
47
48
# By default, let "make" hide the compilation command and display a
# "GEN ..." message, unless V=1 is passed to "make".
AM_SILENT_RULES([yes])
49

50
51
52
53
54
55
56
57
58
# Package metadata.
# Define this symbol in addition to what AC_INIT already defines
# (PACKAGE_NAME, etc.)...
PACKAGE_AUTHORS="EPITA Research and Development Laboratory (LRDE)"
# - for config.hh
AC_DEFINE_UNQUOTED([PACKAGE_AUTHORS], ["$PACKAGE_AUTHORS"],
                   [Authors of the package.])
# - and for milena/mln/version.hh.
AC_SUBST([PACKAGE_AUTHORS])
59

60

61
## --------------------- ##
62
## C++ compiler set up.  ##
63
64
## --------------------- ##

Roland Levillain's avatar
Roland Levillain committed
65
66
67
68
69
70
# If the user doesn't provide any CXXFLAGS, prevent Autoconf from
# settings its own default ones (e.g., `-g -O2' for g++).
if test ! ${CXXFLAGS+set}; then
   CXXFLAGS=""
fi

71
72
73
74
# Look for a C++ compiler.
AC_LANG([C++])
AC_PROG_CXX

75
76
77
# Set `ICPC' to `yes' if the Intel C++ compiler is used.
test $CXX --version 2>/dev/null | grep '\bICC\b' >/dev/null 2>&1 && ICPC=yes

78
# GNU C++ compiler setup.
79
if test "$GXX" = yes; then
80
  # Speed up compiling times.
81
  CXXFLAGS="$CXXFLAGS -pipe"
82
83
84
85
86
87
88
89
90
91
92
93
94

  # The code generated for mln::data::impl::memcpy__() by g++ 4.2 with
  # a high optimization level (`-O3') and without
  # `-fno-strict-aliasing' might be wrong, at least with Debian's g++
  # 4.2 on IA-32 (see also milena/mln/memcpy_.hh).  We observed this
  # behavior with e.g. milena/apps/graph-morpho/samples-image2d.cc.
  # Note that Debian's g++ 4.0, 4.1, 4.3 and 4.4 are fine.
  #
  # So, when the C++ compiler is g++ 4.2, set STRICT_ALIASING_CXXFLAGS
  # to `-fno-strict-aliasing'.
  if $CXX --version | head -n 1 | grep '\b4\.2' >/dev/null 2>&1; then
    STRICT_ALIASING_CXXFLAGS=-fno-strict-aliasing
  fi
95
fi
96
AC_SUBST([STRICT_ALIASING_CXXFLAGS])
97

98
99

# Adjusting warning options according to compilers.
100
AC_ARG_VAR([WARNINGS_CXXFLAGS], [C++ compiler warning flags])
101
102
103
case "$CXX" in
     # Intel compiler
     *icpc*)
104
105
        WARNINGS_CXXFLAGS="-Wall -wd111,193,279,383,444,522,654,810,981,1418"
        ;;
106
     *)
107
108
        WARNINGS_CXXFLAGS="-Wall -W"
        ;;
109
110
esac

111
112
113
114
115
116
# Avoid warnings about unused local typedefs, which are used as a
# concept checking means in Milena (`-Wunused-local-typedefs' is
# enabled by `-Wall' in GCC since version 4.8).
AX_CHECK_COMPILE_FLAG([-Wno-unused-local-typedefs],
  [WARNINGS_CXXFLAGS="$WARNINGS_CXXFLAGS -Wno-unused-local-typedefs"])

117

118
119
120
121
122
123
# ------------------------------ #
# C++ compiler flags for tests.  #
# ------------------------------ #

# FIXME: We might want to write an Autoconf macro to factor this.

124
# Standard flags for tests.
125
AC_ARG_VAR([TESTS_CXXFLAGS], [C++ compiler flags for tests])
126
# We want no optimization for the tests (it slows down compiling
127
# times), and debugging information.
128
129
130
131
132
133
134
135
if test -z "$TESTS_CXXFLAGS"; then
  if test "$GXX" = yes; then
    # GNU C++ compiler setup.
    TESTS_CXXFLAGS="-O0 -ggdb $WARNINGS_CXXFLAGS"
  elif test "$ICPC" = yes; then
    # Intel C++ compiler setup.
    TESTS_CXXFLAGS="-O0 -g $WARNINGS_CXXFLAGS"
  fi
136
137
fi

138
# Flags for complex tests.
139
140
AC_ARG_VAR([TESTS_CXXFLAGS_SPEED],
           [C++ compiler optimization flags for (complex) tests])
141
142
# We want optimization for complex tests, and keep debugging flags
# (still useful).
143
144
145
146
147
148
149
150
if test -z "$TESTS_CXXFLAGS_SPEED"; then
  if test "$GXX" = yes; then
    # GNU C++ compiler setup.
    TESTS_CXXFLAGS_SPEED="-O3 -DNDEBUG -ggdb $WARNINGS_CXXFLAGS"
  elif test "$ICPC" = yes; then
    # Intel C++ compiler setup.
    TESTS_CXXFLAGS_SPEED="-O3 -DNDEBUG -g $WARNINGS_CXXFLAGS"
  fi
151
152
fi

153
# Flags for tests with with all debugging features turned on.
154
AC_ARG_VAR([TESTS_CXXFLAGS_DEBUG], [C++ compiler debug flags])
155
156
157
158
159
160
# We want no optimization for the tests (it slows down compiling
# times), and a lot of debugging features.
# * GNU C++ Library Debug Mode:
#   http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
# * GNU C++ Library Compile Time Checks (a.k.a. concept checking):
#   http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch29.html
161
162
163
164
165
166
if test -z "$TESTS_CXXFLAGS_DEBUG"; then
  if test "$GXX" = yes; then
    TESTS_CXXFLAGS_DEBUG="-O0 -ggdb $WARNINGS_CXXFLAGS -D_GLIBCXX_DEBUG -D_GLIBCXX_CONCEPT_CHECKS"
  elif test "$ICPC" = yes; then
    TESTS_CXXFLAGS_DEBUG="-O0 -g $WARNINGS_CXXFLAGS -D_GLIBCXX_DEBUG -D_GLIBCXX_CONCEPT_CHECKS"
  fi
167
168
169
fi


170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
## --------------- ##
## Documentation.  ##
## --------------- ##

# Tools used to build the documentation.

# rst2html can have many names, especially in the MacPorts, where
# py-docutils binaries include their version numbers in their names.
AC_ARG_VAR([RST2HTML], [reStructuredText-to-HTML translator])
AC_CHECK_PROGS([RST2HTML],
  m4_do([rst2html],
        [ rst2html.py],
        [ rst2html-3.3.py rst2html-3.2.py rst2html-3.1.py],
        [ rst2html-2.7.py rst2html-2.6.py rst2html-2.5.py rst2html-2.4.py]))
if test -z "$RST2HTML"; then
  AC_MSG_WARN([rst2html not found, documentation rebuild will not be possible])
fi

188
189
190
191
192
193
194
195
196
197
198
199
200
AC_ARG_VAR([BIB2BIB], [BibTeX extracting tool])
AC_CHECK_PROGS([BIB2BIB], [bib2bib])
if test -z "$BIB2BIB"; then
  AC_MSG_WARN([bib2bib not found, documentation rebuild will not be possible])
fi

AC_ARG_VAR([BIBTEX2HTML], [BibTeX-to-HTML translator])
AC_CHECK_PROGS([BIBTEX2HTML], [bibtex2html])
if test -z "$BIBTEX2HTML"; then
  AC_MSG_WARN(m4_do([bibtex2html not found,],
                    [ documentation rebuild will not be possible]))
fi

201

202
203
204
205
## ------------------------------ ##
## ``Enable Everything'' Switch.  ##
## ------------------------------ ##

206
# Enable all bundled features (Swilena, apps, tools).  This
207
208
209
210
211
212
# option is useful to maintainers to ensure they do not break optional
# parts while modifying the core of the project. If both
# ``--enable-all'' is set and a given feature is disabled (say,
# ``--disable-apps''), then the disable flag has priority.

AC_ARG_ENABLE([all],
213
214
215
216
217
218
219
  [AS_HELP_STRING([--enable-all], [enable maintainer mode])],
  [if test "x$enable_all" != xno; then
     enable_swilena=yes
     enable_scribo=yes
     enable_apps=yes
     enable_tools=yes
   fi])
220

221

222
223
224
225
226
## ------------------ ##
## Libraries set up.  ##
## ------------------ ##

# Use Libtool.
227
228
# To be replaced by a call to LT_INIT as soon as Libtool 2.2 is used.
AC_PROG_LIBTOOL
229
230
231
232
233

# Check for Darwin.
AC_CANONICAL_HOST
AM_CONDITIONAL([DARWIN], [echo "$host_os" | grep '^darwin'])

Roland Levillain's avatar
Roland Levillain committed
234

235
236
237
## -------------------- ##
## External libraries.  ##
## -------------------- ##
238

239
240
241
# ------- #
# Boost.  #
# ------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
242

243
244
245
# Check if Boost is available, if not just print a warning, otherwise
# look for boost:tuple.
BOOST_REQUIRE(1.3, [AC_DEFINE([HAVE_BOOST], [0])])
246
247
248
BOOST_TUPLE
AM_CONDITIONAL([HAVE_BOOST_TUPLE],
               [test "x$ac_cv_header_boost_tuple_tuple_hpp" = xyes])
249

250
251
252
# ----------------- #
# CFITSIO library.  #
# ----------------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
253

254
OLN_WITH_LIB([CFITSIO], [fitsio.h], [cfitsio])
255

256
257
258
# ---------- #
# Magick++.  #
# ---------- #
259

260
261
262
OLN_WITH_LIB_PKG_CONFIG([ImageMagick++], [Magick++.h], [Magick++],
                        [imagemagickxx], [IMAGEMAGICKXX])

263
OLN_WITH_LIB_PKG_CONFIG([GraphicsMagick++], [Magick++.h], [GraphicsMagick++],
264
265
266
267
268
                        [graphicsmagickxx], [GRAPHICSMAGICKXX])

# If both ImageMagick and GraphicsMagic are available, choose the
# former by default.  (Use `--with-imagemagickxx=no' to ignore an
# installation of ImageMagick and let configure try GraphicsMagick).
269
270
if test "x$with_imagemagickxx" != xno \
   && test "x$oln_have_imagemagickxx" = xyes; then
271
272
  MAGICKXX_CPPFLAGS=$IMAGEMAGICKXX_CPPFLAGS
  MAGICKXX_LDFLAGS=$IMAGEMAGICKXX_LDFLAGS
273
elif test "x$oln_have_graphicsmagickxx" = xyes; then
274
275
276
277
278
279
280
281
  MAGICKXX_CPPFLAGS=$GRAPHICSMAGICKXX_CPPFLAGS
  MAGICKXX_LDFLAGS=$GRAPHICSMAGICKXX_LDFLAGS
fi
AC_SUBST([MAGICKXX_CPPFLAGS])
AC_SUBST([MAGICKXX_LDFLAGS])
AM_CONDITIONAL([HAVE_MAGICKXX],
               [test "x$oln_have_imagemagickxx" = xyes \
                || test "x$oln_have_graphicsmagickxx" = xyes])
282

283
284
285
# ---- #
# Qt.  #
# ---- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
286

287
288
AT_WITH_QT([xml], [], [], [:], [oln_have_qt=yes])
if test x$oln_have_qt = xyes; then
Roland Levillain's avatar
Roland Levillain committed
289
290
291
  AT_REQUIRE_QT_VERSION([4],
    AC_MSG_WARN([Qt-dependent programs will be disabled.]),
    oln_have_expected_qt_version=yes)
Guillaume Lazzara's avatar
Guillaume Lazzara committed
292
fi
Roland Levillain's avatar
Roland Levillain committed
293
AM_CONDITIONAL([HAVE_QT], [test "x$oln_have_expected_qt_version" = xyes])
Guillaume Lazzara's avatar
Guillaume Lazzara committed
294

295
296
297
# ----------- #
# Tesseract.  #
# ----------- #
298

299
OLN_WITH_TESSERACT
300

301
302
303
# -------------- #
# TIFF library.  #
# -------------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
304
305
306

OLN_WITH_LIB([TIFF], [tiff.h], [tiff])

307
308
309
310
311
312
313
314
# ----------------- #
# Poppler library.  #
# ----------------- #

OLN_WITH_LIB_PKG_CONFIG([poppler-cpp], [poppler/cpp/poppler-version.h], [poppler-cpp],
                        [poppler], [POPPLER])


315
316
317
# --------------------------------- #
# GDCM library (Grassroots DiCom).  #
# --------------------------------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
318
319

OLN_WITH_LIB([GDCM], [gdcm-2.0/gdcmReader.h], [gdcmCommon], [gdcm],
320
321
322
323
             [GDCM],
             m4_do([-lgdcmDICT -lgdcmDSED -lgdcmIOD -lgdcmMSFF],
                   [ -lgdcmexpat -lgdcmjpeg12 -lgdcmjpeg16 -lgdcmjpeg8],
                   [ -lgdcmopenjpeg -lgdcmuuid -lgdcmzlib]))
324

325
326
327
328
329
330
# --------------- #
# FFTW3 library.  #
# --------------- #

OLN_WITH_LIB([FFTW3], [fftw3.h], [fftw3], [fftw3], [FFTW3], [-lm])

331

Roland Levillain's avatar
Roland Levillain committed
332
333
334
335
## --------- ##
## Swilena.  ##
## --------- ##

336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
AC_ARG_ENABLE([swilena],
              [AS_HELP_STRING([--enable-swilena],
                              [build Swilena Python bindings])])
AS_IF([test "x$enable_swilena" = xyes],
      [# Ensure dynamic libraries are enabled.
       if test "x$enable_shared" = xno; then
         AC_MSG_ERROR([`--enable-swilena' was given, but dynamic libraries are
disabled.  Try to invoke configure with `--enable-shared'.])
       fi
       # Check for SWIG.
       AC_PROG_SWIG([1.3.35])
       if (eval "$SWIG -version") >/dev/null 2>&1; then :; else
         AC_MSG_ERROR([SWIG 1.3.35 is required for Swilena])
       fi
       # Check for Python.
       AM_PATH_PYTHON([2.4], [],
                      [AC_MSG_ERROR([Python 2.4 is required for Swilena.])])
       adl_CHECK_PYTHON
       # Check for Python headers.
       save_CPPFLAGS=$CPPFLAGS
       CPPFLAGS="$CPPFLAGS -I$PYTHONINC"
       AC_CHECK_HEADERS([Python.h], [],
                        [AC_MSG_ERROR([`Python.h' is required for Swilena.
Try adding `-I <Python include path>' to `CPPFLAGS'.])])
       CPPFLAGS=$save_CPPFLAGS])
AM_CONDITIONAL([ENABLE_SWILENA], [test "x$enable_swilena" = xyes])
Roland Levillain's avatar
Roland Levillain committed
362

363
AC_CONFIG_FILES([swilena/Makefile
364
                 swilena/python/Makefile])
365

Roland Levillain's avatar
Roland Levillain committed
366
367
AC_CONFIG_FILES([swilena/run], [chmod +x swilena/run])

368
369
370
371
## -------- ##
## Scribo.  ##
## -------- ##

372
373
374
AC_ARG_ENABLE([scribo],
              [AS_HELP_STRING([--enable-scribo],
                              [enable Scribo])])
375
AM_CONDITIONAL([ENABLE_SCRIBO], [test "x$enable_scribo" = xyes])
376
377
378

AC_CONFIG_FILES([
  scribo/Makefile
379
380
    scribo/demo/Makefile
      scribo/demo/viewer/Makefile
381
      scribo/demo/xml2doc/Makefile
382
    scribo/doc/Makefile
383
384
    scribo/src/Makefile
      scribo/src/binarization/Makefile
385
386
      scribo/src/contest/Makefile
      scribo/src/contest/hdibco-2010/Makefile
387
388
      scribo/src/contest/hdlac-2011/Makefile
      scribo/src/contest/DAE-2011/Makefile
389
390
      scribo/src/contest/hnla-2013/Makefile
      scribo/src/contest/hbr-2013/Makefile
391
      scribo/src/debug/Makefile
392
      scribo/src/filter/Makefile
393
      scribo/src/misc/Makefile
394
      scribo/src/postprocessing/Makefile
395
      scribo/src/preprocessing/Makefile
396
      scribo/src/primitive/Makefile
397
398
        scribo/src/primitive/extract/Makefile
        scribo/src/primitive/find/Makefile
399
        scribo/src/primitive/group/Makefile
Roland Levillain's avatar
Roland Levillain committed
400
        scribo/src/primitive/remove/Makefile
401
      scribo/src/table/Makefile
402
      scribo/src/text/Makefile
403
404
      scribo/src/toolchain/Makefile
        scribo/src/toolchain/nepomuk/Makefile
405
      scribo/src/util/Makefile
406
407
408
409
410
411
])

AC_CONFIG_FILES([scribo/tests/data.hh])

AC_CONFIG_FILES([
  scribo/tests/Makefile
412
    scribo/tests/binarization/Makefile
413
    scribo/tests/convert/Makefile
414
    scribo/tests/core/Makefile
415
    scribo/tests/estim/Makefile
416
    scribo/tests/filter/Makefile
417
    scribo/tests/layout/Makefile
418
    scribo/tests/preprocessing/Makefile
419
    scribo/tests/primitive/Makefile
420
    scribo/tests/primitive/extract/Makefile
421
    scribo/tests/primitive/link/Makefile
422
423
    scribo/tests/table/Makefile
    scribo/tests/text/Makefile
424
425
    scribo/tests/toolchain/Makefile
    scribo/tests/toolchain/nepomuk/Makefile
426
    scribo/tests/unit_test/Makefile
427
    scribo/tests/util/Makefile
428
])
429
430
431
432
433
434
435
436
437

# Flags for Scribo
AC_ARG_VAR([SCRIBO_CXXFLAGS], [C++ compiler flags for Scribo binaries])
AC_ARG_VAR([SCRIBO_TESTS_CXXFLAGS], [C++ compiler flags for Scribo tests])
if test "$GXX" = yes || test "$ICPC" = yes; then
  test -z "$SCRIBO_CXXFLAGS" && SCRIBO_CXXFLAGS="-DNDEBUG -O2"
  # FIXME: We might want to use -ggdb when g++ is used.
  test -z "$SCRIBO_TESTS_CXXFLAGS" && SCRIBO_TESTS_CXXFLAGS="-g -O0"
fi
Roland Levillain's avatar
Roland Levillain committed
438

439
440
441
442
## --------------- ##
## Configuration.  ##
## --------------- ##

443
444
# Ask for config.h creation.
AC_CONFIG_HEADERS([config.h])
445

446
447
448
449
# Ask for the creation of a milena/doc/tool/data.hh, used to access to
# data (images) from the documentation.
AC_CONFIG_FILES([milena/doc/tools/data.hh])

450
451
452
# Ask for the Makefile creations.
AC_CONFIG_FILES([
  Makefile
453
    doc/Makefile
454
455
    milena/Makefile
      milena/doc/Makefile
456
      milena/mesh/Makefile
457
])
458

459

460
461
462
463
## ------- ##
## Tests.  ##
## ------- ##

Roland Levillain's avatar
Roland Levillain committed
464
465
# Ask for the creation of a milena/tests/data.hh, used to access to
# data (images) from tests.
466
467
AC_CONFIG_FILES([milena/tests/data.hh])

Roland Levillain's avatar
Roland Levillain committed
468
# Ask for the creation of tests' Makefiles.
469
AC_CONFIG_FILES([
470
  milena/tests/Makefile
Roland Levillain's avatar
Roland Levillain committed
471
    milena/tests/accu/Makefile
472
    milena/tests/accu/image/Makefile
473
    milena/tests/accu/site_set/Makefile
474
    milena/tests/accu/stat/Makefile
475
    milena/tests/accu/math/Makefile
476
    milena/tests/accu/shape/Makefile
477
    milena/tests/algebra/Makefile
478
    milena/tests/arith/Makefile
479
    milena/tests/binarization/Makefile
Roland Levillain's avatar
Roland Levillain committed
480
    milena/tests/border/Makefile
481
482
483
484
    milena/tests/canvas/Makefile
      milena/tests/canvas/browsing/Makefile
      milena/tests/canvas/morpho/Makefile
    milena/tests/convert/Makefile
485
    milena/tests/convert/impl/Makefile
Roland Levillain's avatar
Roland Levillain committed
486
    milena/tests/core/Makefile
Nicolas Ballas's avatar
Nicolas Ballas committed
487
488
      milena/tests/core/alias/Makefile
      milena/tests/core/image/Makefile
489
490
491
        milena/tests/core/image/dmorph/Makefile
        milena/tests/core/image/imorph/Makefile
        milena/tests/core/image/vmorph/Makefile
Nicolas Ballas's avatar
Nicolas Ballas committed
492
493
494
      milena/tests/core/other/Makefile
      milena/tests/core/routine/Makefile
      milena/tests/core/site_set/Makefile
495
    milena/tests/data/Makefile
496
497
      milena/tests/data/approx/Makefile
      milena/tests/data/naive/Makefile
Roland Levillain's avatar
Roland Levillain committed
498
499
500
    milena/tests/debug/Makefile
    milena/tests/display/Makefile
    milena/tests/draw/Makefile
501
    milena/tests/estim/Makefile
502
    milena/tests/extension/Makefile
503
504
505
    milena/tests/fun/Makefile
      milena/tests/fun/i2v/Makefile
      milena/tests/fun/p2b/Makefile
506
      milena/tests/fun/p2p/Makefile
507
      milena/tests/fun/p2v/Makefile
508
      milena/tests/fun/stat/Makefile
509
      milena/tests/fun/v2i/Makefile
510
      milena/tests/fun/v2v/Makefile
511
      milena/tests/fun/vv2v/Makefile
Roland Levillain's avatar
Roland Levillain committed
512
513
      milena/tests/fun/x2x/Makefile
    milena/tests/geom/Makefile
514
515
    milena/tests/graph/Makefile
      milena/tests/graph/attribute/Makefile
Roland Levillain's avatar
Roland Levillain committed
516
    milena/tests/histo/Makefile
517
    milena/tests/io/Makefile
518
      milena/tests/io/dicom/Makefile
519
      milena/tests/io/dump/Makefile
Roland Levillain's avatar
Roland Levillain committed
520
      milena/tests/io/fits/Makefile
521
      milena/tests/io/fld/Makefile
522
      milena/tests/io/magick/Makefile
523
      milena/tests/io/off/Makefile
Roland Levillain's avatar
Roland Levillain committed
524
      milena/tests/io/pbm/Makefile
525
      milena/tests/io/pbms/Makefile
526
      milena/tests/io/pdf/Makefile
527
528
      milena/tests/io/pfm/Makefile
      milena/tests/io/pgm/Makefile
529
      milena/tests/io/pgms/Makefile
530
531
      milena/tests/io/pnm/Makefile
      milena/tests/io/ppm/Makefile
532
      milena/tests/io/ppms/Makefile
533
      milena/tests/io/tiff/Makefile
534
      milena/tests/io/vtk/Makefile
535
    milena/tests/labeling/Makefile
Roland Levillain's avatar
Roland Levillain committed
536
537
538
539
    milena/tests/linear/Makefile
      milena/tests/linear/local/Makefile
    milena/tests/literal/Makefile
    milena/tests/logical/Makefile
540
    milena/tests/make/Makefile
Roland Levillain's avatar
Roland Levillain committed
541
542
543
544
545
    milena/tests/math/Makefile
    milena/tests/metal/Makefile
      milena/tests/metal/make/Makefile
      milena/tests/metal/math/Makefile
    milena/tests/morpho/Makefile
546
      milena/tests/morpho/approx/Makefile
547
      milena/tests/morpho/attribute/Makefile
548
      milena/tests/morpho/closing/Makefile
549
      milena/tests/morpho/closing/approx/Makefile
550
      milena/tests/morpho/elementary/Makefile
551
      milena/tests/morpho/opening/Makefile
552
      milena/tests/morpho/opening/approx/Makefile
553
      milena/tests/morpho/reconstruction/Makefile
554
        milena/tests/morpho/reconstruction/by_dilation/Makefile
555
        milena/tests/morpho/reconstruction/by_erosion/Makefile
556
      milena/tests/morpho/tree/Makefile
557
        milena/tests/morpho/tree/filter/Makefile
558
      milena/tests/morpho/watershed/Makefile
559
    milena/tests/norm/Makefile
560
    milena/tests/opt/Makefile
Roland Levillain's avatar
Roland Levillain committed
561
562
563
    milena/tests/pw/Makefile
    milena/tests/set/Makefile
    milena/tests/tag/Makefile
564
    milena/tests/test/Makefile
565
    milena/tests/topo/Makefile
566
      milena/tests/topo/skeleton/Makefile
Roland Levillain's avatar
Roland Levillain committed
567
568
569
570
571
    milena/tests/trace/Makefile
    milena/tests/trait/Makefile
      milena/tests/trait/image/Makefile
      milena/tests/trait/op/Makefile
      milena/tests/trait/value/Makefile
572
    milena/tests/transform/Makefile
573
    milena/tests/unit_test/Makefile
574
575
    milena/tests/upscaling/Makefile
      milena/tests/upscaling/art/Makefile
576
    milena/tests/util/Makefile
Roland Levillain's avatar
Roland Levillain committed
577
578
579
580
    milena/tests/value/Makefile
      milena/tests/value/builtin/Makefile
      milena/tests/value/concept/Makefile
    milena/tests/win/Makefile
581
    milena/tests/world/Makefile
582
      milena/tests/world/binary_2d/Makefile
583
      milena/tests/world/inter_pixel/Makefile
584
        milena/tests/world/inter_pixel/dim2/Makefile
585
])
586

587
588
589
590
## -------------- ##
## Applications.  ##
## -------------- ##

591
592
593
594
# Ask for the creation of a milena/apps/data.hh, used to access to
# data (images) from apps.
AC_CONFIG_FILES([milena/apps/data.hh])

595
596
AC_ARG_ENABLE([apps],
              [AS_HELP_STRING([--enable-apps],
Roland Levillain's avatar
Roland Levillain committed
597
                              [enable applications])])
598
599
AM_CONDITIONAL([ENABLE_APPS], [test "x$enable_apps" = "xyes"])

600
# Ask for the creation of applications' Makefiles.
601
602
AC_CONFIG_FILES([
  milena/apps/Makefile
603
    milena/apps/bench/Makefile
604
    milena/apps/constrained-connectivity/Makefile
605
    milena/apps/generic-skel/Makefile
606
607
    milena/apps/graph-morpho/Makefile
    milena/apps/mesh-segm-skel/Makefile
608
    milena/apps/morphers/Makefile
609
610
    milena/apps/papers/Makefile
      milena/apps/papers/levillain.09.ismm/Makefile
611
])
612
613

# Configure tests.
614
615
# FIXME: Consider using `sed' instead of `configure' to create these
# tests for the sake of speed.
616
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv],
617
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv])
618
619
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-extrema],
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-extrema])
620
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-segm],
621
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-segm])
622
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-segm],
623
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-segm])
624
625
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-pinv-curv-segm],
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-pinv-curv-segm])
626
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-skel],
627
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-skel])
628
629
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-skel],
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-skel])
630
631
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-pinv-curv-skel],
                [chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-pinv-curv-skel])
632

633
AC_CONFIG_FILES([milena/apps/constrained-connectivity/test-constrained-connectivity],
634
                [chmod +x milena/apps/constrained-connectivity/test-constrained-connectivity])
635

636
# Flags for apps.
637
AC_ARG_VAR([APPS_CXXFLAGS], [C++ compiler flags for applications])
638
# We want fast binaries for apps.
639
640
641
642
643
644
if test -z "$APPS_CXXFLAGS"; then
  if test "$GXX" = yes; then
    APPS_CXXFLAGS="-O3 -DNDEBUG -ggdb $WARNINGS_CXXFLAGS"
  elif test "$ICPC" = yes; then
    APPS_CXXFLAGS="-O3 -DNDEBUG -g $WARNINGS_CXXFLAGS"
  fi
645
fi
646
647
648
649
650
651
652
# Likewise, without debugging information.
AC_ARG_VAR([APPS_CXXFLAGS_NODEBUG],
           [C++ compiler flags for applications w/o debug symbols])
if test -z "$APPS_CXXFLAGS_NODEBUG" && test "$GXX" = yes; then
  APPS_CXXFLAGS_NODEBUG="-O3 -DNDEBUG $WARNINGS_CXXFLAGS"
fi

653

654
655
656
657
658
## ------- ##
## Tools.  ##
## ------- ##

AC_ARG_ENABLE([tools],
659
              [AS_HELP_STRING([--enable-tools], [enable tools])])
660
661
662
663
664
665
AM_CONDITIONAL([ENABLE_TOOLS], [test "x$enable_tools" = "xyes"])

# Ask for the creation of tools' Makefiles.
AC_CONFIG_FILES([milena/tools/Makefile])

# Flags for tools.
666
AC_ARG_VAR([TOOLS_CXXFLAGS], [C++ compiler flags for tools])
667
# We want fast binaries for tools.
668
669
670
671
672
673
if test -z "$TOOLS_CXXFLAGS"; then
  if test "$GXX" = yes; then
    TOOLS_CXXFLAGS="-O3 -DNDEBUG -ggdb $WARNINGS_CXXFLAGS"
  elif test "$ICPC" = yes; then
    TOOLS_CXXFLAGS="-O3 -DNDEBUG -g $WARNINGS_CXXFLAGS"
  fi
674
675
fi

676

Roland Levillain's avatar
Roland Levillain committed
677
678
679
## ----------------- ##
## Verbose display.  ##
## ----------------- ##
680

Roland Levillain's avatar
Roland Levillain committed
681
682
683
# Do not print this information by default, since `configure' outputs
# should be kept short.  Longer explanations are always available in
# config.log.
684

Roland Levillain's avatar
Roland Levillain committed
685
686
687
688
AC_ARG_ENABLE([verbose],
  [AS_HELP_STRING([--enable-verbose], [enable verbose display])],
  [if test "x$enable_verbose" != xno; then
     AC_MSG_RESULT([
Guillaume Lazzara's avatar
Guillaume Lazzara committed
689
690
691
-------------------------------------------------------------------------------
Configuration summary.

692
693
694
695
696
697
698
699
700

Host system type: $host
Build system type: $build

================
| Dependencies |
================


Roland Levillain's avatar
Roland Levillain committed
701
                        Option                  Enabled and available
702
-------------------------------------------------------------------------------
Roland Levillain's avatar
Roland Levillain committed
703
704
705
706
707
708
709
Boost Tuple             --with-boost=@<:@=DIR@:>@     $oln_have_boost_tuple
CFITSIO                 --with-cfitsio@<:@=DIR@:>@    $oln_have_cfitsio
GDCM                    --with-gdcm@<:@=DIR@:>@       $oln_have_gdcm
Magick++                --with-magickxx         $oln_have_magickxx
Qt                      --with-qt               $oln_have_qt
Tesseract               --with-tesseract@<:@=DIR@:>@  $oln_have_tesseract
TIFF                    --with-tiff@<:@=DIR@:>@       $oln_have_tiff
710
711
712
713
714
715
716
717
718
719
-------------------------------------------------------------------------------




===========
| Modules |
===========


Roland Levillain's avatar
Roland Levillain committed
720
                        Option                  Enabled
721
-------------------------------------------------------------------------------
Roland Levillain's avatar
Roland Levillain committed
722
723
Scribo                  --enable-scribo         $enable_scribo
Swilena                 --enable-swilena        $enable_swilena
724
725
726
727
728
729
730
731
732
733
-------------------------------------------------------------------------------




=============
| Utilities |
=============


Roland Levillain's avatar
Roland Levillain committed
734
                        Option                  Enabled
735
-------------------------------------------------------------------------------
Roland Levillain's avatar
Roland Levillain committed
736
737
Apps                    --enable-apps           $enable_apps
Tools                   --enable-tools          $enable_tools
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
-------------------------------------------------------------------------------



Options used to compile and link:
  PREFIX          = $PREFIX_DIR
  EXEC-PREFIX     = $EXEC_PREFIX_DIR
  VERSION         = $PACKAGE_VERSION
  CC              = $CC
  CFLAGS          = $CFLAGS
  CPPFLAGS        = $MAGICK_CPPFLAGS
  DEFS            = $DEFS
  LDFLAGS         = $LDFLAGS
  LIBS            = $MAGICK_LIBS
  CXX             = $CXX
  CXXFLAGS        = $CXXFLAGS
Roland Levillain's avatar
Roland Levillain committed
754
755
756
757
758
759
760
  PKG_CONFIG      = $PKG_CONFIG
  QT_PATH         = $QT_PATH
  QMAKE           = $QMAKE
  MOC             = $MOC
  UIC             = $UIC
  RCC             = $RCC
  BOOST_ROOT      = $BOOST_ROOT
761
762
  MAGICKXX_CFLAGS = $MAGICKXX_CPPFLAGS
  MAGICKXX_LIBS   = $MAGICKXX_LDFLAGS
763
764
765
766
  SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
  APPS_CXXFLAGS   = $APPS_CXXFLAGS
  TOOLS_CXXFLAGS  = $TOOLS_CXXFLAGS

Guillaume Lazzara's avatar
Guillaume Lazzara committed
767
768
769


*******************************************************************************
Roland Levillain's avatar
Roland Levillain committed
770
Olena is configured as stated above.  Please verify that this configuration
Guillaume Lazzara's avatar
Guillaume Lazzara committed
771
772
773
774
matches your expectations.

Then, type 'make' to build Olena and 'make install' to install it on
your system.
775
])
Roland Levillain's avatar
Roland Levillain committed
776
777
778
779
780
781
782
783
fi])


## -------- ##
## Output.  ##
## -------- ##

AC_OUTPUT