comparison configure.ac @ 15063:36cbcc37fdb8

Refactor configure.ac to make it more understandable. Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests. * configure.ac, m4/acinclude.m4: Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests.
author Rik <rik@octave.org>
date Tue, 31 Jul 2012 10:28:51 -0700
parents 6130d87495b8
children c53c28c7c811
comparison
equal deleted inserted replaced
15060:5156934606d7 15063:36cbcc37fdb8
50 50
51 AM_INIT_AUTOMAKE([1.11 tar-ustar]) 51 AM_INIT_AUTOMAKE([1.11 tar-ustar])
52 52
53 OCTAVE_HOST_TYPE 53 OCTAVE_HOST_TYPE
54 54
55 AC_DEFINE(OCTAVE_SOURCE, 1, [Define if this is Octave.]) 55 AC_DEFINE(OCTAVE_SOURCE, 1, [Define to 1 if this is Octave.])
56 56
57 dnl FIXME -- we should probably only generate this file if it is missing. 57 dnl FIXME: Can this MSVC test be moved down to the section on finding a
58 dnl a C compiler which already has an MSVC exception test?
59 dnl FIXME: We should probably only generate this file if it is missing.
58 ### Produce unistd.h for MSVC target, this simplifies changes in 60 ### Produce unistd.h for MSVC target, this simplifies changes in
59 ### Octave source tree and avoid problems with lex-generated code. 61 ### Octave source tree and avoid problems with lex-generated code.
60 case "$canonical_host_type" in 62 case "$canonical_host_type" in
61 *-*-msdosmsvc) 63 *-*-msdosmsvc)
62 AC_MSG_NOTICE([Generating replacement for <unistd.h> for MSVC]) 64 AC_MSG_NOTICE([Generating replacement for <unistd.h> for MSVC])
70 ;; 72 ;;
71 esac 73 esac
72 74
73 AC_USE_SYSTEM_EXTENSIONS 75 AC_USE_SYSTEM_EXTENSIONS
74 76
75 ### Check for MSVC
76 have_msvc=no
77 case "$canonical_host_type" in
78 *-*-msdosmsvc)
79 have_msvc=yes
80 ;;
81 *-*-mingw*)
82 AC_MSG_CHECKING([for MSVC compiler])
83 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
84 #ifndef _MSC_VER
85 #error "Not MSVC compiler"
86 #endif
87 ])], have_msvc=yes, have_msvc=no)
88 AC_MSG_RESULT([$have_msvc])
89 ;;
90 esac
91
92 ### Path separator. 77 ### Path separator.
78
93 sepchar=: 79 sepchar=:
94 AC_ARG_WITH(sepchar, 80 AC_ARG_WITH(sepchar,
95 [AS_HELP_STRING([--with-sepchar=<char>], 81 [AS_HELP_STRING([--with-sepchar=<char>],
96 [use <char> as the path separation character])]) 82 [use <char> as the path separation character])])
97 case $with_sepchar in 83 case $with_sepchar in
111 esac 97 esac
112 AC_SUBST(sepchar) 98 AC_SUBST(sepchar)
113 AC_DEFINE_UNQUOTED(SEPCHAR, ['$sepchar'], [Define this to be the path separator for your system, as a character constant.]) 99 AC_DEFINE_UNQUOTED(SEPCHAR, ['$sepchar'], [Define this to be the path separator for your system, as a character constant.])
114 AC_DEFINE_UNQUOTED(SEPCHAR_STR, ["$sepchar"], [Define this to the path separator, as a string.]) 100 AC_DEFINE_UNQUOTED(SEPCHAR_STR, ["$sepchar"], [Define this to the path separator, as a string.])
115 101
116 ### some defaults 102 ### Set default file locations
117 103
118 OCTAVE_SET_DEFAULT(man1dir, '$(mandir)/man1') 104 OCTAVE_SET_DEFAULT(man1dir, '$(mandir)/man1')
119 OCTAVE_SET_DEFAULT(man1ext, '.1') 105 OCTAVE_SET_DEFAULT(man1ext, '.1')
120 OCTAVE_SET_DEFAULT(doc_cache_file, '$(octetcdir)/doc-cache') 106 OCTAVE_SET_DEFAULT(doc_cache_file, '$(octetcdir)/doc-cache')
121 OCTAVE_SET_DEFAULT(texi_macros_file, '$(octetcdir)/macros.texi') 107 OCTAVE_SET_DEFAULT(texi_macros_file, '$(octetcdir)/macros.texi')
153 ### Make configure args available for other uses. 139 ### Make configure args available for other uses.
154 140
155 config_opts=$ac_configure_args 141 config_opts=$ac_configure_args
156 AC_SUBST(config_opts) 142 AC_SUBST(config_opts)
157 143
158 ### Make it possible to have Octave's array and matrix classes do bounds 144 ### Enable bounds checking on element references within Octave's array and
159 ### checking on element references. This slows some operations down a 145 ### matrix classes. This slows down some operations a bit, so it is turned off
160 ### bit, so it is turned off by default. 146 ### by default.
161 147
162 BOUNDS_CHECKING=false 148 BOUNDS_CHECKING=false
163 AC_ARG_ENABLE(bounds-check, 149 AC_ARG_ENABLE(bounds-check,
164 [AS_HELP_STRING([--enable-bounds-check], 150 [AS_HELP_STRING([--enable-bounds-check],
165 [bounds checking for indexing in internal array classes (default is no)])], 151 [bounds checking for indexing in internal array classes (default is no)])],
166 [if test "$enableval" = yes; then BOUNDS_CHECKING=true; fi], []) 152 [if test "$enableval" = yes; then BOUNDS_CHECKING=true; fi], [])
167 if $BOUNDS_CHECKING; then 153 if $BOUNDS_CHECKING; then
168 AC_DEFINE(BOUNDS_CHECKING, 1, [Define to use internal bounds checking.]) 154 AC_DEFINE(BOUNDS_CHECKING, 1, [Define to 1 to use internal bounds checking.])
169 fi 155 fi
156
157 ### Use Octave's built-in memory allocator rather than straightforward malloc.
158 ### Disabled by default.
170 159
171 USE_OCTAVE_ALLOCATOR=false 160 USE_OCTAVE_ALLOCATOR=false
172 AC_ARG_ENABLE(octave-allocator, 161 AC_ARG_ENABLE(octave-allocator,
173 [AS_HELP_STRING([--enable-octave-allocator], 162 [AS_HELP_STRING([--enable-octave-allocator],
174 [use the obsolete octave_allocator class for many of Octave's objects (mostly octave_value types). You probably do NOT want to enable this feature. (default is no)])], 163 [use the obsolete octave_allocator class for many of Octave's objects (mostly octave_value types). You probably do NOT want to enable this feature. (default is no)])],
175 [if test "$enableval" = yes; then USE_OCTAVE_ALLOCATOR=true; fi], []) 164 [if test "$enableval" = yes; then USE_OCTAVE_ALLOCATOR=true; fi], [])
176 if $USE_OCTAVE_ALLOCATOR; then 165 if $USE_OCTAVE_ALLOCATOR; then
177 AC_DEFINE(USE_OCTAVE_ALLOCATOR, 1, [Define to use octave_allocator class.]) 166 AC_DEFINE(USE_OCTAVE_ALLOCATOR, 1, [Define to 1 to use octave_allocator class.])
178 fi 167 fi
168
169 ### Use atomic operations for internal reference counting. This is required
170 ### for thread-safe behavior but incurs a significant slowdown, and is thus
171 ### disabled by default.
179 172
180 USE_ATOMIC_REFCOUNT=false 173 USE_ATOMIC_REFCOUNT=false
181 AC_ARG_ENABLE(atomic-refcount, 174 AC_ARG_ENABLE(atomic-refcount,
182 [AS_HELP_STRING([--enable-atomic-refcount], 175 [AS_HELP_STRING([--enable-atomic-refcount],
183 [use atomic operations for internal reference counting. This is required for thread-safe behavior. (default is no)])], 176 [use atomic operations for internal reference counting. This is required for thread-safe behavior. (default is no)])],
184 [if test "$enableval" = yes; then USE_ATOMIC_REFCOUNT=true; fi], []) 177 [if test "$enableval" = yes; then USE_ATOMIC_REFCOUNT=true; fi], [])
185 if $USE_ATOMIC_REFCOUNT; then 178 if $USE_ATOMIC_REFCOUNT; then
186 AC_DEFINE(USE_ATOMIC_REFCOUNT, 1, [Define to use atomic operations for reference counting.]) 179 AC_DEFINE(USE_ATOMIC_REFCOUNT, 1, [Define to 1 to use atomic operations for reference counting.])
187 fi 180 fi
188 181
189 ### Make it possible to disable running Make in the doc directory. 182 ### Disable running Make in the doc directory.
190 ### Useful for building on systems without TeX, for example. 183 ### This is useful, for example, when building Octave on systems without TeX.
184
191 DOCDIR=doc 185 DOCDIR=doc
192 AC_ARG_ENABLE(docs, 186 AC_ARG_ENABLE(docs,
193 [AS_HELP_STRING([--enable-docs], [build documentation (default is yes)])], 187 [AS_HELP_STRING([--enable-docs], [build documentation (default is yes)])],
194 [if test "$enableval" = no; then 188 [if test "$enableval" = no; then
195 DOCDIR= 189 DOCDIR=
213 if test $ac_cv_sizeof_void_p -eq 8; then 207 if test $ac_cv_sizeof_void_p -eq 8; then
214 if test $ac_cv_sizeof_int -eq 8; then 208 if test $ac_cv_sizeof_int -eq 8; then
215 OCTAVE_IDX_TYPE=int 209 OCTAVE_IDX_TYPE=int
216 elif test $ac_cv_sizeof_long -eq 8; then 210 elif test $ac_cv_sizeof_long -eq 8; then
217 OCTAVE_IDX_TYPE=long 211 OCTAVE_IDX_TYPE=long
218 AC_DEFINE(IDX_TYPE_LONG, 1, [Define to 1 if octave index type is long]) 212 AC_DEFINE(IDX_TYPE_LONG, 1, [Define to 1 if octave index type is long.])
219 else 213 else
220 warn_64_bit="no suitable type found for octave_idx_type so disabling 64-bit features" 214 warn_64_bit="no suitable type found for octave_idx_type so disabling 64-bit features"
221 OCTAVE_CONFIGURE_WARNING([warn_64_bit]) 215 OCTAVE_CONFIGURE_WARNING([warn_64_bit])
222 USE_64_BIT_IDX_T=false 216 USE_64_BIT_IDX_T=false
223 fi 217 fi
224 else 218 else
225 warn_64_bit="pointers are not 64-bits wide so disabling 64-bit features" 219 warn_64_bit="pointers are not 64-bits wide; disabling 64-bit features"
226 OCTAVE_CONFIGURE_WARNING([warn_64_bit]) 220 OCTAVE_CONFIGURE_WARNING([warn_64_bit])
227 USE_64_BIT_IDX_T=false 221 USE_64_BIT_IDX_T=false
228 fi 222 fi
229 fi 223 fi
230 AC_SUBST(OCTAVE_IDX_TYPE) 224 AC_SUBST(OCTAVE_IDX_TYPE)
231 AC_DEFINE_UNQUOTED(OCTAVE_IDX_TYPE, $OCTAVE_IDX_TYPE, 225 AC_DEFINE_UNQUOTED(OCTAVE_IDX_TYPE, $OCTAVE_IDX_TYPE,
232 [Define to the type of octave_idx_type (64 or 32 bit signed integer)]) 226 [Define to the type of octave_idx_type (64 or 32 bit signed integer).])
233 if $USE_64_BIT_IDX_T; then 227 if $USE_64_BIT_IDX_T; then
234 AC_DEFINE(USE_64_BIT_IDX_T, 1, [Define if using 64-bit integers for array dimensions and indexing]) 228 AC_DEFINE(USE_64_BIT_IDX_T, 1, [Define to 1 if using 64-bit integers for array dimensions and indexing.])
235 fi 229 fi
236 AC_SUBST(USE_64_BIT_IDX_T) 230 AC_SUBST(USE_64_BIT_IDX_T)
237 231
238 ### It seems that there are some broken inline assembly functions in 232 ### It seems that there are some broken inline assembly functions in
239 ### the GNU libc. Since I'm not sure how to test whether we are using 233 ### the GNU libc. Since I'm not sure how to test whether we are using
240 ### GNU libc, just disable them for all platforms. 234 ### GNU libc, just disable them for all platforms.
241 235
242 AC_MSG_NOTICE([defining __NO_MATH_INLINES avoids buggy GNU libc exp function]) 236 AC_MSG_NOTICE([defining __NO_MATH_INLINES avoids buggy GNU libc exp function])
243 AC_DEFINE(__NO_MATH_INLINES, 1, [Define if your version of GNU libc has buggy inline assembly code for math functions like exp.]) 237 AC_DEFINE(__NO_MATH_INLINES, 1, [Define to 1 if your version of GNU libc has buggy inline assembly code for math functions like exp.])
244 238
245 ### See which C++ compiler to use (we expect to find g++). 239 ### Determine which C++ compiler to use (we expect to find g++).
246 240
247 AC_PROG_CXX 241 AC_PROG_CXX
248 AC_PROG_CXXCPP 242 AC_PROG_CXXCPP
249 243
250 ### Do special things for g++. 244 ### Check version number when using g++.
251 245
252 gxx_version=`$CXX -v 2>&1 | grep "^.*g.. version" | \ 246 gxx_version=`$CXX -v 2>&1 | grep "^.*g.. version" | \
253 sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'` 247 sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`
254 248
255 case "$gxx_version" in 249 case "$gxx_version" in
267 261
268 OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL 262 OCTAVE_CXX_NEW_FRIEND_TEMPLATE_DECL
269 OCTAVE_CXX_ISO_COMPLIANT_LIBRARY 263 OCTAVE_CXX_ISO_COMPLIANT_LIBRARY
270 OCTAVE_CXX_BROKEN_REINTERPRET_CAST 264 OCTAVE_CXX_BROKEN_REINTERPRET_CAST
271 265
272 ### See which C compiler to use (we expect to find gcc). 266 ### Determine which C compiler to use (we expect to find gcc).
273 267
274 AC_PROG_CC 268 AC_PROG_CC
275 AC_PROG_CPP 269 AC_PROG_CPP
276 AC_PROG_GCC_TRADITIONAL 270 AC_PROG_GCC_TRADITIONAL
277 271
278 ### gnulib 272 ## Check for MSVC
273 have_msvc=no
274 case "$canonical_host_type" in
275 *-*-msdosmsvc)
276 have_msvc=yes
277 ;;
278 *-*-mingw*)
279 AC_MSG_CHECKING([for MSVC compiler])
280 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
281 #ifndef _MSC_VER
282 #error "Not MSVC compiler"
283 #endif
284 ])], have_msvc=yes, have_msvc=no)
285 AC_MSG_RESULT([$have_msvc])
286 ;;
287 esac
288
289 ### gnulib initialization
279 290
280 gl_EARLY 291 gl_EARLY
281 gl_INIT 292 gl_INIT
282 293
283 ### Do special things for gcc. 294 ### Check version number when using gcc.
284 295
285 gcc_version=`$CC -v 2>&1 | grep "^.*gcc version" | \ 296 gcc_version=`$CC -v 2>&1 | grep "^.*gcc version" | \
286 sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//'` 297 sed -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//'`
287 case "$gcc_version" in 298 case "$gcc_version" in
288 [12].*) 299 [12].*)
295 if test -n "$gcc_version"; then 306 if test -n "$gcc_version"; then
296 CC_VERSION="$gcc_version" 307 CC_VERSION="$gcc_version"
297 fi 308 fi
298 AC_SUBST(CC_VERSION) 309 AC_SUBST(CC_VERSION)
299 310
300 ### The flag to create dependency varies depending on the compier. 311 ### Determine the compiler flag necessary to create dependencies
301 312
302 # Assume GCC. 313 ## Assume GCC.
303 INCLUDE_DEPS=true 314 INCLUDE_DEPS=true
304 DEPEND_FLAGS="-M" 315 DEPEND_FLAGS="-M"
305 DEPEND_EXTRA_SED_PATTERN="" 316 DEPEND_EXTRA_SED_PATTERN=""
306 if test "$GCC" = yes; then 317 if test "$GCC" = yes; then
307 true 318 true
325 fi 336 fi
326 AC_SUBST(INCLUDE_DEPS) 337 AC_SUBST(INCLUDE_DEPS)
327 AC_SUBST(DEPEND_FLAGS) 338 AC_SUBST(DEPEND_FLAGS)
328 AC_SUBST(DEPEND_EXTRA_SED_PATTERN) 339 AC_SUBST(DEPEND_EXTRA_SED_PATTERN)
329 340
341 ### Check for pthread library
342
330 AX_PTHREAD 343 AX_PTHREAD
331 ### Include pthread libs and flags here in case other tests need them. 344 ## Include pthread libs and flags here in case other tests need them.
332 ### They seem to be required for the OpenGL tests on Debian systems. 345 ## They seem to be required for the OpenGL tests on Debian systems.
333 LIBS="$PTHREAD_LIBS $LIBS" 346 LIBS="$PTHREAD_LIBS $LIBS"
334 CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 347 CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
335
336 AC_PATH_X
337 if test "$have_x" = "yes"; then
338 AC_DEFINE(HAVE_X_WINDOWS, 1, [Define if you have X11])
339
340 if test "$x_includes" != "NONE"; then
341 X11_INCFLAGS="$x_includes"
342 fi
343 AC_SUBST(X11_INCFLAGS)
344
345 if test -z $x_libraries; then
346 AC_CHECK_LIB(X11, XrmInitialize, [X11_LIBS=-lX11], [X11_LIBS=])
347 elif test $x_libraries != "NONE"; then
348 AC_CHECK_LIB(X11, XrmInitialize,
349 [X11_LIBS="-L$x_libraries -lX11"], [X11_LIBS=], "-L$x_libraries")
350 fi
351 AC_SUBST(X11_LIBS)
352 fi
353
354 ### On MacOSX system the Carbon framework is used to determine ScreenSize
355 OCTAVE_HAVE_FRAMEWORK(Carbon, [#include <Carbon/Carbon.h>], [CGMainDisplayID ()],
356 [have_framework_carbon="yes"], [have_framework_carbon="no"])
357 if test $have_framework_carbon = "yes"; then
358 AC_DEFINE(HAVE_FRAMEWORK_CARBON, 1, [Define if framework CARBON is available.])
359 CARBON_LIBS="-Wl,-framework -Wl,Carbon"
360 AC_MSG_NOTICE([adding -Wl,-framework -Wl,Carbon to CARBON_LIBS])
361 AC_SUBST(CARBON_LIBS)
362 fi
363 348
364 ### When compiling math for x87, problems may arise in some code comparing 349 ### When compiling math for x87, problems may arise in some code comparing
365 ### floating-point intermediate results. 350 ### floating-point intermediate results.
366 ### Generally, it helps to store the result in a local volatile variable, 351 ### Generally, it helps to store the result in a local volatile variable,
367 ### but it also degrades performance. 352 ### but it also degrades performance.
374 [if test "$enableval" = yes; then ac_float_truncate=volatile; 359 [if test "$enableval" = yes; then ac_float_truncate=volatile;
375 else ac_float_truncate=; fi], 360 else ac_float_truncate=; fi],
376 ac_float_truncate=) 361 ac_float_truncate=)
377 362
378 AC_DEFINE_UNQUOTED(FLOAT_TRUNCATE, $ac_float_truncate, 363 AC_DEFINE_UNQUOTED(FLOAT_TRUNCATE, $ac_float_truncate,
379 [Define to volatile if you need truncating intermediate FP results]) 364 [Define to volatile if you need to truncate intermediate FP results.])
380 365
381 ### On Intel systems with gcc, we may need to compile with -mieee-fp 366 ### Determine extra CFLAGS that may be necessary for Octave.
382 ### and -ffloat-store to get full support for IEEE floating point. 367
383 ### 368 ## On Intel systems with gcc, we may need to compile with -mieee-fp
384 ### On Alpha/OSF systems, we need -mieee. 369 ## and -ffloat-store to get full support for IEEE floating point.
370 ##
371 ## On Alpha/OSF systems, we need -mieee.
385 372
386 ieee_fp_flag= 373 ieee_fp_flag=
387 case "$canonical_host_type" in 374 case "$canonical_host_type" in
388 ## Keep this pattern first, so that it is preferred over the 375 ## Keep this pattern first, so that it is preferred over the
389 ## following pattern for x86. 376 ## following pattern for x86.
392 OCTAVE_CC_FLAG(-mieee-fp, [ 379 OCTAVE_CC_FLAG(-mieee-fp, [
393 ieee_fp_flag=-mieee-fp 380 ieee_fp_flag=-mieee-fp
394 XTRA_CFLAGS="$XTRA_CFLAGS -mieee-fp" 381 XTRA_CFLAGS="$XTRA_CFLAGS -mieee-fp"
395 AC_MSG_NOTICE([adding -mieee-fp to XTRA_CFLAGS])]) 382 AC_MSG_NOTICE([adding -mieee-fp to XTRA_CFLAGS])])
396 383
397 ### OCTAVE_CC_FLAG(-ffloat-store, [ 384 ## OCTAVE_CC_FLAG(-ffloat-store, [
398 ### float_store_flag=-ffloat-store 385 ## float_store_flag=-ffloat-store
399 ### XTRA_CFLAGS="$XTRA_CFLAGS -ffloat-store" 386 ## XTRA_CFLAGS="$XTRA_CFLAGS -ffloat-store"
400 ### AC_MSG_RESULT([adding -ffloat-store to XTRA_CFLAGS])]) 387 ## AC_MSG_RESULT([adding -ffloat-store to XTRA_CFLAGS])])
401 fi 388 fi
402 if test "$GXX" = yes; then 389 if test "$GXX" = yes; then
403 OCTAVE_CXX_FLAG(-mieee-fp, [ 390 OCTAVE_CXX_FLAG(-mieee-fp, [
404 ieee_fp_flag=-mieee-fp 391 ieee_fp_flag=-mieee-fp
405 XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp" 392 XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mieee-fp"
406 AC_MSG_NOTICE([adding -mieee-fp to XTRA_CXXFLAGS])]) 393 AC_MSG_NOTICE([adding -mieee-fp to XTRA_CXXFLAGS])])
407 394
408 ### OCTAVE_CXX_FLAG(-ffloat-store, [ 395 ## OCTAVE_CXX_FLAG(-ffloat-store, [
409 ### float_store_flag=-ffloat-store 396 ## float_store_flag=-ffloat-store
410 ### XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ffloat-store" 397 ## XTRA_CXXFLAGS="$XTRA_CXXFLAGS -ffloat-store"
411 ### AC_MSG_RESULT([adding -ffloat-store to XTRA_CXXFLAGS])]) 398 ## AC_MSG_RESULT([adding -ffloat-store to XTRA_CXXFLAGS])])
412 fi 399 fi
413 ;; 400 ;;
414 alpha*-*-*) 401 alpha*-*-*)
415 if test "$GCC" = yes; then 402 if test "$GCC" = yes; then
416 OCTAVE_CC_FLAG(-mieee, [ 403 OCTAVE_CC_FLAG(-mieee, [
442 OCTAVE_CXX_FLAG(-mminimal-toc, [ 429 OCTAVE_CXX_FLAG(-mminimal-toc, [
443 XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mminimal-toc"]) 430 XTRA_CXXFLAGS="$XTRA_CXXFLAGS -mminimal-toc"])
444 ;; 431 ;;
445 esac 432 esac
446 433
447 ## Test whether the compiler supports OpenMP. Experimental so disable by 434 AC_SUBST(XTRA_CFLAGS)
448 ## default. Enable it with the flag --enable-openmp 435 AC_SUBST(XTRA_CXXFLAGS)
436
437 ### Test whether the compiler supports OpenMP. This is experimental so disable
438 ### it by default. Enable it with the flag --enable-openmp.
439
449 USE_OPENMP=false 440 USE_OPENMP=false
450 AC_ARG_ENABLE(openmp, 441 AC_ARG_ENABLE(openmp,
451 [AS_HELP_STRING([--enable-openmp], 442 [AS_HELP_STRING([--enable-openmp],
452 [(EXPERIMENTAL) use OpenMP SMP multi-threading])], 443 [(EXPERIMENTAL) use OpenMP SMP multi-threading])],
453 [if test "$enableval" = yes; then USE_OPENMP=true; fi], []) 444 [if test "$enableval" = yes; then USE_OPENMP=true; fi], [])
455 case "$canonical_host_type" in 446 case "$canonical_host_type" in
456 *-*-mingw* | *-*-cygwin* | *-*-gnu*) 447 *-*-mingw* | *-*-cygwin* | *-*-gnu*)
457 OCTAVE_CHECK_OPENMP(-fopenmp) 448 OCTAVE_CHECK_OPENMP(-fopenmp)
458 ;; 449 ;;
459 *-*-msdosmsvc) 450 *-*-msdosmsvc)
460 ## FIXME is this the right flag for MSVC? 451 ## FIXME: is this the right flag for MSVC?
461 OCTAVE_CHECK_OPENMP(-openmp) 452 OCTAVE_CHECK_OPENMP(-openmp)
462 ;; 453 ;;
463 ## Add other compilers supporting OpenMP here 454 ## Add other compilers supporting OpenMP here
464 esac 455 esac
465 fi 456 fi
466 457
467 AC_SUBST(XTRA_CFLAGS) 458 dnl FIXME: This is OS-specific tests. Can this be moved further down in
468 AC_SUBST(XTRA_CXXFLAGS) 459 dnl configure.ac to reside with other similar tests?
469
470 ## Avoid #define of min/max from windows.h header
471 if test "$have_msvc" = "yes"; then
472 AC_DEFINE(NOMINMAX, 1, [Define if you want to avoid min/max macro definition in Windows headers])
473 fi
474
475 ### Use -static if compiling on Alpha OSF/1 1.3 systems. 460 ### Use -static if compiling on Alpha OSF/1 1.3 systems.
476 461
477 case "$canonical_host_type" in 462 case "$canonical_host_type" in
478 alpha*-dec-osf1.3) 463 alpha*-dec-osf1.3)
479 LD_STATIC_FLAG=-static 464 LD_STATIC_FLAG=-static
503 BUILD_CXXFLAGS='$(CXXFLAGS)' 488 BUILD_CXXFLAGS='$(CXXFLAGS)'
504 BUILD_LDFLAGS='$(LDFLAGS)' 489 BUILD_LDFLAGS='$(LDFLAGS)'
505 case "$canonical_host_type" in 490 case "$canonical_host_type" in
506 sparc-sun-solaris2*) 491 sparc-sun-solaris2*)
507 if test "$GCC" != yes; then 492 if test "$GCC" != yes; then
493 ## FIXME: gendoc.cc is no longer used for building documentation.
494 ## Can this test be eliminated?
508 ## The Sun C++ compiler never seems to complete compiling 495 ## The Sun C++ compiler never seems to complete compiling
509 ## gendoc.cc unless we reduce the optimization level... 496 ## gendoc.cc unless we reduce the optimization level...
510 BUILD_CXXFLAGS="-g -O1" 497 BUILD_CXXFLAGS="-g -O1"
511 fi 498 fi
512 ;; 499 ;;
533 ;; 520 ;;
534 *) 521 *)
535 AC_CHECK_LIB(m, sin) 522 AC_CHECK_LIB(m, sin)
536 ;; 523 ;;
537 esac 524 esac
525
526 ### Determine the Fortran compiler and how to invoke it
538 527
539 ## Default FFLAGS is -O. 528 ## Default FFLAGS is -O.
540 if test "x$FFLAGS" = x; then 529 if test "x$FFLAGS" = x; then
541 FFLAGS="-O" 530 FFLAGS="-O"
542 fi 531 fi
588 AC_SUBST(F77_TOLOWER) 577 AC_SUBST(F77_TOLOWER)
589 AC_SUBST(F77_APPEND_UNDERSCORE) 578 AC_SUBST(F77_APPEND_UNDERSCORE)
590 AC_SUBST(F77_APPEND_EXTRA_UNDERSCORE) 579 AC_SUBST(F77_APPEND_EXTRA_UNDERSCORE)
591 580
592 if test -z "$F77"; then 581 if test -z "$F77"; then
593 AC_MSG_ERROR([in order to build octave, you must have a compatible Fortran compiler or wrapper script for f2c that functions as a Fortran compiler installed and in your path. See the file INSTALL for more information.]) 582 AC_MSG_ERROR([in order to build Octave, you must have a compatible Fortran compiler or wrapper script for f2c that functions as a Fortran compiler installed and in your path. See the file INSTALL for more information.])
594 fi 583 fi
595 584
596 OCTAVE_CHECK_FORTRAN_HAVE_ISNAN 585 OCTAVE_CHECK_FORTRAN_HAVE_ISNAN
597 F77_ISNAN_MACRO= 586 F77_ISNAN_MACRO=
598 if test "x$octave_cv_fortran_have_isnan" = xno; then 587 if test "x$octave_cv_fortran_have_isnan" = xno; then
599 AC_MSG_NOTICE([substituting ISNAN(X) with X.NE.X in fortran sources]) 588 AC_MSG_NOTICE([substituting ISNAN(X) with X.NE.X in Fortran sources])
600 F77_ISNAN_MACRO="s|ISNAN(\(@<:@^)@:>@*\))|(\1.NE.\1)|" 589 F77_ISNAN_MACRO="s|ISNAN(\(@<:@^)@:>@*\))|(\1.NE.\1)|"
601 fi 590 fi
602 AC_SUBST(F77_ISNAN_MACRO) 591 AC_SUBST(F77_ISNAN_MACRO)
603 592
604 OCTAVE_CHECK_FORTRAN_INTEGER_SIZE 593 OCTAVE_CHECK_FORTRAN_INTEGER_SIZE
629 esac 618 esac
630 if test -z "$octave_cv_fortran_integer_size"; then 619 if test -z "$octave_cv_fortran_integer_size"; then
631 OCTAVE_CHECK_FORTRAN_INTEGER_SIZE 620 OCTAVE_CHECK_FORTRAN_INTEGER_SIZE
632 fi 621 fi
633 if test "x$octave_cv_fortran_integer_size" = xno; then 622 if test "x$octave_cv_fortran_integer_size" = xno; then
634 AC_MSG_ERROR([in order to build octave with 64-bit indexing support your Fortran compiler must have an option for setting the default integer size to 8 bytes. See the file INSTALL for more information.]) 623 AC_MSG_ERROR([in order to build Octave with 64-bit indexing support your Fortran compiler must have an option for setting the default integer size to 8 bytes. See the file INSTALL for more information.])
635 fi 624 fi
636 else 625 else
637 AC_MSG_ERROR([your Fortran compiler must have an option to make integers the same size as octave_idx_type ($OCTAVE_IDX_TYPE). See the file INSTALL for more information.]) 626 AC_MSG_ERROR([your Fortran compiler must have an option to make integers the same size as octave_idx_type ($OCTAVE_IDX_TYPE). See the file INSTALL for more information.])
638 fi 627 fi
639 fi 628 fi
646 AC_MSG_RESULT([setting F77_FLOAT_STORE_FLAG to -ffloat-store]) 635 AC_MSG_RESULT([setting F77_FLOAT_STORE_FLAG to -ffloat-store])
647 F77_FLOAT_STORE_FLAG=-ffloat-store 636 F77_FLOAT_STORE_FLAG=-ffloat-store
648 AC_SUBST(F77_FLOAT_STORE_FLAG) 637 AC_SUBST(F77_FLOAT_STORE_FLAG)
649 ]) 638 ])
650 639
640 ### Check that C compiler and libraries support IEEE754 data format.
651 OCTAVE_IEEE754_DATA_FORMAT 641 OCTAVE_IEEE754_DATA_FORMAT
652 642
643 ### Check C++ library for various capabilities.
653 OCTAVE_CXX_BITWISE_OP_TEMPLATES 644 OCTAVE_CXX_BITWISE_OP_TEMPLATES
654 OCTAVE_CXX_COMPLEX_SETTERS 645 OCTAVE_CXX_COMPLEX_SETTERS
655 OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS 646 OCTAVE_CXX_COMPLEX_REFERENCE_ACCESSORS
656 647
657 OCTAVE_CARBON_CGDISPLAYBITSPERPIXEL 648 ### Check for the Qhull library
658
659 ### Check for the QHull library
660 649
661 OCTAVE_CHECK_LIBRARY(qhull, QHull, 650 OCTAVE_CHECK_LIBRARY(qhull, QHull,
662 [Qhull library not found -- this will result in loss of functionality of some geometry functions.], 651 [Qhull library not found -- this will result in loss of functionality of some geometry functions.],
663 [libqhull/libqhull.h qhull/libqhull.h libqhull.h qhull/qhull.h qhull.h], [qh_qhull], [], [], 652 [libqhull/libqhull.h qhull/libqhull.h libqhull.h qhull/qhull.h qhull.h], [qh_qhull], [], [],
664 [warn_qhull= 653 [warn_qhull=
665 OCTAVE_CHECK_QHULL_VERSION 654 OCTAVE_CHECK_QHULL_VERSION
666 OCTAVE_CHECK_QHULL_OK([TEXINFO_QHULL="@set HAVE_QHULL" 655 OCTAVE_CHECK_QHULL_OK([TEXINFO_QHULL="@set HAVE_QHULL"
667 AC_DEFINE(HAVE_QHULL, 1, [Define if QHull is available.])], [ 656 AC_DEFINE(HAVE_QHULL, 1, [Define to 1 if Qhull is available.])], [
668 warn_qhull="Qhull library found, but seems not to work properly -- this will result in loss of functionality of some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])]) 657 warn_qhull="Qhull library found, but does not seem to work properly -- this will result in loss of functionality of some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])])
669 658
670 ### Check for pcre regex library. 659 ### Check for PCRE regex library.
671 660
672 REGEX_LIBS= 661 REGEX_LIBS=
673 662
674 pcre_fail_msg="to build Octave, you must have the PCRE library and header files installed" 663 pcre_fail_msg="to build Octave, you must have the PCRE library and header files installed"
675 664
713 702
714 OCTAVE_CHECK_LIBRARY(z, ZLIB, 703 OCTAVE_CHECK_LIBRARY(z, ZLIB,
715 [ZLIB library not found. Octave will not be able to save or load compressed data files or HDF5 files.], 704 [ZLIB library not found. Octave will not be able to save or load compressed data files or HDF5 files.],
716 [zlib.h], [gzclearerr]) 705 [zlib.h], [gzclearerr])
717 706
718 ### Check for the llvm library 707 ### Check for the LLVM library
719 dnl 708 dnl
720 dnl 709 dnl LLVM is odd and has its own pkg-config like script. We should probably
721 dnl llvm is odd and has its own pkg-config like script. We should probably check 710 dnl check for existence and ???.
722 dnl for existance and
723 dnl 711 dnl
724 save_CPPFLAGS="$CPPFLAGS" 712 save_CPPFLAGS="$CPPFLAGS"
725 save_CXXFLAGS="$CXXFLAGS" 713 save_CXXFLAGS="$CXXFLAGS"
726 save_LIBS="$LIBS" 714 save_LIBS="$LIBS"
727 save_LDFLAGS="$LDFLAGS" 715 save_LDFLAGS="$LDFLAGS"
728 716
729 warn_llvm="LLVM library fails tests. JIT compilation will be disabled." 717 warn_llvm="LLVM library fails tests. JIT compilation will be disabled."
730 718
731 AC_ARG_VAR(LLVM_CONFIG, [path to llvm-config utility]) 719 AC_ARG_VAR(LLVM_CONFIG, [path to llvm-config utility])
732 720
733 AC_ARG_ENABLE([jit-debug], 721 AC_ARG_ENABLE([jit-debug],
734 AS_HELP_STRING([--enable-jit-debug], [Enable debug printing of jit IRs])) 722 AS_HELP_STRING([--enable-jit-debug], [Enable debug printing of JIT IRs]))
735 723
736 AS_IF([test "x$enable_jit_debug" = "xyes"], [ 724 AS_IF([test "x$enable_jit_debug" = "xyes"], [
737 AC_DEFINE(OCTAVE_JIT_DEBUG, 1, [Define for jit debug printing]) 725 AC_DEFINE(OCTAVE_JIT_DEBUG, 1, [Define to 1 for JIT debug printing.])
738 ]) 726 ])
739 727
740 LLVM_CXXFLAGS= 728 LLVM_CXXFLAGS=
741 LLVM_CPPFLAGS= 729 LLVM_CPPFLAGS=
742 LLVM_LDFLAGS= 730 LLVM_LDFLAGS=
743 LLVM_LIBS= 731 LLVM_LIBS=
744 732
745 if test "x$ac_cv_env_LLVM_CONFIG_set" = "xset"; then 733 if test "x$ac_cv_env_LLVM_CONFIG_set" = "xset"; then
746 # We use -isystem if avaiable because we do not want to see warnings in llvm 734 ## We use -isystem if available because we do not want to see warnings in LLVM
747 LLVM_INCLUDE_FLAG=-I 735 LLVM_INCLUDE_FLAG=-I
748 OCTAVE_CC_FLAG(-isystem ., [ 736 OCTAVE_CC_FLAG(-isystem ., [
749 LLVM_INCLUDE_FLAG=-isystem 737 LLVM_INCLUDE_FLAG=-isystem
750 AC_MSG_NOTICE([using -isystem for llvm headers])]) 738 AC_MSG_NOTICE([using -isystem for llvm headers])])
751 739
754 dnl Use -isystem so we don't get warnings from llvm headers 742 dnl Use -isystem so we don't get warnings from llvm headers
755 LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`" 743 LLVM_CPPFLAGS="$LLVM_INCLUDE_FLAG `$LLVM_CONFIG --includedir`"
756 LLVM_CXXFLAGS= 744 LLVM_CXXFLAGS=
757 745
758 dnl 746 dnl
759 dnl We define some extra flags that llvm requires in order to include headers. 747 dnl We define some extra flags that LLVM requires in order to include headers.
760 dnl Idealy we should get these from llvm-config, but llvm-config isn't very 748 dnl Ideally we should get these from llvm-config, but llvm-config isn't very
761 dnl helpful. 749 dnl helpful.
762 dnl 750 dnl
763 CPPFLAGS="-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS $LLVM_CPPFLAGS $CPPFLAGS" 751 CPPFLAGS="-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS $LLVM_CPPFLAGS $CPPFLAGS"
764 CXXFLAGS="$LLVM_CXXFLAGS $CXXFLAGS" 752 CXXFLAGS="$LLVM_CXXFLAGS $CXXFLAGS"
765 LIBS="$LLVM_LIBS $LIBS" 753 LIBS="$LLVM_LIBS $LIBS"
780 ]) 768 ])
781 ]) 769 ])
782 AC_LANG_POP(C++) 770 AC_LANG_POP(C++)
783 771
784 else 772 else
785 warn_llvm="LLVM_CONFIG not set. JIT compilation will be disabled." 773 warn_llvm="LLVM_CONFIG not set. JIT compilation will be disabled."
786 fi 774 fi
787 775
788 if test -z "$warn_llvm"; then 776 if test -z "$warn_llvm"; then
789 AC_DEFINE(HAVE_LLVM, 1, [Define if LLVM is available]) 777 AC_DEFINE(HAVE_LLVM, 1, [Define to 1 if LLVM is available.])
790 else 778 else
791 LLVM_CXXFLAGS= 779 LLVM_CXXFLAGS=
792 LLVM_CPPFLAGS= 780 LLVM_CPPFLAGS=
793 LLVM_LDFLAGS= 781 LLVM_LDFLAGS=
794 LLVM_LIBS= 782 LLVM_LIBS=
815 [HDF5 library not found. Octave will not be able to save or load HDF5 data files.], 803 [HDF5 library not found. Octave will not be able to save or load HDF5 data files.],
816 [hdf5.h], [H5Gget_num_objs], [], [], 804 [hdf5.h], [H5Gget_num_objs], [], [],
817 [warn_hdf5= 805 [warn_hdf5=
818 OCTAVE_HDF5_HAS_ENFORCED_16_API 806 OCTAVE_HDF5_HAS_ENFORCED_16_API
819 TEXINFO_HDF5="@set HAVE_HDF5" 807 TEXINFO_HDF5="@set HAVE_HDF5"
820 AC_DEFINE(HAVE_HDF5, 1, [Define if HDF5 is available and newer than version 1.6.]) 808 AC_DEFINE(HAVE_HDF5, 1, [Define to 1 if HDF5 is available and newer than version 1.6.])
821 if test "$have_msvc" = "yes"; then 809 if test "$have_msvc" = "yes"; then
822 OCTAVE_HDF5_DLL 810 OCTAVE_HDF5_DLL
823 fi 811 fi
824 ]) 812 ])
825 CPPFLAGS="$save_CPPFLAGS" 813 CPPFLAGS="$save_CPPFLAGS"
826 LIBS="$save_LIBS" 814 LIBS="$save_LIBS"
827 815
828 816 ### Check for FFTW library. Default to Fortran FFTPACK if it is not available.
829 # Subdirectory of libcruft to build if fftw is not found: 817
830 818 ## Check for FFTW header and library.
831 FFT_DIR="fftpack"
832 AC_SUBST(FFT_DIR)
833
834 # Checks for FFTW header and library.
835
836 OCTAVE_CHECK_LIBRARY(fftw3, FFTW3, 819 OCTAVE_CHECK_LIBRARY(fftw3, FFTW3,
837 [FFTW3 library not found. The slower FFTPACK library will be used instead.], 820 [FFTW3 library not found. The slower FFTPACK library will be used instead.],
838 [fftw3.h], [fftw_plan_dft_1d]) 821 [fftw3.h], [fftw_plan_dft_1d])
839 822
840 OCTAVE_CHECK_LIBRARY(fftw3f, FFTW3F, 823 OCTAVE_CHECK_LIBRARY(fftw3f, FFTW3F,
842 [fftw3.h], [fftwf_plan_dft_1d]) 825 [fftw3.h], [fftwf_plan_dft_1d])
843 826
844 AM_CONDITIONAL([AMCOND_HAVE_FFTW], 827 AM_CONDITIONAL([AMCOND_HAVE_FFTW],
845 [test -n "$FFTW3_LIBS" && test -n "$FFTW3F_LIBS"]) 828 [test -n "$FFTW3_LIBS" && test -n "$FFTW3F_LIBS"])
846 829
847 # Checks for GLPK header and library. 830 ## Subdirectory of libcruft to build if FFTW is not found:
831 FFT_DIR="fftpack"
832 AC_SUBST(FFT_DIR)
833
834 ### Check for GLPK library and header.
848 835
849 save_CPPFLAGS="$CPPFLAGS" 836 save_CPPFLAGS="$CPPFLAGS"
850 CPPFLAGS="$Z_CPPFLAGS $CPPFLAGS" 837 CPPFLAGS="$Z_CPPFLAGS $CPPFLAGS"
851 save_LIBS="$LIBS" 838 save_LIBS="$LIBS"
852 LIBS="$Z_LDFLAGS $Z_LIBS $LIBS" 839 LIBS="$Z_LDFLAGS $Z_LIBS $LIBS"
854 [GLPK library not found. The glpk function for solving linear programs will be disabled.], 841 [GLPK library not found. The glpk function for solving linear programs will be disabled.],
855 [glpk/glpk.h glpk.h], [_glp_lpx_simplex]) 842 [glpk/glpk.h glpk.h], [_glp_lpx_simplex])
856 LIBS="$save_LIBS" 843 LIBS="$save_LIBS"
857 CPPFLAGS="$save_CPPFLAGS" 844 CPPFLAGS="$save_CPPFLAGS"
858 845
859 # Checks for CURL header and library. 846 ### Checks for cURL header and library.
860 847
861 save_CPPFLAGS="$CPPFLAGS" 848 save_CPPFLAGS="$CPPFLAGS"
862 CPPFLAGS="$Z_CPPFLAGS $CPPFLAGS" 849 CPPFLAGS="$Z_CPPFLAGS $CPPFLAGS"
863 save_LIBS="$LIBS" 850 save_LIBS="$LIBS"
864 LIBS="$Z_LDFLAGS $Z_LIBS $LIBS" 851 LIBS="$Z_LDFLAGS $Z_LIBS $LIBS"
866 [cURL library not found. The ftp objects, urlread and urlwrite functions will be disabled.], 853 [cURL library not found. The ftp objects, urlread and urlwrite functions will be disabled.],
867 [curl/curl.h], [curl_easy_escape]) 854 [curl/curl.h], [curl_easy_escape])
868 LIBS="$save_LIBS" 855 LIBS="$save_LIBS"
869 CPPFLAGS="$save_CPPFLAGS" 856 CPPFLAGS="$save_CPPFLAGS"
870 857
871 ### Graphics/ImageMagick++ 858 ### Check for either of Graphics/ImageMagick++ libraries
872 859
873 AC_ARG_WITH([magick], 860 AC_ARG_WITH([magick],
874 [AS_HELP_STRING([--with-magick=LIB], 861 [AS_HELP_STRING([--with-magick=LIB],
875 [select library to use for image I/O (options: GraphicsMagick(default) or ImageMagick)])], [ 862 [select library to use for image I/O (options: GraphicsMagick(default) or ImageMagick)])], [
876 magick="$withval"], [ 863 magick="$withval"], [
916 CPPFLAGS="$save_CPPFLAGS" 903 CPPFLAGS="$save_CPPFLAGS"
917 LIBS="$save_LIBS" 904 LIBS="$save_LIBS"
918 ]) 905 ])
919 906
920 if test -z "$warn_magick"; then 907 if test -z "$warn_magick"; then
921 AC_DEFINE(HAVE_MAGICK, 1, [Define if Graphics/ImageMagick++ is available.]) 908 AC_DEFINE(HAVE_MAGICK, 1, [Define to 1 if Graphics/ImageMagick++ is available.])
922 else 909 else
923 MAGICK_CPPFLAGS= 910 MAGICK_CPPFLAGS=
924 MAGICK_LDFLAGS= 911 MAGICK_LDFLAGS=
925 MAGICK_LIBS= 912 MAGICK_LIBS=
926 fi 913 fi
927 AC_SUBST(MAGICK_CPPFLAGS) 914 AC_SUBST(MAGICK_CPPFLAGS)
928 AC_SUBST(MAGICK_LDFLAGS) 915 AC_SUBST(MAGICK_LDFLAGS)
929 AC_SUBST(MAGICK_LIBS) 916 AC_SUBST(MAGICK_LIBS)
930 917
931 # --------------------------------------------------------------------- 918 ### Check for X11 libraries
932 919
933 ## libraries needed for native graphics renderer 920 AC_PATH_X
921 if test "$have_x" = "yes"; then
922 AC_DEFINE(HAVE_X_WINDOWS, 1, [Define to 1 if you have X11.])
923
924 if test "$x_includes" != "NONE"; then
925 X11_INCFLAGS="$x_includes"
926 fi
927 AC_SUBST(X11_INCFLAGS)
928
929 if test -z $x_libraries; then
930 AC_CHECK_LIB(X11, XrmInitialize, [X11_LIBS=-lX11], [X11_LIBS=])
931 elif test $x_libraries != "NONE"; then
932 AC_CHECK_LIB(X11, XrmInitialize,
933 [X11_LIBS="-L$x_libraries -lX11"], [X11_LIBS=], "-L$x_libraries")
934 fi
935 AC_SUBST(X11_LIBS)
936 fi
937
938 ### Check for the Carbon framework on MacOSX systems
939 OCTAVE_HAVE_FRAMEWORK(Carbon, [#include <Carbon/Carbon.h>], [CGMainDisplayID ()],
940 [have_framework_carbon="yes"], [have_framework_carbon="no"])
941 if test $have_framework_carbon = "yes"; then
942 AC_DEFINE(HAVE_FRAMEWORK_CARBON, 1, [Define to 1 if framework CARBON is available.])
943 CARBON_LIBS="-Wl,-framework -Wl,Carbon"
944 AC_MSG_NOTICE([adding -Wl,-framework -Wl,Carbon to CARBON_LIBS])
945 AC_SUBST(CARBON_LIBS)
946 fi
947
948 ### Check for list of libraries needed for native graphics renderer.
934 949
935 warn_freetype="" 950 warn_freetype=""
936 native_graphics=true 951 native_graphics=true
937 952
938 check_opengl=false 953 check_opengl=false
945 else 960 else
946 check_opengl=true 961 check_opengl=true
947 fi], 962 fi],
948 [check_opengl=true]) 963 [check_opengl=true])
949 964
965 ## Check for OpenGL library
950 if $check_opengl; then 966 if $check_opengl; then
951 OCTAVE_OPENGL 967 OCTAVE_OPENGL
952 fi 968 fi
953 969
954 GRAPHICS_LIBS= 970 GRAPHICS_LIBS=
955 GRAPHICS_CFLAGS= 971 GRAPHICS_CFLAGS=
956 972
957 if test -z "$OPENGL_LIBS"; then 973 if test -z "$OPENGL_LIBS"; then
958 if $check_opengl; then 974 if $check_opengl; then
959 warn_fltk_opengl="OpenGL libs (GL and GLU) not found. Native graphics will be disabled." 975 warn_fltk_opengl="OpenGL libs (GL and GLU) not found. Native graphics will be disabled."
960 OCTAVE_CONFIGURE_WARNING([warn_fltk_opengl]) 976 OCTAVE_CONFIGURE_WARNING([warn_fltk_opengl])
961 native_graphics=false 977 native_graphics=false
962 fi 978 fi
963 fi 979 fi
964 980
965 if test -n "$OPENGL_LIBS"; then 981 if test -n "$OPENGL_LIBS"; then
966 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is available]) 982 AC_DEFINE(HAVE_OPENGL, 1, [Define to 1 if OpenGL is available.])
967 983
968 ## freetype 2 984 ## Check for FreeType 2 library
969 985
970 AC_CHECK_FT2([9.0.3], [AC_DEFINE(HAVE_FREETYPE, 1, [Define to 1 if you have Freetype library.]) 986 AC_CHECK_FT2([9.0.3], [AC_DEFINE(HAVE_FREETYPE, 1, [Define to 1 if you have FreeType library.])
971 XTRA_CXXFLAGS="$XTRA_CXXFLAGS $FT2_CFLAGS"], 987 XTRA_CXXFLAGS="$XTRA_CXXFLAGS $FT2_CFLAGS"],
972 [warn_freetype="FreeType library not found. Native graphics will be disabled."]) 988 [warn_freetype="FreeType library not found. Native graphics will be disabled."])
973 989
974 if test -n "$warn_freetype"; then 990 if test -n "$warn_freetype"; then
975 OCTAVE_CONFIGURE_WARNING([warn_freetype]) 991 OCTAVE_CONFIGURE_WARNING([warn_freetype])
976 native_graphics=false 992 native_graphics=false
977 fi 993 fi
978 994
979 ## fontconfig library 995 ## Check for fontconfig library
980 996
981 warn_fontconfig="" 997 warn_fontconfig=""
982 if test -z "$warn_freetype"; then 998 if test -z "$warn_freetype"; then
983 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig], [ 999 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig], [
984 have_fontconfig=yes 1000 have_fontconfig=yes
985 OPENGL_LIBS="$FONTCONFIG_LIBS $OPENGL_LIBS" 1001 OPENGL_LIBS="$FONTCONFIG_LIBS $OPENGL_LIBS"
986 XTRA_CXXFLAGS="$XTRA_CXXFLAGS $FONTCONFIG_CFLAGS" 1002 XTRA_CXXFLAGS="$XTRA_CXXFLAGS $FONTCONFIG_CFLAGS"
987 AC_DEFINE(HAVE_FONTCONFIG, 1, [Define to 1 if fontconfig is present])], [ 1003 AC_DEFINE(HAVE_FONTCONFIG, 1, [Define to 1 if fontconfig is present.])], [
988 have_fontconfig=no 1004 have_fontconfig=no
989 warn_fontconfig="Fontconfig library not found. Native graphics will be disabled."]) 1005 warn_fontconfig="Fontconfig library not found. Native graphics will be disabled."])
990 fi 1006 fi
991 1007
992 if test -n "$warn_fontconfig"; then 1008 if test -n "$warn_fontconfig"; then
993 OCTAVE_CONFIGURE_WARNING([warn_fontconfig]) 1009 OCTAVE_CONFIGURE_WARNING([warn_fontconfig])
994 native_graphics=false 1010 native_graphics=false
995 fi 1011 fi
996 1012
997 ## fltk (www.fltk.org) 1013 ## Check for FLTK (www.fltk.org) library
998 1014
999 AC_ARG_WITH([fltk-prefix], [ 1015 AC_ARG_WITH([fltk-prefix], [
1000 AS_HELP_STRING([--with-fltk-prefix=PFX], 1016 AS_HELP_STRING([--with-fltk-prefix=PFX],
1001 [Prefix where FLTK is installed (optional)])], [ 1017 [Prefix where FLTK is installed (optional)])], [
1002 fltk_prefix="$withval"], [ 1018 fltk_prefix="$withval"], [
1048 [AC_LANG_PROGRAM([[#include <FL/gl.h>]], [[int nothing = 0;]])], 1064 [AC_LANG_PROGRAM([[#include <FL/gl.h>]], [[int nothing = 0;]])],
1049 [ 1065 [
1050 AC_MSG_RESULT([no]) 1066 AC_MSG_RESULT([no])
1051 warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled." 1067 warn_fltk_opengl="FLTK does not have OpenGL support. Native graphics will be disabled."
1052 ],[ 1068 ],[
1053 AC_DEFINE(HAVE_FLTK, 1, [Define if FLTK is available]) 1069 AC_DEFINE(HAVE_FLTK, 1, [Define to 1 if FLTK is available.])
1054 AC_MSG_RESULT([yes]) 1070 AC_MSG_RESULT([yes])
1055 ]) 1071 ])
1056 1072
1057 if test -z "$warn_fltk_opengl"; then 1073 if test -z "$warn_fltk_opengl"; then
1058 GRAPHICS_CFLAGS="$FLTK_CFLAGS" 1074 GRAPHICS_CFLAGS="$FLTK_CFLAGS"
1066 fi 1082 fi
1067 1083
1068 AC_SUBST(GRAPHICS_CFLAGS) 1084 AC_SUBST(GRAPHICS_CFLAGS)
1069 AC_SUBST(GRAPHICS_LIBS) 1085 AC_SUBST(GRAPHICS_LIBS)
1070 1086
1071 # ---------------------------------------------------------------------- 1087 ### Start determination of shared vs. static libraries
1072 1088
1073 OCTAVE_PROG_AR 1089 OCTAVE_PROG_AR
1074 1090
1075 ifdef([LT_INIT], [], [ 1091 ifdef([LT_INIT], [], [
1076 errprint([error: you must have libtool 2.2.2 or a more recent version 1092 errprint([error: you must have libtool 2.2.2 or a more recent version
1097 FLIBS="$FLIBS -lkernel32" 1113 FLIBS="$FLIBS -lkernel32"
1098 XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def" 1114 XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def"
1099 fi 1115 fi
1100 AC_SUBST(XTRA_CRUFT_SH_LDFLAGS) 1116 AC_SUBST(XTRA_CRUFT_SH_LDFLAGS)
1101 1117
1102 ### Checks for BLAS and LAPACK libraries: 1118 ### Check for BLAS and LAPACK libraries:
1103 1119
1104 ## Need to adjust FFLAGS to include correct integer size. 1120 ## Need to adjust FFLAGS to include correct integer size.
1105 save_FFLAGS="$FFLAGS" 1121 save_FFLAGS="$FFLAGS"
1106 FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG" 1122 FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"
1107 1123
1161 if test "x$ax_blas_f77_func_ok" = "xno"; then 1177 if test "x$ax_blas_f77_func_ok" = "xno"; then
1162 BLAS_LIBS="$octave_blaswrap_save_BLAS_LIBS" 1178 BLAS_LIBS="$octave_blaswrap_save_BLAS_LIBS"
1163 else 1179 else
1164 ## wrapper in libcruft, remove from BLAS_LIBS 1180 ## wrapper in libcruft, remove from BLAS_LIBS
1165 BLAS_LIBS="`echo $BLAS_LIBS | sed -e 's/blaswrap.[[^ ]]* //g'`" 1181 BLAS_LIBS="`echo $BLAS_LIBS | sed -e 's/blaswrap.[[^ ]]* //g'`"
1166 AC_DEFINE(USE_BLASWRAP, [1], [Define this if BLAS functions need to be wrapped (potentially needed for 64-bit OSX only).]) 1182 AC_DEFINE(USE_BLASWRAP, 1, [Define to 1 if BLAS functions need to be wrapped (potentially needed for 64-bit OSX only).])
1167 fi 1183 fi
1168 ;; 1184 ;;
1169 esac 1185 esac
1170 fi 1186 fi
1171 1187
1172 if test "x$ax_blas_f77_func_ok" = "xno"; then 1188 if test "x$ax_blas_f77_func_ok" = "xno"; then
1173 if $USE_64_BIT_IDX_T && test "$ax_blas_integer_size_ok" = "no" ; then 1189 if $USE_64_BIT_IDX_T && test "$ax_blas_integer_size_ok" = "no" ; then
1174 ## Attempt to be more informative. 1190 ## Attempt to be more informative.
1175 AC_MSG_ERROR([BLAS doesn't seem to support 64-bit integers. This is incompatible with --enable-64.]) 1191 AC_MSG_ERROR([BLAS doesn't seem to support 64-bit integers. This is incompatible with --enable-64.])
1176 else 1192 else
1177 AC_MSG_ERROR([A BLAS library was detected but found incompatible with your Fortran 77 compiler settings.]) 1193 AC_MSG_ERROR([A BLAS library was detected but found incompatible with your Fortran 77 compiler settings.])
1178 fi 1194 fi
1179 fi 1195 fi
1180 1196
1181 if test x$ax_blas_ok = xno || test x$ax_lapack_ok = xno; then 1197 if test x$ax_blas_ok = xno || test x$ax_lapack_ok = xno; then
1182 AC_MSG_ERROR([You are required to have BLAS and LAPACK libraries]) 1198 AC_MSG_ERROR([BLAS and LAPACK libraries are required])
1183 fi 1199 fi
1184 1200
1185 ### Check for the qrupdate library 1201 ### Check for the qrupdate library
1202
1186 ## No need to adjust FFLAGS because only link is attempted. 1203 ## No need to adjust FFLAGS because only link is attempted.
1187 ## Must supply proper LIBS, however. 1204 ## Must supply proper LIBS, however.
1188
1189 save_LIBS="$LIBS" 1205 save_LIBS="$LIBS"
1190 LIBS="$LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS" 1206 LIBS="$LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS"
1191 OCTAVE_CHECK_LIBRARY(qrupdate, qrupdate, 1207 OCTAVE_CHECK_LIBRARY(qrupdate, qrupdate,
1192 [qrupdate not found. The QR & Cholesky updating functions will be slow.], 1208 [qrupdate not found. The QR & Cholesky updating functions will be slow.],
1193 [], 1209 [],
1201 octave_qrupdate_luu=no 1217 octave_qrupdate_luu=no
1202 AC_LINK_IFELSE([AC_LANG_CALL([], [slup1up])], 1218 AC_LINK_IFELSE([AC_LANG_CALL([], [slup1up])],
1203 [octave_qrupdate_luu=yes]) 1219 [octave_qrupdate_luu=yes])
1204 AC_MSG_RESULT([$octave_qrupdate_luu]) 1220 AC_MSG_RESULT([$octave_qrupdate_luu])
1205 if test "$octave_qrupdate_luu" = yes; then 1221 if test "$octave_qrupdate_luu" = yes; then
1206 AC_DEFINE(HAVE_QRUPDATE_LUU, [1], [Define if qrupdate supports LU updates]) 1222 AC_DEFINE(HAVE_QRUPDATE_LUU, 1, [Define to 1 if qrupdate supports LU updates.])
1207 fi 1223 fi
1208 AC_LANG_POP([Fortran 77]) 1224 AC_LANG_POP([Fortran 77])
1209 fi 1225 fi
1210 LIBS="$save_LIBS" 1226 LIBS="$save_LIBS"
1211 1227
1212 # Check for AMD library 1228 ### Check for AMD library
1213 1229
1214 OCTAVE_CHECK_LIBRARY(amd, AMD, 1230 OCTAVE_CHECK_LIBRARY(amd, AMD,
1215 [AMD library not found. This will result in some lack of functionality for sparse matrices.], 1231 [AMD library not found. This will result in some lack of functionality for sparse matrices.],
1216 [suitesparse/amd.h ufsparse/amd.h amd/amd.h amd.h], 1232 [suitesparse/amd.h ufsparse/amd.h amd/amd.h amd.h],
1217 [amd_postorder], 1233 [amd_postorder],
1218 [], [don't use AMD library, disable some sparse matrix functionality]) 1234 [], [don't use AMD library, disable some sparse matrix functionality])
1219 1235
1220 # Check for CAMD library 1236 ### Check for CAMD library
1221 1237
1222 OCTAVE_CHECK_LIBRARY(camd, CAMD, 1238 OCTAVE_CHECK_LIBRARY(camd, CAMD,
1223 [CAMD library not found. This will result in some lack of functionality for sparse matrices.], 1239 [CAMD library not found. This will result in some lack of functionality for sparse matrices.],
1224 [suitesparse/camd.h ufsparse/camd.h amd/camd.h camd.h], 1240 [suitesparse/camd.h ufsparse/camd.h amd/camd.h camd.h],
1225 [camd_postorder], 1241 [camd_postorder],
1226 [], [don't use CAMD library, disable some sparse matrix functionality]) 1242 [], [don't use CAMD library, disable some sparse matrix functionality])
1227 1243
1228 # Check for COLAMD library 1244 ### Check for COLAMD library
1229 1245
1230 OCTAVE_CHECK_LIBRARY(colamd, COLAMD, 1246 OCTAVE_CHECK_LIBRARY(colamd, COLAMD,
1231 [COLAMD library not found. This will result in some lack of functionality for sparse matrices.], 1247 [COLAMD library not found. This will result in some lack of functionality for sparse matrices.],
1232 [suitesparse/colamd.h ufsparse/colamd.h amd/colamd.h colamd.h], 1248 [suitesparse/colamd.h ufsparse/colamd.h amd/colamd.h colamd.h],
1233 [colamd], 1249 [colamd],
1234 [], [don't use COLAMD library, disable some sparse matrix functionality]) 1250 [], [don't use COLAMD library, disable some sparse matrix functionality])
1235 1251
1236 # Check for CCOLAMD library 1252 ### Check for CCOLAMD library
1237 1253
1238 OCTAVE_CHECK_LIBRARY(ccolamd, CCOLAMD, 1254 OCTAVE_CHECK_LIBRARY(ccolamd, CCOLAMD,
1239 [CCOLAMD library not found. This will result in some lack of functionality for sparse matrices.], 1255 [CCOLAMD library not found. This will result in some lack of functionality for sparse matrices.],
1240 [suitesparse/ccolamd.h ufsparse/ccolamd.h amd/ccolamd.h ccolamd.h], 1256 [suitesparse/ccolamd.h ufsparse/ccolamd.h amd/ccolamd.h ccolamd.h],
1241 [ccolamd], 1257 [ccolamd],
1242 [], [don't use CCOLAMD library, disable some sparse matrix functionality]) 1258 [], [don't use CCOLAMD library, disable some sparse matrix functionality])
1243 1259
1244 # Check for CHOLMOD library. If your cholmod library requires cblas, 1260 ### Check for CHOLMOD library. If your cholmod library requires cblas,
1245 # then you will need to configure with --with-cholmod="-lcholmod -lcblas". 1261 ### then you will need to configure with --with-cholmod="-lcholmod -lcblas".
1246 1262
1247 save_LIBS="$LIBS" 1263 save_LIBS="$LIBS"
1248 LIBS="$COLAMD_LDFLAGS $COLAMD_LIBS $AMD_LDFLAGS $AMD_LIBS $LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS" 1264 LIBS="$COLAMD_LDFLAGS $COLAMD_LIBS $AMD_LDFLAGS $AMD_LIBS $LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS"
1249 OCTAVE_CHECK_LIBRARY(cholmod, CHOLMOD, 1265 OCTAVE_CHECK_LIBRARY(cholmod, CHOLMOD,
1250 [CHOLMOD library not found. This will result in some lack of functionality for sparse matrices.], 1266 [CHOLMOD library not found. This will result in some lack of functionality for sparse matrices.],
1251 [suitesparse/cholmod.h ufsparse/cholmod.h cholmod/cholmod.h cholmod.h], 1267 [suitesparse/cholmod.h ufsparse/cholmod.h cholmod/cholmod.h cholmod.h],
1252 [cholmod_start], 1268 [cholmod_start],
1253 [], [don't use CHOLMOD library, disable some sparse matrix functionality]) 1269 [], [don't use CHOLMOD library, disable some sparse matrix functionality])
1254 LIBS="$save_LIBS" 1270 LIBS="$save_LIBS"
1255 1271
1256 # Check for CXSparse library 1272 ### Check for CXSparse library
1257 1273
1258 OCTAVE_CHECK_LIBRARY(cxsparse, CXSparse, 1274 OCTAVE_CHECK_LIBRARY(cxsparse, CXSparse,
1259 [CXSparse library not found. This will result in some lack of functionality for sparse matrices.], 1275 [CXSparse library not found. This will result in some lack of functionality for sparse matrices.],
1260 [suitesparse/cs.h ufsparse/cs.h amd/cs.h cs.h], 1276 [suitesparse/cs.h ufsparse/cs.h amd/cs.h cs.h],
1261 [cs_di_sqr], 1277 [cs_di_sqr],
1262 [C++], [don't use CXSparse library, disable some sparse matrix functionality]) 1278 [C++], [don't use CXSparse library, disable some sparse matrix functionality])
1263 1279
1264 # Check for UMFPACK library. 1280 ### Check for UMFPACK library.
1265 1281
1266 save_LIBS="$LIBS" 1282 save_LIBS="$LIBS"
1267 save_CPPFLAGS="$CPPFLAGS" 1283 save_CPPFLAGS="$CPPFLAGS"
1268 LIBS="$AMD_LDFLAGS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS" 1284 LIBS="$AMD_LDFLAGS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS"
1269 CPPFLAGS="$AMD_CPPFLAGS $CPPFLAGS" 1285 CPPFLAGS="$AMD_CPPFLAGS $CPPFLAGS"
1296 LIBS="$UMFPACK_LIBS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS" 1312 LIBS="$UMFPACK_LIBS $AMD_LIBS $BLAS_LIBS $FLIBS $LIBS"
1297 OCTAVE_UMFPACK_SEPERATE_SPLIT 1313 OCTAVE_UMFPACK_SEPERATE_SPLIT
1298 LIBS="$save_LIBS" 1314 LIBS="$save_LIBS"
1299 fi 1315 fi
1300 1316
1317 ### Check for ARPACK library.
1318
1301 save_LIBS="$LIBS" 1319 save_LIBS="$LIBS"
1302 LIBS="$LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS" 1320 LIBS="$LAPACK_LIBS $BLAS_LIBS $FLIBS $LIBS"
1303 OCTAVE_CHECK_LIBRARY(arpack, ARPACK, 1321 OCTAVE_CHECK_LIBRARY(arpack, ARPACK,
1304 [ARPACK not found. The eigs function will be disabled.], 1322 [ARPACK not found. The eigs function will be disabled.],
1305 [], 1323 [],
1306 [dseupd], 1324 [dseupd],
1307 [Fortran 77], [don't use the ARPACK library, disable eigs function], 1325 [Fortran 77], [don't use the ARPACK library, disable eigs function],
1308 [warn_arpack= 1326 [warn_arpack=
1309 OCTAVE_CHECK_ARPACK_OK([ 1327 OCTAVE_CHECK_ARPACK_OK([
1310 AC_DEFINE(HAVE_ARPACK, 1, [Define if ARPACK is available.])], [ 1328 AC_DEFINE(HAVE_ARPACK, 1, [Define to 1 if ARPACK is available.])], [
1311 warn_arpack="ARPACK library found, but seems not to work properly -- disabling eigs function"])]) 1329 warn_arpack="ARPACK library found, but does not seem to work properly -- disabling eigs function"])])
1312 LIBS="$save_LIBS" 1330 LIBS="$save_LIBS"
1331
1332 ### Check for readline library.
1333
1334 OCTAVE_ENABLE_READLINE
1313 1335
1314 ### Enable dynamic linking. --enable-shared implies this, so 1336 ### Enable dynamic linking. --enable-shared implies this, so
1315 ### --enable-dl is only need if you are only building static libraries 1337 ### --enable-dl is only need if you are only building static libraries
1316 ### and want to try dynamic linking too (works on some systems, for 1338 ### and want to try dynamic linking too (works on some systems, for
1317 ### example, OS X and Windows). 1339 ### example, OS X and Windows).
1712 AC_CHECK_HEADERS([unordered_map], [], [ 1734 AC_CHECK_HEADERS([unordered_map], [], [
1713 AC_CHECK_HEADERS([tr1/unordered_map])]) 1735 AC_CHECK_HEADERS([tr1/unordered_map])])
1714 AC_MSG_CHECKING([whether unordered_map requires tr1 namespace]) 1736 AC_MSG_CHECKING([whether unordered_map requires tr1 namespace])
1715 unordered_map_requires_tr1_namespace=no 1737 unordered_map_requires_tr1_namespace=no
1716 if test "$ac_cv_header_unordered_map" = "yes"; then 1738 if test "$ac_cv_header_unordered_map" = "yes"; then
1717 ### Have <unordered_map>, but still have to check whether 1739 ## Have <unordered_map>, but still have to check whether
1718 ### tr1 namespace is required (like MSVC, for instance). 1740 ## tr1 namespace is required (like MSVC, for instance).
1719 AC_COMPILE_IFELSE([ 1741 AC_COMPILE_IFELSE([
1720 AC_LANG_PROGRAM([ 1742 AC_LANG_PROGRAM([
1721 #include <unordered_map> 1743 #include <unordered_map>
1722 ], [ 1744 ], [
1723 std::unordered_map<int,int> m; 1745 std::unordered_map<int,int> m;
1724 ])], [], [unordered_map_requires_tr1_namespace=yes]) 1746 ])], [], [unordered_map_requires_tr1_namespace=yes])
1725 elif test "$ac_cv_header_tr1_unordered_map" = "yes"; then 1747 elif test "$ac_cv_header_tr1_unordered_map" = "yes"; then
1726 unordered_map_requires_tr1_namespace=yes 1748 unordered_map_requires_tr1_namespace=yes
1727 fi 1749 fi
1728 if test "$unordered_map_requires_tr1_namespace" = "yes"; then 1750 if test "$unordered_map_requires_tr1_namespace" = "yes"; then
1729 AC_DEFINE(USE_UNORDERED_MAP_WITH_TR1, 1, [Defines whether unordered_map requires the use of tr1 namespace.]) 1751 AC_DEFINE(USE_UNORDERED_MAP_WITH_TR1, 1, [Define to 1 if unordered_map requires the use of tr1 namespace.])
1730 fi 1752 fi
1731 AC_MSG_RESULT([$unordered_map_requires_tr1_namespace]) 1753 AC_MSG_RESULT([$unordered_map_requires_tr1_namespace])
1732 AC_LANG_POP(C++) 1754 AC_LANG_POP(C++)
1733 1755
1734 have_termios_h=no 1756 have_termios_h=no
1742 || test "$have_termio_h" = yes \ 1764 || test "$have_termio_h" = yes \
1743 || test "$have_sgtty_h" = yes; then 1765 || test "$have_sgtty_h" = yes; then
1744 true 1766 true
1745 else 1767 else
1746 AC_MSG_WARN([I couldn't find termios.h, termio.h, or sgtty.h!]) 1768 AC_MSG_WARN([I couldn't find termios.h, termio.h, or sgtty.h!])
1769 fi
1770
1771 ### For MSVC compilers, avoid #define of min/max from windows.h header
1772 if test "$have_msvc" = "yes"; then
1773 AC_DEFINE(NOMINMAX, 1, [Define to 1 if you want to avoid min/max macro definition in Windows headers.])
1747 fi 1774 fi
1748 1775
1749 ### Checks for functions and variables. 1776 ### Checks for functions and variables.
1750 1777
1751 AC_CHECK_FUNCS(basename canonicalize_file_name \ 1778 AC_CHECK_FUNCS(basename canonicalize_file_name \
1793 AC_LANG_PROGRAM([[int mkstemps (char *pattern, int suffix_len);]], 1820 AC_LANG_PROGRAM([[int mkstemps (char *pattern, int suffix_len);]],
1794 [[mkstemps ("XXXXXX", 0);]] 1821 [[mkstemps ("XXXXXX", 0);]]
1795 )], 1822 )],
1796 [AC_MSG_RESULT(yes) 1823 [AC_MSG_RESULT(yes)
1797 HAVE_MKSTEMPS=yes 1824 HAVE_MKSTEMPS=yes
1798 AC_DEFINE(HAVE_MKSTEMPS, 1, [Define if mkstemps is available in libiberty.]) 1825 AC_DEFINE(HAVE_MKSTEMPS, 1, [Define to 1 if mkstemps is available in libiberty.])
1799 ], 1826 ],
1800 [AC_MSG_RESULT(no) 1827 [AC_MSG_RESULT(no)
1801 HAVE_MKSTEMPS=no 1828 HAVE_MKSTEMPS=no
1802 LIBS="$save_LIBS" 1829 LIBS="$save_LIBS"
1803 ]) 1830 ])
1813 #include <windows.h> 1840 #include <windows.h>
1814 #if _WIN32_WINNT < 0x0403 1841 #if _WIN32_WINNT < 0x0403
1815 #error "Wrong version" 1842 #error "Wrong version"
1816 #endif]], [])], 1843 #endif]], [])],
1817 AC_MSG_RESULT([none]), [ 1844 AC_MSG_RESULT([none]), [
1818 AC_DEFINE(_WIN32_WINNT, 0x0403, [Define to 0x0403 to access InitializeCriticalSectionAndSpinCount]) 1845 AC_DEFINE(_WIN32_WINNT, 0x0403, [Define to 0x0403 to access InitializeCriticalSectionAndSpinCount.])
1819 AC_MSG_RESULT([0x0403])]) 1846 AC_MSG_RESULT([0x0403])])
1820 AC_MSG_CHECKING([whether _USE_MATH_DEFINES needs to be defined]) 1847 AC_MSG_CHECKING([whether _USE_MATH_DEFINES needs to be defined])
1821 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], 1848 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
1822 [[int x = M_LN2;]])], 1849 [[int x = M_LN2;]])],
1823 AC_MSG_RESULT([no]), [ 1850 AC_MSG_RESULT([no]), [
1824 AC_DEFINE(_USE_MATH_DEFINES, 1, [Define if your system needs it to define math constants like M_LN2]) 1851 AC_DEFINE(_USE_MATH_DEFINES, 1, [Define to 1 if your system needs to define math constants like M_LN2.])
1825 AC_MSG_RESULT([yes])]) 1852 AC_MSG_RESULT([yes])])
1826 ;; 1853 ;;
1827 esac 1854 esac
1855
1856 ## Check for CGDisplayBitsPerPixel function on Mac OSX systems with Carbon
1857 OCTAVE_CARBON_CGDISPLAYBITSPERPIXEL
1828 1858
1829 ### Dynamic linking is now enabled only if we are building shared 1859 ### Dynamic linking is now enabled only if we are building shared
1830 ### libs and some API for dynamic linking is detected. 1860 ### libs and some API for dynamic linking is detected.
1831 1861
1832 ## FIXME -- a lot of the following duplicates the functionality of 1862 ## FIXME: A lot of the following duplicates the functionality of
1833 ## code generated by the dlopen option for LT_INIT. 1863 ## code generated by the dlopen option for LT_INIT.
1834 1864
1835 LD_CXX='$(CXX)' 1865 LD_CXX='$(CXX)'
1836 RDYNAMIC_FLAG= 1866 RDYNAMIC_FLAG=
1837 DL_API_MSG="" 1867 DL_API_MSG=""
1844 1874
1845 case "$lt_cv_dlopen" in 1875 case "$lt_cv_dlopen" in
1846 dlopen) 1876 dlopen)
1847 dlopen_api=true 1877 dlopen_api=true
1848 DL_API_MSG="(dlopen)" 1878 DL_API_MSG="(dlopen)"
1849 AC_DEFINE(HAVE_DLOPEN_API, 1, [Define if your system has dlopen, dlsym, dlerror, and dlclose for dynamic linking]) 1879 AC_DEFINE(HAVE_DLOPEN_API, 1, [Define to 1 if your system has dlopen, dlsym, dlerror, and dlclose for dynamic linking.])
1850 OCTAVE_CXX_FLAG(-rdynamic, [RDYNAMIC_FLAG=-rdynamic]) 1880 OCTAVE_CXX_FLAG(-rdynamic, [RDYNAMIC_FLAG=-rdynamic])
1851 ;; 1881 ;;
1852 shl_load) 1882 shl_load)
1853 shl_load_api=true 1883 shl_load_api=true
1854 DL_API_MSG="(shl_load)" 1884 DL_API_MSG="(shl_load)"
1855 AC_DEFINE(HAVE_SHL_LOAD_API, 1, [Define if your system has shl_load and shl_findsym for dynamic linking]) 1885 AC_DEFINE(HAVE_SHL_LOAD_API, 1, [Define to 1 if your system has shl_load and shl_findsym for dynamic linking.])
1856 ;; 1886 ;;
1857 LoadLibrary) 1887 LoadLibrary)
1858 loadlibrary_api=true 1888 loadlibrary_api=true
1859 DL_API_MSG="(LoadLibrary)" 1889 DL_API_MSG="(LoadLibrary)"
1860 AC_DEFINE(HAVE_LOADLIBRARY_API, 1, [Define if your system has LoadLibrary for dynamic linking]) 1890 AC_DEFINE(HAVE_LOADLIBRARY_API, 1, [Define to 1 if your system has LoadLibrary for dynamic linking.])
1861 ;; 1891 ;;
1862 dyld) 1892 dyld)
1863 dyld_api=true 1893 dyld_api=true
1864 DL_API_MSG="(dyld)" 1894 DL_API_MSG="(dyld)"
1865 AC_DEFINE(HAVE_DYLD_API, 1, [Define if your system has dyld for dynamic linking]) 1895 AC_DEFINE(HAVE_DYLD_API, 1, [Define to 1 if your system has dyld for dynamic linking.])
1866 ;; 1896 ;;
1867 esac 1897 esac
1868 1898
1869 DL_LIBS="$lt_cv_dlopen_libs" 1899 DL_LIBS="$lt_cv_dlopen_libs"
1870 AC_SUBST(DL_LIBS) 1900 AC_SUBST(DL_LIBS)
1876 ENABLE_DYNAMIC_LINKING=false 1906 ENABLE_DYNAMIC_LINKING=false
1877 fi 1907 fi
1878 fi 1908 fi
1879 1909
1880 if $ENABLE_DYNAMIC_LINKING; then 1910 if $ENABLE_DYNAMIC_LINKING; then
1881 AC_DEFINE(ENABLE_DYNAMIC_LINKING, 1, [Define if using dynamic linking]) 1911 AC_DEFINE(ENABLE_DYNAMIC_LINKING, 1, [Define to 1 if using dynamic linking.])
1882 fi 1912 fi
1883 1913
1884 AM_CONDITIONAL([AMCOND_ENABLE_DYNAMIC_LINKING], 1914 AM_CONDITIONAL([AMCOND_ENABLE_DYNAMIC_LINKING],
1885 [test x$ENABLE_DYNAMIC_LINKING = xtrue]) 1915 [test x$ENABLE_DYNAMIC_LINKING = xtrue])
1886 1916
1957 r -ltermlib!" 1987 r -ltermlib!"
1958 AC_MSG_WARN([$warn_termlibs]) 1988 AC_MSG_WARN([$warn_termlibs])
1959 fi 1989 fi
1960 AC_SUBST(TERM_LIBS) 1990 AC_SUBST(TERM_LIBS)
1961 1991
1962 OCTAVE_ENABLE_READLINE 1992 ### Return type of matherr()
1963
1964 AC_MSG_CHECKING([for struct exception in math.h]) 1993 AC_MSG_CHECKING([for struct exception in math.h])
1965 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]], 1994 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>]],
1966 [[struct exception *x; x->type; x->name;]])], 1995 [[struct exception *x; x->type; x->name;]])],
1967 [AC_MSG_RESULT(yes) 1996 [AC_MSG_RESULT(yes)
1968 AC_DEFINE(EXCEPTION_IN_MATH, 1, 1997 AC_DEFINE(EXCEPTION_IN_MATH, 1,
1969 [Define if your math.h declares struct exception for matherr().])], 1998 [Define to 1 if your math.h declares struct exception for matherr().])],
1970 [AC_MSG_RESULT(no)]) 1999 [AC_MSG_RESULT(no)])
1971 2000
1972 ### Signal stuff. 2001 ### Signal stuff.
1973 2002
1974 AC_CHECK_DECLS([sys_siglist], [], [], 2003 AC_CHECK_DECLS([sys_siglist], [], [],
1977 #if HAVE_UNISTD_H 2006 #if HAVE_UNISTD_H
1978 # include <unistd.h> 2007 # include <unistd.h>
1979 #endif 2008 #endif
1980 ]) 2009 ])
1981 2010
1982 ### A system dependent kluge or two. 2011 ### A system dependent kludge or two.
1983 2012
1984 AC_CHECK_FUNCS(getrusage) 2013 AC_CHECK_FUNCS(getrusage)
1985 case "$canonical_host_type" in 2014 case "$canonical_host_type" in
1986 *-*-cygwin*) 2015 *-*-cygwin*)
1987 AC_DEFINE(RUSAGE_TIMES_ONLY, 1, [Define if your struct rusage only has time information.]) 2016 AC_DEFINE(RUSAGE_TIMES_ONLY, 1, [Define to 1 if your struct rusage only has time information.])
1988 ;; 2017 ;;
1989 esac 2018 esac
1990 2019
1991 ### Checks for other programs used for building, testing, installing, 2020 ### Checks for other programs used in building, testing, installing, and
1992 ### and running Octave. 2021 ### running Octave.
1993 2022
1994 AC_PROG_AWK 2023 AC_PROG_AWK
1995 OCTAVE_PROG_FIND 2024 OCTAVE_PROG_FIND
1996 OCTAVE_PROG_SED 2025 OCTAVE_PROG_SED
1997 OCTAVE_PROG_PERL 2026 OCTAVE_PROG_PERL
2157 #define OCTAVE_HAVE_POSIX_FILESYSTEM 1 2186 #define OCTAVE_HAVE_POSIX_FILESYSTEM 1
2158 #else 2187 #else
2159 #define OCTAVE_HAVE_POSIX_FILESYSTEM 1 2188 #define OCTAVE_HAVE_POSIX_FILESYSTEM 1
2160 #endif 2189 #endif
2161 2190
2162 /* Define if we expect to have <windows.h>, Sleep, etc. */ 2191 /* Define to 1 if we expect to have <windows.h>, Sleep, etc. */
2163 #if defined (__WIN32__) && ! defined (__CYGWIN__) 2192 #if defined (__WIN32__) && ! defined (__CYGWIN__)
2164 #define OCTAVE_USE_WINDOWS_API 1 2193 #define OCTAVE_USE_WINDOWS_API 1
2165 #endif 2194 #endif
2166 2195
2167 #if defined (__APPLE__) && defined (__MACH__) 2196 #if defined (__APPLE__) && defined (__MACH__)
2187 #define SIZEOF_OCTAVE_IDX_TYPE SIZEOF_INT 2216 #define SIZEOF_OCTAVE_IDX_TYPE SIZEOF_INT
2188 #endif 2217 #endif
2189 2218
2190 /* To be able to use long doubles for 64-bit mixed arithmetics, we need 2219 /* To be able to use long doubles for 64-bit mixed arithmetics, we need
2191 them at least 80 bits wide and we need roundl declared in math.h. 2220 them at least 80 bits wide and we need roundl declared in math.h.
2192 FIXME -- maybe substitute this by a more precise check in the future. */ 2221 FIXME: Maybe substitute this by a more precise check in the future? */
2193 #if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL) 2222 #if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
2194 #define OCTAVE_INT_USE_LONG_DOUBLE 2223 #define OCTAVE_INT_USE_LONG_DOUBLE
2195 #endif 2224 #endif
2196 2225
2197 #define OCTAVE_EMPTY_CPP_ARG 2226 #define OCTAVE_EMPTY_CPP_ARG
2198 2227
2199 /* Octave is currently unable to use FFTW unless both float 2228 /* Octave is currently unable to use FFTW unless both float
2200 and double versions are both available. */ 2229 and double versions are available. */
2201 #if defined (HAVE_FFTW3) && defined (HAVE_FFTW3F) 2230 #if defined (HAVE_FFTW3) && defined (HAVE_FFTW3F)
2202 #define HAVE_FFTW 2231 #define HAVE_FFTW
2203 #endif 2232 #endif
2204 2233
2205 /* Backward compatibility. */ 2234 /* Backward compatibility. */
2250 2279
2251 typedef OCTAVE_IDX_TYPE octave_idx_type; 2280 typedef OCTAVE_IDX_TYPE octave_idx_type;
2252 2281
2253 #include <stdint.h> 2282 #include <stdint.h>
2254 2283
2255 /* Tag indicating octave config.h has been included */ 2284 /* Tag indicating Octave config.h has been included */
2256 #define OCTAVE_CONFIG_INCLUDED 1 2285 #define OCTAVE_CONFIG_INCLUDED 1
2257 ]) 2286 ])
2258 2287
2259 ### Do the substitutions in all the Makefiles. 2288 ### Do the substitutions in all the Makefiles.
2260 2289
2335 GLPK CPPFLAGS: $GLPK_CPPFLAGS 2364 GLPK CPPFLAGS: $GLPK_CPPFLAGS
2336 GLPK LDFLAGS: $GLPK_LDFLAGS 2365 GLPK LDFLAGS: $GLPK_LDFLAGS
2337 GLPK libraries: $GLPK_LIBS 2366 GLPK libraries: $GLPK_LIBS
2338 graphics CFLAGS: $GRAPHICS_CFLAGS 2367 graphics CFLAGS: $GRAPHICS_CFLAGS
2339 graphics libraries: $GRAPHICS_LIBS 2368 graphics libraries: $GRAPHICS_LIBS
2340 Magick++ CPPFLAGS: $MAGICK_CPPFLAGS
2341 Magick++ LDFLAGS: $MAGICK_LDFLAGS
2342 Magick++ libraries: $MAGICK_LIBS
2343 LLVM CPPFLAGS: $LLVM_CPPFLAGS
2344 LLVM LDFLAGS: $LLVM_LDFLAGS
2345 LLVM libraries: $LLVM_LIBS
2346 HDF5 CPPFLAGS: $HDF5_CPPFLAGS 2369 HDF5 CPPFLAGS: $HDF5_CPPFLAGS
2347 HDF5 LDFLAGS: $HDF5_LDFLAGS 2370 HDF5 LDFLAGS: $HDF5_LDFLAGS
2348 HDF5 libraries: $HDF5_LIBS 2371 HDF5 libraries: $HDF5_LIBS
2349 LAPACK libraries: $LAPACK_LIBS 2372 LAPACK libraries: $LAPACK_LIBS
2373 LLVM CPPFLAGS: $LLVM_CPPFLAGS
2374 LLVM LDFLAGS: $LLVM_LDFLAGS
2375 LLVM libraries: $LLVM_LIBS
2376 Magick++ CPPFLAGS: $MAGICK_CPPFLAGS
2377 Magick++ LDFLAGS: $MAGICK_LDFLAGS
2378 Magick++ libraries: $MAGICK_LIBS
2350 OPENGL libraries: $OPENGL_LIBS 2379 OPENGL libraries: $OPENGL_LIBS
2351 PTHREAD flags: $PTHREAD_CFLAGS 2380 PTHREAD flags: $PTHREAD_CFLAGS
2352 PTHREAD libraries: $PTHREAD_LIBS 2381 PTHREAD libraries: $PTHREAD_LIBS
2353 QHULL CPPFLAGS: $QHULL_CPPFLAGS 2382 QHULL CPPFLAGS: $QHULL_CPPFLAGS
2354 QHULL LDFLAGS: $QHULL_LDFLAGS 2383 QHULL LDFLAGS: $QHULL_LDFLAGS
2411 AC_MSG_WARN([]) 2440 AC_MSG_WARN([])
2412 AC_MSG_WARN([You used the EXPERIMENTAL --enable-openmp option.]) 2441 AC_MSG_WARN([You used the EXPERIMENTAL --enable-openmp option.])
2413 AC_MSG_WARN([Are you sure that is what you want to do?]) 2442 AC_MSG_WARN([Are you sure that is what you want to do?])
2414 AC_MSG_WARN([]) 2443 AC_MSG_WARN([])
2415 AC_MSG_WARN([This option enables experimental SMP multithreding]) 2444 AC_MSG_WARN([This option enables experimental SMP multithreding])
2416 AC_MSG_WARN([code that has had very little testing. There is no]) 2445 AC_MSG_WARN([code that has had very little testing. There is no])
2417 AC_MSG_WARN([certainity that the results returned by Octave with]) 2446 AC_MSG_WARN([certainity that the results returned by Octave with])
2418 AC_MSG_WARN([this option enabled will be correct.]) 2447 AC_MSG_WARN([this option enabled will be correct.])
2419 AC_MSG_WARN([]) 2448 AC_MSG_WARN([])
2420 warn_msg_printed=true 2449 warn_msg_printed=true
2421 fi 2450 fi
2458 fi 2487 fi
2459 2488
2460 if $USE_ATOMIC_REFCOUNT; then 2489 if $USE_ATOMIC_REFCOUNT; then
2461 AC_MSG_WARN([]) 2490 AC_MSG_WARN([])
2462 AC_MSG_WARN([Using atomic reference counting.]) 2491 AC_MSG_WARN([Using atomic reference counting.])
2463 AC_MSG_WARN([This feature allows to access octave data safely from]) 2492 AC_MSG_WARN([This feature allows access to Octave data safely from])
2464 AC_MSG_WARN([another thread, for instance from a GUI. However this]) 2493 AC_MSG_WARN([another thread, for instance from a GUI. However this])
2465 AC_MSG_WARN([results in a small performance penalty in the octave]) 2494 AC_MSG_WARN([results in a small performance penalty in the Octave])
2466 AC_MSG_WARN([interpreter.]) 2495 AC_MSG_WARN([interpreter.])
2467 AC_MSG_WARN([]) 2496 AC_MSG_WARN([])
2468 if $USE_OCTAVE_ALLOCATOR; then 2497 if $USE_OCTAVE_ALLOCATOR; then
2469 AC_MSG_WARN([Thread-safe behavior is not guaranteed unless you also]) 2498 AC_MSG_WARN([Thread-safe behavior is not guaranteed unless you also])
2470 AC_MSG_WARN([disable the use of the octave_allocator class.]) 2499 AC_MSG_WARN([disable the use of the octave_allocator class.])