configure.ac 7.79 KB
Newer Older
1
2
3
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

4
5
m4_pattern_forbid([^MLN_])

Roland Levillain's avatar
Roland Levillain committed
6
AC_PREREQ([2.61])
7
8
9
10
11
12


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

13
AC_INIT([Olena], [1.0beta], [olena@lrde.epita.fr], [olena])
14
15
16
17
18
19

# Auxiliary files.
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_FILES([build-aux/Makefile])

# Automake.
Roland Levillain's avatar
Roland Levillain committed
20
AM_INIT_AUTOMAKE([1.10 foreign check-news dist-bzip2 nostdinc -Wall])
21
22
23
24
25
26
27
28
29
30
31
32
AC_CONFIG_HEADERS([config.h:config.hin] [milena/mln/version.hh])

# Misc. variables.
AC_DEFINE_UNQUOTED([MLN_PACKAGE_NAME], ["$PACKAGE_NAME"],
		   [Package Full name.])
AC_DEFINE_UNQUOTED([MLN_PACKAGE_BUGREPORT], ["$PACKAGE_BUGREPORT"],
                   [Bug report address.])                           
AC_DEFINE_UNQUOTED([MLN_PACKAGE_STRING], ["$PACKAGE_STRING"], 
                   [Full name and version.])                        
AC_DEFINE_UNQUOTED([MLN_PACKAGE_VERSION], ["$PACKAGE_VERSION"],
                   [Package Version.])

33
34

## --------------------- ##
35
## C++ compiler set up.  ##
36
37
## --------------------- ##

Roland Levillain's avatar
Roland Levillain committed
38
39
40
41
42
43
# 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

44
45
46
47
# Look for a C++ compiler.
AC_LANG([C++])
AC_PROG_CXX

48
# Speed up compiling times.
49
50
51
52
if test "$GXX" = yes; then
  CXXFLAGS="$CXXFLAGS -pipe"
fi

53
54
55
56
57
58
59
# ------------------------------ #
# C++ compiler flags for tests.  #
# ------------------------------ #

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

# Standard flas for tests.
60
AC_ARG_VAR([TESTS_CXXFLAGS])
61
# We want no optimization for the tests (it slows down compiling
62
# times), and debugging information.
63
if test "$GXX" = yes && test -z "$TESTS_CXXFLAGS"; then
64
65
66
  TESTS_CXXFLAGS="-O0 -ggdb -Wall -W"
fi

67
# Flags for complex tests.
68
69
70
71
72
73
74
AC_ARG_VAR([TESTS_CXXFLAGS_SPEED])
# We want optimization for complex tests, and keep debugging flags
# (still useful).
if test "$GXX" = yes && test -z "$TESTS_CXXFLAGS_SPEED"; then
  TESTS_CXXFLAGS_SPEED="-O3 -DNDEBUG -ggdb -Wall -W"
fi

75
76
77
78
79
80
81
82
83
# Flags for tests with with all debugging features turned on.
AC_ARG_VAR([TESTS_CXXFLAGS_DEBUG])
# 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
if test "$GXX" = yes && test -z "$TESTS_CXXFLAGS_DEBUG"; then
Roland Levillain's avatar
Roland Levillain committed
84
  TESTS_CXXFLAGS_DEBUG="-O0 -ggdb -Wall -W -D_GLIBCXX_DEBUG -D_GLIBCXX_CONCEPT_CHECKS"
85
86
87
88
89
90
fi

# ----------------- #
# Flags for tools.  #
# ----------------- #

91
AC_ARG_VAR([TOOLS_CXXFLAGS])
92
# We want fast binaries for tools.
93
if test "$GXX" = yes && test -z "$TOOLS_CXXFLAGS"; then
94
  TOOLS_CXXFLAGS="-O3 -DNDEBUG -ggdb -Wall -W"
95
96
fi

97

98
99
100
101
102
103
104
105
106
107
108
## ------------------ ##
## Libraries set up.  ##
## ------------------ ##

# Use Libtool.
AC_PROG_LIBTOOL

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

Roland Levillain's avatar
Roland Levillain committed
109
110
111

# (Bundled) trimesh2 library.
AC_CONFIG_SUBDIRS([external/trimesh])
112
113

# FreeImage library.
114
115
OLN_WITH_FREEIMAGEPLUS
AM_CONDITIONAL([FREEIMAGEPLUS], [test x$oln_have_freeimageplus = xyes])
116

117
118
119
120
# Cfitsio library.
OLN_WITH_CFITSIO
AM_CONDITIONAL([CFITSIO], [test x$oln_have_cfitsio = xyes])

121

Roland Levillain's avatar
Roland Levillain committed
122
123
124
125
126
127
128
## --------- ##
## Swilena.  ##
## --------- ##

OLN_WITH_SWILENA([with_swilena=yes], [with_swilena=no])
AM_CONDITIONAL([ENABLE_SWILENA], [test x$with_swilena = xyes])

129
130
# FIXME: Should we still configure these files if ENABLE_SWILENA is
# false?
131
132
133
AC_CONFIG_FILES([swilena/Makefile
                 swilena/python/Makefile])

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

136
137
138
139
140
141
142
143
144
145
AC_CONFIG_FILES(m4_do([swilena/python/sps],
	              [:swilena/python/sps-common.in],
                      [:swilena/python/sps.in]),
                [chmod +x swilena/python/sps])
AC_CONFIG_FILES(m4_do([swilena/python/sps-local],
                      [:swilena/python/sps-common.in],
                      [:swilena/python/sps-local.in]),
                [chmod +x swilena/python/sps-local])


Roland Levillain's avatar
Roland Levillain committed
146

147
148
149
150
151
## --------------- ##
## Configuration.  ##
## --------------- ##

# Ask for config.h.
152
#AM_CONFIG_HEADER([config.h])
153
154
155
156

# Ask for the Makefile creations.
AC_CONFIG_FILES([
  Makefile
Roland Levillain's avatar
Roland Levillain committed
157
    external/Makefile
158
159
    milena/Makefile
      milena/doc/Makefile
160
161
      milena/doc/tutorial/Makefile
      milena/doc/tutorial/samples/Makefile
162
      milena/mesh/Makefile
163
      milena/tools/Makefile
164
])
165
166
167
168
169
170


## ------- ##
## Tests.  ##
## ------- ##

Roland Levillain's avatar
Roland Levillain committed
171
172
# Ask for the creation of a milena/tests/data.hh, used to access to
# data (images) from tests.
173
174
AC_CONFIG_FILES([milena/tests/data.hh])

Roland Levillain's avatar
Roland Levillain committed
175
# Ask for the creation of tests' Makefiles.
176
# FIXME: Should it be achieved through oln.m4 macros, as we did in Olena 0.11?
177
AC_CONFIG_FILES([
178
  milena/tests/Makefile
Roland Levillain's avatar
Roland Levillain committed
179
    milena/tests/accu/Makefile
180
    milena/tests/algebra/Makefile
181
    milena/tests/arith/Makefile
182
    milena/tests/binarization/Makefile
Roland Levillain's avatar
Roland Levillain committed
183
    milena/tests/border/Makefile
184
185
186
187
    milena/tests/canvas/Makefile
      milena/tests/canvas/browsing/Makefile
      milena/tests/canvas/morpho/Makefile
    milena/tests/convert/Makefile
Roland Levillain's avatar
Roland Levillain committed
188
    milena/tests/core/Makefile
Nicolas Ballas's avatar
Nicolas Ballas committed
189
190
191
192
193
      milena/tests/core/alias/Makefile
      milena/tests/core/image/Makefile
      milena/tests/core/other/Makefile
      milena/tests/core/routine/Makefile
      milena/tests/core/site_set/Makefile
194
    milena/tests/data/Makefile
Roland Levillain's avatar
Roland Levillain committed
195
196
197
    milena/tests/debug/Makefile
    milena/tests/display/Makefile
    milena/tests/draw/Makefile
198
    milena/tests/estim/Makefile
199
    milena/tests/extension/Makefile
200
201
202
203
204
    milena/tests/fun/Makefile
      milena/tests/fun/i2v/Makefile
      milena/tests/fun/p2b/Makefile
      milena/tests/fun/p2v/Makefile
      milena/tests/fun/v2v/Makefile
205
      milena/tests/fun/vv2v/Makefile
Roland Levillain's avatar
Roland Levillain committed
206
207
208
      milena/tests/fun/x2x/Makefile
    milena/tests/geom/Makefile
    milena/tests/histo/Makefile
209
    milena/tests/io/Makefile
Roland Levillain's avatar
Roland Levillain committed
210
      milena/tests/io/fits/Makefile
211
      milena/tests/io/off/Makefile
Roland Levillain's avatar
Roland Levillain committed
212
      milena/tests/io/pbm/Makefile
213
214
215
216
217
      milena/tests/io/pfm/Makefile
      milena/tests/io/pgm/Makefile
      milena/tests/io/pnm/Makefile
      milena/tests/io/ppm/Makefile
    milena/tests/labeling/Makefile
Roland Levillain's avatar
Roland Levillain committed
218
219
220
221
222
223
224
    milena/tests/level/Makefile
      milena/tests/level/approx/Makefile
      milena/tests/level/naive/Makefile
    milena/tests/linear/Makefile
      milena/tests/linear/local/Makefile
    milena/tests/literal/Makefile
    milena/tests/logical/Makefile
225
    milena/tests/make/Makefile
Roland Levillain's avatar
Roland Levillain committed
226
227
228
229
230
    milena/tests/math/Makefile
    milena/tests/metal/Makefile
      milena/tests/metal/make/Makefile
      milena/tests/metal/math/Makefile
    milena/tests/morpho/Makefile
231
232
    milena/tests/morpho/elementary/Makefile
    milena/tests/morpho/tree/Makefile
233
    milena/tests/norm/Makefile
234
    milena/tests/opt/Makefile
Roland Levillain's avatar
Roland Levillain committed
235
    milena/tests/pw/Makefile
236
    milena/tests/registration/Makefile
Roland Levillain's avatar
Roland Levillain committed
237
    milena/tests/set/Makefile
238
    milena/tests/subsampling/Makefile
Roland Levillain's avatar
Roland Levillain committed
239
    milena/tests/tag/Makefile
240
    milena/tests/test/Makefile
241
    milena/tests/topo/Makefile
Roland Levillain's avatar
Roland Levillain committed
242
243
244
245
246
247
    milena/tests/trace/Makefile
    milena/tests/trait/Makefile
      milena/tests/trait/image/Makefile
      milena/tests/trait/op/Makefile
      milena/tests/trait/value/Makefile
    milena/tests/util/Makefile
248
    milena/tests/unit_test/Makefile
Roland Levillain's avatar
Roland Levillain committed
249
250
251
252
    milena/tests/value/Makefile
      milena/tests/value/builtin/Makefile
      milena/tests/value/concept/Makefile
    milena/tests/win/Makefile
253
])
254

255
256
257
258
259
260
261

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

# Ask for the creation of applications' Makefiles.
# FIXME: Should it be achieved through oln.m4 macros, as we did in Olena 0.11?
262
263
264
265
266
# FIXME: ENABLE IT
#AC_CONFIG_FILES([
#  milena/apps/Makefile
#    milena/apps/statues/Makefile
#])
267
268
269
270
271
272

# Configure tests.
AC_CONFIG_FILES([milena/apps/statues/test],
		[chmod +x milena/apps/statues/test])


273
AC_OUTPUT