1 # Process this file with autoconf to produce a configure script.
2 # Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
3 # Contributed by Dave Love (d.love@dl.ac.uk).
5 #This file is part of GNU Fortran.
7 #GNU Fortran is free software; you can redistribute it and/or modify
8 #it under the terms of the GNU General Public License as published by
9 #the Free Software Foundation; either version 2, or (at your option)
12 #GNU Fortran is distributed in the hope that it will be useful,
13 #but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 #GNU General Public License for more details.
17 #You should have received a copy of the GNU General Public License
18 #along with GNU Fortran; see the file COPYING. If not, write to
19 #the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
23 AC_INIT(libF77/Version.c)
25 if test "${srcdir}" = "." ; then
26 if test "${with_target_subdir}" != "." ; then
27 topsrcdir=${with_multisrctop}../..
29 topsrcdir=${with_multisrctop}..
32 topsrcdir=${srcdir}/..
34 dnl This is needed for a multilibbed build in the source tree so
35 dnl that install-sh and config.sub get found.
36 AC_CONFIG_AUX_DIR($topsrcdir)
38 # We have to handle 3 cases -- native, cross and canadian cross -- and
39 # the extension returned from this macro needs to be treated as a possible
40 # scenario and not the only one.
43 # If the language specific compiler does not exist, but the "gcc" directory
44 # does, we do not build anything. Note, $r is set by the top-level Makefile.
45 # Note that when we look for the compiler, we search both with and without
46 # extension to handle cross and canadian cross builds.
49 AC_MSG_CHECKING(if compiler $compiler_name has been built)
50 AC_CACHE_VAL(g77_cv_compiler_exists,
51 [g77_cv_compiler_exists=yes
53 if test -d "$r"/gcc; then
54 if test -f "$r"/gcc/$compiler_name \
55 || test -f "$r"/gcc/$compiler_name$EXEEXT; then
58 g77_cv_compiler_exists=no
59 echo "rm -f config.cache config.log multilib.out" > skip-this-dir
64 AC_MSG_RESULT($g77_cv_compiler_exists)
65 if test x$g77_cv_compiler_exists = xno
67 rm -f Makefile conftest* confdefs* core
71 dnl Checks for programs.
72 # For g77 we'll set CC to point at the built gcc, but this will get it into
76 dnl These should be inherited in the recursive make, but ensure they are
80 if test "$RANLIB"; then :
88 dnl Checks for header files.
89 # Sanity check for the cross-compilation case:
90 AC_CHECK_HEADER(stdio.h,:,
91 [AC_MSG_ERROR([Can't find stdio.h.
92 You must have a usable C system for the target already installed, at least
93 including headers and, preferably, the library, before you can configure
94 the G77 runtime system. If necessary, install gcc now with \`LANGUAGES=c',
95 then the target library, then build with \`LANGUAGES=f77'.])])
97 # We have to firkle with the info in hconfig.h to figure out suitable types
98 # (via com.h). proj.h and com.h are in gcc/f/, config.h which they need
99 # is in gcc/ and the config files are in gcc/config/.
100 AC_MSG_CHECKING(f2c integer type)
101 # Set this back later below!
104 ##gcc -c -DIN_GCC -DHAVE_CONFIG_H -I. -I/home/fx/c-e/egcs/gcc -I/home/fx/c-e/egcs/gcc/config -I/home/fx/c-e/egcs/gcc/../include /home/fx/c-e/egcs/gcc/f/proj.c
105 if test "$srcdir" != . ; then
106 extra_includes="-I$srcdir/../gcc/f -I../../gcc -I$srcdir/../gcc -I$srcdir/../include -I$srcdir/../gcc/config"
108 extra_includes="-I../../gcc/f -I../../gcc -I../../include -I../../gcc/config"
110 ac_cpp="$late_ac_cpp -DIN_GCC -DHAVE_CONFIG_H $extra_includes"
112 # The AC_EGREP_CPPs below have been known to fail when the header
113 # path is wrong after things have been moved about; the cpp error status
114 # counts for nothing. First check that there aren't any errors from
116 CFLAGS="$CFLAGS -DHAVE_CONFIG_H -DIN_GCC $extra_includes"
117 AC_TRY_COMPILE([#include "proj.h"
118 #define FFECOM_DETERMINE_TYPES 1
120 AC_MSG_ERROR([Can't run check for integer sizes -- see config.log]))
123 AC_CACHE_VAL(g77_cv_sys_f2cinteger,
124 echo "configure:__oline__: using $ac_cpp" >&AC_FD_CC
125 AC_EGREP_CPP(F2C_INTEGER=long int,
127 #define FFECOM_DETERMINE_TYPES 1
129 #if FFECOM_f2cINTEGER == FFECOM_f2ccodeLONG
131 #elif FFECOM_f2cINTEGER == FFECOM_f2ccodeINT
134 # error "Cannot find a suitable type for F2C_INTEGER"
137 g77_cv_sys_f2cinteger="long int",)
138 if test "$g77_cv_sys_f2cinteger" = ""; then
139 echo "configure:__oline__: using $ac_cpp" >&AC_FD_CC
140 AC_EGREP_CPP(F2C_INTEGER=int,
142 #define FFECOM_DETERMINE_TYPES 1
144 #if FFECOM_f2cINTEGER == FFECOM_f2ccodeLONG
146 #elif FFECOM_f2cINTEGER == FFECOM_f2ccodeINT
149 # error "Cannot find a suitable type for F2C_INTEGER"
152 g77_cv_sys_f2cinteger=int,)
154 if test "$g77_cv_sys_f2cinteger" = ""; then
156 AC_MSG_ERROR([Can't determine type for f2c integer; config.log may help.])
159 AC_MSG_RESULT($g77_cv_sys_f2cinteger)
160 F2C_INTEGER=$g77_cv_sys_f2cinteger
161 AC_SUBST(F2C_INTEGER)
163 AC_MSG_CHECKING(f2c long int type)
164 AC_CACHE_VAL(g77_cv_sys_f2clongint,
165 echo "configure:__oline__: using $ac_cpp" >&AC_FD_CC
166 AC_EGREP_CPP(F2C_LONGINT=long int,
168 #define FFECOM_DETERMINE_TYPES 1
170 #if FFECOM_f2cLONGINT == FFECOM_f2ccodeLONG
172 #elif FFECOM_f2cLONGINT == FFECOM_f2ccodeLONGLONG
173 F2C_LONGINT=long long int
175 # error "Cannot find a suitable type for F2C_LONGINT"
178 g77_cv_sys_f2clongint="long int",)
180 if test "$g77_cv_sys_f2clongint" = ""; then
181 echo "configure:__oline__: using $ac_cpp" >&AC_FD_CC
182 AC_EGREP_CPP(F2C_LONGINT=long long int,
184 #define FFECOM_DETERMINE_TYPES 1
186 #if FFECOM_f2cLONGINT == FFECOM_f2ccodeLONG
188 #elif FFECOM_f2cLONGINT == FFECOM_f2ccodeLONGLONG
189 F2C_LONGINT=long long int
191 # error "Cannot find a suitable type for F2C_LONGINT"
194 g77_cv_sys_f2clongint="long long int",)
196 if test "$g77_cv_sys_f2clongint" = ""; then
198 AC_MSG_ERROR([Can't determine type for f2c long int; config.log may help.])
201 AC_MSG_RESULT($g77_cv_sys_f2clongint)
202 F2C_LONGINT=$g77_cv_sys_f2clongint
203 AC_SUBST(F2C_LONGINT)
206 # avoid confusion in case the `makefile's from the f2c distribution have
208 test -f libF77/makefile && mv libF77/makefile libF77/makefile.ori
209 test -f libI77/makefile && mv libI77/makefile libI77/makefile.ori
210 test -f libU77/makefile && mv libU77/makefile libU77/makefile.ori
212 # Get the version trigger filename from the toplevel
213 if [[ "${with_gcc_version_trigger+set}" = set ]]; then
214 gcc_version_trigger=$with_gcc_version_trigger
215 gcc_version=`sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/' < ${gcc_version_trigger}`
221 AC_SUBST(gcc_version)
222 AC_SUBST(gcc_version_trigger)
224 AC_SUBST(target_alias)
225 AC_CONFIG_SUBDIRS(libU77 libI77 libF77)
226 # Do Makefile first since g2c.h depends on it and shouldn't get an
227 # earlier timestamp. Of course, it does when the multilib gunk below
228 # edits Makefile, sigh; see additional touch below.
229 AC_OUTPUT(Makefile g2c.h:g2c.hin,
230 [test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
231 if test -n "$CONFIG_FILES"; then
232 if test -n "${with_target_subdir}"; then
233 # FIXME: We shouldn't need to set ac_file
235 . ${topsrcdir}/config-ml.in
236 touch g2c.h # to keep it more recent than Makefile
242 with_target_subdir=${with_target_subdir}
243 with_multisubdir=${with_multisubdir}
244 ac_configure_args="--enable-multilib ${ac_configure_args}"
245 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
246 topsrcdir=${topsrcdir}
251 dnl comment-start: "dnl "
253 dnl comment-start-skip: "\\bdnl\\b\\s *"