# Top level configure fragment for GNU FORTRAN.
#   Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.

#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.

# Configure looks for the existence of this file to auto-config each language.
# We define several parameters used by configure:
#
# language	- name of language as it would appear in $(LANGUAGES)
# compilers	- value to add to $(COMPILERS)
# stagestuff	- files to add to $(STAGESTUFF)
# diff_excludes	- files to ignore when building diffs between two versions.

language="f77"

compilers="f771\$(exeext)"

stagestuff="g77\$(exeext) g77-cross\$(exeext) f771\$(exeext)"

diff_excludes="-x f/BUGS -x f/NEWS -x f/INSTALL -x f/intdoc.texi"

target_libs=target-libf2c
