configure.ac 24.9 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
## ----- ##
## 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([-------])

218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
   # Is Boost installed?
   BOOST_REQUIRE([], oln_have_boost=no)

   if test "x$oln_have_boost" != xno; then

      # 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
Guillaume Lazzara's avatar
Guillaume Lazzara committed
240
241
242
243
244
245
246
247
   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])


248
249
250
251
## ---------------- ##
## CFITSIO library. ##
## ---------------- ##

Guillaume Lazzara's avatar
Guillaume Lazzara committed
252
253
254
255
256
257
if test "x$with_cfitsio" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* libcfitsio])
   AC_MSG_RESULT([------------])
fi

258
OLN_WITH_LIB([CFITSIO], [fitsio.h], [cfitsio])
259

260
261

#------------------------------------------------------------
262
263
264
265

## --------- ##
## Magick++. ##
## --------- ##
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.
270

271
272
273
274
275
276
277

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
278
279
280
281
282
283
284
oln_have_magickxx=no

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

285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
   # Try to use ImageMagick from a specified path.
   if test "x$with_magickxx" != xyes; then
      AC_MSG_CHECKING([with given path $with_magickxx])
      AC_MSG_RESULT([])
      OLN_WITH_LIB([Magick++], [Magick++.h], [Magick++], [magickxx],
      		   [MAGICKXX])
   fi

   # Check with pkg-config if previous test failed or if no path have
   # been passed through --with-magickxx argument.
   if test "x$oln_have_magickxx" = xno; then
      AC_MSG_CHECKING([with pkg-config])
      AC_MSG_RESULT([])
      PKG_CHECK_MODULES(MAGICKXX,[ImageMagick++], oln_have_magickxx=yes,
      						  oln_have_magickxx=no)
   AC_MSG_RESULT([])

      if test "x$oln_have_magickxx" = xyes; 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
   fi
312
313
fi

Guillaume Lazzara's avatar
Guillaume Lazzara committed
314
AM_CONDITIONAL(HAVE_MAGICKXX, test "x$oln_have_magickxx" = xyes)
315
316
317

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

Guillaume Lazzara's avatar
Guillaume Lazzara committed
318
319
320
## --- ##
## Qt. ##
## --- ##
321

Guillaume Lazzara's avatar
Guillaume Lazzara committed
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
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])
343

344

345
346
347
348
## ---------- ##
## Tesseract. ##
## ---------- ##

Guillaume Lazzara's avatar
Guillaume Lazzara committed
349
350
351
352
353
if test "x$with_tesseract" != xno; then
   AC_MSG_RESULT([])
   AC_MSG_RESULT([* Tesseract])
   AC_MSG_RESULT([-----------])
fi
354

Guillaume Lazzara's avatar
Guillaume Lazzara committed
355
356
OLN_WITH_LIB([TESSERACT], [tesseract/baseapi.h], [tesseract_full],
   	     [tesseract], [TESSERACT])
357

Guillaume Lazzara's avatar
Guillaume Lazzara committed
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379

## ------------- ##
## 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([---------])
380
fi
Guillaume Lazzara's avatar
Guillaume Lazzara committed
381
382
383
384
385
386

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


387

388

389
AC_MSG_RESULT([])
Guillaume Lazzara's avatar
Guillaume Lazzara committed
390
AC_MSG_RESULT([-------------------------------------------------------------------------------])
391
392
393
394
AC_MSG_RESULT([])
AC_MSG_RESULT([])


395
396
397
398
399
## ---------------------------- ##
## (Bundled) trimesh2 library.  ##
## ---------------------------- ##

AC_ARG_ENABLE([trimesh],
400
              [AS_HELP_STRING([--enable-trimesh],
401
                              [build the (bundled) trimesh2 library])])
402
AM_CONDITIONAL([ENABLE_TRIMESH], [test "x$enable_trimesh" = xyes])
403
404
AC_CONFIG_SUBDIRS([external/trimesh])

Roland Levillain's avatar
Roland Levillain committed
405
406
407
408
## --------- ##
## Swilena.  ##
## --------- ##

409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
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
435

436
AC_CONFIG_FILES([swilena/Makefile
437
		 swilena/python/Makefile])
438

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

441
AC_CONFIG_FILES(m4_do([swilena/python/sps],
442
443
444
		      [:swilena/python/sps-common.in],
		      [:swilena/python/sps.in]),
		[chmod +x swilena/python/sps])
445
AC_CONFIG_FILES(m4_do([swilena/python/sps-local],
446
447
448
		      [:swilena/python/sps-common.in],
		      [:swilena/python/sps-local.in]),
		[chmod +x swilena/python/sps-local])
449

450
dnl<<lrde
451
452
453
454
## -------- ##
## Scribo.  ##
## -------- ##

455
456
457
AC_ARG_ENABLE([scribo],
              [AS_HELP_STRING([--enable-scribo],
                              [enable Scribo])])
458
AM_CONDITIONAL([ENABLE_SCRIBO], [test "x$enable_scribo" = xyes])
459
460
461

AC_CONFIG_FILES([
  scribo/Makefile
462
463
464
    scribo/demo/Makefile
      scribo/demo/review/Makefile
      scribo/demo/viewer/Makefile
465
466
    scribo/src/Makefile
      scribo/src/binarization/Makefile
467
468
      scribo/src/contest/Makefile
      scribo/src/contest/hdibco-2010/Makefile
469
      scribo/src/debug/Makefile
470
      scribo/src/filter/Makefile
471
      scribo/src/misc/Makefile
472
      scribo/src/postprocessing/Makefile
473
      scribo/src/preprocessing/Makefile
474
475
476
477
      scribo/src/primitive/Makefile
	scribo/src/primitive/extract/Makefile
	scribo/src/primitive/find/Makefile
        scribo/src/primitive/group/Makefile
478
      scribo/src/table/Makefile
479
      scribo/src/text/Makefile
480
481
482
483
484
485
])

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

AC_CONFIG_FILES([
  scribo/tests/Makefile
486
    scribo/tests/binarization/Makefile
487
    scribo/tests/core/Makefile
488
489
    scribo/tests/filter/Makefile
    scribo/tests/preprocessing/Makefile
490
491
    scribo/tests/primitive/Makefile
    scribo/tests/primitive/link/Makefile
492
493
    scribo/tests/table/Makefile
    scribo/tests/text/Makefile
494
495
    scribo/tests/toolchain/Makefile
    scribo/tests/toolchain/nepomuk/Makefile
496
    scribo/tests/unit_test/Makefile
497
])
498
499
500
501
502
503
504
505
506

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

509
510
511
512
## --------------- ##
## Configuration.  ##
## --------------- ##

513
514
# Ask for config.h creation.
AC_CONFIG_HEADERS([config.h])
515

516
517
518
519
# 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])

520
521
522
# Ask for the Makefile creations.
AC_CONFIG_FILES([
  Makefile
Roland Levillain's avatar
Roland Levillain committed
523
    external/Makefile
524
525
    milena/Makefile
      milena/doc/Makefile
526
      milena/mesh/Makefile
527
])
528

529

530
531
532
533
## ------- ##
## Tests.  ##
## ------- ##

Roland Levillain's avatar
Roland Levillain committed
534
535
# Ask for the creation of a milena/tests/data.hh, used to access to
# data (images) from tests.
536
537
AC_CONFIG_FILES([milena/tests/data.hh])

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

654
655
dnl<<lrde
AC_CONFIG_FILES([
656
  milena/tests/extract/Makefile
657
658
659
660
661
662
  milena/tests/linear/gaussian/Makefile
  milena/tests/registration/Makefile
  milena/tests/subsampling/Makefile
])
dnl>>

663
664
665
666
667

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

668
669
670
671
# 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])

672
673
674
675
676
AC_ARG_ENABLE([apps],
              [AS_HELP_STRING([--enable-apps],
                              [enable application])])
AM_CONDITIONAL([ENABLE_APPS], [test "x$enable_apps" = "xyes"])

677
# Ask for the creation of applications' Makefiles.
678
679
AC_CONFIG_FILES([
  milena/apps/Makefile
680
    milena/apps/constrained-connectivity/Makefile
681
682
683
684
    milena/apps/graph-morpho/Makefile
    milena/apps/mesh-segm-skel/Makefile
    milena/apps/papers/Makefile
      milena/apps/papers/levillain.09.ismm/Makefile
685
])
686
687

# Configure tests.
688
689
# FIXME: Consider using `sed' instead of `configure' to create these
# tests for the sake of speed.
690
691
692
693
694
695
696
697
698
699
700
701
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])
702

703
704
705
AC_CONFIG_FILES([milena/apps/constrained-connectivity/test-constrained-connectivity],
		[chmod +x milena/apps/constrained-connectivity/test-constrained-connectivity])

706
# Flags for apps.
707
AC_ARG_VAR([APPS_CXXFLAGS], [C++ compiler flags for applications])
708
# We want fast binaries for apps.
709
710
711
712
713
714
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
715
716
fi

717
718
719
720
721
722
723
724
725
726
727
728
729
## ------- ##
## 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.
730
AC_ARG_VAR([TOOLS_CXXFLAGS], [C++ compiler flags for tools])
731
# We want fast binaries for tools.
732
733
734
735
736
737
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
738
739
fi

Guillaume Lazzara's avatar
Guillaume Lazzara committed
740
AC_MSG_RESULT([-------------------------------------------------------------------------------])
741
AC_MSG_RESULT([Update Olena configuration])
742
AC_OUTPUT
743
744
745


AC_MSG_RESULT([
Guillaume Lazzara's avatar
Guillaume Lazzara committed
746
747
748
-------------------------------------------------------------------------------
Configuration summary.

749
750
751
752
753
754
755
756
757

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

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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
758
			Option			Enabled and available
759
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
760
761
762
763
764
765
766
767
768
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
769
770
771
772
773
774
775
776
777
778
-------------------------------------------------------------------------------




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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
779
			Option			Enabled
780
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
781
782
Scribo			--enable-scribo		$enable_scribo
Swilena			--enable-swilena	$enable_swilena
783
784
785
786
787
788
789
790
791
792
-------------------------------------------------------------------------------




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


Guillaume Lazzara's avatar
Guillaume Lazzara committed
793
			Option			Enabled
794
-------------------------------------------------------------------------------
Guillaume Lazzara's avatar
Guillaume Lazzara committed
795
796
Apps			--enable-apps		$enable_apps
Tools			--enable-tools		$enable_tools
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
-------------------------------------------------------------------------------



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
819
  BOOST_ROOT 	  = $BOOST_ROOT
820
821
  MAGICKXX_CFLAGS = $MAGICKXX_CPPFLAGS
  MAGICKXX_LIBS   = $MAGICKXX_LDFLAGS
822
823
824
825
  SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
  APPS_CXXFLAGS   = $APPS_CXXFLAGS
  TOOLS_CXXFLAGS  = $TOOLS_CXXFLAGS

Guillaume Lazzara's avatar
Guillaume Lazzara committed
826
827
828
829
830
831
832
833


*******************************************************************************
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.
834
])