.\" Copyright (c) 1995, 1996 Free Software Foundation              -*-Text-*-
.\" See section COPYING for conditions for redistribution
.\" FIXME: no info here on predefines.  Should there be?  extra for F77...
.TH G77 1 "1997-06-20" "GNU Tools" "GNU Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
g77 \- GNU project F77 Compiler (v0.5.18)
.SH SYNOPSIS
.RB g77 " [" \c
.IR option " | " "filename " ].\|.\|.
.SH WARNING
The information in this man page is an extract from the full
documentation of the GNU Fortran compiler (version 0.5.18),
and is limited to the meaning of the options.
.PP
This man page is not up to date, since no volunteers want to
maintain it.  If you find a discrepancy between the man page and the
software, please check the Info file, which is the authoritative
documentation.
.PP
The version of GNU Fortran documented by the Info file is 0.5.21,
which includes substantial improvements and changes since 0.5.18,
the version documented in this man page.
.PP
If we find that the things in this man page that are out of date cause
significant confusion or complaints, we will stop distributing the man
page.  The alternative, updating the man page when we update the Info
file, is impractical because the rest of the work of maintaining GNU Fortran
leaves us no time for that.  The GNU project regards man pages as
obsolete and should not let them take time away from other things.
.PP
For complete and current documentation, refer to the Info file `\|\c
.B g77\c
\&\|' or the manual
.I
Using and Porting GNU Fortran (for version 0.5.18)\c
\&.  Both are made from the Texinfo source file
.BR g77.texi .
.PP
If your system has the `\|\c
.B info\c
\&\|' command installed, the command `\|\c
.B info g77\c
\&\|' should work, unless
.B g77
has not been properly installed.
If your system lacks `\|\c
.B info\c
\&\|', or you wish to avoid using it for now,
the command `\|\c
.B more /usr/info/g77.info*\c
\&\|' should work, unless
.B g77
has not been properly installed.
.PP
If
.B g77
has not been properly installed, so that you
cannot easily access the Info file for it,
ask your system administrator, or the installer
of
.B g77
(if you know who that is) to fix the problem.
.SH DESCRIPTION
The C and F77 compilers are integrated;
.B g77
is a program to call
.B gcc with options to recognize F77.
.B gcc
processes input files
through one or more of four stages: preprocessing, compilation,
assembly, and linking.  This man page contains full descriptions for
.I only
F77 specific aspects of the compiler, though it also contains
summaries of some general-purpose options.  For a fuller explanation
of the compiler, see
.BR gcc ( 1 ).

For complete documentation on GNU Fortran, type
.BR info g77

F77 source files use the suffix `\|\c
.B .f\c
\&\|'; F77 files to be preprocessed by
.BR cpp ( 1 )
use the suffix `\|\c
.B .F\c
\&\|'.
.SH OPTIONS
There are many command-line options, including options to control
details of optimization, warnings, and code generation, which are
common to both
.B gcc
and
.B g77\c
\&.  For full information on all options, see
.BR gcc ( 1 ).

Options must be separate: `\|\c
.B \-dr\c
\&\|' is quite different from `\|\c
.B \-d \-r
\&\|'.

Most `\|\c
.B \-f\c
\&\|' and `\|\c
.B \-W\c
\&\|' options have two contrary forms:
.BI \-f name
and
.BI \-fno\- name\c
\& (or
.BI \-W name
and
.BI \-Wno\- name\c
\&). Only the non-default forms are shown here.

.TP
.B \-c
Compile or assemble the source files, but do not link.  The compiler
output is an object file corresponding to each source file.
.TP
.BI \-D macro
Define macro \c
.I macro\c
\& with the string `\|\c
.B 1\c
\&\|' as its definition.
.TP
.BI \-D macro = defn
Define macro \c
.I macro\c
\& as \c
.I defn\c
\&.
.TP
.BI \-\-driver= command
Specifies that 
.IR command ,
rather than 
.RB ` gcc ',
is to be invoked by 
.RB ` g77 '
to do its job.  Example: Within the gcc build directory after building
GNU Fortran (but without having to install it),
.nf
  ./g77 \-\-driver=./xgcc -B./ foo.f
.fi
.TP
.B \-E
Stop after the preprocessing stage; do not run the compiler proper.  The
output is preprocessed source code, which is sent to the
standard output.
.TP
.B \-g
Produce debugging information in the operating system's native format
(for DBX or SDB or DWARF).  GDB also can work with this debugging
information.  On most systems that use DBX format, `\|\c
.B \-g\c
\&\|' enables use
of extra debugging information that only GDB can use.

Unlike most other Fortran compilers, GNU Fortran allows you to use `\|\c
.B \-g\c
\&\|' with
`\|\c
.B \-O\c
\&\|'.  The shortcuts taken by optimized code may occasionally
produce surprising results: some variables you declared may not exist
at all; flow of control may briefly move where you did not expect it;
some statements may not be executed because they compute constant
results or their values were already at hand; some statements may
execute in different places because they were moved out of loops.

Nevertheless it proves possible to debug optimized output.  This makes
it reasonable to use the optimizer for programs that might have bugs.
.TP
.BI "\-I" "dir"\c
\&
Append directory \c
.I dir\c
\& to the list of directories searched for include files.
.TP
.BI "\-L" "dir"\c
\&
Add directory \c
.I dir\c
\& to the list of directories to be searched
for `\|\c
.B \-l\c
\&\|'.
.TP
.BI \-l library\c
\&
Use the library named \c
.I library\c
\& when linking.
.TP
.B \-nostdinc
Do not search the standard system directories for header files.  Only
the directories you have specified with
.B \-I
options (and the current directory, if appropriate) are searched.
.TP
.B \-O
Optimize.  Optimizing compilation takes somewhat more time, and a lot
more memory for a large function.  See the GCC documentation for
further optimisation options.  Loop unrolling, in particular, may be
worth investigating for typical numerical Fortran programs.
.TP
.BI "\-o " file\c
\&
Place output in file \c
.I file\c
\&.
.TP
.B \-S
Stop after the stage of compilation proper; do not assemble.  The output
is an assembler code file for each non-assembler input
file specified.
.TP
.BI \-U macro
Undefine macro \c
.I macro\c
\&.
.TP
.B \-v
Print (on standard error output) the commands executed to run the
stages of compilation.  Also print the version number of the compiler
driver program and of the preprocessor and the compiler proper.  The
version numbers of g77 itself and the GCC distribution on which it is
based are distinct.  Use 
.RB ` \-\-driver=true '
to disable actual invocation of 
.RB ` gcc '
(since
.RB ` true '
is the name of a UNIX command that simply returns success status).
The command
.RB ` "gcc -v" '
is the appropriate one to determine the g77 and GCC version numbers;
it will produce an irrelevant error message from
.RB ` ld '.
.TP
.B \-Wall
Issue warnings for conditions which pertain to usage that we recommend
avoiding and that we believe is easy to avoid, even in conjunction
with macros.
.PP

.SH FILES
.ta \w'LIBDIR/g77\-include 'u
file.h    C header (preprocessor) file
.br
file.f    Fortran source file
.br
file.for  Fortran source file
.br
file.F    preprocessed Fortran source file
.br
file.fpp  preprocessed Fortran source file
.br
file.s    assembly language file
.br
file.o    object file
.br
a.out     link edited output
.br
\fITMPDIR\fR/cc\(**	temporary files
.br
\fILIBDIR\fR/cpp	preprocessor
.br
\fILIBDIR\fR/f771	compiler
.br
\fILIBDIR\fR/libf2c.a	Fortran run-time library
.br
\fILIBDIR\fR/libgcc.a	GCC subroutine library
.br
/lib/crt[01n].o	start-up routine
.br
/lib/libc.a	standard C library, see
.IR intro (3)
.br
/usr/include	standard directory for
.B #include
files
.br
\fILIBDIR\fR/include	standard gcc directory for
.B #include
files
.I LIBDIR
is usually
.B /usr/local/lib/\c
.IR machine / version .
.br
.I TMPDIR
comes from the environment variable
.B TMPDIR
(default
.B /usr/tmp
if available, else
.B /tmp\c
\&).
.SH "SEE ALSO"
gcc(1), cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
.br
.RB "`\|" g77 "\|', `\|" gcc "\|', `\|" cpp \|',
.RB `\| as \|', `\| ld \|',
and
.RB `\| gdb \|'
entries in
.B info\c
\&.
.br
.I
Using and Porting GNU Fortran (for version 0.5.18)\c
, James Craig Burley;
.I
Using and Porting GNU CC (for version 2.0)\c
, Richard M. Stallman;
.I
The C Preprocessor\c
, Richard M. Stallman;
.I
Debugging with GDB: the GNU Source-Level Debugger\c
, Richard M. Stallman and Roland H. Pesch;
.I
Using as: the GNU Assembler\c
, Dean Elsner, Jay Fenlason & friends;
.I
gld: the GNU linker\c
, Steve Chamberlain and Roland Pesch.

.SH BUGS
For instructions on how to report bugs, see the file
.B DOC
in the g77 distribution.

.SH COPYING
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
.SH AUTHORS
See the GNU CC Manual for the contributors to GNU CC.
See the GNU Fortran Manual for the contributors to
GNU Fortran.
