# Process this file with autoconf to produce a configure script. # Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc. # Contributed by Dave Love (d.love@dl.ac.uk). # #This file is part of GNU Fortran. # #GNU Fortran is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation; either version 2, or (at your option) #any later version. # #GNU Fortran is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with GNU Fortran; see the file COPYING. If not, write to #the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #02111-1307, USA. AC_PREREQ(2.12.1) AC_INIT(ftell_.c) dnl Checks for programs. dnl FIXME AC_PROG_CC wants CC to be able to link things, but it may dnl not be able to. define([AC_PROG_CC_WORKS],[]) # For g77 we'll set CC to point at the built gcc, but this will get it into # the makefiles AC_PROG_CC test "$AR" || AR=ar AC_SUBST(AR) AC_PROG_MAKE_SET dnl Checks for libraries. dnl Checks for header files. # Sanity check for the cross-compilation case: AC_CHECK_HEADER(stdio.h,:, [AC_MSG_ERROR([Can't find stdio.h. You must have a usable C system for the target already installed, at least including headers and, preferably, the library, before you can configure the G77 runtime system. If necessary, install gcc now with \`LANGUAGES=c', then the target library, then build with \`LANGUAGES=f77'.])]) AC_HEADER_STDC dnl We could do this if we didn't know we were using gcc dnl AC_MSG_CHECKING(for prototype-savvy compiler) dnl AC_CACHE_VAL(g77_cv_sys_proto, dnl [AC_TRY_LINK(, dnl dnl looks screwy because TRY_LINK expects a function body dnl [return 0;} int foo (int * bar) {], dnl g77_cv_sys_proto=yes, dnl [g77_cv_sys_proto=no dnl AC_DEFINE(KR_headers)])]) dnl AC_MSG_RESULT($g77_cv_sys_proto) AC_MSG_CHECKING(for posix) AC_CACHE_VAL(g77_cv_header_posix, AC_EGREP_CPP(yes, [#include #include #ifdef _POSIX_VERSION yes #endif ], g77_cv_header_posix=yes, g77_cv_header_posix=no)) AC_MSG_RESULT($g77_cv_header_posix) # We can rely on the GNU library being posix-ish. I guess checking the # header isn't actually like checking the functions, though... AC_MSG_CHECKING(for GNU library) AC_CACHE_VAL(g77_cv_lib_gnu, AC_EGREP_CPP(yes, [#include #ifdef __GNU_LIBRARY__ yes #endif ], g77_cv_lib_gnu=yes, g77_cv_lib_gnu=no)) AC_MSG_RESULT($g77_cv_lib_gnu) # Apparently cygwin needs to be special-cased. AC_MSG_CHECKING([for cyg\`win'32]) AC_CACHE_VAL(g77_cv_sys_cygwin32, AC_EGREP_CPP(yes, [#ifdef __CYGWIN32__ yes #endif ], g77_cv_sys_cygwin32=yes, g77_cv_sys_cygwin32=no)) AC_MSG_RESULT($g77_cv_sys_cygwin32) # ditto for mingw32. AC_MSG_CHECKING([for mingw32]) AC_CACHE_VAL(g77_cv_sys_mingw32, AC_EGREP_CPP(yes, [#ifdef __MINGW32__ yes #endif ], g77_cv_sys_mingw32=yes, g77_cv_sys_mingw32=no)) AC_MSG_RESULT($g77_cv_sys_mingw32) AC_CHECK_HEADER(fcntl.h, test $g77_cv_header_posix = yes && AC_DEFINE(_POSIX_SOURCE), AC_DEFINE(NO_FCNTL) AC_DEFINE(OPEN_DECL)) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T dnl Checks for library functions. # This should always succeed on unix. # Apparently positive result on cygwin loses re. NON_UNIX_STDIO # (as of cygwin b18). Likewise on mingw. AC_CHECK_FUNC(fstat) AC_MSG_CHECKING([need for NON_UNIX_STDIO]) if test $g77_cv_sys_cygwin32 = yes \ || test $g77_cv_sys_mingw32 = yes \ || test $ac_cv_func_fstat = no; then AC_MSG_RESULT(yes) AC_DEFINE(NON_UNIX_STDIO) else AC_MSG_RESULT(no) fi AC_CHECK_FUNCS(ftruncate) AC_CHECK_FUNCS(mkstemp) AC_CHECK_FUNCS(tempnam) # posix will guarantee the right behaviour for sprintf, else we can't be # sure; HEADER_STDC wouldn't be the right check in sunos4, for instance. # However, on my sunos4/gcc setup unistd.h leads us wrongly to believe # we're posix-conformant, so always do the test. AC_MSG_CHECKING(for ansi/posix sprintf result) dnl This loses if included as an argument to AC_CACHE_VAL because the dnl changequote doesn't take effect and the [] vanish. dnl fixme: use cached value AC_TRY_RUN(changequote(<<, >>)dnl <<#include /* does sprintf return the number of chars transferred? */ main () {char foo[2]; (sprintf(foo, "1") == 1) ? exit(0) : exit(1);} >>changequote([, ]), g77_cv_sys_sprintf_ansi=yes, g77_cv_sys_sprintf_ansi=no, g77_cv_sys_sprintf_ansi=no) AC_CACHE_VAL(g77_cv_sys_sprintf_ansi, g77_cv_sys_sprintf_ansi=$g77_cv_sys_sprintf_ansi) dnl We get a misleading `(cached)' message... AC_MSG_RESULT($g77_cv_sys_sprintf_ansi) # The cygwin patch takes steps to avoid defining USE_STRLEN here -- I don't # understand why. if test $g77_cv_sys_sprintf_ansi != yes; then AC_DEFINE(USE_STRLEN) fi # define NON_ANSI_RW_MODES on unix (can't hurt) AC_MSG_CHECKING(NON_ANSI_RW_MODES) AC_EGREP_CPP(yes, [#ifdef unix yes #endif #ifdef __unix yes #endif #ifdef __unix__ yes #endif ], is_unix=yes, is_unix=no) # NON_ANSI_RW_MODES shouldn't be necessary on cygwin for binary mounts. if test $g77_cv_sys_cygwin32 = yes || test $g77_cv_sys_mingw32 = yes; then AC_MSG_RESULT(no) else if test $is_unix = yes; then AC_DEFINE(NON_ANSI_RW_MODES) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi fi # This EOF_CHAR is a misfeature on unix. AC_DEFINE(NO_EOF_CHAR_CHECK) AC_DEFINE(Skip_f2c_Undefs) AC_OUTPUT(Makefile) dnl We might have configuration options to: dnl * change unit preconnexion in err.c (f_init.c) dnl * -DALWAYS_FLUSH dnl * -DOMIT_BLANK_CC dnl Local Variables: dnl comment-start: "dnl " dnl comment-end: "" dnl comment-start-skip: "\\bdnl\\b\\s *" dnl End: