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
79
80
# Try to use pipes between compiler stages to speed the compilation up.
AX_CHECK_COMPILE_FLAG([-pipe], [CXXFLAGS="$CXXFLAGS -pipe"])

81
82
83
84
85
86
87
88
89
90
91
92
# 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/data/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 test "$GXX" = yes \
   && $CXX --version | head -n 1 | grep '\b4\.2' >/dev/null 2>&1; then
     STRICT_ALIASING_CXXFLAGS=-fno-strict-aliasing
93
fi
94
AC_SUBST([STRICT_ALIASING_CXXFLAGS])
95

96
97

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

109
110
111
112
113
114
# 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"])

115

116
117
118
119
120
121
# ------------------------------ #
# C++ compiler flags for tests.  #
# ------------------------------ #

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

122
# Standard flags for tests.
123
AC_ARG_VAR([TESTS_CXXFLAGS], [C++ compiler flags for tests])
124
# We want no optimization for the tests (it slows down compiling
125
# times), and debugging information.
126
127
128
129
130
131
132
133
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
134
135
fi

136
# Flags for complex tests.
137
138
AC_ARG_VAR([TESTS_CXXFLAGS_SPEED],
           [C++ compiler optimization flags for (complex) tests])
139
140
# We want optimization for complex tests, and keep debugging flags
# (still useful).
141
142
143
144
145
146
147
148
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
149
150
fi

151
# Flags for tests with with all debugging features turned on.
152
AC_ARG_VAR([TESTS_CXXFLAGS_DEBUG], [C++ compiler debug flags])
153
154
155
156
157
158
# 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
159
160
161
162
163
164
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
165
166
167
fi


168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
## --------------- ##
## 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

186
187
188
189
190
191
192
193
194
195
196
197
198
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

199

200
201
202
203
## ------------------------------ ##
## ``Enable Everything'' Switch.  ##
## ------------------------------ ##

204
# Enable all bundled features (Swilena, apps, tools).  This
205
206
207
208
209
210
# 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],
211
212
213
214
215
216
217
  [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])
218

219

220
221
222
223
224
## ------------------ ##
## Libraries set up.  ##
## ------------------ ##

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

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

Roland Levillain's avatar
Roland Levillain committed
232

233
234
235
## -------------------- ##
## External libraries.  ##
## -------------------- ##
236

237
238
239
# ------- #
# Boost.  #
# ------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
240

241
242
243
# 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])])
244
245
246
BOOST_TUPLE
AM_CONDITIONAL([HAVE_BOOST_TUPLE],
               [test "x$ac_cv_header_boost_tuple_tuple_hpp" = xyes])
247

248
249
250
# ----------------- #
# CFITSIO library.  #
# ----------------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
251

252
OLN_WITH_LIB([CFITSIO], [fitsio.h], [cfitsio])
253

254
255
256
# ---------- #
# Magick++.  #
# ---------- #
257

258
259
260
OLN_WITH_LIB_PKG_CONFIG([ImageMagick++], [Magick++.h], [Magick++],
                        [imagemagickxx], [IMAGEMAGICKXX])

261
OLN_WITH_LIB_PKG_CONFIG([GraphicsMagick++], [Magick++.h], [GraphicsMagick++],
262
263
264
265
266
                        [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).
267
268
if test "x$with_imagemagickxx" != xno \
   && test "x$oln_have_imagemagickxx" = xyes; then
269
270
  MAGICKXX_CPPFLAGS=$IMAGEMAGICKXX_CPPFLAGS
  MAGICKXX_LDFLAGS=$IMAGEMAGICKXX_LDFLAGS
271
elif test "x$oln_have_graphicsmagickxx" = xyes; then
272
273
274
275
276
277
278
279
  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])
280

281
282
283
# ---- #
# Qt.  #
# ---- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
284

285
286
AT_WITH_QT([xml], [], [], [:], [oln_have_qt=yes])
if test x$oln_have_qt = xyes; then
Roland Levillain's avatar
Roland Levillain committed
287
288
289
  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
290
fi
Roland Levillain's avatar
Roland Levillain committed
291
AM_CONDITIONAL([HAVE_QT], [test "x$oln_have_expected_qt_version" = xyes])
Guillaume Lazzara's avatar
Guillaume Lazzara committed
292

293
294
295
# ----------- #
# Tesseract.  #
# ----------- #
296

297
OLN_WITH_TESSERACT
298

299
300
301
# -------------- #
# TIFF library.  #
# -------------- #
Guillaume Lazzara's avatar
Guillaume Lazzara committed
302
303
304

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

305
306
307
308
309
310
311
312
# ----------------- #
# Poppler library.  #
# ----------------- #

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


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

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

323
324
325
326
327
328
# --------------- #
# FFTW3 library.  #
# --------------- #

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

329

Roland Levillain's avatar
Roland Levillain committed
330
331
332
333
## --------- ##
## Swilena.  ##
## --------- ##

334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
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
360

361
AC_CONFIG_FILES([swilena/Makefile
362
                 swilena/python/Makefile])
363

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

366
367
368
369
## -------- ##
## Scribo.  ##
## -------- ##

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

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

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

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

# 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
432
  test -z "$SCRIBO_CXXFLAGS" && SCRIBO_CXXFLAGS="-DNDEBUG -O2 $WARNINGS_CXXFLAGS"
433
  # FIXME: We might want to use -ggdb when g++ is used.
434
  test -z "$SCRIBO_TESTS_CXXFLAGS" && SCRIBO_TESTS_CXXFLAGS="-g -O0 $WARNINGS_CXXFLAGS"
435
fi
Roland Levillain's avatar
Roland Levillain committed
436

437
438
439
440
## --------------- ##
## Configuration.  ##
## --------------- ##

441
442
# Ask for config.h creation.
AC_CONFIG_HEADERS([config.h])
443

444
445
446
447
# 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])

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

457

458
459
460
461
## ------- ##
## Tests.  ##
## ------- ##

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

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

585
586
587
588
## -------------- ##
## Applications.  ##
## -------------- ##

589
590
591
592
# 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])

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

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

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

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

634
# Flags for apps.
635
AC_ARG_VAR([APPS_CXXFLAGS], [C++ compiler flags for applications])
636
# We want fast binaries for apps.
637
638
639
640
641
642
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
643
fi
644
645
646
647
648
649
650
# 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

651

652
653
654
655
656
## ------- ##
## Tools.  ##
## ------- ##

AC_ARG_ENABLE([tools],
657
              [AS_HELP_STRING([--enable-tools], [enable tools])])
658
659
660
661
662
663
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.
664
AC_ARG_VAR([TOOLS_CXXFLAGS], [C++ compiler flags for tools])
665
# We want fast binaries for tools.
666
667
668
669
670
671
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
672
673
fi

674

Roland Levillain's avatar
Roland Levillain committed
675
676
677
## ----------------- ##
## Verbose display.  ##
## ----------------- ##
678

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

Roland Levillain's avatar
Roland Levillain committed
683
684
685
686
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
687
688
689
-------------------------------------------------------------------------------
Configuration summary.

690
691
692
693
694
695
696
697
698

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

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


Roland Levillain's avatar
Roland Levillain committed
699
                        Option                  Enabled and available
700
-------------------------------------------------------------------------------
Roland Levillain's avatar
Roland Levillain committed
701
702
703
704
705
706
707
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
708
709
710
711
712
713
714
715
716
717
-------------------------------------------------------------------------------




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


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




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


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



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
752
753
754
755
756
757
758
  PKG_CONFIG      = $PKG_CONFIG
  QT_PATH         = $QT_PATH
  QMAKE           = $QMAKE
  MOC             = $MOC
  UIC             = $UIC
  RCC             = $RCC
  BOOST_ROOT      = $BOOST_ROOT
759
760
  MAGICKXX_CFLAGS = $MAGICKXX_CPPFLAGS
  MAGICKXX_LIBS   = $MAGICKXX_LDFLAGS
761
762
763
764
  SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
  APPS_CXXFLAGS   = $APPS_CXXFLAGS
  TOOLS_CXXFLAGS  = $TOOLS_CXXFLAGS

Guillaume Lazzara's avatar
Guillaume Lazzara committed
765
766
767


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

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


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

AC_OUTPUT