home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / g77-0.5.15-src.tgz / tar.out / fsf / g77 / f / INSTALL < prev    next >
Text File  |  1996-09-28  |  9KB  |  170 lines

  1. This file documents the installation of the GNU Fortran compiler.
  2. Copyright (C) 1995 Free Software Foundation, Inc.  You may copy,
  3. distribute, and modify it freely as long as you preserve this copyright
  4. notice and permission notice.  Contributed by James Craig Burley
  5. (burley@gnu.ai.mit.edu).
  6.  
  7. 950428
  8.  
  9. Here are the steps that seem important to take before doing any builds:
  10.  
  11.     1.  The g77 sources are intended to live in a subdirectory "f" of a
  12.         gcc source tree.  For example, the g77 sources for g77-2.6.3-0.5.14
  13.         are intended to have names such as gcc-2.6.3/f/proj.h.  Ensure
  14.         that you have a gcc source tree with an "f" directory containing
  15.         the g77 sources (such as this file, named INSTALL).
  16.  
  17.     2.  Read the file f/gbe/README, if it exists, and apply the appropriate
  18.         patch file for the version of the GNU CC compiler you have, if
  19.         that exists.  If the directory exists but the appropriate file
  20.         does not exist, it is possible all the necessary patches to the
  21.         GNU compiler's common back end have been integrated into the
  22.         release you are using -- or, perhaps you are using a release that
  23.         is in advance of the release corresponding to the version of g77
  24.         you have.  If the information in f/gbe/README doesn't provide
  25.         adequate information, the latter is more likely, and you should
  26.         contact g77 and/or gcc maintainers for information on necessary
  27.         back-end patches.
  28.  
  29.         NOTE: As of 0.5.5, g77's configuration file gcc/f/config-lang.in
  30.         tries to detect whether at least one necessary patch "hunk" has been
  31.         applied and, if not, aborts the configuration with an explanation.
  32.         PLEASE do not try to fool this code by applying just the patch
  33.         hunk it looks for, because then g77 might well appear to build
  34.         and install correctly, and even appear to compile correctly,
  35.         but could easily produce broken code.  (If someone does this and
  36.         reports a bug that takes time to track down to this kind of
  37.         incident, g77 developers will have to waste further time
  38.         by adding more code to g77 to ensure all the patches have been
  39.         made, instead of using that time to improve g77!  So behave.)
  40.  
  41.     3.  Follow the directions in the INSTALL file in the gcc source
  42.         tree (such as running ./configure, doing "make", and so on --
  43.         you MUST run ./configure before you run make, even if you're
  44.         using an already existing gcc development directory, because
  45.         ./configure does the work to recognize that you've added
  46.         g77 to the configuration!!).
  47.  
  48.         WARNING: If you follow the procedure to build successive "stages"
  49.         and you compare the object files produced by various stages,
  50.         the file f/zzz.o WILL be different.  That is because it
  51.         contains a string with an expansion of the __TIME__ macro,
  52.         which expands to the current time of day.  It is nothing
  53.         to worry about, since f/zzz.c doesn't contain any actual code.
  54.  
  55.         NOTE:  Configuring with the --srcdir argument is only known
  56.         to work with GNU make.  Irix5.2 and SunOS4.1 makes definitely
  57.         won't work outside the source directory at present.
  58.  
  59.         ALSO NOTE:  The f2c library gets installed in the gcc $(libsubdir)
  60.         directory (see the top-level Makefile).  If you already have
  61.         one in $(libdir) (typically /usr/local/lib) that gcc will
  62.         find, it must be consistent with the one that gets built.  You
  63.         should probably remove it or install the newly-built one in
  64.         its place.  `make install' will check for this situation and
  65.         stop (unless you define the make variable F2CLIBOK -- be
  66.         careful).  Similarly, if you intend to compile C code that
  67.         uses f2c.h for linking to g77-compiled code, make sure you
  68.         pick up the one from $(libsubdir)/include, not from
  69.         $(includedir).
  70.  
  71.         ALSO**2 NOTE:  If you have gcc 2.6.2 or greater already installed
  72.         on your system, doing
  73.  
  74.           make -k CC=gcc LANGUAGES=f77 g77 install install-libf77
  75.  
  76.         or, if you already have libf2c.a installed and know you're willing
  77.         to overwrite it,
  78.  
  79.           make -k CC=gcc LANGUAGES=f77 F2CLIBOK=1 g77 install install-libf77
  80.  
  81.         should suffice to build and install just g77 and gcc, without building
  82.         any of the other GNU compilers.  HOWEVER, if this approach fails
  83.         miserably, you should be able to do the installation by following
  84.         the usual gcc installation method.  (The install-libf77 target
  85.         shouldn't have to be separately specified, but it might need to be
  86.         when using non-GNU versions of make.  We don't know why this is,
  87.         yet.)  Using the "-k" option makes it easy to get around installation
  88.         problems like not having makeinfo installed on your system, and the
  89.         "g77" target ensures that the g77 command driver is built and thus
  90.         installed.
  91.  
  92.         ALSO**3 NOTE: The "bootstrap" target in gcc's Makefile doesn't
  93.         quite work right for subdirectory-resident languages in all cases.
  94.         The solution is to do the stages by hand, and put absolute, not
  95.         relative, pathnames in the definition for CC.
  96.  
  97.         ALSO**4 NOTE: It seems that building g77 might require bison and
  98.         makeinfo to be installed.  g77 itself has no need for these, but
  99.         other portions of gcc might, so before you start building gcc or
  100.         g77, make sure bison and makeinfo are installed.
  101.  
  102.         IF YOU CANNOT INSTALL bison: make sure you start with a _fresh_
  103.         distribution of gcc 2.6.2 or 2.6.3, do _not_ do "make realclean",
  104.         and to be safe, type these commands to convince make not to try
  105.         rebuilding them from the bison input files:
  106.  
  107.           cd gcc-2.6.2  # or 2.6.3
  108.           touch bi-parser.c bi-parser.h c-parse.c c-parse.h cexp.c
  109.           touch cp/parse.c cp/parse.h objc-parse.c
  110.  
  111.         IF YOU CANNOT INSTALL makeinfo: either use the -k option when
  112.         invoking make to specify the install or install-libf77 targets,
  113.         or specify "MAKEINFO=echo" on the make command line.  If you fail
  114.         to do one of these, some things like libf2c.a will fail to be
  115.         installed after the attempt to use makeinfo fails.
  116.  
  117.         ALSO**5 NOTE: The g77 author uses the "-Wall" option when
  118.         compiling the code in gcc/f/*.c, so you should feel free to use
  119.         that option if you work on that code.  There are still a couple
  120.         of warnings emitted, but they have been verified as inconsequential.
  121.         There are some prototype declarations in gcc/f/com.h that get
  122.         around the lack of them in the back-end code in gcc/*.c, but
  123.         turning on strict checking of prototypes and such has not yet
  124.         been tried.
  125.  
  126.         ALSO**6 NOTE: g77 currently requires GNU C, not just ANSI C, to
  127.         build it.  This is expected to be fixed in 0.6.  If you use a
  128.         non-GNU C compiler, syntax errors are likely to be reported for
  129.         source files like gcc/f/expr.c.
  130.  
  131.         ALSO**7 NOTE: g77 _does_ require a working ANSI C environment
  132.         to build it.  In particular, some systems are missing strtoul(),
  133.         bsearch(), etc in their libraries.  See gcc/f/proj.h for information
  134.         on how to temporarily work around the bugs on these systems.
  135.         (These are emphatically _not_ g77 bugs.  DO NOT REPORT THEM
  136.         TO THE g77 AUTHOR!!!)
  137.  
  138. Remember to look through f/BUGS and f/PROJECTS carefully to get an idea
  139. of where g77 is in terms of meeting various needs and having various features,
  140. and what seems important to do right away vs. later.  Feel free to
  141. suggest changes in that list as indicated in the file.
  142.  
  143. Bug reporting: For now, send email to fortran@gnu.ai.mit.edu.  Include
  144. information on your configuration (output of "sh config.status" in gcc/),
  145. version numbers of gcc and g77, and whatever else you can think of.
  146. IMPORTANT ABOUT BUG REPORTING: We are completely unable to guess at
  147. the kind of response g77 will receive at this time.  In case we are
  148. swamped with bug reports, comments, &c., please don't be too concerned
  149. if we don't respond to bug reports in any way.  We'll certainly save
  150. everything we get, and try to prioritize and address everything, but
  151. actually responding to email, while we think it's generally a great
  152. idea, might conceivably have to be suspended if there is too much other
  153. work to do.
  154.  
  155. NOTE: g77 sources (the FFE, in particular) require compiling using a Standard
  156. (ANSI) C compiler and libraries.  You might be able to get around the lack
  157. of Standard C libraries (especially system header files that don't conform),
  158. but don't even try to build g77 without a Standard C compiler.  The FFE
  159. uses prototypes and all sorts of other stuff (Standard C preprocessor
  160. features, concatenation of neighboring constant strings, etc), and you won't
  161. be productive if you try to "clean" that stuff out of the FFE.  (The
  162. FFE will be brought more into line with GNU Coding Guidelines, but that
  163. work will _not_ include lowering the code to K&R C.)  (Also note that,
  164. temporarily, g77 in fact requires _GNU_ C, not just ANSI C.)
  165.  
  166. Your help testing g77 is greatly appreciated...and remember,
  167. you should feel free to help not only with testing, debugging,
  168. fixing, and coding, but with documentation and installation notes
  169. as well!
  170.