configure.ac 24.3 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Copyright (C) 2006, 2007, 2008, 2009, 2010 EPITA Research and
# Development Laboratory (LRDE).
#
# 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
m4_pattern_forbid([^OLN_])
19

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


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

27
AC_INIT([Olena], [1.0a], [olena@lrde.epita.fr], [olena])
28

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

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

# Automake.
Roland Levillain's avatar
Roland Levillain committed
37
AM_INIT_AUTOMAKE([1.10 subdir-objects check-news dist-bzip2 nostdinc -Wall])
38

39
40
41
# Package metadata.
AC_CONFIG_FILES([milena/mln/version.hh])
AC_DEFINE_UNQUOTED([OLN_PACKAGE_NAME], ["$PACKAGE_NAME"],
42
		   [Package Full name.])
43
44
45
46
47
48
AC_DEFINE_UNQUOTED([OLN_PACKAGE_BUGREPORT], ["$PACKAGE_BUGREPORT"],
		   [Bug report address.])
AC_DEFINE_UNQUOTED([OLN_PACKAGE_STRING], ["$PACKAGE_STRING"],
		   [Full name and version.])
AC_DEFINE_UNQUOTED([OLN_PACKAGE_VERSION], ["$PACKAGE_VERSION"],
		   [Package Version.])
49

50
## --------------------- ##
51
## C++ compiler set up.  ##
52
53
## --------------------- ##

Roland Levillain's avatar
Roland Levillain committed
54
55
56
57
58
59
# 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

60
61
62
63
# Look for a C++ compiler.
AC_LANG([C++])
AC_PROG_CXX

64
65
66
# 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

67
# GNU C++ compiler setup.
68
if test "$GXX" = yes; then
69
  # Speed up compiling times.
70
  CXXFLAGS="$CXXFLAGS -pipe"
71
72
73
74
75
76
77
78
79
80
81
82
83

  # 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
84
fi
85
AC_SUBST([STRICT_ALIASING_CXXFLAGS])
86

87
88

# Adjusting warning options according to compilers.
89
AC_ARG_VAR([WARNINGS_CXXFLAGS], [C++ compiler warning flags])
90
91
92
93
94
95
96
97
98
99
100
case "$CXX" in
     # Intel compiler
     *icpc*)
	WARNINGS_CXXFLAGS="-Wall -wd111,193,279,383,444,522,654,810,981,1418"
	;;
     *)
	WARNINGS_CXXFLAGS="-Wall -W"
	;;
esac


101
102
103
104
105
106
# ------------------------------ #
# C++ compiler flags for tests.  #
# ------------------------------ #

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

107
# Standard flags for tests.
108
AC_ARG_VAR([TESTS_CXXFLAGS], [C++ compiler flags for tests])
109
# We want no optimization for the tests (it slows down compiling
110
# times), and debugging information.
111
112
113
114
115
116
117
118
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
119
120
fi

121
# Flags for complex tests.
122
123
AC_ARG_VAR([TESTS_CXXFLAGS_SPEED],
           [C++ compiler optimization flags for (complex) tests])
124
125
# We want optimization for complex tests, and keep debugging flags
# (still useful).
126
127
128
129
130
131
132
133
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
134
135
fi

136
# Flags for tests with with all debugging features turned on.
137
AC_ARG_VAR([TESTS_CXXFLAGS_DEBUG], [C++ compiler debug flags])
138
139
140
141
142
143
# 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
144
145
146
147
148
149
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
150
151
152
fi


153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
## ------------------------------ ##
## ``Enable Everything'' Switch.  ##
## ------------------------------ ##

# Enable all bundled features (trimesh2, Swilena, apps, tools).  This
# 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],
              [AS_HELP_STRING([--enable-all],
                              [enable maintainer mode])],
              [
               enable_trimesh=yes
               enable_swilena=yes
169
dnl<<lrde
170
               enable_scribo=yes
171
dnl>>
172
173
174
               enable_apps=yes
               enable_tools=yes
              ])
175

176

177
178
179
180
181
## ------------------ ##
## Libraries set up.  ##
## ------------------ ##

# Use Libtool.
182
183
# To be replaced by a call to LT_INIT as soon as Libtool 2.2 is used.
AC_PROG_LIBTOOL
184
185
186
187
188

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

Roland Levillain's avatar
Roland Levillain committed
189

190
191
192
## -------------------- ##
## External libraries.  ##
## -------------------- ##
193

194
195
# Prepare calls to pkg-config
PKG_PROG_PKG_CONFIG
196
197
198
199

AC_MSG_RESULT([])
AC_MSG_RESULT([])
AC_MSG_RESULT([Checking external libraries])
Guillaume Lazzara's avatar
Guillaume Lazzara committed
200
AC_MSG_RESULT([-------------------------------------------------------------------------------])
201
202


203
### Support for FreeImagePlus has been disabled for Olena 1.0.
204
## OLN_WITH_LIB([FreeImagePlus], [FreeImagePlus.h], [freeimageplus])
205

Guillaume Lazzara's avatar
Guillaume Lazzara committed
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
## ----- ##
## Boost ##
## ----- ##

oln_have_boost_preprocessor=no
oln_have_boost_tuple=no

if test "x$with_boost" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* Boost])
   AC_MSG_RESULT([-------])

   # Preprocessor
   BOOST_FIND_HEADER([boost/preprocessor/repetition/repeat.hpp],
		     oln_have_boost_preprocessor="no",
		     oln_have_boost_preprocessor="yes")
   if test "x$oln_have_boost_preprocessor" = xyes; then
      AC_DEFINE([HAVE_BOOST_PREPROCESSOR], 1, [Define to 1 if we can use Boost Preprocessor.])
   fi

   # Tuple
   BOOST_FIND_HEADER([boost/tuple/tuple.hpp],
		     oln_have_boost_tuple=no,
		     oln_have_boost_tuple=yes)
   if test "x$oln_have_boost_tuple" = xyes; then
      AC_DEFINE([HAVE_BOOST_TUPLE], 1, [Define to 1 if we can use Boost Tuple.])
   fi
fi

AM_CONDITIONAL([HAVE_BOOST_PREPROCESSOR],
	       [test "x$oln_have_boost_preprocessor" = xyes])
AM_CONDITIONAL([HAVE_BOOST_TUPLE], [test "x$oln_have_boost_tuple" = xyes])


240
241
242
243
## ---------------- ##
## CFITSIO library. ##
## ---------------- ##

Guillaume Lazzara's avatar
Guillaume Lazzara committed
244
245
246
247
248
249
if test "x$with_cfitsio" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* libcfitsio])
   AC_MSG_RESULT([------------])
fi

250
OLN_WITH_LIB([CFITSIO], [fitsio.h], [cfitsio])
251

252
253

#------------------------------------------------------------
254
255
256
257

## --------- ##
## Magick++. ##
## --------- ##
258
259
260
261
262
263
264
265
266
267
268
269

# FIXME: We should handle Magick++ both with Magick++-config and
# pkg-config?  instead of OLN_WITH_LIB.  See how other projects handle
# this.
#OLN_WITH_LIB([Magick++], [Magick++.h], [Magick++], [magickxx], [MAGICKXX])

AC_ARG_WITH([magickxx],
    [AC_HELP_STRING([--with-magickxx],
                    [enable magickxx support (default)])],
        [with_magickxx=$withval],
        [with_magickxx='yes'])

Guillaume Lazzara's avatar
Guillaume Lazzara committed
270
oln_have_magickxx=no
271
272
273
MAGICKXX_CFLAGS=""
MAGICKXX_LIBS=""
MAGICKXX_PKG=""
Guillaume Lazzara's avatar
Guillaume Lazzara committed
274
275
276
277
278
279

if test "x$with_magickxx" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* libMagick++])
   AC_MSG_RESULT([---------------])

280
    PKG_CHECK_MODULES(MAGICKXX,[ImageMagick++], oln_have_magickxx=yes, oln_have_magickxx=no)
281
282
    AC_MSG_RESULT([])

Guillaume Lazzara's avatar
Guillaume Lazzara committed
283
284
285
286
287
288
289
290
    if test "$oln_have_magickxx" = yes; then
       AC_DEFINE([HAVE_MAGICKXX], 1, [Define to 1 if we can use libMagick++])
       # Use standard variable names.
       MAGICKXX_CPPFLAGS="$MAGICKXX_CFLAGS"
       MAGICKXX_LDFLAGS="$MAGICKXX_LIBS"
       AC_SUBST(MAGICKXX_CPPFLAGS)
       AC_SUBST(MAGICKXX_LDFLAGS)
    fi
291
292
fi

Guillaume Lazzara's avatar
Guillaume Lazzara committed
293
AM_CONDITIONAL(HAVE_MAGICKXX, test "x$oln_have_magickxx" = xyes)
294
295
296

#------------------------------------------------------------

Guillaume Lazzara's avatar
Guillaume Lazzara committed
297
298
299
## --- ##
## Qt. ##
## --- ##
300

Guillaume Lazzara's avatar
Guillaume Lazzara committed
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
oln_have_qt=no

if test "x$with_qt" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* Qt])
   AC_MSG_RESULT([----])

   AT_WITH_QT([+xml], [], [],
              AC_MSG_WARN([Qt dependent programs will be disabled.]))

   if test "x$QT_VERSION_MAJOR" != x; then
      AT_REQUIRE_QT_VERSION([4], AC_MSG_WARN([Your Qt version is too old! Qt dependent programs will be disabled.]),
	 		    AC_DEFINE([HAVE_QT], 1,
				      [Define to 1 if we can use Qt]) oln_have_qt=yes)
      if test "x$QT_VERSION_MAJOR" = x4; then
      	 oln_have_qt=yes
      fi
   fi
fi

AM_CONDITIONAL([HAVE_QT], [test "x$oln_have_qt" = xyes])
322

323

324
325
326
327
## ---------- ##
## Tesseract. ##
## ---------- ##

Guillaume Lazzara's avatar
Guillaume Lazzara committed
328
329
330
331
332
if test "x$with_tesseract" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* Tesseract])
   AC_MSG_RESULT([-----------])
fi
333

Guillaume Lazzara's avatar
Guillaume Lazzara committed
334
335
OLN_WITH_LIB([TESSERACT], [tesseract/baseapi.h], [tesseract_full],
   	     [tesseract], [TESSERACT])
336

Guillaume Lazzara's avatar
Guillaume Lazzara committed
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358

## ------------- ##
## TIFF library. ##
## ------------- ##

if test "x$with_tiff" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* libtiff])
   AC_MSG_RESULT([---------])
fi

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


## -------------------------------- ##
## GDCM library (Grassroots DiCom). ##
## -------------------------------- ##

if test "x$with_gdcm" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* libgdcm])
   AC_MSG_RESULT([---------])
359
fi
Guillaume Lazzara's avatar
Guillaume Lazzara committed
360
361
362
363
364
365

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


366

367

368
AC_MSG_RESULT([])
Guillaume Lazzara's avatar
Guillaume Lazzara committed
369
AC_MSG_RESULT([-------------------------------------------------------------------------------])
370
371
372
373
AC_MSG_RESULT([])
AC_MSG_RESULT([])


374
375
376
377
378
## ---------------------------- ##
## (Bundled) trimesh2 library.  ##
## ---------------------------- ##

AC_ARG_ENABLE([trimesh],
379
              [AS_HELP_STRING([--enable-trimesh],
380
                              [build the (bundled) trimesh2 library])])
381
AM_CONDITIONAL([ENABLE_TRIMESH], [test "x$enable_trimesh" = xyes])
382
383
AC_CONFIG_SUBDIRS([external/trimesh])

Roland Levillain's avatar
Roland Levillain committed
384
385
386
387
## --------- ##
## Swilena.  ##
## --------- ##

388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
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
414

415
AC_CONFIG_FILES([swilena/Makefile
416
		 swilena/python/Makefile])
417

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

420
AC_CONFIG_FILES(m4_do([swilena/python/sps],
421
422
423
		      [:swilena/python/sps-common.in],
		      [:swilena/python/sps.in]),
		[chmod +x swilena/python/sps])
424
AC_CONFIG_FILES(m4_do([swilena/python/sps-local],
425
426
427
		      [:swilena/python/sps-common.in],
		      [:swilena/python/sps-local.in]),
		[chmod +x swilena/python/sps-local])
428

429
dnl<<lrde
430
431
432
433
## -------- ##
## Scribo.  ##
## -------- ##

434
435
436
AC_ARG_ENABLE([scribo],
              [AS_HELP_STRING([--enable-scribo],
                              [enable Scribo])])
437
AM_CONDITIONAL([ENABLE_SCRIBO], [test "x$enable_scribo" = xyes])
438
439
440

AC_CONFIG_FILES([
  scribo/Makefile
441
442
443
    scribo/demo/Makefile
      scribo/demo/review/Makefile
      scribo/demo/viewer/Makefile
444
445
    scribo/src/Makefile
      scribo/src/binarization/Makefile
446
447
      scribo/src/contest/Makefile
      scribo/src/contest/hdibco-2010/Makefile
448
      scribo/src/debug/Makefile
449
      scribo/src/filter/Makefile
450
      scribo/src/misc/Makefile
451
      scribo/src/postprocessing/Makefile
452
      scribo/src/preprocessing/Makefile
453
454
455
456
      scribo/src/primitive/Makefile
	scribo/src/primitive/extract/Makefile
	scribo/src/primitive/find/Makefile
        scribo/src/primitive/group/Makefile
457
      scribo/src/table/Makefile
458
      scribo/src/text/Makefile
459
460
461
462
463
464
])

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

AC_CONFIG_FILES([
  scribo/tests/Makefile
465
    scribo/tests/binarization/Makefile
466
    scribo/tests/core/Makefile
467
468
469
470
    scribo/tests/filter/Makefile
    scribo/tests/preprocessing/Makefile
    scribo/tests/table/Makefile
    scribo/tests/text/Makefile
471
472
    scribo/tests/toolchain/Makefile
    scribo/tests/toolchain/nepomuk/Makefile
473
    scribo/tests/unit_test/Makefile
474
])
475
476
477
478
479
480
481
482
483

# 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
484
dnl>>
Roland Levillain's avatar
Roland Levillain committed
485

486
487
488
489
## --------------- ##
## Configuration.  ##
## --------------- ##

490
491
# Ask for config.h creation.
AC_CONFIG_HEADERS([config.h])
492

493
494
495
496
# 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])

497
498
499
# Ask for the Makefile creations.
AC_CONFIG_FILES([
  Makefile
Roland Levillain's avatar
Roland Levillain committed
500
    external/Makefile
501
502
    milena/Makefile
      milena/doc/Makefile
503
      milena/mesh/Makefile
504
])
505

506

507
508
509
510
## ------- ##
## Tests.  ##
## ------- ##

Roland Levillain's avatar
Roland Levillain committed
511
512
# Ask for the creation of a milena/tests/data.hh, used to access to
# data (images) from tests.
513
514
AC_CONFIG_FILES([milena/tests/data.hh])

Roland Levillain's avatar
Roland Levillain committed
515
# Ask for the creation of tests' Makefiles.
516
AC_CONFIG_FILES([
517
  milena/tests/Makefile
Roland Levillain's avatar
Roland Levillain committed
518
    milena/tests/accu/Makefile
519
    milena/tests/accu/image/Makefile
520
    milena/tests/accu/site_set/Makefile
521
    milena/tests/accu/stat/Makefile
522
    milena/tests/accu/math/Makefile
523
    milena/tests/accu/shape/Makefile
524
    milena/tests/algebra/Makefile
525
    milena/tests/arith/Makefile
526
    milena/tests/binarization/Makefile
Roland Levillain's avatar
Roland Levillain committed
527
    milena/tests/border/Makefile
528
529
530
531
    milena/tests/canvas/Makefile
      milena/tests/canvas/browsing/Makefile
      milena/tests/canvas/morpho/Makefile
    milena/tests/convert/Makefile
532
    milena/tests/convert/impl/Makefile
Roland Levillain's avatar
Roland Levillain committed
533
    milena/tests/core/Makefile
Nicolas Ballas's avatar
Nicolas Ballas committed
534
535
      milena/tests/core/alias/Makefile
      milena/tests/core/image/Makefile
536
	milena/tests/core/image/dmorph/Makefile
537
538
	milena/tests/core/image/imorph/Makefile
	milena/tests/core/image/vmorph/Makefile
Nicolas Ballas's avatar
Nicolas Ballas committed
539
540
541
      milena/tests/core/other/Makefile
      milena/tests/core/routine/Makefile
      milena/tests/core/site_set/Makefile
542
    milena/tests/data/Makefile
543
544
      milena/tests/data/approx/Makefile
      milena/tests/data/naive/Makefile
Roland Levillain's avatar
Roland Levillain committed
545
546
547
    milena/tests/debug/Makefile
    milena/tests/display/Makefile
    milena/tests/draw/Makefile
548
    milena/tests/estim/Makefile
549
    milena/tests/extension/Makefile
550
551
552
    milena/tests/fun/Makefile
      milena/tests/fun/i2v/Makefile
      milena/tests/fun/p2b/Makefile
553
      milena/tests/fun/p2p/Makefile
554
      milena/tests/fun/p2v/Makefile
555
      milena/tests/fun/stat/Makefile
556
      milena/tests/fun/v2v/Makefile
557
      milena/tests/fun/vv2v/Makefile
Roland Levillain's avatar
Roland Levillain committed
558
559
      milena/tests/fun/x2x/Makefile
    milena/tests/geom/Makefile
560
561
    milena/tests/graph/Makefile
      milena/tests/graph/attribute/Makefile
Roland Levillain's avatar
Roland Levillain committed
562
    milena/tests/histo/Makefile
563
    milena/tests/io/Makefile
564
      milena/tests/io/dicom/Makefile
565
      milena/tests/io/dump/Makefile
Roland Levillain's avatar
Roland Levillain committed
566
      milena/tests/io/fits/Makefile
567
      milena/tests/io/fld/Makefile
568
      milena/tests/io/magick/Makefile
569
      milena/tests/io/off/Makefile
Roland Levillain's avatar
Roland Levillain committed
570
      milena/tests/io/pbm/Makefile
571
      milena/tests/io/pbms/Makefile
572
573
      milena/tests/io/pfm/Makefile
      milena/tests/io/pgm/Makefile
574
      milena/tests/io/pgms/Makefile
575
576
      milena/tests/io/pnm/Makefile
      milena/tests/io/ppm/Makefile
577
      milena/tests/io/ppms/Makefile
578
      milena/tests/io/tiff/Makefile
579
    milena/tests/labeling/Makefile
Roland Levillain's avatar
Roland Levillain committed
580
581
582
583
    milena/tests/linear/Makefile
      milena/tests/linear/local/Makefile
    milena/tests/literal/Makefile
    milena/tests/logical/Makefile
584
    milena/tests/make/Makefile
Roland Levillain's avatar
Roland Levillain committed
585
586
587
588
589
    milena/tests/math/Makefile
    milena/tests/metal/Makefile
      milena/tests/metal/make/Makefile
      milena/tests/metal/math/Makefile
    milena/tests/morpho/Makefile
590
      milena/tests/morpho/approx/Makefile
591
      milena/tests/morpho/attribute/Makefile
592
      milena/tests/morpho/closing/Makefile
593
      milena/tests/morpho/closing/approx/Makefile
594
      milena/tests/morpho/elementary/Makefile
595
      milena/tests/morpho/opening/Makefile
596
      milena/tests/morpho/opening/approx/Makefile
597
      milena/tests/morpho/reconstruction/Makefile
598
        milena/tests/morpho/reconstruction/by_dilation/Makefile
599
        milena/tests/morpho/reconstruction/by_erosion/Makefile
600
      milena/tests/morpho/tree/Makefile
Edwin Carlinet's avatar
Edwin Carlinet committed
601
	milena/tests/morpho/tree/filter/Makefile
602
      milena/tests/morpho/watershed/Makefile
603
    milena/tests/norm/Makefile
604
    milena/tests/opt/Makefile
Roland Levillain's avatar
Roland Levillain committed
605
606
607
    milena/tests/pw/Makefile
    milena/tests/set/Makefile
    milena/tests/tag/Makefile
608
    milena/tests/test/Makefile
609
    milena/tests/topo/Makefile
610
      milena/tests/topo/skeleton/Makefile
Roland Levillain's avatar
Roland Levillain committed
611
612
613
614
615
    milena/tests/trace/Makefile
    milena/tests/trait/Makefile
      milena/tests/trait/image/Makefile
      milena/tests/trait/op/Makefile
      milena/tests/trait/value/Makefile
616
    milena/tests/transform/Makefile
617
    milena/tests/unit_test/Makefile
618
619
    milena/tests/upscaling/Makefile
      milena/tests/upscaling/art/Makefile
620
    milena/tests/util/Makefile
Roland Levillain's avatar
Roland Levillain committed
621
622
623
624
    milena/tests/value/Makefile
      milena/tests/value/builtin/Makefile
      milena/tests/value/concept/Makefile
    milena/tests/win/Makefile
625
    milena/tests/world/Makefile
626
      milena/tests/world/binary_2d/Makefile
627
628
      milena/tests/world/inter_pixel/Makefile
	milena/tests/world/inter_pixel/dim2/Makefile
629
])
630

631
632
dnl<<lrde
AC_CONFIG_FILES([
633
  milena/tests/extract/Makefile
634
635
636
637
638
639
  milena/tests/linear/gaussian/Makefile
  milena/tests/registration/Makefile
  milena/tests/subsampling/Makefile
])
dnl>>

640
641
642
643
644

## -------------- ##
## Applications.  ##
## -------------- ##

645
646
647
648
# 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])

649
650
651
652
653
AC_ARG_ENABLE([apps],
              [AS_HELP_STRING([--enable-apps],
                              [enable application])])
AM_CONDITIONAL([ENABLE_APPS], [test "x$enable_apps" = "xyes"])

654
# Ask for the creation of applications' Makefiles.
655
656
AC_CONFIG_FILES([
  milena/apps/Makefile
657
    milena/apps/constrained-connectivity/Makefile
658
659
660
661
    milena/apps/graph-morpho/Makefile
    milena/apps/mesh-segm-skel/Makefile
    milena/apps/papers/Makefile
      milena/apps/papers/levillain.09.ismm/Makefile
662
])
663
664

# Configure tests.
665
666
# FIXME: Consider using `sed' instead of `configure' to create these
# tests for the sake of speed.
667
668
669
670
671
672
673
674
675
676
677
678
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-max-curv],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-max-curv])
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv])
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-segm],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-segm])
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-segm],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-segm])
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-segm],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-max-curv-segm])
AC_CONFIG_FILES([milena/apps/mesh-segm-skel/test-mesh-complex-skel],
		[chmod +x milena/apps/mesh-segm-skel/test-mesh-complex-skel])
679

680
681
682
AC_CONFIG_FILES([milena/apps/constrained-connectivity/test-constrained-connectivity],
		[chmod +x milena/apps/constrained-connectivity/test-constrained-connectivity])

683
# Flags for apps.
684
AC_ARG_VAR([APPS_CXXFLAGS], [C++ compiler flags for applications])
685
# We want fast binaries for apps.
686
687
688
689
690
691
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
692
693
fi

694
695
696
697
698
699
700
701
702
703
704
705
706
## ------- ##
## Tools.  ##
## ------- ##

AC_ARG_ENABLE([tools],
              [AS_HELP_STRING([--enable-tools],
                              [enable tools])])
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.
707
AC_ARG_VAR([TOOLS_CXXFLAGS], [C++ compiler flags for tools])
708
# We want fast binaries for tools.
709
710
711
712
713
714
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
715
716
fi

Guillaume Lazzara's avatar
Guillaume Lazzara committed
717
AC_MSG_RESULT([-------------------------------------------------------------------------------])
718
AC_MSG_RESULT([Update Olena configuration])
719
AC_OUTPUT
720
721
722


AC_MSG_RESULT([
Guillaume Lazzara's avatar
Guillaume Lazzara committed
723
724
725
-------------------------------------------------------------------------------
Configuration summary.

726
727
728
729
730
731
732
733
734

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

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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
735
			Option			Enabled and available
736
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
737
738
739
740
741
742
743
744
745
Boost Preprocessor      --with-boost=[DIR]	$oln_have_boost_preprocessor
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
Trimesh 		--enable-trimesh	$enable_trimesh
746
747
748
749
750
751
752
753
754
755
-------------------------------------------------------------------------------




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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
756
			Option			Enabled
757
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
758
759
Scribo			--enable-scribo		$enable_scribo
Swilena			--enable-swilena	$enable_swilena
760
761
762
763
764
765
766
767
768
769
-------------------------------------------------------------------------------




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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
770
			Option			Enabled
771
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
772
773
Apps			--enable-apps		$enable_apps
Tools			--enable-tools		$enable_tools
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
-------------------------------------------------------------------------------



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
  PKG_CONFIG	  = $PKG_CONFIG
  QT_PATH	  = $QT_PATH
  QMAKE		  = $QMAKE
  MOC		  = $MOC
  UIC		  = $UIC
  RCC		  = $RCC
Guillaume Lazzara's avatar
Guillaume Lazzara committed
796
  BOOST_ROOT 	  = $BOOST_ROOT
797
798
799
800
801
802
  MAGICKXX_CFLAGS = $MAGICKXX_CFLAGS
  MAGICKXX_LIBS   = $MAGICKXX_LIBS
  SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
  APPS_CXXFLAGS   = $APPS_CXXFLAGS
  TOOLS_CXXFLAGS  = $TOOLS_CXXFLAGS

Guillaume Lazzara's avatar
Guillaume Lazzara committed
803
804
805
806
807
808
809
810


*******************************************************************************
Olena is configured as stated above. Please verify that this configuration
matches your expectations.

Then, type 'make' to build Olena and 'make install' to install it on
your system.
811
])