home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / f2cbin.zip / f2cbin / README.OS2 < prev   
Text File  |  1994-08-09  |  6KB  |  134 lines

  1. Tue Aug  9 21:29:45 PDT 1994
  2.  
  3. ========
  4. OVERVIEW
  5. ========
  6.  
  7.    Enclosed are OS/2 executables and support libraries for f2c, the
  8. industrial strength, freely available, Fortran to C converter. The
  9. source code for f2c is available via anonymous ftp from netlib.att.com,
  10. or though the mail-server at netlib@research.att.com (send a message
  11. with "help" as the subject to get started.) For more information on
  12. the f2c copyright, see the enclosed copies of the "disclaimer" and
  13. "permission" files from the original source distribution. The source
  14. code used to build these OS/2 binaries, was obtained by ftp from
  15. netlib.att.com and was current as of 94-07-28.
  16.  
  17.    The enclosed f2c executable was compiled with Eberhard Mattes'
  18. GCC/EMX compiler, release 0.8h (fix 5), so you need the emx run time
  19. environment installed on your system to use it. The enclosed f2c
  20. support library was also compiled with GCC/EMX, so if you intend to use
  21. some other compiler to compile f2c converted C code, you will need to
  22. get the source code for the f2c support library and compile it with
  23. that particular compiler.
  24.  
  25.   Here is a manifest of the files in this distribution;
  26.  
  27.     documentation:
  28.  
  29.     README.OS2    - the file you are now reading!
  30.     f2c.1        - nroff compatible man page
  31.     f2c.man        - formatted man page
  32.  
  33.     converter related files:
  34.  
  35.     f2c.exe        - f2c executable (requires emx 0.8h run time lib)
  36.     f2c.h        - f2c header file for compiling f2c generated C code
  37.     f2ch.add    - patch to f2c.h for use with C++ compilers
  38.  
  39.     static link support libs:
  40.  
  41.     f2c.a        - static library for linking with EMX method 1 objects
  42.     f2c.lib        - static library for linking with EMX method 2 objects
  43.  
  44.     dynamic link support libs (EMX method 2 only):
  45.  
  46.     f2clib.lib    - static library for linking with f2c dll library
  47.     f2cdll.lib    - import library for linking with f2c dll library
  48.     f2cdll.dll    - f2c dll library
  49.  
  50. Note that there are several versions of the support libraries. There are
  51. static libs for use with EMX method 1 and 2 objects (ie: .o and .obj
  52. files).  I've also included a dll version of the library for EMX method
  53. 2 objects (the EMX docs say that method 1 dll's are not recommended).
  54.  
  55.    To link with the dynamic version of the library, there are actually
  56. two libs that you must link with; f2clib and f2cdll. Most of the
  57. library routines are in f2cdll. However, I had to move a few routines
  58. into a small static library, that I called f2clib.lib. It contains
  59. those routines that have external references that cannot be resolved by
  60. linking to the EMX run time dlls. Specifically, the library startup
  61. procedure (main), which calls *your* main program, and the Fortran
  62. callable error functions (ie: y=erf(x) from Probability and Statistics)
  63. which reference the corresponding functions from your system's libC.
  64. GCC/EMX currently does *not* have these, so if you want to use the
  65. Fortran callable stubs, you'll have to write your own C callable
  66. versions of the functions, or find them somewhere. The dll library was
  67. compiled with stack probes enabled (option -mprobe).
  68.  
  69.  
  70. ============
  71. INSTALLATION
  72. ============
  73.  
  74.    The installation of f2c can be done in two different ways. You
  75. can install it in IBM's strange (IMHO) style of unpacking the works
  76. into some directory, and then adding that directory to the following
  77. environment variables in your config.sys file; PATH, LIBPATH, (and
  78. assuming you are using GCC/EMX), C_INCLUDE_PATH, CPLUS_INCLUDE_PATH,
  79. OBJC_INCLUDE_PATH, and LIBRARY_PATH.
  80.  
  81.    Although it's purely just a question of style, I prefer to have
  82. a set of directories specifically devoted to my own executables, include
  83. files, libraries, and dlls (much like /usr/local/* on UNIX systems).
  84. Just as an example, on my system I use; /os2/bin which is in PATH,
  85. /os2/dll which is in LIBPATH, /os2/include which is in C_INCLUDE_PATH,
  86. CPLUS_INCLUDE_PATH, and OBJC_INCLUDE_PATH, and /os2/lib which is in
  87. LIBRARY_PATH. If you prefer this, move f2c.exe to your "bin" directory,
  88. f2c.h to your "include" directory, the *.a and *.lib files to your "lib"
  89. directory, and f2cdll.dll to your local "dll" directory. I strongly
  90. recommend AGAINST using the emx/* directories since you could forget,
  91. and trash the stuff the next time you upgrade GCC/EMX.
  92.  
  93.    If you have GNU man installed on your system, move the nroff
  94. man page, f2c.1 to your man/man1 directory. A pre-formatted version
  95. of the man page, f2c.man, is included for those who don't have "man".
  96.  
  97. ==============
  98. HOW TO USE F2C
  99. ==============
  100.  
  101.    OK, it's installed, "Now what?" you ask. There are three basic steps;
  102. (1) run f2c to convert your Fortran code to C, (2) compile the C code
  103. generated by f2c, and (3) link an executable from all your objects
  104. together with the f2c support library. The only real "gotcha's" are gcc
  105. not being able to find the "f2c.h" include file (all C code generated
  106. by f2c #include's this file). If this is a problem verify that your
  107. C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, and OBJC_INCLUDE_PATH environment
  108. variables are properly set, or use the -I option on the gcc command
  109. line. Use "-lf2c" on the gcc command line to link with the static
  110. version of the f2c library, and "-lf2clib -lf2cdll" to link with the
  111. dynamic version (EMX method 2 only!). If gcc can't find the library(s),
  112. be sure LIBRARY_PATH is properly set, or use the -L option.
  113.  
  114.    The example sub-directory contains a sample Fortran program,
  115. namely Jack Dongarra's LINPACK loops program (also obtained from
  116. netlib) for *estimating* the floating point speed of your hardware /
  117. software setup.  You can do some example builds by just doing a "cd
  118. example" and then type "demo" (a CMD.EXE script). [This assumes that
  119. all the distribution files are still intact!!!]
  120.  
  121.    After you get familiar with the process, you may want to try the
  122. f77 command script that is available separately. It provides a command
  123. line interface for compiling Fortran source code *directly* to object
  124. code by running f2c and gcc for you. From the perspective of the
  125. command line options and associated behavior of the script, it's almost
  126. exactly like a "real" f77 compiler. It works fine, but be warned that
  127. it requires having some other UNIX tools (the ksh or other bourne
  128. "like" shell) installed on your system, so you might have to hunt
  129. those down too.
  130.  
  131. Best Regards,
  132. John C. Peterson
  133. jcp%octagon.UUCP@ucsd.edu
  134.