1 | # Copyright (C) 2007 International Business Machines. |
---|
2 | # All Rights Reserved. |
---|
3 | # This file is distributed under the Common Public License. |
---|
4 | |
---|
5 | ## $Id: configure.ac 1004 2008-04-17 03:16:20Z lou $ |
---|
6 | |
---|
7 | # Author: Andreas Waechter IBM 2006-04-13 |
---|
8 | # Revised: Lou Hafer SFU 2007-09-15 |
---|
9 | |
---|
10 | ############################################################################# |
---|
11 | # Names and other basic things # |
---|
12 | ############################################################################# |
---|
13 | |
---|
14 | AC_PREREQ(2.59) |
---|
15 | |
---|
16 | AC_INIT([ThirdPartyASL],[1.0trunk],[http://projects.coin-or.org/BuildTools/newticket]) |
---|
17 | |
---|
18 | AC_COPYRIGHT([ |
---|
19 | Copyright 2006 International Business Machines and others. |
---|
20 | All Rights Reserved. |
---|
21 | This file is part of the open source package Coin which is distributed |
---|
22 | under the Common Public License.]) |
---|
23 | |
---|
24 | # List one file in the package so that the configure script can test |
---|
25 | # whether the package is actually there |
---|
26 | AC_CONFIG_SRCDIR(solvers/asl.h) |
---|
27 | |
---|
28 | # Where should everything be installed by default? Here, we want it |
---|
29 | # to be installed directly in 'bin', 'lib', 'include' subdirectories |
---|
30 | # of the directory where configure is run. The default would be |
---|
31 | # /usr/local. |
---|
32 | AC_PREFIX_DEFAULT([`pwd`]) |
---|
33 | |
---|
34 | ############################################################################# |
---|
35 | # Standard build tool stuff # |
---|
36 | ############################################################################# |
---|
37 | |
---|
38 | # Get the system type |
---|
39 | AC_CANONICAL_BUILD |
---|
40 | |
---|
41 | # A bit of initial setup. |
---|
42 | AC_COIN_PROJECTDIR_INIT |
---|
43 | |
---|
44 | # Turn off warnings and pedantic mode since they could make trouble on some |
---|
45 | # platforms, and we can't fix issues in third-party code. |
---|
46 | coin_skip_warn_cflags=yes |
---|
47 | |
---|
48 | # Check if user wants to produce debugging code |
---|
49 | AC_COIN_DEBUG_COMPILE(ASL) |
---|
50 | |
---|
51 | # We need egrep and ln -s somewhere |
---|
52 | AC_PROG_EGREP |
---|
53 | AC_PROG_LN_S |
---|
54 | |
---|
55 | # Get the name of the C compiler and compiler flags |
---|
56 | AC_COIN_PROG_CC |
---|
57 | |
---|
58 | # Initialize automake and libtool |
---|
59 | AC_COIN_INIT_AUTO_TOOLS |
---|
60 | |
---|
61 | # See what we're actually going to do for ASL. This will define ampllib. |
---|
62 | AC_COIN_HAS_ASL |
---|
63 | |
---|
64 | MAKEOKFILE=.MakeOk |
---|
65 | if test $coin_has_asl != no && test "$use_asldir" != BUILD; then |
---|
66 | skip_further_test=yes |
---|
67 | rm -f $MAKEOKFILE |
---|
68 | AC_MSG_NOTICE([The ASL sources don't need to be compiled]) |
---|
69 | MAKEOKFILE= |
---|
70 | else |
---|
71 | touch $MAKEOKFILE |
---|
72 | fi |
---|
73 | AC_SUBST(MAKEOKFILE) |
---|
74 | AM_CONDITIONAL(SKIPMAKE, test -z "$MAKEOKFILE") |
---|
75 | |
---|
76 | ############################################################################# |
---|
77 | # AMPL SOLVER LIBRARY # |
---|
78 | ############################################################################# |
---|
79 | |
---|
80 | if test x$skip_further_test != xyes; then |
---|
81 | |
---|
82 | # Set a substitutable variable with the library name, and determine the |
---|
83 | # compilation style. |
---|
84 | |
---|
85 | AC_SUBST(AMPLSOLVER_A) |
---|
86 | AMPLSOLVER_A=$ampllib |
---|
87 | case "$CC" in |
---|
88 | cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) |
---|
89 | msvc_compile=yes ;; |
---|
90 | *) |
---|
91 | msvc_compile=no ;; |
---|
92 | esac |
---|
93 | AC_MSG_NOTICE([Configuring ASL to build $AMPLSOLVER_A.]) |
---|
94 | |
---|
95 | # Determine flags to be passed on the command line to (n)make. The main |
---|
96 | # activity is to groom CFLAGS and set up ASLMAKEFLAGS to pass CFLAGS on the |
---|
97 | # (n)make command line. |
---|
98 | # NON_STDIO no longer appears in any source file; removed all mention. |
---|
99 | # No_Control87 seems to be specific to DEC Alpha. Try leaving it undefined. |
---|
100 | |
---|
101 | if test -z "$ASLMAKEFLAGS" ; then |
---|
102 | asladdcflags= |
---|
103 | case $build in |
---|
104 | *-linux*) |
---|
105 | case $CC in |
---|
106 | pgcc* | */pgcc* | xlc* | */xlc* | blrts_xlc* | */blrts_xlc*) |
---|
107 | asladdcflags="$asladdcflags -DNO_fpu_control";; |
---|
108 | esac |
---|
109 | ;; |
---|
110 | esac |
---|
111 | |
---|
112 | # Various feature checks. Force the language to be C while we do this to avoid |
---|
113 | # issues with C++ (re)declarations. |
---|
114 | |
---|
115 | AC_LANG_PUSH(C) |
---|
116 | |
---|
117 | # The critical function for NO_RUSAGE is getrusage(). Use a standard test. |
---|
118 | |
---|
119 | AC_MSG_CHECKING([for getrusage]) |
---|
120 | AC_LINK_IFELSE( |
---|
121 | [AC_LANG_PROGRAM([[]],[[getrusage()]])], |
---|
122 | [AC_MSG_RESULT([yes])], |
---|
123 | [asladdcflags="$asladdcflags -DNO_RUSAGE" |
---|
124 | AC_MSG_RESULT([no])]) |
---|
125 | |
---|
126 | # Check for long long; we need to define NO_LONG_LONG if it's not present. ASL |
---|
127 | # makefile.u and makefile.vc both deal with this, in their own way. |
---|
128 | # Unfortunately, when trying to build with cl under cygwin, the makefile.vc |
---|
129 | # solution, comptry.bat, fails. To safely discard comptry.bat, we need to do |
---|
130 | # this check. It's hardly likely that long long is missing on any modern |
---|
131 | # system, but it's easy to check. |
---|
132 | |
---|
133 | AC_CHECK_TYPE([long long],[], |
---|
134 | [asladdcflags="$asladdcflags -DNO_LONG_LONG"],[]) |
---|
135 | |
---|
136 | # Back to whatever language we were in. |
---|
137 | |
---|
138 | AC_LANG_POP(C) |
---|
139 | |
---|
140 | # On BlueGene disable dynamic library loading |
---|
141 | |
---|
142 | if test x"$enable_bg" = xyes; then |
---|
143 | asladdcflags="$asladdcflags -DNO_FUNCADD" |
---|
144 | fi |
---|
145 | |
---|
146 | # Groom CFLAGS before we merge it with asladdcflags. |
---|
147 | # Remove -Werror if present, to make sure we are not interrupting compilation |
---|
148 | # of ASL because of warning messages. The cl equivalent is -WX. |
---|
149 | |
---|
150 | bla= |
---|
151 | if test x$msvc_compile = xyes ; then |
---|
152 | warnToErr="-WX" |
---|
153 | else |
---|
154 | warnToErr="-Werror" |
---|
155 | fi |
---|
156 | for i in $CFLAGS; do |
---|
157 | if test "$i" != "$warnToErr"; then |
---|
158 | bla="$bla $i" |
---|
159 | fi |
---|
160 | done |
---|
161 | ASLMAKEFLAGS="CFLAGS=\"$bla $asladdcflags\"" |
---|
162 | |
---|
163 | # Somehow, the flags specified here cause ASL to segfault on the AIX |
---|
164 | # compiler, so take them out. |
---|
165 | |
---|
166 | case $CC in |
---|
167 | xlc* | */xlc* | mpxlc* | */mpxlc*) |
---|
168 | ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-qtune=auto//g' -e 's/-qarch=auto//g' -e 's/-qcache=auto//g' -e 's/-qhot//g' -e sed 's/-O3/-O/g'` |
---|
169 | ;; |
---|
170 | pgcc* | */pgcc*) |
---|
171 | ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-fast/-O1/g'` |
---|
172 | ;; |
---|
173 | esac |
---|
174 | |
---|
175 | # Limit GNU make to one thread. But remember that if we're building with |
---|
176 | # cl, ultimately we're going to use nmake, which knows nothing of this. |
---|
177 | |
---|
178 | if test x$msvc_compile = xno ; then |
---|
179 | rm -rf conftest.mak |
---|
180 | ($am_make -v > conftest.grp) 2>&5 |
---|
181 | if $EGREP GNU conftest.grp >&5 ; then |
---|
182 | ASLMAKEFLAGS="-j 1 $ASLMAKEFLAGS" |
---|
183 | fi |
---|
184 | rm -f conftest.grp |
---|
185 | fi |
---|
186 | fi |
---|
187 | |
---|
188 | # End if-then to construct ASLMAKEFLAGS. Announce the result. |
---|
189 | |
---|
190 | AC_MSG_NOTICE([Command line flags for (n)make \"$ASLMAKEFLAGS\".]) |
---|
191 | AC_ARG_VAR(ASLMAKEFLAGS, |
---|
192 | [Compilation flags necessary for compiling the AMPL solver library]) |
---|
193 | |
---|
194 | fi |
---|
195 | |
---|
196 | # Set automake conditional and generate the output files. |
---|
197 | |
---|
198 | AM_CONDITIONAL(MSVC_COMPILE, test x$msvc_compile = xyes) |
---|
199 | |
---|
200 | AC_CONFIG_FILES([Makefile]) |
---|
201 | AC_CONFIG_FILES([compile_MS_ASL],[chmod a+x compile_MS_ASL]) |
---|
202 | AC_CONFIG_FILES([compile_Unix_ASL],[chmod a+x compile_Unix_ASL]) |
---|
203 | |
---|
204 | AC_COIN_FINALIZE |
---|