1 |
#-------------------------------------------------------------------- |
2 |
# A configure.in file for ASCEND. |
3 |
# |
4 |
# Process `configure.in' file with `autoconf' to produce |
5 |
# a `configure' script. This `configure.in' was prepared |
6 |
# for AutoConf v2.12/13. |
7 |
#-------------------------------------------------------------------- |
8 |
|
9 |
#-------------------------------------------------------------------- |
10 |
# Disable caching since it seems to get in the way |
11 |
# more times than it helps us. |
12 |
#-------------------------------------------------------------------- |
13 |
define([AC_CACHE_LOAD], )dnl |
14 |
define([AC_CACHE_SAVE], )dnl |
15 |
|
16 |
|
17 |
#-------------------------------------------------------------------- |
18 |
# This file must exist for configure to continue. It's |
19 |
# how we know we're in the right place. |
20 |
#-------------------------------------------------------------------- |
21 |
AC_INIT(ascend4/compiler/ascParse.y) |
22 |
|
23 |
|
24 |
#-------------------------------------------------------------------- |
25 |
# CVS Most Recent Revision Data |
26 |
# Put this data after AC_INIT since we want this information |
27 |
# to also appear in configure and autoconf, when creating |
28 |
# configure, strips all comments that appear in configure.in |
29 |
# before AC_INIT |
30 |
# $Revision: 1.38 $ |
31 |
# $Date: 2003/11/23 19:36:39 $ |
32 |
# $Author: ballan $ |
33 |
# $Source: /afs/cs.cmu.edu/project/ascend/Repository/configure.in,v $ |
34 |
#-------------------------------------------------------------------- |
35 |
|
36 |
|
37 |
#-------------------------------------------------------------------- |
38 |
# Where configure should look for files it needs. |
39 |
#-------------------------------------------------------------------- |
40 |
AC_CONFIG_AUX_DIR(config) |
41 |
|
42 |
#-------------------------------------------------------------------- |
43 |
# Set the output variables prefix and exec_prefix that |
44 |
# determine where things will be installed. |
45 |
#-------------------------------------------------------------------- |
46 |
if test "${prefix}" = "NONE"; then |
47 |
prefix=/usr/local |
48 |
fi |
49 |
if test "${exec_prefix}" = "NONE"; then |
50 |
exec_prefix=$prefix |
51 |
fi |
52 |
|
53 |
|
54 |
#-------------------------------------------------------------------- |
55 |
# For the Fortran support libraries and the TCL/TK libraries |
56 |
# and header files, we unfortunately need the full path to |
57 |
# these files. The problem with having the full path is that |
58 |
# if the user moves the source tree, things will break unless |
59 |
# the user re-runs configure. |
60 |
#-------------------------------------------------------------------- |
61 |
ascpwd=`pwd` |
62 |
fullpathsrcdir=`cd $srcdir ; pwd` |
63 |
|
64 |
|
65 |
#-------------------------------------------------------------------- |
66 |
# The asc_include variable is (directory) path to the ascend4 |
67 |
# SOURCE directory relative to the immediate subdirectories of |
68 |
# the ascend4 OBJECT directory. |
69 |
# -- If we are building in the source directory ($srcdir is "." |
70 |
# asc_include is simply "../." |
71 |
# -- If the user gives us a full path to the configure script, |
72 |
# we just append "/ascend4" to that full path: |
73 |
# "$scrdir/ascend4" |
74 |
# -- For any other value of $srcdir (like ../src/), we go up |
75 |
# two directories (to get to the top of the OBJECT tree, |
76 |
# insert the source directory, and then go back down one |
77 |
# level to the ascend4 directory: "../../$srcdir/ascend4" |
78 |
#-------------------------------------------------------------------- |
79 |
case "$srcdir" in |
80 |
.) |
81 |
asc_include="../$srcdir" |
82 |
;; |
83 |
/*) |
84 |
asc_include="$srcdir/ascend4" |
85 |
;; |
86 |
*) |
87 |
asc_include="../../$srcdir/ascend4" |
88 |
;; |
89 |
esac |
90 |
|
91 |
|
92 |
#-------------------------------------------------------------------- |
93 |
# Do basic checks to determine |
94 |
# * if we have `ranlib' |
95 |
# * if we can create symbolic links |
96 |
# * if `make' sets the MAKE macro |
97 |
# * a bsd-compatible `install' program |
98 |
# If we use the install-sh script that comes with configure, |
99 |
# prefix it with the current directory so it'll work in |
100 |
# subdirectories. Unfortunately, it won't work if the user |
101 |
# moves the source tree. |
102 |
#-------------------------------------------------------------------- |
103 |
AC_PROG_RANLIB |
104 |
AC_PROG_LN_S |
105 |
AC_PROG_MAKE_SET |
106 |
AC_PROG_INSTALL |
107 |
case "X$INSTALL" in |
108 |
X/*) |
109 |
;; |
110 |
*) |
111 |
INSTALL="$ascpwd/$INSTALL" |
112 |
;; |
113 |
esac |
114 |
|
115 |
|
116 |
#-------------------------------------------------------------------- |
117 |
# Get the host type for various checks along the way |
118 |
#-------------------------------------------------------------------- |
119 |
AC_CANONICAL_HOST |
120 |
|
121 |
|
122 |
#-------------------------------------------------------------------- |
123 |
# Check for the C compiler: set CC and CFLAGS. |
124 |
# If the user does NOT specify `--enable-gcc' on the configure |
125 |
# command command line, set CC to either the envar CC or `cc'. |
126 |
# Call AC_PROG_CC which will use the value of CC (perhaps set |
127 |
# immediately above) or will check for `gcc' and then for `cc' |
128 |
# if `gcc' is not found. |
129 |
# |
130 |
# If we are using GCC, then assume it groks ANSI. Otherwise, |
131 |
# try to compile a small program using ANSI constructs with |
132 |
# CC. If this fails, try to locate each of the following: |
133 |
# c89 xlc acc |
134 |
# and if successful, see if it compiles an ANSI C program. |
135 |
# (Doing this in a loop would be ideal, but configure caches |
136 |
# the result of AC_CHECK_PROG and uses the cached value for |
137 |
# all but the first pass through the loop. This is also the |
138 |
# reason we have to use a different variable asc_cc1, asc_cc2 |
139 |
# for each call to AC_CHECK_PROG. |
140 |
# |
141 |
# If we do not find an ANSI C compiler, print a warning and |
142 |
# use the first value of CC we tried. |
143 |
#-------------------------------------------------------------------- |
144 |
|
145 |
AC_ARG_ENABLE(gcc, |
146 |
[ |
147 |
ASCEND specific options |
148 |
|
149 |
Compiler options: |
150 |
--enable-gcc allow use of gcc if avaiable], |
151 |
[asc_gcc_ok=$enableval], [asc_gcc_ok=no]) |
152 |
if test ! "$asc_gcc_ok" = "yes"; then |
153 |
CC=${CC-cc} |
154 |
fi |
155 |
asc_orig_cc=$CC |
156 |
|
157 |
if test "X$asc_gcc_ok" = "Xyes" ; then |
158 |
asc_ansi_ok=yes |
159 |
else |
160 |
AC_MSG_CHECKING( |
161 |
[whether $CC understands const, void*, and function prototypes]) |
162 |
AC_TRY_COMPILE( , [ |
163 |
int tstproto(int arg1, char * arg2); |
164 |
int tstconst(const int arg1, const char *arg2); |
165 |
int tstvoidp(const int arg1, const void *arg2); ], |
166 |
[ asc_ansi_ok=yes ], [ asc_ansi_ok=no ]) |
167 |
AC_MSG_RESULT($asc_ansi_ok) |
168 |
fi |
169 |
|
170 |
if test "$asc_ansi_ok" = no ; then |
171 |
AC_CHECK_PROG(asc_cc1, c89, c89, NONE) |
172 |
if test ! "$asc_cc1" = NONE ; then |
173 |
CC=$asc_cc1 |
174 |
AC_MSG_CHECKING( |
175 |
[whether $CC understands const, void*, and function prototypes]) |
176 |
AC_TRY_COMPILE( , [ |
177 |
int tstproto(int arg1, char * arg2); |
178 |
int tstconst(const int arg1, const char *arg2); |
179 |
int tstvoidp(const int arg1, const void *arg2); ], |
180 |
[ asc_ansi_ok=yes ], [ asc_ansi_ok=no ]) |
181 |
AC_MSG_RESULT($asc_ansi_ok) |
182 |
fi |
183 |
fi |
184 |
|
185 |
if test "$asc_ansi_ok" = no ; then |
186 |
AC_CHECK_PROG(asc_cc2, xlc, xlc, NONE) |
187 |
if test ! "$asc_cc2" = NONE ; then |
188 |
CC=$asc_cc2 |
189 |
AC_MSG_CHECKING( |
190 |
[whether $CC understands const, void*, and function prototypes]) |
191 |
AC_TRY_COMPILE( , [ |
192 |
int tstproto(int arg1, char * arg2); |
193 |
int tstconst(const int arg1, const char *arg2); |
194 |
int tstvoidp(const int arg1, const void *arg2); ], |
195 |
[ asc_ansi_ok=yes ], [ asc_ansi_ok=no ]) |
196 |
AC_MSG_RESULT($asc_ansi_ok) |
197 |
fi |
198 |
fi |
199 |
|
200 |
if test "$asc_ansi_ok" = no ; then |
201 |
AC_CHECK_PROG(asc_cc3, acc, acc, NONE) |
202 |
if test ! "$asc_cc3" = NONE ; then |
203 |
CC=$asc_cc3 |
204 |
AC_MSG_CHECKING( |
205 |
[whether $CC understands const, void*, and function prototypes]) |
206 |
AC_TRY_COMPILE( , [ |
207 |
int tstproto(int arg1, char * arg2); |
208 |
int tstconst(const int arg1, const char *arg2); |
209 |
int tstvoidp(const int arg1, const void *arg2); ], |
210 |
[ asc_ansi_ok=yes ], [ asc_ansi_ok=no ]) |
211 |
AC_MSG_RESULT($asc_ansi_ok) |
212 |
fi |
213 |
fi |
214 |
|
215 |
AC_PROG_CC |
216 |
|
217 |
if test "$asc_ansi_ok" = no ; then |
218 |
CC=$asc_orig_cc |
219 |
AC_MSG_ERROR([Cannot find an ANSI C compiler. ASCEND will not build |
220 |
without an ANSI compiler. If you have an ANSI compiler which |
221 |
configure is not finding, set the CC environment variable to |
222 |
the full path fo the compiler and rerun configure.]) |
223 |
fi |
224 |
|
225 |
|
226 |
#-------------------------------------------------------------------- |
227 |
# Do other misc checks with CC and CFLAGS. |
228 |
# |
229 |
# Determine how to run the C preprocessor. |
230 |
# |
231 |
# If the user specifies --enable-optimization, remove `-g' |
232 |
# from CFLAGS, add `-O' to CFLAGS, and define `NDEBUG'. If |
233 |
# we are not building optimized, check for special libraries |
234 |
# needed for building a debugging binary (currenly only |
235 |
# /usr/lib/end.o under HPUX). |
236 |
# |
237 |
# Check if we're running on AIX; if so, add `-D_ALL_SOURCE' |
238 |
# to CFLAGS. |
239 |
# |
240 |
# Check if we're running on HPUX; if so, add -D_HPUX_SOURCE' |
241 |
# to CFLAGS unless the C preprocessor goes it for us. |
242 |
#-------------------------------------------------------------------- |
243 |
|
244 |
AC_PROG_CPP |
245 |
|
246 |
AC_ARG_ENABLE(optimization, |
247 |
[ --enable-optimization optimize the C code while building ascend], |
248 |
[asc_do_opt="$enableval"], [asc_do_opt=no]) |
249 |
if test "$asc_do_opt" = yes; then |
250 |
CFLAGS=`echo "-O $CFLAGS " | sed 's/ -g / /g'` |
251 |
AC_DEFINE(NDEBUG) |
252 |
else |
253 |
AC_PATH_PROG(DEBUG_LIBS, end.o, , /usr/lib) |
254 |
fi |
255 |
|
256 |
AC_MSG_CHECKING([for AIX]) |
257 |
AC_EGREP_CPP(yes, [ |
258 |
#ifdef _AIX |
259 |
yes |
260 |
#endif |
261 |
], [ asc_aix=yes ; AC_DEFINE(_ALL_SOURCE) ], [asc_aix=no]) |
262 |
AC_MSG_RESULT($asc_aix) |
263 |
|
264 |
AC_MSG_CHECKING([whether -D_HPUX_SOURCE is needed]) |
265 |
AC_EGREP_CPP(yes, [ |
266 |
#ifdef __hpux |
267 |
#ifndef _HPUX_SOURCE |
268 |
yes |
269 |
#endif |
270 |
#endif |
271 |
], [ asc_hpux=yes ; AC_DEFINE(_HPUX_SOURCE) ], [asc_hpux=no]) |
272 |
AC_MSG_RESULT($asc_hpux) |
273 |
|
274 |
# Check the size of pointers; if cross compiling, assume 32 bit pointers |
275 |
AC_CHECK_SIZEOF(void *, 4) |
276 |
|
277 |
|
278 |
#-------------------------------------------------------------------- |
279 |
# Set YACC. |
280 |
# See if we can find `yacc' ourselves; if not, call the |
281 |
# autoconf macro which looks for `bison' and then for `yacc' |
282 |
#-------------------------------------------------------------------- |
283 |
asc_found_yacc=0 |
284 |
AC_CHECK_PROG(YACC, yacc, yacc, [asc_found_yacc=no]) |
285 |
if test "$asc_found_yacc" = no ; then |
286 |
AC_PROG_YACC |
287 |
fi |
288 |
|
289 |
|
290 |
#-------------------------------------------------------------------- |
291 |
# Set LEX. |
292 |
# ASCEND requires a `flex' which understands -P (allows you to |
293 |
# specify a prefix other than `yy'). The -P flag was added at |
294 |
# the same time a -V (version) flag was added (version 2.4.1), |
295 |
# so if `flex' understands -V, it'll understand -P (checking |
296 |
# for -P directly requires a flex input file). |
297 |
# |
298 |
# 1. If `LEX' is not set, look for `flex' and set `LEX' to |
299 |
# `flex' if found. |
300 |
# 2. If `flex' was found, see if it understands -V. If so, |
301 |
# set `scanner_src' and `typer_src' to have `flex' generate |
302 |
# the C files from the flex input files |
303 |
# ascend4/compiler/scanner.l & ascend4/interface/typelex.l |
304 |
# We don't need to look for libfl.a since we define |
305 |
# yywrap() ourselves. |
306 |
# 3. If `flex' wasn't found or was found but isn't new enough: |
307 |
# a. Print a warning message |
308 |
# b. Set `scanner_src' and `typer_src' to use pre-generated |
309 |
# C files for the flex files mentioned in (2). |
310 |
# c. Set `LEX' to `lex' |
311 |
# d. Search for the lex library `libl.a' and set LEXLIB to |
312 |
# its location. |
313 |
#-------------------------------------------------------------------- |
314 |
AC_CHECK_PROG(LEX, flex, flex) |
315 |
|
316 |
if test -n "$LEX" ; then |
317 |
AC_MSG_CHECKING([whether $LEX is at least version 2.4.1]) |
318 |
echo "$LEX -V" 1>&5 |
319 |
if $LEX -V 1>&5 2>&5 ; then |
320 |
AC_MSG_RESULT(yes) |
321 |
scanner_src="scanner.c.from.flex" |
322 |
typer_src="typelex.c.from.flex" |
323 |
else |
324 |
AC_MSG_RESULT(no) |
325 |
LEX='' |
326 |
fi |
327 |
fi |
328 |
|
329 |
if test -z "$LEX" ; then |
330 |
AC_MSG_WARN([Cannot find a flex lexer version 2.4.1 or greater. |
331 |
Using pregenerated C files for ascend4/compiler/scanner.l |
332 |
and ascend4/interface/typelex.l. If you have flex 2.4.1 |
333 |
or newer, set the LEX environment variable to its location |
334 |
and run configure again.]) |
335 |
scanner_src="scanner.c.from.c" |
336 |
typer_src="typelex.c.from.c" |
337 |
|
338 |
# let configure set LEX and LEXLIB even though we won't be using them |
339 |
AC_PROG_LEX |
340 |
fi |
341 |
|
342 |
|
343 |
#-------------------------------------------------------------------- |
344 |
# Math libraries. |
345 |
# On a few very rare systems, all of the libm.a stuff is |
346 |
# already in libc.a. Set compiler flags accordingly. |
347 |
# Also, Linux requires the "ieee" library for math to work |
348 |
# right (and it must appear before "-lm"). |
349 |
# |
350 |
# When building on HPUX with GCC, GCC cannot find `copysign' |
351 |
# because it lives in an odd place; see if we need to add |
352 |
# this odd place to MATH_LIBS. |
353 |
# |
354 |
# See if erf(), the error function, exists; if so, define |
355 |
# HAVE_ERF. |
356 |
#-------------------------------------------------------------------- |
357 |
AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") |
358 |
|
359 |
AC_CHECK_LIB(ieee, printf, [MATH_LIBS="-lieee $MATH_LIBS"]) |
360 |
|
361 |
if test -n "$MATH_LIBS" ; then |
362 |
AC_CHECK_LIB(m, copysign, , |
363 |
AC_CHECK_LIB(m, drem, [MATH_LIBS="$MATH_LIBS /lib/pa1.1/libM.a"] |
364 |
, , /lib/pa1.1/libM.a |
365 |
), |
366 |
$MATH_LIBS) |
367 |
fi |
368 |
|
369 |
# store the current list of libraries, add the math libraries to LIBS, |
370 |
# check for erf(), then reset the value of LIBS. |
371 |
asc_keep_LIBS="$LIBS" |
372 |
LIBS="$LIBS $MATH_LIBS" |
373 |
AC_CHECK_FUNCS(erf) |
374 |
LIBS="$asc_keep_LIBS" |
375 |
|
376 |
|
377 |
#-------------------------------------------------------------------- |
378 |
# Check for X11. |
379 |
# We'll use the simple autoconf builtin macro for finding |
380 |
# X11 until we find a reason not to. |
381 |
# |
382 |
# On Solaris and IRIX, add the path to the X library to the |
383 |
# run-time shared-library-search-path so the ASCEND binary |
384 |
# can find the X library without the user having to set |
385 |
# LD_LIBRARY_PATH |
386 |
#-------------------------------------------------------------------- |
387 |
AC_PATH_X |
388 |
if test -n "$x_includes"; then |
389 |
X11_INCLUDES="-I$x_includes" |
390 |
fi |
391 |
if test -n "$x_libraries"; then |
392 |
X11_LIBRARIES="-L$x_libraries" |
393 |
case "$host" in |
394 |
sparc-sun-solaris*) |
395 |
X11_RUN_PATH="-R$x_libraries" |
396 |
;; |
397 |
mips-sgi-irix*) |
398 |
X11_RUN_PATH="-rpath $x_libraries" |
399 |
;; |
400 |
*) |
401 |
X11_RUN_PATH="" |
402 |
;; |
403 |
esac |
404 |
fi |
405 |
|
406 |
|
407 |
#-------------------------------------------------------------------- |
408 |
# Check for the existence of various libraries. The order here |
409 |
# is important, so that then end up in the right order in the |
410 |
# command line generated by make. The -lsocket and -lnsl |
411 |
# libraries require a couple of special tricks: |
412 |
# 1. Use "connect" and "accept" to check for -lsocket, and |
413 |
# "gethostbyname" to check for -lnsl. |
414 |
# 2. Use each function name only once: can't redo a check |
415 |
# because autoconf caches the results of the last check |
416 |
# and won't redo it. |
417 |
# 3. Use -lnsl and -lsocket only if they supply procedures that |
418 |
# aren't already present in the normal libraries. This is |
419 |
# because IRIX 5.2 has libraries, but they aren't needed and |
420 |
# they're bogus: they goof up name resolution if used. |
421 |
# 4. On some SVR4 systems, can't use -lsocket without -lnsl |
422 |
# too. To get around this problem, check for both libraries |
423 |
# together if -lsocket doesn't work by itself. |
424 |
#-------------------------------------------------------------------- |
425 |
dnl AC_CHECK_LIB(Xbsd, printf, [LIBS="$LIBS -lXbsd"]) |
426 |
|
427 |
asc_checkBoth=0 |
428 |
AC_CHECK_FUNC(connect, [asc_checkSocket=0], [asc_checkSocket=1]) |
429 |
if test "$asc_checkSocket" = 1; then |
430 |
AC_CHECK_LIB(socket, printf, [X11_EXTRA_LIBS="-lsocket"],[asc_checkBoth=1]) |
431 |
fi |
432 |
if test "$asc_checkBoth" = 1; then |
433 |
asc_oldLibs=$LIBS |
434 |
X11_EXTRA_LIBS="-lsocket -lnsl" |
435 |
LIBS="$LIBS $X11_EXTRA_LIBS" |
436 |
AC_CHECK_FUNC(accept, asc_checkNsl=0, [X11_EXTRA_LIBS=""]) |
437 |
LIBS=$asc_oldLibs |
438 |
fi |
439 |
asc_oldLibs=$LIBS |
440 |
LIBS="$LIBS $X11_EXTRA_LIBS" |
441 |
AC_CHECK_FUNC(gethostbyname, , |
442 |
AC_CHECK_LIB(nsl, printf, [X11_EXTRA_LIBS="$X11_EXTRA_LIBS -lnsl"])) |
443 |
LIBS=$asc_oldLibs |
444 |
|
445 |
|
446 |
#-------------------------------------------------------------------- |
447 |
# The following comes directly from the configure.in file for |
448 |
# Tcl8.0. |
449 |
# |
450 |
# The statements below define a collection of symbols related to |
451 |
# dynamic loading and shared libraries: |
452 |
# |
453 |
# DL_OBJS - Name of the object file that implements dynamic |
454 |
# loading for ASCEND on this system. |
455 |
# DL_LIBS - Library file(s) to include in tclsh and other base |
456 |
# applications in order for the "load" command to work. |
457 |
# LD_FLAGS - Flags to pass to the compiler when linking object |
458 |
# files into an executable application binary such |
459 |
# as tclsh. |
460 |
# LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", |
461 |
# that tell the run-time dynamic linker where to look |
462 |
# for shared libraries such as libtcl.so. Depends on |
463 |
# the variable LIB_RUNTIME_DIR in the Makefile. |
464 |
# MAKE_LIB - Command to execute to build the ASCEND library; |
465 |
# differs depending on whether or not ASCEND is being |
466 |
# compiled as a shared library. |
467 |
# SHLIB_CFLAGS - Flags to pass to cc when compiling the components |
468 |
# of a shared library (may request position-independent |
469 |
# code, among other things). |
470 |
# SHLIB_LD - Base command to use for combining object files |
471 |
# into a shared library. |
472 |
# SHLIB_LD_LIBS - Dependent libraries for the linker to scan when |
473 |
# creating shared libraries. This symbol typically |
474 |
# goes at the end of the "ld" commands that build |
475 |
# shared libraries. The value of the symbol is |
476 |
# "${LIBS}" if all of the dependent libraries should |
477 |
# be specified when creating a shared library. If |
478 |
# dependent libraries should not be specified (as on |
479 |
# SunOS 4.x, where they cause the link to fail, or in |
480 |
# general if ASCEND and Tk aren't themselves shared |
481 |
# libraries), then this symbol has an empty string |
482 |
# as its value. |
483 |
# SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable |
484 |
# extensions. An empty string means we don't know how |
485 |
# to use shared libraries on this platform. |
486 |
# ASC_LIB_FILE - Name of the file that contains the ASCEND library, such |
487 |
# as libtcl7.8.so or libtcl7.8.a. |
488 |
# ASC_LIB_SUFFIX -Specifies everything that comes after the "libtcl" |
489 |
# in the shared library name, using the $VERSION variable |
490 |
# to put the version in the right place. This is used |
491 |
# by platforms that need non-standard library names. |
492 |
# Examples: ${VERSION}.so.1.1 on NetBSD, since it needs |
493 |
# to have a version after the .so, and ${VERSION}.a |
494 |
# on AIX, since the ASCEND shared library needs to have |
495 |
# a .a extension whereas shared objects for loadable |
496 |
# extensions have a .so extension. Defaults to |
497 |
# ${VERSION}${SHLIB_SUFFIX}. |
498 |
#-------------------------------------------------------------------- |
499 |
|
500 |
# Step 1: set the variable "system" to hold the name and version number |
501 |
# for the system. This can usually be done via the "uname" command, but |
502 |
# there are a few systems, like Next, where this doesn't work. |
503 |
|
504 |
# Changed this to use the "$host" variable from AC_CANONICAL_HOST |
505 |
|
506 |
# Step 2: check for existence of -ldl library. This is needed because |
507 |
# Linux can use either -ldl or -ldld for dynamic loading. |
508 |
|
509 |
AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) |
510 |
|
511 |
# Step 3: set configuration options based on system name and version. |
512 |
|
513 |
ASC_SHARED_LIB_SUFFIX="" |
514 |
ASC_UNSHARED_LIB_SUFFIX="" |
515 |
ASC_LIB_VERSIONS_OK=ok |
516 |
case $host in |
517 |
*-aix*) |
518 |
SHLIB_CFLAGS="" |
519 |
SHLIB_LD="$fullpathsrcdir/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512" |
520 |
SHLIB_LD_LIBS='${LIBS}' |
521 |
SHLIB_SUFFIX=".so" |
522 |
DL_OBJS="" |
523 |
DL_LIBS="-lld" |
524 |
LD_FLAGS="" |
525 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
526 |
ASC_SHARED_LIB_SUFFIX='${VERSION}.a' |
527 |
;; |
528 |
*-bsdi*) |
529 |
SHLIB_CFLAGS="" |
530 |
SHLIB_LD="shlicc -r" |
531 |
SHLIB_LD_LIBS='${LIBS}' |
532 |
SHLIB_SUFFIX=".so" |
533 |
DL_OBJS="" |
534 |
DL_LIBS="-ldl" |
535 |
LD_FLAGS="" |
536 |
LD_SEARCH_FLAGS="" |
537 |
;; |
538 |
*-dgux*) |
539 |
SHLIB_CFLAGS="-K PIC" |
540 |
SHLIB_LD="cc -G" |
541 |
SHLIB_LD_LIBS="" |
542 |
SHLIB_SUFFIX=".so" |
543 |
DL_OBJS="" |
544 |
DL_LIBS="-ldl" |
545 |
LD_FLAGS="" |
546 |
LD_SEARCH_FLAGS="" |
547 |
;; |
548 |
*-hpux8*|*-hpux9*|*-hpux10*) |
549 |
AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) |
550 |
if test "$tcl_ok" = yes; then |
551 |
SHLIB_CFLAGS="+z" |
552 |
SHLIB_LD="ld -b" |
553 |
SHLIB_LD_LIBS="" |
554 |
SHLIB_SUFFIX=".sl" |
555 |
DL_OBJS="" |
556 |
DL_LIBS="-ldld" |
557 |
LD_FLAGS="-Wl,-E" |
558 |
LD_SEARCH_FLAGS='-Wl,+b,${LIB_RUNTIME_DIR}:.' |
559 |
fi |
560 |
;; |
561 |
*-irix4*) |
562 |
SHLIB_CFLAGS="-G 0" |
563 |
SHLIB_SUFFIX=".a" |
564 |
SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" |
565 |
SHLIB_LD_LIBS='${LIBS}' |
566 |
DL_OBJS="" |
567 |
DL_LIBS="" |
568 |
LD_FLAGS="-Wl,-D,08000000" |
569 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
570 |
ASC_SHARED_LIB_SUFFIX='${VERSION}.a' |
571 |
;; |
572 |
*-irix5*|*-irix6.*) |
573 |
SHLIB_CFLAGS="" |
574 |
SHLIB_LD="ld -shared -rdata_shared" |
575 |
SHLIB_LD_LIBS="" |
576 |
SHLIB_SUFFIX=".so" |
577 |
DL_OBJS="" |
578 |
DL_LIBS="" |
579 |
LD_FLAGS="" |
580 |
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' |
581 |
;; |
582 |
*-linux*) |
583 |
SHLIB_CFLAGS="-fPIC" |
584 |
SHLIB_LD_LIBS="" |
585 |
SHLIB_SUFFIX=".so" |
586 |
if test "$have_dl" = yes; then |
587 |
SHLIB_LD="${CC} -shared" |
588 |
DL_OBJS="" |
589 |
DL_LIBS="-ldl" |
590 |
LD_FLAGS="-rdynamic" |
591 |
LD_SEARCH_FLAGS="" |
592 |
else |
593 |
AC_CHECK_HEADER(dld.h, [ |
594 |
SHLIB_LD="ld -shared" |
595 |
DL_OBJS="" |
596 |
DL_LIBS="-ldld" |
597 |
LD_FLAGS="" |
598 |
LD_SEARCH_FLAGS=""]) |
599 |
fi |
600 |
;; |
601 |
MP-RAS-02*) |
602 |
SHLIB_CFLAGS="-K PIC" |
603 |
SHLIB_LD="cc -G" |
604 |
SHLIB_LD_LIBS="" |
605 |
SHLIB_SUFFIX=".so" |
606 |
DL_OBJS="" |
607 |
DL_LIBS="-ldl" |
608 |
LD_FLAGS="" |
609 |
LD_SEARCH_FLAGS="" |
610 |
;; |
611 |
MP-RAS-*) |
612 |
SHLIB_CFLAGS="-K PIC" |
613 |
SHLIB_LD="cc -G" |
614 |
SHLIB_LD_LIBS="" |
615 |
SHLIB_SUFFIX=".so" |
616 |
DL_OBJS="" |
617 |
DL_LIBS="-ldl" |
618 |
LD_FLAGS="-Wl,-Bexport" |
619 |
LD_SEARCH_FLAGS="" |
620 |
;; |
621 |
*-netbsd*|*-freebsd*|*-openbsd*) |
622 |
# Not available on all versions: check for include file. |
623 |
AC_CHECK_HEADER(dlfcn.h, [ |
624 |
SHLIB_CFLAGS="-fpic" |
625 |
SHLIB_LD="ld -Bshareable -x" |
626 |
SHLIB_LD_LIBS="" |
627 |
SHLIB_SUFFIX=".so" |
628 |
DL_OBJS="" |
629 |
DL_LIBS="" |
630 |
LD_FLAGS="" |
631 |
LD_SEARCH_FLAGS="" |
632 |
ASC_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0' |
633 |
], [ |
634 |
SHLIB_CFLAGS="" |
635 |
SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" |
636 |
SHLIB_LD_LIBS='${LIBS}' |
637 |
SHLIB_SUFFIX=".a" |
638 |
DL_OBJS="" |
639 |
DL_LIBS="" |
640 |
LD_FLAGS="" |
641 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
642 |
ASC_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.a' |
643 |
]) |
644 |
|
645 |
# FreeBSD doesn't handle version numbers with dots. |
646 |
|
647 |
ASC_UNSHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.a' |
648 |
ASC_LIB_VERSIONS_OK=nodots |
649 |
;; |
650 |
*-nextstep*) |
651 |
SHLIB_CFLAGS="" |
652 |
SHLIB_LD="cc -nostdlib -r" |
653 |
SHLIB_LD_LIBS="" |
654 |
SHLIB_SUFFIX=".so" |
655 |
DL_OBJS="" |
656 |
DL_LIBS="" |
657 |
LD_FLAGS="" |
658 |
LD_SEARCH_FLAGS="" |
659 |
;; |
660 |
alpha-dec-osf*) |
661 |
# Digital OSF/1 |
662 |
SHLIB_CFLAGS="" |
663 |
SHLIB_LD='ld -shared -expect_unresolved "*"' |
664 |
SHLIB_LD_LIBS="" |
665 |
SHLIB_SUFFIX=".so" |
666 |
DL_OBJS="" |
667 |
DL_LIBS="" |
668 |
LD_FLAGS="" |
669 |
LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' |
670 |
;; |
671 |
*-riscos*) |
672 |
SHLIB_CFLAGS="-G 0" |
673 |
SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" |
674 |
SHLIB_LD_LIBS='${LIBS}' |
675 |
SHLIB_SUFFIX=".a" |
676 |
DL_OBJS="" |
677 |
DL_LIBS="" |
678 |
LD_FLAGS="-Wl,-D,08000000" |
679 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
680 |
;; |
681 |
SCO_SV-3.2*) |
682 |
# Note, dlopen is available only on SCO 3.2.5 and greater. However, |
683 |
# this test works, since "uname -s" was non-standard in 3.2.4 and |
684 |
# below. |
685 |
SHLIB_CFLAGS="-Kpic -belf" |
686 |
SHLIB_LD="ld -G" |
687 |
SHLIB_LD_LIBS="" |
688 |
SHLIB_SUFFIX=".so" |
689 |
DL_OBJS="" |
690 |
DL_LIBS="" |
691 |
LD_FLAGS="-belf -Wl,-Bexport" |
692 |
LD_SEARCH_FLAGS="" |
693 |
;; |
694 |
*-sni-sysv*) |
695 |
SHLIB_CFLAGS="-K PIC" |
696 |
SHLIB_LD="cc -G" |
697 |
SHLIB_LD_LIBS="" |
698 |
SHLIB_SUFFIX=".so" |
699 |
DL_OBJS="" |
700 |
DL_LIBS="-ldl" |
701 |
LD_FLAGS="" |
702 |
LD_SEARCH_FLAGS="" |
703 |
;; |
704 |
*-sunos4*) |
705 |
SHLIB_CFLAGS="-PIC" |
706 |
SHLIB_LD="ld" |
707 |
SHLIB_LD_LIBS="" |
708 |
SHLIB_SUFFIX=".so" |
709 |
DL_OBJS="" |
710 |
DL_LIBS="-ldl" |
711 |
LD_FLAGS="" |
712 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
713 |
|
714 |
# SunOS can't handle version numbers with dots in them in library |
715 |
# specs, like -ltcl7.5, so use -ltcl75 instead. Also, it |
716 |
# requires an extra version number at the end of .so file names. |
717 |
# So, the library has to have a name like libtcl75.so.1.0 |
718 |
|
719 |
ASC_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0' |
720 |
ASC_UNSHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.a' |
721 |
ASC_LIB_VERSIONS_OK=nodots |
722 |
;; |
723 |
*-solaris*) |
724 |
SHLIB_CFLAGS="-KPIC" |
725 |
SHLIB_LD="/usr/ccs/bin/ld -G -z text" |
726 |
|
727 |
# Note: need the LIBS below, otherwise Tk won't find ASCEND's |
728 |
# symbols when dynamically loaded into tclsh. |
729 |
|
730 |
SHLIB_LD_LIBS='${LIBS}' |
731 |
SHLIB_SUFFIX=".so" |
732 |
DL_OBJS="" |
733 |
DL_LIBS="-ldl" |
734 |
LD_FLAGS="" |
735 |
LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' |
736 |
;; |
737 |
*-ultrix4*) |
738 |
SHLIB_CFLAGS="-G 0" |
739 |
SHLIB_SUFFIX=".a" |
740 |
SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" |
741 |
SHLIB_LD_LIBS='${LIBS}' |
742 |
DL_OBJS="" |
743 |
DL_LIBS="" |
744 |
LD_FLAGS="-Wl,-D,08000000" |
745 |
LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' |
746 |
;; |
747 |
mips-dde-sysv*) |
748 |
SHLIB_CFLAGS="-KPIC" |
749 |
SHLIB_LD="cc -G" |
750 |
SHLIB_LD_LIBS="" |
751 |
SHLIB_SUFFIX=".so" |
752 |
DL_OBJS="" |
753 |
DL_LIBS="-ldl" |
754 |
# Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers |
755 |
# that don't grok the -Bexport option. Test that it does. |
756 |
hold_ldflags=$LDFLAGS |
757 |
AC_MSG_CHECKING([for ld accepts -Bexport flag]) |
758 |
LDFLAGS="${LDFLAGS} -Wl,-Bexport" |
759 |
AC_TRY_LINK(, [int i;], found=yes, found=no) |
760 |
LDFLAGS=$hold_ldflags |
761 |
AC_MSG_RESULT($found) |
762 |
if test "$found" = yes; then |
763 |
LD_FLAGS="-Wl,-Bexport" |
764 |
else |
765 |
LD_FLAGS="" |
766 |
fi |
767 |
LD_SEARCH_FLAGS="" |
768 |
;; |
769 |
esac |
770 |
|
771 |
dnl >>>>Comment out the rest of the dynamic loading stuff until |
772 |
dnl >>>>we're actually ready to use it for ASCEND |
773 |
dnl >>>> |
774 |
# Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic |
775 |
# Loading for Tcl -- What Became of It?". Proc. 2nd Tcl/Tk Workshop, |
776 |
# New Orleans, LA, Computerized Processes Unlimited, 1994), then we need |
777 |
# to determine which of several header files defines the a.out file |
778 |
# format (a.out.h, sys/exec.h, or sys/exec_aout.h). At present, we |
779 |
# support only a file format that is more or less version-7-compatible. |
780 |
# In particular, |
781 |
# - a.out files must begin with `struct exec'. |
782 |
# - the N_TXTOFF on the `struct exec' must compute the seek address |
783 |
# of the text segment |
784 |
# - The `struct exec' must contain a_magic, a_text, a_data, a_bss |
785 |
# and a_entry fields. |
786 |
# The following compilation should succeed if and only if either sys/exec.h |
787 |
# or a.out.h is usable for the purpose. |
788 |
# |
789 |
# Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the |
790 |
# `struct exec' includes a second header that contains information that |
791 |
# duplicates the v7 fields that are needed. |
792 |
dnl >>>> |
793 |
dnl >>>>if test "x$DL_OBJS" = "xtclLoadAout.o" ; then |
794 |
dnl >>>> AC_MSG_CHECKING([sys/exec.h]) |
795 |
dnl >>>> AC_TRY_COMPILE([#include <sys/exec.h>],[ |
796 |
dnl >>>> struct exec foo; |
797 |
dnl >>>> unsigned long seek; |
798 |
dnl >>>> int flag; |
799 |
dnl >>>>#if defined(__mips) || defined(mips) |
800 |
dnl >>>> seek = N_TXTOFF (foo.ex_f, foo.ex_o); |
801 |
dnl >>>>#else |
802 |
dnl >>>> seek = N_TXTOFF (foo); |
803 |
dnl >>>>#endif |
804 |
dnl >>>> flag = (foo.a_magic == OMAGIC); |
805 |
dnl >>>> return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; |
806 |
dnl >>>>], tcl_ok=usable, tcl_ok=unusable) |
807 |
dnl >>>> AC_MSG_RESULT($tcl_ok) |
808 |
dnl >>>> if test $tcl_ok = usable; then |
809 |
dnl >>>> AC_DEFINE(USE_SYS_EXEC_H) |
810 |
dnl >>>> else |
811 |
dnl >>>> AC_MSG_CHECKING([a.out.h]) |
812 |
dnl >>>> AC_TRY_COMPILE([#include <a.out.h>],[ |
813 |
dnl >>>> struct exec foo; |
814 |
dnl >>>> unsigned long seek; |
815 |
dnl >>>> int flag; |
816 |
dnl >>>>#if defined(__mips) || defined(mips) |
817 |
dnl >>>> seek = N_TXTOFF (foo.ex_f, foo.ex_o); |
818 |
dnl >>>>#else |
819 |
dnl >>>> seek = N_TXTOFF (foo); |
820 |
dnl >>>>#endif |
821 |
dnl >>>> flag = (foo.a_magic == OMAGIC); |
822 |
dnl >>>> return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; |
823 |
dnl >>>> ], tcl_ok=usable, tcl_ok=unusable) |
824 |
dnl >>>> AC_MSG_RESULT($tcl_ok) |
825 |
dnl >>>> if test $tcl_ok = usable; then |
826 |
dnl >>>> AC_DEFINE(USE_A_OUT_H) |
827 |
dnl >>>> else |
828 |
dnl >>>> AC_MSG_CHECKING([sys/exec_aout.h]) |
829 |
dnl >>>> AC_TRY_COMPILE([#include <sys/exec_aout.h>],[ |
830 |
dnl >>>> struct exec foo; |
831 |
dnl >>>> unsigned long seek; |
832 |
dnl >>>> int flag; |
833 |
dnl >>>>#if defined(__mips) || defined(mips) |
834 |
dnl >>>> seek = N_TXTOFF (foo.ex_f, foo.ex_o); |
835 |
dnl >>>>#else |
836 |
dnl >>>> seek = N_TXTOFF (foo); |
837 |
dnl >>>>#endif |
838 |
dnl >>>> flag = (foo.a_midmag == OMAGIC); |
839 |
dnl >>>> return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; |
840 |
dnl >>>> ], tcl_ok=usable, tcl_ok=unusable) |
841 |
dnl >>>> AC_MSG_RESULT($tcl_ok) |
842 |
dnl >>>> if test $tcl_ok = usable; then |
843 |
dnl >>>> AC_DEFINE(USE_SYS_EXEC_AOUT_H) |
844 |
dnl >>>> else |
845 |
dnl >>>> DL_OBJS="" |
846 |
dnl >>>> fi |
847 |
dnl >>>> fi |
848 |
dnl >>>> fi |
849 |
dnl >>>>fi |
850 |
dnl >>>> |
851 |
# Step 5: disable dynamic loading if requested via a command-line switch. |
852 |
dnl >>>> |
853 |
dnl >>>>AC_ARG_ENABLE(load, |
854 |
dnl >>>> [ --disable-load disallow dynamic loading and "load" command], |
855 |
dnl >>>> [tcl_ok=$enableval], [tcl_ok=yes]) |
856 |
dnl >>>>if test "$tcl_ok" = "no"; then |
857 |
dnl >>>> DL_OBJS="" |
858 |
dnl >>>>fi |
859 |
dnl >>>> |
860 |
dnl >>>>if test "x$DL_OBJS" != "x" ; then |
861 |
dnl >>>> BUILD_DLTEST="\$(DLTEST_TARGETS)" |
862 |
dnl >>>>else |
863 |
dnl >>>> echo "Can't figure out how to do dynamic loading or shared libraries" |
864 |
dnl >>>> echo "on this system." |
865 |
dnl >>>> SHLIB_CFLAGS="" |
866 |
dnl >>>> SHLIB_LD="" |
867 |
dnl >>>> SHLIB_SUFFIX="" |
868 |
dnl >>>> DL_OBJS="" |
869 |
dnl >>>> DL_LIBS="" |
870 |
dnl >>>> LD_FLAGS="" |
871 |
dnl >>>> LD_SEARCH_FLAGS="" |
872 |
dnl >>>> BUILD_DLTEST="" |
873 |
dnl >>>>fi |
874 |
dnl >>>> |
875 |
dnl >>>># If we're running gcc, then change the C flags for compiling shared |
876 |
dnl >>>># libraries to the right flags for gcc, instead of those for the |
877 |
dnl >>>># standard manufacturer compiler. |
878 |
dnl >>>> |
879 |
dnl >>>>if test "$DL_OBJS" != "tclLoadNone.o" ; then |
880 |
dnl >>>> if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then |
881 |
dnl >>>> case "$host" in |
882 |
dnl >>>> *-aix*) |
883 |
dnl >>>> ;; |
884 |
dnl >>>> *-bsdi*) |
885 |
dnl >>>> ;; |
886 |
dnl >>>> *-irix*) |
887 |
dnl >>>> ;; |
888 |
dnl >>>> *-netbsd*|*-freebsd*|*-openbsd*) |
889 |
dnl >>>> ;; |
890 |
dnl >>>> *-riscos*) |
891 |
dnl >>>> ;; |
892 |
dnl >>>> *-ultrix4*) |
893 |
dnl >>>> ;; |
894 |
dnl >>>> *) |
895 |
dnl >>>> SHLIB_CFLAGS="-fPIC" |
896 |
dnl >>>> ;; |
897 |
dnl >>>> esac |
898 |
dnl >>>> fi |
899 |
dnl >>>>fi |
900 |
|
901 |
#-------------------------------------------------------------------- |
902 |
# TCL / TK / TK-TABLE |
903 |
# |
904 |
# The user can specify the location of the Tcl and/or Tk |
905 |
# libraries using the --with-tcl and --with-tk configure |
906 |
# options. Print a warning if the user tries to say |
907 |
# --without-tcl since ASCEND requires Tcl/Tk. |
908 |
# |
909 |
# If the user does not specify the location, we need to search |
910 |
# for either shared or static versions of the Tcl and Tk |
911 |
# libraries, and they must be for version 8.x of Tcl/Tk. |
912 |
# |
913 |
# Check for the static Tcl library in a list of reasonable |
914 |
# locations. If we find it, verify that it is from Tcl 8.0 by |
915 |
# looking for the symbol `TclCompileCatchCmd'. Remember, we |
916 |
# need the math library and the dynamic loader library (-ldl or |
917 |
# -ldld) to avoid undefined symbols when we test the version of |
918 |
# the Tcl library. |
919 |
# |
920 |
# If we can't find a static Tcl8.0 library, try to find a |
921 |
# dynamic one by calling AC_CHECK_LIB and looking for the |
922 |
# function `TclCompileCatchCmd'. If we fail, print an error |
923 |
# message and exit configure. |
924 |
# |
925 |
# Search for a version of tcl.h that contains `8.' in the |
926 |
# TCL_MAJOR_VERSION macro; we look in a list of reasonable |
927 |
# locations, then call AC_EGREP_HEADER to look for us. |
928 |
# |
929 |
# Repeat the process for the Tk library; the symbol we want is |
930 |
# `Tk_NameOfFont'; remember we need the X library---and all the |
931 |
# libraries it needs---as well as the Tcl library to avoid |
932 |
# undefined symbols when we test the version of the Tk library. |
933 |
# |
934 |
# The user can use --with-tktable to specify a location for a |
935 |
# static version of the Tk-Table library. If a value is |
936 |
# specified, assume it is good and define the cpp macro |
937 |
# STATIC_TABLE. |
938 |
# |
939 |
# If a value is not specified, look for libTktable.a; if we |
940 |
# find it, assume it works and define the cpp macro |
941 |
# STATIC_TABLE. If we don't find it, assume ASCEND will be |
942 |
# able to dynamically load it at run time and tell the user |
943 |
# about our assumption. |
944 |
#-------------------------------------------------------------------- |
945 |
# |
946 |
# a list of directories to search for the Tcl/Tk libraries |
947 |
asc_tcl_library_dirs=" |
948 |
/usr/local/lib/ascend/lib |
949 |
$prefix/lib:$exec_prefix/lib |
950 |
$ascpwd/tcl8.0 |
951 |
$ascpwd/tcl8.0/unix |
952 |
$ascpwd/tk8.0 |
953 |
$ascpwd/tk8.0/unix |
954 |
$ascpwd/ascend4/lib |
955 |
/lib |
956 |
/usr/lib |
957 |
/usr/local/lib |
958 |
/usr/contributed/lib |
959 |
/afs/cs/project/ascend/depot/@sys/lib |
960 |
" |
961 |
# a list of directories to search for the Tcl/Tk include files |
962 |
asc_tcl_include_dirs=" |
963 |
/usr/local/lib/ascend/include |
964 |
$prefix/include |
965 |
$fullpathsrcdir/tcl8.0 |
966 |
$fullpathsrcdir/tcl8.0/generic |
967 |
$fullpathsrcdir/tk8.0 |
968 |
$fullpathsrcdir/tk8.0/generic |
969 |
$fullpathsrcdir/ascend4/include |
970 |
$ascpwd/ascend4/include |
971 |
/usr/include |
972 |
/usr/local/include |
973 |
/usr/contributed/include |
974 |
/afs/cs/project/ascend/depot/common/include |
975 |
" |
976 |
# a list of directories to search for the TkTable library |
977 |
asc_tk_table_dirs=" |
978 |
/usr/local/lib/ascend/lib/Tktable |
979 |
$prefix/lib/Tktable |
980 |
$exec_prefix/lib/Tktable |
981 |
$ascpwd/tkTable1.80 |
982 |
$ascpwd/ascend4/lib |
983 |
$ascpwd/ascend4/lib/Tktable |
984 |
/afs/cs/project/ascend/depot/@sys/lib/Tktable |
985 |
" |
986 |
# see if the user gave us the location of the Tcl8.0 |
987 |
# library and/or header file |
988 |
# |
989 |
AC_ARG_WITH(tcl, |
990 |
[Location of Tcl, Tk, and tkTable: |
991 |
--with-tcl=LIBRARY,HEADER |
992 |
The location of the Tcl8.0 library and/or header |
993 |
For a static Tcl8.0 library, give the full path: |
994 |
--with-tcl='/usr/local/lib/libtcl8.0.a' |
995 |
For a dynamic library, give any -L options required: |
996 |
--with-tcl='-L/usr/local/lib -ltcl8.0' |
997 |
To specify only the header, leave off the library: |
998 |
--with-tcl=',/usr/local/include/tcl.h'] , |
999 |
, [with_tcl=yes]) |
1000 |
|
1001 |
case "$with_tcl" in |
1002 |
no) |
1003 |
# User specified --without-tcl; this makes no sense, |
1004 |
# print a warning and search for it ourselves |
1005 |
AC_MSG_WARN([Bad option '--without-tcl' |
1006 |
ASCEND must be compiled with Tcl8.0.]) |
1007 |
with_tcllib=_searching |
1008 |
with_tclhdr=_searching |
1009 |
;; |
1010 |
yes|,|"") |
1011 |
# User didn't give the option or didn't give useful |
1012 |
# information, search for it ourselves |
1013 |
with_tcllib=_searching |
1014 |
with_tclhdr=_searching |
1015 |
;; |
1016 |
,*) |
1017 |
# Only the header was specified. |
1018 |
with_tcllib=_searching |
1019 |
TCL_HDR=`echo $with_tcl | sed 's/^,//'` |
1020 |
;; |
1021 |
*,?*) |
1022 |
# Both the library and the header were specified |
1023 |
TCL_LIB=`echo $with_tcl | sed 's/,.*$//'` |
1024 |
TCL_HDR=`echo $with_tcl | sed 's/^.*,//'` |
1025 |
;; |
1026 |
*) |
1027 |
# Only the library was specified |
1028 |
TCL_LIB=`echo $with_tcl | sed 's/,$//'` |
1029 |
with_tclhdr=_searching |
1030 |
;; |
1031 |
esac |
1032 |
|
1033 |
# try to find a static version of the Tcl8.0 library |
1034 |
# |
1035 |
if test "X$with_tcllib" = X_searching ; then |
1036 |
AC_PATH_PROGS(TCL_LIB, libtcl8.0.a libtcl80.a, , $asc_tcl_library_dirs) |
1037 |
if test -z "$TCL_LIB" ; then |
1038 |
TCL_LIB=_searching |
1039 |
fi |
1040 |
else |
1041 |
AC_MSG_RESULT([checking for tcl library... $TCL_LIB]) |
1042 |
fi |
1043 |
|
1044 |
# verify the TCL_LIB |
1045 |
if test ! "X$TCL_LIB" = X_searching ; then |
1046 |
AC_MSG_CHECKING([whether $TCL_LIB is for Tcl8.0]) |
1047 |
asc_libs_orig=$LIBS |
1048 |
LIBS="$TCL_LIB $X11_LIBRARIES $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS $LIBS" |
1049 |
AC_TRY_LINK( , [TclCompileCatchCmd()], , [TCL_LIB=_searching]); |
1050 |
if test "X$TCL_LIB" = X_searching ; then |
1051 |
AC_MSG_RESULT(no) |
1052 |
else |
1053 |
AC_MSG_RESULT(yes) |
1054 |
fi |
1055 |
LIBS=$asc_libs_orig |
1056 |
fi |
1057 |
|
1058 |
# see if the default LPATH can find the Tcl8.0 library |
1059 |
# |
1060 |
if test "X$TCL_LIB" = X_searching ; then |
1061 |
AC_CHECK_LIB(tcl8.0, TclCompileCatchCmd, [TCL_LIB="-ltcl8.0"] , , |
1062 |
[$X11_LIBRARIES $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1063 |
fi |
1064 |
if test "X$TCL_LIB" = X_searching ; then |
1065 |
AC_CHECK_LIB(tcl80, TclCompileCatchCmd, [TCL_LIB="-ltcl80"] , , |
1066 |
[$X11_LIBRARIES $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1067 |
fi |
1068 |
if test "X$TCL_LIB" = X_searching ; then |
1069 |
AC_CHECK_LIB(tcl, TclCompileCatchCmd, [TCL_LIB="-ltcl"] , , |
1070 |
[$X11_LIBRARIES $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1071 |
fi |
1072 |
|
1073 |
# give up searching for the Tcl8.0 library |
1074 |
# |
1075 |
if test "X$TCL_LIB" = X_searching ; then |
1076 |
AC_MSG_ERROR([Cannot find a compatiable Tcl library. |
1077 |
You must build and install Tcl version 8.0 or newer before you |
1078 |
can build ASCEND. If you have installed the correct version |
1079 |
of Tcl, run configure again with the argument: |
1080 |
--with-tcl=LIBRARY,HEADER |
1081 |
where LIBRARY and HEADER are the full paths to the Tcl8.0 |
1082 |
library file and header file, respectively.]) |
1083 |
fi |
1084 |
|
1085 |
# see if the user gave us the location of the Tcl8.0 header file |
1086 |
# |
1087 |
if test ! "X$with_tclhdr" = X_searching ; then |
1088 |
if test ! -f "$TCL_HDR" ; then |
1089 |
AC_MSG_WARN([user specified Tcl header file, $TCL_HDR, does not exist]) |
1090 |
with_tclhdr=_searching |
1091 |
TCL_HDR='' |
1092 |
fi |
1093 |
fi |
1094 |
if test "X$with_tclhdr" = X_searching ; then |
1095 |
AC_PATH_PROG(TCL_HDR, tcl.h, , $asc_tcl_include_dirs) |
1096 |
if test -z "$TCL_HDR" ; then |
1097 |
AC_EGREP_HEADER([TCL_MAJOR_VERSION.*8], tcl.h, [TCL_HDR='tcl.h'], ) |
1098 |
fi |
1099 |
else |
1100 |
AC_MSG_RESULT([checking for tcl header... $TCL_HDR]) |
1101 |
fi |
1102 |
if test -f "$TCL_HDR" ; then |
1103 |
AC_MSG_CHECKING([whether $TCL_HDR is for version 8]) |
1104 |
echo 'grep TCL_MAJOR_VERSION "$TCL_HDR" 2>&5' 1>&5 |
1105 |
grep_tcl_h=`grep TCL_MAJOR_VERSION "$TCL_HDR" 2>&5` |
1106 |
echo $grep_tcl_h 1>&5 |
1107 |
case "$grep_tcl_h" in |
1108 |
*8) |
1109 |
AC_MSG_RESULT(yes) |
1110 |
;; |
1111 |
*) |
1112 |
AC_MSG_RESULT(no) |
1113 |
TCL_HDR= |
1114 |
;; |
1115 |
esac |
1116 |
fi |
1117 |
if test -z "$TCL_HDR" ; then |
1118 |
AC_MSG_ERROR([Cannot find a compatiable Tcl header file. |
1119 |
You must build and install Tcl version 8.0 or newer before you |
1120 |
can build ASCEND. If you have installed the correct version |
1121 |
of Tcl, run configure again with the argument: |
1122 |
--with-tcl=LIBRARY,HEADER |
1123 |
where LIBRARY and HEADER are the full paths to the Tcl8.0 |
1124 |
library file and header file, respectively.]) |
1125 |
fi |
1126 |
TCL_HDR=`echo $TCL_HDR | sed 's,tcl\.h$,,'` |
1127 |
if test -n "$TCL_HDR" ; then |
1128 |
TCL_HDR="-I$TCL_HDR" |
1129 |
fi |
1130 |
|
1131 |
|
1132 |
###### REPEAT FOR TK |
1133 |
# |
1134 |
# see if the user gave us the location of the Tk8.0 |
1135 |
# library and/or header file |
1136 |
# |
1137 |
AC_ARG_WITH(tk, |
1138 |
[ --with-tk=LIBRARY,HEADER |
1139 |
The location of the Tk8.0 library and/or header |
1140 |
For a static Tk8.0 library, give the full path: |
1141 |
--with-tk='/usr/local/lib/libtk8.0.a' |
1142 |
For a dynamic library, give any -L options required: |
1143 |
--with-tk='-L/usr/local/lib -ltk8.0' |
1144 |
To specify only the header, leave off the library: |
1145 |
--with-tk=',/usr/local/include/tk.h'] , |
1146 |
, [with_tk=yes]) |
1147 |
|
1148 |
case "$with_tk" in |
1149 |
no) |
1150 |
# User specified --without-tk; this makes no sense, |
1151 |
# print a warning and search for it ourselves |
1152 |
AC_MSG_WARN([Bad option '--without-tk' |
1153 |
ASCEND must be compiled with Tk8.0.]) |
1154 |
with_tklib=_searching |
1155 |
with_tkhdr=_searching |
1156 |
;; |
1157 |
yes|,|"") |
1158 |
# User didn't give the option or didn't give useful |
1159 |
# information, search for it ourselves |
1160 |
with_tklib=_searching |
1161 |
with_tkhdr=_searching |
1162 |
;; |
1163 |
,*) |
1164 |
# Only the header was specified. |
1165 |
with_tklib=_searching |
1166 |
TK_HDR=`echo $with_tk | sed 's/^,//'` |
1167 |
;; |
1168 |
*,?*) |
1169 |
# Both the library and the header were specified |
1170 |
TK_LIB=`echo $with_tk | sed 's/,.*$//'` |
1171 |
TK_HDR=`echo $with_tk | sed 's/^.*,//'` |
1172 |
;; |
1173 |
*) |
1174 |
# Only the library was specified |
1175 |
TK_LIB=`echo $with_tk | sed 's/,$//'` |
1176 |
with_tkhdr=_searching |
1177 |
;; |
1178 |
esac |
1179 |
|
1180 |
# try to find a static version of the Tk8.0 library |
1181 |
# |
1182 |
if test "X$with_tklib" = X_searching ; then |
1183 |
AC_PATH_PROGS(TK_LIB, libtk8.0.a libtk80.a libtk.a, , $asc_tcl_library_dirs) |
1184 |
if test -z "TK_LIB" ; then |
1185 |
TK_LIB=_searching |
1186 |
fi |
1187 |
else |
1188 |
AC_MSG_RESULT([checking for tk library... $TK_LIB]) |
1189 |
fi |
1190 |
|
1191 |
# verify the TK_LIB |
1192 |
# |
1193 |
if test ! "X$TK_LIB" = X_searching ; then |
1194 |
AC_MSG_CHECKING([whether $TK_LIB is for Tk8.0]) |
1195 |
asc_libs_orig=$LIBS |
1196 |
LIBS="$TK_LIB $TCL_LIB $X11_LIBRARIES -lX11 $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS $LIBS" |
1197 |
AC_TRY_LINK( , [Tk_NameOfFont()], , [TK_LIB=_searching]); |
1198 |
if test "X$TK_LIB" = X_searching ; then |
1199 |
AC_MSG_RESULT(no) |
1200 |
else |
1201 |
AC_MSG_RESULT(yes) |
1202 |
fi |
1203 |
LIBS=$asc_libs_orig |
1204 |
fi |
1205 |
|
1206 |
# see if the default LPATH can find the Tk8.0 library |
1207 |
# |
1208 |
if test "X$TK_LIB" = X_searching ; then |
1209 |
AC_MSG_RESULT([checking for a dynamically loaded Tk8.0 library]) |
1210 |
AC_CHECK_LIB(tk8.0, Tk_NameOfFont, [TK_LIB="-ltk8.0"] , , |
1211 |
[$TCL_LIB $X11_LIBRARIES -lX11 $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1212 |
fi |
1213 |
if test "X$TK_LIB" = X_searching ; then |
1214 |
AC_CHECK_LIB(tk80, Tk_NameOfFont, [TK_LIB="-ltk80"] , , |
1215 |
[$TCL_LIB $X11_LIBRARIES -lX11 $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1216 |
fi |
1217 |
if test "X$TK_LIB" = X_searching ; then |
1218 |
AC_CHECK_LIB(tk, Tk_NameOfFont, [TK_LIB="-ltk"] , , |
1219 |
[$TCL_LIB $X11_LIBRARIES -lX11 $X11_EXTRA_LIBS $DL_LIBS $MATH_LIBS]) |
1220 |
fi |
1221 |
|
1222 |
# give up searching for the Tk8.0 library |
1223 |
# |
1224 |
if test "X$TK_LIB" = X_searching ; then |
1225 |
AC_MSG_ERROR([Cannot find a compatiable Tk library. |
1226 |
You must build and install Tk version 8.0 or newer before you |
1227 |
can build ASCEND. If you have installed the correct version |
1228 |
of Tk, run configure again with the argument: |
1229 |
--with-tk=LIBRARY,HEADER |
1230 |
where LIBRARY and HEADER are the full paths to the Tk8.0 |
1231 |
library file and header file, respectively.]) |
1232 |
fi |
1233 |
|
1234 |
# see if the user gave us the location of the Tk8.0 header file |
1235 |
# |
1236 |
if test ! "X$with_tkhdr" = X_searching ; then |
1237 |
if test ! -f "$TK_HDR" ; then |
1238 |
AC_MSG_WARN([user specified Tk header file, $TK_HDR, does not exist]) |
1239 |
with_tkhdr=_searching |
1240 |
TK_HDR='' |
1241 |
fi |
1242 |
fi |
1243 |
if test "X$with_tkhdr" = X_searching ; then |
1244 |
AC_PATH_PROG(TK_HDR, tk.h, , $asc_tcl_include_dirs) |
1245 |
if test -z "$TK_HDR" ; then |
1246 |
AC_EGREP_HEADER([TK_MAJOR_VERSION.*8], tk.h, [TK_HDR='tk.h'], ) |
1247 |
fi |
1248 |
else |
1249 |
AC_MSG_RESULT([checking for tk header... $TK_HDR]) |
1250 |
fi |
1251 |
if test -f "$TK_HDR" ; then |
1252 |
AC_MSG_CHECKING([whether $TK_HDR is for version 8]) |
1253 |
echo 'grep TK_MAJOR_VERSION "$TK_HDR" 2>&5' 1>&5 |
1254 |
grep_tk_h=`grep TK_MAJOR_VERSION "$TK_HDR" 2>&5` |
1255 |
echo $grep_tk_h 1>&5 |
1256 |
case "$grep_tk_h" in |
1257 |
*8) |
1258 |
AC_MSG_RESULT(yes) |
1259 |
;; |
1260 |
*) |
1261 |
AC_MSG_RESULT(no) |
1262 |
TK_HDR= |
1263 |
;; |
1264 |
esac |
1265 |
fi |
1266 |
if test -z "$TK_HDR" ; then |
1267 |
AC_MSG_ERROR([Cannot find a compatiable Tk header file. |
1268 |
You must build and install Tk version 8.0 or newer before you |
1269 |
can build ASCEND. If you have installed the correct version |
1270 |
of Tk, run configure again with the argument: |
1271 |
--with-tk=LIBRARY,HEADER |
1272 |
where LIBRARY and HEADER are the full paths to the Tk8.0 |
1273 |
library file and header file, respectively.]) |
1274 |
fi |
1275 |
TK_HDR=`echo $TK_HDR | sed 's,tk\.h$,,'` |
1276 |
if test -n "$TK_HDR" ; then |
1277 |
TK_HDR="-I$TK_HDR" |
1278 |
if test "X$TCL_HDR" = "X$TK_HDR" ; then |
1279 |
TK_HDR= |
1280 |
fi |
1281 |
fi |
1282 |
|
1283 |
|
1284 |
AC_ARG_WITH(tktable, |
1285 |
[ --with-tktable=TKTABLE full path to a TkTable1.3 static library], , ) |
1286 |
case "$with_tktable" in |
1287 |
yes|no|"") |
1288 |
# search for the table |
1289 |
AC_PATH_PROG(TKTABLE_LIB, libTktable.a, , $asc_tk_table_dirs) |
1290 |
;; |
1291 |
*) |
1292 |
# use the user's value |
1293 |
TKTABLE_LIB="$with_tktable" |
1294 |
;; |
1295 |
esac |
1296 |
if test -n "$TKTABLE_LIB" ; then |
1297 |
HAVE_TKTABLE='-DSTATIC_TKTABLE' |
1298 |
else |
1299 |
AC_MSG_RESULT(Assuming Tktable will be dynamically linked into ASCEND) |
1300 |
fi |
1301 |
|
1302 |
AC_ARG_WITH(wish, |
1303 |
[ --with-wish=/path/to/bin/wish |
1304 |
The location of the wish shell executable matching |
1305 |
the tcl/tk given by --with-tk and --with-tcl. |
1306 |
X11 must be running during configure. ] , |
1307 |
, [with_wish=no]) |
1308 |
case "$with_wish" in |
1309 |
yes|no|"") |
1310 |
AC_MSG_RESULT([--with-wish not specified. |
1311 |
Setting env vars TCL_LIBRARY, TK_LIBRARY may be needed to run.]) |
1312 |
;; |
1313 |
*) |
1314 |
AC_MSG_CHECKING([wish for tcl_library,tklibrary]) |
1315 |
ASC_TK_LIBRARY=`config/wishvar tk_library $with_wish` |
1316 |
ASC_TCL_LIBRARY=`config/wishvar tcl_library $with_wish` |
1317 |
AC_MSG_RESULT([ $ASC_TCL_LIBRARY , $ASC_TK_LIBRARY]) |
1318 |
;; |
1319 |
esac |
1320 |
|
1321 |
|
1322 |
#-------------------------------------------------------------------- |
1323 |
# FORTRAN |
1324 |
# |
1325 |
# ASCEND uses the LSOD integrator and is capable of working |
1326 |
# with CONOPT and with MINOS. These libraries are written in |
1327 |
# Fortran; to use them, configure needs to find a Fortran |
1328 |
# compiler and the necessary Fortran libraries (e.g., |
1329 |
# libF77.a). LSOD, CONOPT, and MINOS also require the BLAS and |
1330 |
# LINPACK libraries to avoid undefined symbols at link time. |
1331 |
# |
1332 |
# The builder can specify the location of |
1333 |
# * the Fortran compiler and libraries using |
1334 |
# --with-fortran=<compiler>,<libraries> |
1335 |
# * the BLAS library using |
1336 |
# --with-blas=<blas-library> |
1337 |
# * the LINPACK library using |
1338 |
# --with-linpack=<linpack-library> |
1339 |
# * the LSOD library using |
1340 |
# --with-blas=<lsod-library> |
1341 |
# * the CONOPT library using |
1342 |
# --with-conopt=<conopt-library> |
1343 |
# * the MINOS library using |
1344 |
# --with-minos=<minos-library> <===currently disabled |
1345 |
# The builder can disable some parts of the fortran build using |
1346 |
# the --without-<package> configure option. |
1347 |
# |
1348 |
# If the user does not specify the locations of the compiler |
1349 |
# and the libraries and does not disable them, configure |
1350 |
# attempts to find them. |
1351 |
# |
1352 |
# Building with LSOD, CONOPT, and/or MINOS is further |
1353 |
# complicated by the dependencies between these libraries and |
1354 |
# the BLAS and LINPACK libraries. |
1355 |
# |
1356 |
# If we cannot find a Fortran compiler, we disable all Fortran |
1357 |
# code (LSOD, CONOPT, and MINOS). Otherwise, look for the |
1358 |
# Fortran libraries (e.g., libF77.a) based on the type of |
1359 |
# machine we are compiling on. |
1360 |
# |
1361 |
# If Fortran is enabled, we need to find a compiled BLAS |
1362 |
# library or source code. Check for the machine's libblas.a |
1363 |
# and ASCEND's libascblas.a; if those fail, check for the |
1364 |
# libascblas.a source code; if that fails, we disable all |
1365 |
# Fortran (LSOD, CONOPT, MINOS). |
1366 |
# |
1367 |
# If Fortran is enabled, we need to find a compiled LINPACK |
1368 |
# library or source code. Check for the machine's liblpak.a |
1369 |
# and ASCEND's libasclpak.a; if those fail, check for the |
1370 |
# libasclpak.a source code; if that fails, we disable all |
1371 |
# Fortran (LSOD, CONOPT, MINOS). |
1372 |
# |
1373 |
# If Fortran is enabled, we try to find a compiled LSOD library |
1374 |
# or source code. Check for a libinteg.a; if that fails, check |
1375 |
# for the libinteg.a source code; if that fails, we disable |
1376 |
# LSOD. If we find LSOD, define STATIC_LSOD. |
1377 |
# |
1378 |
# If Fortran is enabled, we try to find a compiled OPTSQP |
1379 |
# library or source code. Check for a librsqp.a; if that fails, |
1380 |
# check for the librsqp.a source code; if that fails, we disable |
1381 |
# OPTSQP. If we find RSQP, define STATIC_OPTSQP. |
1382 |
# |
1383 |
# If Fortran is enabled, we try to find a compiled CONOPT |
1384 |
# library. Check for a libconsub.a; if that fails, we disable |
1385 |
# CONOPT. If we find CONOPT, define STATIC_CONOPT; if not, |
1386 |
# tell the user where to find CONOPT using the contact |
1387 |
# information from the nonlinear programming FAQ: |
1388 |
# http://www.mcs.anl.gov/home/otc/Guide/faq/nonlinear-programming-faq.html |
1389 |
# |
1390 |
# If Fortran is enabled, we try to find a compiled MINOS |
1391 |
# library or source code. Check for a libminos54.a; if that |
1392 |
# fails, check for the libminos54.a source code; if that fails, |
1393 |
# we disable MINOS. If we find MINOS, define STATIC_MINOS; if |
1394 |
# not, tell the user where to find MINOS using the contact |
1395 |
# information from the nonlinear programming FAQ: |
1396 |
# http://www.mcs.anl.gov/home/otc/Guide/faq/nonlinear-programming-faq.html |
1397 |
#-------------------------------------------------------------------- |
1398 |
# |
1399 |
# the list of directories to search for the fortran compiler |
1400 |
asc_f77_prog_dirs="$PATH:/usr/lang:/opt/SUNWspro/bin" |
1401 |
# |
1402 |
# the list of directories to search for the required fortran libraries |
1403 |
asc_f77_support_dirs=" |
1404 |
/lib |
1405 |
/usr/lib |
1406 |
/usr/local/lib |
1407 |
/usr/contributed/lib |
1408 |
/usr/local/lib/ascend/lib |
1409 |
$ascpwd/blas |
1410 |
$ascpwd/linpack |
1411 |
$ascpwd/lsod |
1412 |
$ascpwd/conopt |
1413 |
$ascpwd/rsqp |
1414 |
$ascpwd/minos |
1415 |
$ascpwd/ascend4/archive |
1416 |
/afs/cs/project/ascend/depot/@sys/lib |
1417 |
/afs/cs/project/ascend/depot/build/obj/conopt |
1418 |
" |
1419 |
# |
1420 |
AC_ARG_WITH(fortran, |
1421 |
[Fortran compiler and libraries: |
1422 |
--with-fortran=F77,F77LIBS |
1423 |
The location of your Fortran compiler and its |
1424 |
library files. For example, under SunOS: |
1425 |
--with-fortran='f77,-L/usr/lang/lib -lF77 -lM77' |
1426 |
To specify only the compiler or libraries, leave off |
1427 |
whatever is not needed: |
1428 |
--with-fortran=',-L/usr/lang/lib -lF77 -lM77' |
1429 |
Use '--without-fortran' to not link against |
1430 |
any Fortran libraries], |
1431 |
, [with_fortran=yes]) |
1432 |
case "$with_fortran" in |
1433 |
no) |
1434 |
# The user disabled all fortran using |
1435 |
# the --without-fortran option. |
1436 |
F77= |
1437 |
F77LIBS= |
1438 |
with_f77=no |
1439 |
with_f77libs=no |
1440 |
;; |
1441 |
yes|,|"") |
1442 |
# The user didn't pass in the --with-fortran option |
1443 |
# or didn't give us any useful information. We do |
1444 |
# the search ourselves. |
1445 |
with_f77=_searching |
1446 |
with_f77libs=_searching |
1447 |
;; |
1448 |
,*) |
1449 |
# The user passed in the libraries, search for the |
1450 |
# compiler ourselves. |
1451 |
with_f77=_searching |
1452 |
F77LIBS=`echo $with_fortran | sed 's/^,//'` |
1453 |
echo "user gave F77LIBS=$F77LIBS" |
1454 |
;; |
1455 |
*,?*) |
1456 |
# The user passed in both the compiler and the |
1457 |
# libraries. |
1458 |
F77=`echo $with_fortran | sed s'/,.*$//'` |
1459 |
F77LIBS=`echo $with_fortran | sed 's/^.*,//'` |
1460 |
echo "user gave F77=$F77" |
1461 |
echo "user gave F77LIBS=$F77LIBS" |
1462 |
;; |
1463 |
*) |
1464 |
# The user passed in the compiler; search for the |
1465 |
# libraries ourselves. |
1466 |
F77=`echo $with_fortran | sed s'/,$//'` |
1467 |
with_f77libs=_searching |
1468 |
echo "user gave F77=$F77" |
1469 |
;; |
1470 |
esac |
1471 |
|
1472 |
if test "X$with_f77" = X_searching ; then |
1473 |
# Search for the fortran compiler; print a warning if we can't |
1474 |
# find it and disable all fortran. |
1475 |
AC_PATH_PROGS(F77, f77 xlf g77, , $asc_f77_prog_dirs) |
1476 |
if test -z "$F77" ; then |
1477 |
with_fortran=no |
1478 |
with_f77libs=no |
1479 |
AC_MSG_WARN([Cannot find your Fortran compiler. Building ASCEND |
1480 |
without integration, MINOS, and CONOPT support. To bulid ASCEND with |
1481 |
Fortran support, run configure with the option |
1482 |
--with-fortran=F77,F77LIBS |
1483 |
where F77 is the full path to your Fortran compiler and F77LIBS are |
1484 |
its related libraries]) |
1485 |
fi |
1486 |
fi |
1487 |
|
1488 |
if test "X$with_f77libs" = X_searching ; then |
1489 |
# We found a compiler, now search for the fortran libraries |
1490 |
# based on the system type. |
1491 |
AC_MSG_RESULT([checking for fortran libraries based on system type]) |
1492 |
case "$host" in |
1493 |
alpha-dec-osf*) |
1494 |
AC_CHECK_LIB(for, for_lle, [F77LIBS="$F77LIBS -lfor"], , $F77LIBS) |
1495 |
AC_CHECK_LIB(ots, _OtsFill, [F77LIBS="$F77LIBS -lots"], , $F77LIBS) |
1496 |
AC_CHECK_LIB(Ufor, etime_, [F77LIBS="$F77LIBS -lUfor"], , $F77LIBS) |
1497 |
;; |
1498 |
mips-dec-ultrix*) |
1499 |
AC_CHECK_LIB(for, for_lle, [F77LIBS="$F77LIBS -lfor"], , $F77LIBS) |
1500 |
;; |
1501 |
hppa1.1-hp-hpux*) |
1502 |
AC_CHECK_LIB(cl, FTN_QATAN, [F77LIBS="$F77LIBS -lcl"], , $F77LIBS) |
1503 |
;; |
1504 |
*-ibm-aix*) |
1505 |
# need to add -lc before -lxlf on AIX to |
1506 |
# avoid getting the wrong getenv |
1507 |
F77LIBS="-lc $F77LIBS" |
1508 |
AC_CHECK_LIB(xlf, _xldabs, [F77LIBS="$F77LIBS -lxlf"], , $F77LIBS) |
1509 |
AC_CHECK_LIB(xlfutil, srand_, [F77LIBS="$F77LIBS -lxlfutil"], , |
1510 |
$F77LIBS) |
1511 |
AC_CHECK_LIB(xlf90, printf, |
1512 |
[F77LIBS="$F77LIBS -lxlf90"], , $F77LIBS) |
1513 |
;; |
1514 |
*-linux-*) |
1515 |
AC_CHECK_LIB(f2c, pow_dd, [F77LIBS="$F77LIBS -lf2c"], , $F77LIBS) |
1516 |
AC_CHECK_LIB(g2c, pow_dd, [F77LIBS="$F77LIBS -lg2c"], , $F77LIBS) |
1517 |
;; |
1518 |
sparc-sun-solaris*) |
1519 |
if test -n "$GCC" ; then |
1520 |
F77LIBS="-L/opt/SUNWspro/lib -R/opt/SUNWspro/lib" |
1521 |
fi |
1522 |
AC_CHECK_LIB(sunmath, d_sqrt_, [MATH_LIBS="-lsunmath $MATH_LIBS"]) |
1523 |
AC_CHECK_LIB(F77, f77_init, |
1524 |
[F77LIBS="$F77LIBS -lF77"], , $F77LIBS $MATH_LIBS) |
1525 |
AC_CHECK_LIB(M77, inmax_, |
1526 |
[F77LIBS="$F77LIBS -lM77"], , $F77LIBS $MATH_LIBS) |
1527 |
;; |
1528 |
sparc-sun-sunos4*) |
1529 |
if test -n "$GCC" ; then |
1530 |
F77LIBS="-L/usr/lang/lib" |
1531 |
fi |
1532 |
AC_CHECK_LIB(F77, f77_init, [F77LIBS="$F77LIBS -lF77"], , $F77LIBS) |
1533 |
AC_CHECK_LIB(M77, inmax_, [F77LIBS="$F77LIBS -lM77"], , $F77LIBS) |
1534 |
;; |
1535 |
mips-sgi-irix*) |
1536 |
AC_CHECK_LIB(F77, s_copy, [F77LIBS="$F77LIBS -lF77"], , $F77LIBS) |
1537 |
AC_CHECK_LIB(I77, f_exit, [F77LIBS="$F77LIBS -lI77"], , $F77LIBS) |
1538 |
AC_CHECK_LIB(isam, mkidxname, |
1539 |
[F77LIBS="$F77LIBS -lisam"], , $F77LIBS) |
1540 |
;; |
1541 |
*) |
1542 |
AC_CHECK_LIB(F77, printf, [F77LIBS="$F77LIBS -lF77"], , $F77LIBS) |
1543 |
AC_CHECK_LIB(M77, printf, [F77LIBS="$F77LIBS -lM77"], , $F77LIBS) |
1544 |
AC_CHECK_LIB(f2c, pow_dd, [F77LIBS="$F77LIBS -lf2c"], , $F77LIBS) |
1545 |
AC_CHECK_LIB(f77, printf, [F77LIBS="$F77LIBS -lf77"], , $F77LIBS) |
1546 |
AC_CHECK_LIB(for, printf, [F77LIBS="$F77LIBS -lfor"], , $F77LIBS) |
1547 |
AC_CHECK_LIB(ots, printf, [F77LIBS="$F77LIBS -lots"], , $F77LIBS) |
1548 |
AC_CHECK_LIB(Ufor, printf, [F77LIBS="$F77LIBS -lUfor"], , $F77LIBS) |
1549 |
;; |
1550 |
esac |
1551 |
fi |
1552 |
|
1553 |
# asc_subdirs are the extra fortran subdirectories we have to visit |
1554 |
# to build the fortran libraries. Initialize it to empty here. |
1555 |
asc_subdirs='' |
1556 |
|
1557 |
# Initialize the blas variables |
1558 |
make_blaslib='' |
1559 |
|
1560 |
AC_ARG_WITH(blas, |
1561 |
[ --with-blas=BLASLIB The full path to the blas library. |
1562 |
Use '--with-blas=build' to build the blas library |
1563 |
from the sources that come with the distribution.], |
1564 |
, [with_blas=yes] ) |
1565 |
case "$with_fortran$with_blas" in |
1566 |
no*) |
1567 |
# Fortran is disabled; ignore this option (if present) |
1568 |
BLASLIB= |
1569 |
;; |
1570 |
*no) |
1571 |
# It is an error if the user chooses to build without |
1572 |
# the BLAS library if Fortran is enabled. |
1573 |
AC_MSG_ERROR([Bad option '--without-blas' |
1574 |
To support Fortran calls, ASCEND must be compiled with a blas library]) |
1575 |
;; |
1576 |
*build) |
1577 |
# Fortran is enabled and the user specified --with-blas=build |
1578 |
# For a search for BLAS source code and tell the Makefile |
1579 |
# to build it; useful for testing configure. |
1580 |
blas_src_file="$srcdir/blas/dcopy.f" |
1581 |
AC_MSG_CHECKING([for blas source file $blas_src_file ]) |
1582 |
if test -f $blas_src_file ; then |
1583 |
AC_MSG_RESULT(yes) |
1584 |
BLASLIB="$ascpwd/ascend4/archive/libascblas.a" |
1585 |
make_blaslib='make-blaslib' |
1586 |
blaslib_makefile="blas/Makefile" |
1587 |
asc_subdirs="$asc_subdirs ../blas" |
1588 |
else |
1589 |
AC_MSG_RESULT(no) |
1590 |
AC_MSG_ERROR([User specified '--with-blas=build' but |
1591 |
configure cannot find the blas source file $blas_src_file]) |
1592 |
fi |
1593 |
;; |
1594 |
*yes) |
1595 |
# Fortran in enabled and the user didn't give the --with-blas |
1596 |
# option or didn't give the library's location. |
1597 |
# Search for a compiled libblas.a or libascblas.a; if that |
1598 |
# fails, look for BLAS source code; if that also fails, |
1599 |
# disable all Fortran and print a warning. |
1600 |
AC_PATH_PROGS(BLASLIB, libblas.a libascblas.a, , $asc_f77_support_dirs) |
1601 |
blas_src_file="$srcdir/blas/dcopy.f" |
1602 |
if test -z "$BLASLIB" -a -n "$blas_src_file" ; then |
1603 |
AC_MSG_CHECKING([for blas source file $blas_src_file ]) |
1604 |
if test -f $blas_src_file ; then |
1605 |
AC_MSG_RESULT(yes) |
1606 |
BLASLIB="$ascpwd/ascend4/archive/libascblas.a" |
1607 |
make_blaslib='make-blaslib' |
1608 |
blaslib_makefile="blas/Makefile" |
1609 |
asc_subdirs="$asc_subdirs ../blas" |
1610 |
else |
1611 |
AC_MSG_RESULT(no) |
1612 |
fi |
1613 |
fi |
1614 |
if test -z "$BLASLIB" ; then |
1615 |
with_fortran=no |
1616 |
AC_MSG_WARN([Cannot find libblas.a, libascblas.a, nor blas |
1617 |
source code. Building ASCEND without integration, MINOS, and CONOPT |
1618 |
support. To specify a specific location for the blas library, run |
1619 |
configure again with the argument: |
1620 |
--with-blas=BLASLIB |
1621 |
where BLASLIB is the full path to the blas library file.]) |
1622 |
fi |
1623 |
;; |
1624 |
*) |
1625 |
# The user gave us --with-blas=BLASLIB, use that as the |
1626 |
# location of the BLAS library. |
1627 |
BLASLIB="$with_blas" |
1628 |
;; |
1629 |
esac |
1630 |
|
1631 |
|
1632 |
# Initialize the linpack variables |
1633 |
make_lpaklib='' |
1634 |
|
1635 |
AC_ARG_WITH(linpack, |
1636 |
[ --with-linpack=LPAKLIB The full path to the linpack library. |
1637 |
Use '--with-linpack=build' to build the library |
1638 |
from the sources that come with the distribution.], |
1639 |
, [with_linpack=yes] ) |
1640 |
case "$with_fortran$with_linpack" in |
1641 |
no*) |
1642 |
# Fortran is disabled; ignore this option (if present) |
1643 |
LPAKLIB= |
1644 |
;; |
1645 |
*no) |
1646 |
# It is an error if the user chooses to build without |
1647 |
# the LINPACK library if Fortran is enabled. |
1648 |
AC_MSG_ERROR([Bad option '--without-linpack' |
1649 |
To support Fortran calls, ASCEND must be compiled with a |
1650 |
linpack library.]) |
1651 |
;; |
1652 |
*build) |
1653 |
# Fortran is enabled and the user specified --with-linpack=build |
1654 |
# For a search for LINPACK source code and tell the Makefile |
1655 |
# to build it; useful for testing configure. |
1656 |
lpak_src_file="$srcdir/linpack/d1mach.f" |
1657 |
AC_MSG_CHECKING([for linpack source file $lpak_src_file ]) |
1658 |
if test -f $lpak_src_file ; then |
1659 |
AC_MSG_RESULT(yes) |
1660 |
LPAKLIB="$ascpwd/ascend4/archive/libasclpak.a" |
1661 |
make_lpaklib='make-lpaklib' |
1662 |
lpaklib_makefile="linpack/Makefile" |
1663 |
asc_subdirs="$asc_subdirs ../linpack" |
1664 |
else |
1665 |
AC_MSG_RESULT(no) |
1666 |
AC_MSG_ERROR([User specified '--with-linpack=build' but |
1667 |
configure cannot find the linpack source file $lpak_src_file]) |
1668 |
fi |
1669 |
;; |
1670 |
*yes) |
1671 |
# Fortran in enabled and the user didn't give the --with-linpack |
1672 |
# option or didn't give the library's location. |
1673 |
# Search for a compiled liblpak.a or libasclpak.a; if that |
1674 |
# fails, look for LINPACK source code; if that also fails, |
1675 |
# disable all Fortran and print a warning. |
1676 |
AC_PATH_PROGS(LPAKLIB, liblpak.a libasclpak.a, , $asc_f77_support_dirs) |
1677 |
lpak_src_file="$srcdir/linpack/d1mach.f" |
1678 |
if test -z "$LPAKLIB" -a -n "$lpak_src_file" ; then |
1679 |
AC_MSG_CHECKING([for linpack source file $lpak_src_file ]) |
1680 |
if test -f $lpak_src_file ; then |
1681 |
AC_MSG_RESULT(yes) |
1682 |
LPAKLIB="$ascpwd/ascend4/archive/libasclpak.a" |
1683 |
make_lpaklib='make-lpaklib' |
1684 |
lpaklib_makefile="linpack/Makefile" |
1685 |
asc_subdirs="$asc_subdirs ../linpack" |
1686 |
else |
1687 |
AC_MSG_RESULT(no) |
1688 |
fi |
1689 |
fi |
1690 |
if test -z "$LPAKLIB" ; then |
1691 |
with_fortran=no |
1692 |
AC_MSG_WARN([Cannot find liblpak.a, libasclpak.a, nor linpack |
1693 |
source code. Building ASCEND without integration, MINOS, and CONOPT |
1694 |
support. To specify a specific location for the linpack library, run |
1695 |
configure again with the argument: |
1696 |
--with-linpack=LPAKLIB |
1697 |
where LPAKLIB is the full path to the linpack library file.]) |
1698 |
fi |
1699 |
;; |
1700 |
*) |
1701 |
# The user gave us --with-linkpack=LINKPACKLIB, use that |
1702 |
# as the location of the LINKPACK library. |
1703 |
LPAKLIB="$with_linpack" |
1704 |
;; |
1705 |
esac |
1706 |
|
1707 |
|
1708 |
# Initialize the lsod variables |
1709 |
make_lsodlib='' |
1710 |
HAVE_LSOD='' |
1711 |
|
1712 |
AC_ARG_WITH(lsod, |
1713 |
[ --with-lsod=LSODLIB The full path to the lsod library. |
1714 |
Use '--with-lsod=build' to build the lsod library |
1715 |
from the sources that come with the distribution.], |
1716 |
, [with_lsod=yes] ) |
1717 |
case "$with_fortran$with_lsod" in |
1718 |
no*) |
1719 |
# Fortran is disabled; ignore this option (if present) |
1720 |
LSODLIB= |
1721 |
with_lsod=no |
1722 |
;; |
1723 |
*no) |
1724 |
# Fortran is enabled but the user specified --without-lsod |
1725 |
LSODLIB= |
1726 |
;; |
1727 |
*build) |
1728 |
# Fortran is enabled and the user specified --with-lsod=build |
1729 |
# For a search for LSOD source code and tell the Makefile |
1730 |
# to build it; useful for testing configure. |
1731 |
lsod_src_file="$srcdir/lsod/lsode.f" |
1732 |
AC_MSG_CHECKING([for lsod source file $lsod_src_file ]) |
1733 |
if test -f $lsod_src_file ; then |
1734 |
AC_MSG_RESULT(yes) |
1735 |
LSODLIB="$ascpwd/ascend4/archive/libinteg.a" |
1736 |
make_lsodlib='make-lsodlib' |
1737 |
lsodlib_makefile="lsod/Makefile" |
1738 |
asc_subdirs="$asc_subdirs ../lsod" |
1739 |
HAVE_LSOD='-DSTATIC_LSOD' |
1740 |
else |
1741 |
AC_MSG_RESULT(no) |
1742 |
AC_MSG_ERROR([User specified '--with-lsod=build' but |
1743 |
configure cannot find the lsod source file $lsod_src_file]) |
1744 |
fi |
1745 |
;; |
1746 |
*yes) |
1747 |
# Fortran in enabled and the user didn't give the --with-lsod |
1748 |
# option or didn't give the library's location. |
1749 |
# Search for a compiled libinteg.a; if that fails, look |
1750 |
# for LSOD source code; if that also fails, disable LSOD |
1751 |
# and print a warning. |
1752 |
AC_PATH_PROGS(LSODLIB, libinteg.a libasclsod.a, , $asc_f77_support_dirs) |
1753 |
lsod_src_file="$srcdir/lsod/lsode.f" |
1754 |
if test -z "$LSODLIB" -a -n "$lsod_src_file" ; then |
1755 |
AC_MSG_CHECKING([for lsod source file $lsod_src_file ]) |
1756 |
if test -f $lsod_src_file ; then |
1757 |
AC_MSG_RESULT(yes) |
1758 |
LSODLIB="$ascpwd/ascend4/archive/libinteg.a" |
1759 |
make_lsodlib='make-lsodlib' |
1760 |
lsodlib_makefile="lsod/Makefile" |
1761 |
asc_subdirs="$asc_subdirs ../lsod" |
1762 |
else |
1763 |
AC_MSG_RESULT(no) |
1764 |
fi |
1765 |
fi |
1766 |
if test -z "$LSODLIB" ; then |
1767 |
with_lsod=no |
1768 |
AC_MSG_WARN([Cannot find libinteg.a nor the lsod |
1769 |
source code. Building ASCEND without integration |
1770 |
support. To specify a specific location for the lsod library, run |
1771 |
configure again with the argument: |
1772 |
--with-lsod=LSODLIB |
1773 |
where LSODLIB is the full path to the lsod integration library file.]) |
1774 |
else |
1775 |
HAVE_LSOD='-DSTATIC_LSOD' |
1776 |
fi |
1777 |
;; |
1778 |
*) |
1779 |
# The user gave us --with-lsod=LSODLIB, use that as the |
1780 |
# location of the LSOD library and define -DSTATIC_LSOD. |
1781 |
LSODLIB="$with_lsod" |
1782 |
HAVE_LSOD='-DSTATIC_LSOD' |
1783 |
;; |
1784 |
esac |
1785 |
|
1786 |
|
1787 |
# Initialize the optsqp/rsqp variables |
1788 |
make_rsqplib='' |
1789 |
HAVE_OPTSQP='' |
1790 |
OPTSQPLIB='' |
1791 |
|
1792 |
dnl >>>> Commenting out OPTSQP support until we get a working OPT from Dave |
1793 |
dnl >>>>AC_ARG_WITH(rsqp, |
1794 |
dnl >>>> [ --with-rsqp=OPTSQPLIB The full path to the rsqp library. |
1795 |
dnl >>>> Use '--with-rsqp=build' to build the rsqp library |
1796 |
dnl >>>> from the sources that come with the distribution.], |
1797 |
dnl >>>> , [with_rsqp=yes] ) |
1798 |
dnl >>>>case "$with_fortran$with_rsqp" in |
1799 |
dnl >>>> no*) |
1800 |
dnl >>>> # Fortran is disabled; ignore this option (if present) |
1801 |
dnl >>>> OPTSQPLIB= |
1802 |
dnl >>>> with_rsqp=no |
1803 |
dnl >>>> ;; |
1804 |
dnl >>>> *no) |
1805 |
dnl >>>> # Fortran is enabled but the user specified --without-rsqp |
1806 |
dnl >>>> OPTSQPLIB= |
1807 |
dnl >>>> ;; |
1808 |
dnl >>>> *build) |
1809 |
dnl >>>> # Fortran is enabled and the user specified --with-rsqp=build |
1810 |
dnl >>>> # For a search for OPTSQP source code and tell the Makefile |
1811 |
dnl >>>> # to build it; useful for testing configure. |
1812 |
dnl >>>> rsqp_src_file="$srcdir/rsqp/shared/OPT.DAT" |
1813 |
dnl >>>> AC_MSG_CHECKING([for rsqp source file $rsqp_src_file ]) |
1814 |
dnl >>>> if test -f $rsqp_src_file ; then |
1815 |
dnl >>>> AC_MSG_RESULT(yes) |
1816 |
dnl >>>> OPTSQPLIB="$ascpwd/ascend4/archive/librsqp.a" |
1817 |
dnl >>>> make_rsqplib='make-rsqplib' |
1818 |
dnl >>>> rsqplib_makefile='rsqp/Makefile |
1819 |
dnl >>>> rsqp/QPIP/Makefile |
1820 |
dnl >>>> rsqp/hsl/Makefile |
1821 |
dnl >>>> rsqp/rSQP/Makefile' |
1822 |
dnl >>>> asc_subdirs="$asc_subdirs ../rsqp" |
1823 |
dnl >>>> HAVE_OPTSQP='-DSTATIC_OPTSQP' |
1824 |
dnl >>>> else |
1825 |
dnl >>>> AC_MSG_RESULT(no) |
1826 |
dnl >>>> AC_MSG_ERROR([User specified '--with-rsqp=build' but |
1827 |
dnl >>>> configure cannot find the rsqp source file $rsqp_src_file]) |
1828 |
dnl >>>> fi |
1829 |
dnl >>>> ;; |
1830 |
dnl >>>> *yes) |
1831 |
dnl >>>> # Fortran in enabled and the user didn't give the --with-rsqp |
1832 |
dnl >>>> # option or didn't give the library's location. |
1833 |
dnl >>>> # Search for a compiled librsqp.a; if that fails, look |
1834 |
dnl >>>> # for OPTSQP source code; if that also fails, disable OPTSQP |
1835 |
dnl >>>> # and print a warning. |
1836 |
dnl >>>> AC_PATH_PROGS(OPTSQPLIB, librsqp.a , , $asc_f77_support_dirs) |
1837 |
dnl >>>> rsqp_src_file="$srcdir/rsqp/shared/OPT.DAT" |
1838 |
dnl >>>> if test -z "$OPTSQPLIB" -a -n "$rsqp_src_file" ; then |
1839 |
dnl >>>> AC_MSG_CHECKING([for rsqp source file $rsqp_src_file ]) |
1840 |
dnl >>>> if test -f $rsqp_src_file ; then |
1841 |
dnl >>>> AC_MSG_RESULT(yes) |
1842 |
dnl >>>> OPTSQPLIB="$ascpwd/ascend4/archive/librsqp.a" |
1843 |
dnl >>>> make_rsqplib='make-rsqplib' |
1844 |
dnl >>>> rsqplib_makefile='rsqp/Makefile |
1845 |
dnl >>>> rsqp/QPIP/Makefile |
1846 |
dnl >>>> rsqp/hsl/Makefile |
1847 |
dnl >>>> rsqp/rSQP/Makefile' |
1848 |
dnl >>>> asc_subdirs="$asc_subdirs ../rsqp" |
1849 |
dnl >>>> else |
1850 |
dnl >>>> AC_MSG_RESULT(no) |
1851 |
dnl >>>> fi |
1852 |
dnl >>>> fi |
1853 |
dnl >>>> if test -z "$OPTSQPLIB" ; then |
1854 |
dnl >>>> with_rsqp=no |
1855 |
dnl >>>> AC_MSG_WARN([Cannot find librsqp.a nor the rsqp |
1856 |
dnl >>>> source code. Building ASCEND without SQP |
1857 |
dnl >>>> support. To specify a specific location for the rsqp library, run |
1858 |
dnl >>>> configure again with the argument: |
1859 |
dnl >>>> --with-rsqp=OPTSQPLIB |
1860 |
dnl >>>> where OPTSQPLIB is the full path to the rsqp integration library file.]) |
1861 |
dnl >>>> else |
1862 |
dnl >>>> HAVE_OPTSQP='-DSTATIC_OPTSQP' |
1863 |
dnl >>>> fi |
1864 |
dnl >>>> ;; |
1865 |
dnl >>>> *) |
1866 |
dnl >>>> # The user gave us --with-rsqp=OPTSQPLIB, use that as the |
1867 |
dnl >>>> # location of the OPTSQP library and define -DSTATIC_OPTSQP. |
1868 |
dnl >>>> OPTSQPLIB="$with_rsqp" |
1869 |
dnl >>>> HAVE_OPTSQP='-DSTATIC_OPTSQP' |
1870 |
dnl >>>> ;; |
1871 |
dnl >>>>esac |
1872 |
|
1873 |
|
1874 |
# Initialize the conopt variables |
1875 |
make_conoptlib='' |
1876 |
HAVE_CONOPT='' |
1877 |
|
1878 |
AC_ARG_WITH(conopt, |
1879 |
[ --with-conopt=CONOPTLIB The full path to the conopt library.], |
1880 |
, [with_conopt=yes] ) |
1881 |
case "$with_fortran$with_conopt" in |
1882 |
no*) |
1883 |
# Fortran is disabled; ignore this option (if present) |
1884 |
CONOPTLIB= |
1885 |
with_copopt=no |
1886 |
;; |
1887 |
*no) |
1888 |
# Fortran is enabled but the user specified --without-conopt |
1889 |
CONOPTLIB= |
1890 |
;; |
1891 |
*yes) |
1892 |
# Fortran in enabled and the user didn't give the --with-conopt |
1893 |
# option or didn't give the library's location. |
1894 |
# Search for a compiled libconsub.a; if that fails, |
1895 |
# disable CONOPT and print a warning. |
1896 |
AC_PATH_PROGS(CONOPTLIB, libconsub.a, , $asc_f77_support_dirs) |
1897 |
# Since conopt_src_file is empty, we don't search for conopt |
1898 |
# source code. |
1899 |
conopt_src_file="" |
1900 |
if test -z "$CONOPTLIB" -a -n "$conopt_src_file" ; then |
1901 |
AC_MSG_CHECKING([for conopt source file $conopt_src_file ]) |
1902 |
if test -f $conopt_src_file ; then |
1903 |
AC_MSG_RESULT(yes) |
1904 |
CONOPTLIB="$ascpwd/ascend4/archive/libconsub.a" |
1905 |
make_conoptlib='make-conoptlib' |
1906 |
conoptlib_makefile="conopt/Makefile" |
1907 |
asc_subdirs="$asc_subdirs ../conopt" |
1908 |
else |
1909 |
AC_MSG_RESULT(no) |
1910 |
fi |
1911 |
fi |
1912 |
if test -z "$CONOPTLIB" ; then |
1913 |
with_conopt=no |
1914 |
AC_MSG_WARN([Cannot find libconsub.a nor conopt |
1915 |
source code. Building ASCEND without CONOPT |
1916 |
support. To specify a specific location for the conopt library, run |
1917 |
configure again with the argument: |
1918 |
--with-conopt=CONOPTLIB |
1919 |
where CONOPTLIB is the full path to the conopt library file. |
1920 |
CONOPT is proprietary and is distributed by: |
1921 |
Arne Drud +45 44 49 03 23 adrud@arki.dk]) |
1922 |
else |
1923 |
HAVE_CONOPT='-DSTATIC_CONOPT' |
1924 |
fi |
1925 |
;; |
1926 |
*) |
1927 |
# The user gave us --with-conopt=CONOPTLIB, use that as the |
1928 |
# location of the CONOPT library and define -DSTATIC_CONOPT. |
1929 |
CONOPTLIB="$with_conopt" |
1930 |
HAVE_CONOPT='-DSTATIC_CONOPT' |
1931 |
;; |
1932 |
esac |
1933 |
|
1934 |
|
1935 |
# Initialize the minos variables |
1936 |
make_minoslib='' |
1937 |
HAVE_MINOS='' |
1938 |
MINOSLIB='' |
1939 |
|
1940 |
dnl >>>> Commenting out MINOS support until ASCEND's solver/slv1.c is fixed |
1941 |
dnl >>>>AC_ARG_WITH(minos, |
1942 |
dnl >>>> [ --with-minos=MINOSLIB The full path to the minos library.], |
1943 |
dnl >>>> , [with_minos=yes] ) |
1944 |
dnl >>>>case "$with_fortran$with_minos" in |
1945 |
dnl >>>> no*) |
1946 |
dnl >>>> # Fortran is disabled; ignore this option (if present) |
1947 |
dnl >>>> MINOSLIB= |
1948 |
dnl >>>> with_minos=no |
1949 |
dnl >>>> ;; |
1950 |
dnl >>>> *no) |
1951 |
dnl >>>> # Fortran is enabled but the user specified --without-lsod |
1952 |
dnl >>>> MINOSLIB= |
1953 |
dnl >>>> ;; |
1954 |
dnl >>>> *yes) |
1955 |
dnl >>>> # Fortran in enabled and the user didn't give the --with-minos |
1956 |
dnl >>>> # option or didn't give the library's location. |
1957 |
dnl >>>> # Search for a compiled libminos54.a; if that fails, look |
1958 |
dnl >>>> # for MINOS source code; if that also fails, disable MINOS |
1959 |
dnl >>>> # and print a warning. |
1960 |
dnl >>>> AC_PATH_PROGS(MINOSLIB, libminos54.a, , $asc_f77_support_dirs) |
1961 |
dnl >>>> minos_src_file="$srcdir/minos54/miascend.f" |
1962 |
dnl >>>> if test -z "$MINOSLIB" -a -n "$minos_src_file" ; then |
1963 |
dnl >>>> AC_MSG_CHECKING([for minos source file $minos_src_file ]) |
1964 |
dnl >>>> if test -f $minos_src_file ; then |
1965 |
dnl >>>> AC_MSG_RESULT(yes) |
1966 |
dnl >>>> MINOSLIB="$ascpwd/ascend4/archive/libminos54.a" |
1967 |
dnl >>>> make_minoslib='make-minoslib' |
1968 |
dnl >>>> minoslib_makefile="minos54/Makefile" |
1969 |
dnl >>>> asc_subdirs="$asc_subdirs ../minos54" |
1970 |
dnl >>>> else |
1971 |
dnl >>>> AC_MSG_RESULT(no) |
1972 |
dnl >>>> fi |
1973 |
dnl >>>> fi |
1974 |
dnl >>>> if test -z "$MINOSLIB" ; then |
1975 |
dnl >>>> with_minos=no |
1976 |
dnl >>>> AC_MSG_WARN([Cannot find libminos54.a nor minos |
1977 |
dnl >>>> source code. Building ASCEND without MINOS |
1978 |
dnl >>>> support. To specify a specific location for the minos library, |
1979 |
dnl >>>> run configure again with the argument: |
1980 |
dnl >>>> --with-minos=MINOSLIB |
1981 |
dnl >>>> where MINOSLIB is the full path to the minos library file. |
1982 |
dnl >>>> MINOS is proprietary and is distributed by: |
1983 |
dnl >>>> Stanford Business Software, Inc.; |
1984 |
dnl >>>> 2672 Bayshore Parkway, Suite 304; Mountain View, CA 94043 |
1985 |
dnl >>>> 415-962-8719; mike@sol-michael.stanford.edu]) |
1986 |
dnl >>>> else |
1987 |
dnl >>>> HAVE_MINOS='-DSTATIC_MINOS' |
1988 |
dnl >>>> fi |
1989 |
dnl >>>> ;; |
1990 |
dnl >>>> *) |
1991 |
dnl >>>> # The user gave us --with-minos=MINOSLIB, use that as the |
1992 |
dnl >>>> # location of the MINOS library and define -DSTATIC_MINOS. |
1993 |
dnl >>>> MINOSLIB="$with_minos" |
1994 |
dnl >>>> HAVE_MINOS='-DSTATIC_MINOS' |
1995 |
dnl >>>> ;; |
1996 |
dnl >>>>esac |
1997 |
|
1998 |
|
1999 |
#-------------------------------------------------------------------- |
2000 |
# Other trees which may or may not be present. If present, |
2001 |
# generate the Makefiles in the tree unless the user passes in |
2002 |
# a --without-<package> argument. |
2003 |
# |
2004 |
# Valid <package> values are: TK, models, help |
2005 |
# |
2006 |
# We could have `configure' do this for us via |
2007 |
# AC_CONFIG_SUBDIRS, but `configure' scripts in the trees can |
2008 |
# only be one directory removed from this configure script. |
2009 |
# For example, it would be nice to have `models' under |
2010 |
# `ascend4', but `configure' doesn't like `ascend4/models' as |
2011 |
# an argument to AC_CONFIG_SUBDIRS. |
2012 |
# |
2013 |
# To get around this problem, we do things by hand. :-) |
2014 |
# |
2015 |
# If the user gives a --without-<package> argument, we have |
2016 |
# nothing to do for that package. |
2017 |
# |
2018 |
# Otherwise, |
2019 |
# * Set `subdir_file_exists' to a file that should exist in the |
2020 |
# subtree---this is how we know that the subtree is really |
2021 |
# there. |
2022 |
# * Set `subdir_locations' to the list of locations, relative |
2023 |
# to this configure script, where the subtree may live. |
2024 |
# * Set `subdir_output' to the list of makefiles to generate; |
2025 |
# the variable `subdir_root' in this list will be replaced |
2026 |
# with the correct value from `subdir_locations'. |
2027 |
# |
2028 |
# To see which (if any) of the values in `subdir_locations' is |
2029 |
# the correct one, we set `subdir_root' to each value in |
2030 |
# `subdir_locations' and check for the existence of |
2031 |
# $fullpathsrcdir/$subdir_root/$subdir_file_exists, where |
2032 |
# $fullpathsrcdir is the full path to the source directory. If |
2033 |
# that file exists, we |
2034 |
# * Set <package>_dir_root to ../$subdir_root. The "../" is |
2035 |
# needed since this value is used in the `ascend4' directory |
2036 |
# and $subdir_root is relative to the parent of `ascend4'. |
2037 |
# * Substitute the value of $subdir_root into `subdir_output' |
2038 |
# and set the result to <package>_makefiles: the list of |
2039 |
# Makefiles for configure to generate. |
2040 |
# * Each package needs to be able to find its way back to |
2041 |
# ascend4/ConfigAscend; it needs to go back up the tree |
2042 |
# however many levels deep it is---i.e., `foo/bar/baz' should |
2043 |
# become `../../..' and this does it: sed 's,[^/][^/]*,..,g' |
2044 |
# but we need to quote the [] from m4, so we get this bizarre |
2045 |
# thing: sed 's,[[^/][^/]]*,..,g' Set <package>_topbuilddir |
2046 |
# to this result. |
2047 |
# * Exit the loop. |
2048 |
#-------------------------------------------------------------------- |
2049 |
|
2050 |
# Initialize variables |
2051 |
tkdir_root='' |
2052 |
tkdir_topbuilddir='' |
2053 |
|
2054 |
AC_ARG_WITH(tkdir, |
2055 |
[Generation of Makefiles: |
2056 |
--without-tkdir do not generate Makefiles in the TK subdir], |
2057 |
, [with_tkdir=yes]) |
2058 |
if test ! "X$with_tkdir" = "Xno" ; then |
2059 |
subdir_file_exists='AscendRC' |
2060 |
subdir_locations='ascend4/TK' |
2061 |
subdir_output=' |
2062 |
$subdir_root/Makefile |
2063 |
$subdir_root/Makefile.Rules:$subdir_root/Makefile.Rules.in |
2064 |
$subdir_root/bitmaps/Makefile |
2065 |
$subdir_root/templates/Makefile |
2066 |
' |
2067 |
for subdir_root in $subdir_locations ; do |
2068 |
if test -f $fullpathsrcdir/$subdir_root/$subdir_file_exists ; then |
2069 |
tkdir_root="../$subdir_root" |
2070 |
tkdir_makefiles=`eval echo $subdir_output` |
2071 |
tkdir_topbuilddir=`echo "$subdir_root" | sed 's,[[^/][^/]]*,..,g'` |
2072 |
break |
2073 |
fi |
2074 |
done |
2075 |
fi |
2076 |
|
2077 |
# Initialize variables |
2078 |
models_dir_root='' |
2079 |
models_topbuilddir='' |
2080 |
|
2081 |
AC_ARG_WITH(models, |
2082 |
[ --without-models do not generate Makefiles in the models subdir], |
2083 |
, [with_models=yes]) |
2084 |
if test ! "X$with_models" = "Xno" ; then |
2085 |
subdir_file_exists='system.a4l' |
2086 |
subdir_locations='models ascend4/models' |
2087 |
subdir_output=' |
2088 |
$subdir_root/Makefile |
2089 |
$subdir_root/Makefile.Rules:$subdir_root/Makefile.Rules.in |
2090 |
$subdir_root/ben/Makefile |
2091 |
' |
2092 |
## $subdir_root/examples/Makefile |
2093 |
## $subdir_root/examples/abbott/Makefile |
2094 |
## $subdir_root/examples/flexible_design/Makefile |
2095 |
## $subdir_root/libraries/Makefile |
2096 |
## $subdir_root/libraries/abbott/Makefile |
2097 |
## $subdir_root/pending/Makefile |
2098 |
## $subdir_root/pending/examples/Makefile |
2099 |
## $subdir_root/pending/libraries/Makefile |
2100 |
for subdir_root in $subdir_locations ; do |
2101 |
if test -f $fullpathsrcdir/$subdir_root/$subdir_file_exists ; then |
2102 |
models_dir_root="../$subdir_root" |
2103 |
models_makefiles=`eval echo $subdir_output` |
2104 |
models_topbuilddir=`echo "$subdir_root" | sed 's,[[^/][^/]]*,..,g'` |
2105 |
break |
2106 |
fi |
2107 |
done |
2108 |
fi |
2109 |
|
2110 |
|
2111 |
# Initialize variables |
2112 |
help_dir_root='' |
2113 |
help_topbuilddir='' |
2114 |
|
2115 |
dnl >>>>AC_ARG_WITH(help, |
2116 |
dnl >>>> [ --without-help do not generate Makefiles in the help subdir], |
2117 |
dnl >>>> , [with_help=yes]) |
2118 |
dnl >>>>if test ! "X$with_help" = "Xno" ; then |
2119 |
dnl >>>> subdir_file_exists='ascend-helpTOC.htm' |
2120 |
dnl >>>> subdir_locations='help ascend4/help' |
2121 |
dnl >>>> subdir_output=' |
2122 |
dnl >>>> $subdir_root/Makefile |
2123 |
dnl >>>> $subdir_root/Makefile.Rules:$subdir_root/Makefile.Rules.in |
2124 |
dnl >>>> $subdir_root/Screenshots/Makefile |
2125 |
dnl >>>> ' |
2126 |
dnl >>>> for subdir_root in $subdir_locations ; do |
2127 |
dnl >>>> if test -f $fullpathsrcdir/$subdir_root/$subdir_file_exists ; then |
2128 |
dnl >>>> help_dir_root="../$subdir_root" |
2129 |
dnl >>>> help_makefiles=`eval echo $subdir_output` |
2130 |
dnl >>>> help_topbuilddir=`echo "$subdir_root" | sed 's,[[^/][^/]]*,..,g'` |
2131 |
dnl >>>> break |
2132 |
dnl >>>> fi |
2133 |
dnl >>>> done |
2134 |
dnl >>>>fi |
2135 |
|
2136 |
|
2137 |
#-------------------------------------------------------------------- |
2138 |
# The variables we substitute into the Makefile.in files |
2139 |
# and the command to actually generate the Makefiles |
2140 |
#-------------------------------------------------------------------- |
2141 |
AC_SUBST(ascpwd) |
2142 |
AC_SUBST(fullpathsrcdir) |
2143 |
AC_SUBST(asc_include) |
2144 |
AC_SUBST(CC) |
2145 |
AC_SUBST(CFLAGS) |
2146 |
AC_SUBST(LEX) |
2147 |
AC_SUBST(LEXLIB) |
2148 |
AC_SUBST(scanner_src) |
2149 |
AC_SUBST(typer_src) |
2150 |
AC_SUBST(MATH_LIBS) |
2151 |
AC_SUBST(DEBUG_LIBS) |
2152 |
AC_SUBST(X11_INCLUDES) |
2153 |
AC_SUBST(X11_LIBRARIES) |
2154 |
AC_SUBST(X11_RUN_PATH) |
2155 |
AC_SUBST(X11_EXTRA_LIBS) |
2156 |
AC_SUBST(DL_LIBS) |
2157 |
AC_SUBST(LD_FLAGS) |
2158 |
AC_SUBST(LD_SEARCH_FLAGS) |
2159 |
AC_SUBST(SHLIB_CFLAGS) |
2160 |
AC_SUBST(SHLIB_LD) |
2161 |
AC_SUBST(SHLIB_LD_LIBS) |
2162 |
AC_SUBST(SHLIB_SUFFIX) |
2163 |
AC_SUBST(ASC_LIB_SUFFIX) |
2164 |
AC_SUBST(TCL_LIB) |
2165 |
AC_SUBST(TCL_HDR) |
2166 |
AC_SUBST(TK_LIB) |
2167 |
AC_SUBST(TK_HDR) |
2168 |
AC_SUBST(TKTABLE_LIB) |
2169 |
AC_SUBST(ASC_TK_LIBRARY) |
2170 |
AC_SUBST(ASC_TCL_LIBRARY) |
2171 |
AC_SUBST(HAVE_TKTABLE) |
2172 |
AC_SUBST(asc_subdirs) |
2173 |
AC_SUBST(F77) |
2174 |
AC_SUBST(F77LIBS) |
2175 |
AC_SUBST(BLASLIB) |
2176 |
AC_SUBST(make_blaslib) |
2177 |
AC_SUBST(LPAKLIB) |
2178 |
AC_SUBST(make_lpaklib) |
2179 |
AC_SUBST(LSODLIB) |
2180 |
AC_SUBST(make_lsodlib) |
2181 |
AC_SUBST(HAVE_LSOD) |
2182 |
AC_SUBST(OPTSQPLIB) |
2183 |
AC_SUBST(make_rsqplib) |
2184 |
AC_SUBST(HAVE_OPTSQP) |
2185 |
dnl AC_SUBST(HARWELLLIB) |
2186 |
dnl AC_SUBST(make_harwelllib) |
2187 |
dnl AC_SUBST(HAVE_HARWELL) |
2188 |
AC_SUBST(MINOSLIB) |
2189 |
AC_SUBST(make_minoslib) |
2190 |
AC_SUBST(HAVE_MINOS) |
2191 |
AC_SUBST(CONOPTLIB) |
2192 |
AC_SUBST(make_conoptlib) |
2193 |
AC_SUBST(HAVE_CONOPT) |
2194 |
AC_SUBST(tkdir_root) |
2195 |
AC_SUBST(tkdir_topbuilddir) |
2196 |
AC_SUBST(models_dir_root) |
2197 |
AC_SUBST(models_topbuilddir) |
2198 |
AC_SUBST(help_dir_root) |
2199 |
AC_SUBST(help_topbuilddir) |
2200 |
|
2201 |
AC_OUTPUT( |
2202 |
ascend4/ConfigAscend:ascend4/ConfigAscend.in |
2203 |
ascend4/Makefile |
2204 |
ascend4/bin/ascend |
2205 |
ascend4/Makefile.Rules:ascend4/Makefile.Rules.in |
2206 |
ascend4/archive/Makefile |
2207 |
ascend4/bin/Makefile |
2208 |
ascend4/compiler/Makefile |
2209 |
ascend4/general/Makefile |
2210 |
ascend4/interface/Makefile |
2211 |
ascend4/lib/Makefile |
2212 |
ascend4/packages/Makefile |
2213 |
ascend4/solver/Makefile |
2214 |
ascend4/utilities/Makefile |
2215 |
$tkdir_makefiles |
2216 |
$models_makefiles |
2217 |
$help_makefiles |
2218 |
$blaslib_makefile |
2219 |
$lpaklib_makefile |
2220 |
$lsodlib_makefile |
2221 |
$rsqplib_makefile |
2222 |
$conoptlib_makefile |
2223 |
$minoslib_makefile |
2224 |
) |