Difference between revisions of "F2c"

From Computer History Wiki
Jump to: navigation, search
(fix some things...)
(Visual C++/MS-DOS)
Line 52: Line 52:
  
 
<pre>
 
<pre>
 +
cd f2c
 
nmake -f makefile.vc f2c.exe
 
nmake -f makefile.vc f2c.exe
 
</pre>
 
</pre>
 +
 +
This will build the f2c translator.  You may wish to copy it somewhere in your path, along with the f2c.h into your include path.
 +
 +
Next is the IO library.
 +
 +
<pre>
 +
nmake -f makefile.vc
 +
</pre>
 +
 +
This will now generate the vcf2c.lib which you'll need to link your programs against.
  
 
== Test program ==
 
== Test program ==

Revision as of 18:46, 14 April 2010

While not really a compiler, f2c is based on the UNIX FORTRAN compiler, but as it used the same backend as the C compiler, f2c emits C, which in turn can be compiled by the native compiler.

F2C can be downloaded from http://www.netlib.org/f2c/

Installing

F2C will build for MS-DOS (DPMI), Win32, and most UNIX. The biggest issue I've had testing has been the Dec Alpha because it's floating point seems to be too different.

F2c is somewhat straightforward to install... The two big 'camps' are Unix and Windows.

Unix/MinGW

For UNIX systems it's easier to install tar.gz's here:

Simply extract and run:

tar -zxvf f2c.tar.gz
cd f2c
make -f makefile.u f2c

Then run:

cp f2c /usr/local/bin
cp f2c.h /usr/local/include

If all went well you should have a f2c command.

Next you'll need to download and build the IO library

Simply extract and run:

tar -zxvf libf2c.tar.gz
cd libf2c
make -f makefile.u

Then run:

cp libf2c.a /usr/local/lib

Visual C++/MS-DOS

F2c can also be built using Visual C++. The key here is that you'll have to use the .vc makefiles. For Windows/MS-DOS users it's easier to download these zip files:

then simply unzip f2c.zip somewhere, then using the CLI tools simply

cd f2c
nmake -f makefile.vc f2c.exe

This will build the f2c translator. You may wish to copy it somewhere in your path, along with the f2c.h into your include path.

Next is the IO library.

nmake -f makefile.vc

This will now generate the vcf2c.lib which you'll need to link your programs against.

Test program

Now you should be able to build a simple FORTRAN program like this:

hello.f

      program hello 
      print *, 'Hello!' 
      end

Then run:

bash-2.01$ f2c hello.f 
hello.f: 
   MAIN hello: 
bash-2.01$ cc hello.c -lf2c -o hello 
bash-2.01$ file hello 
hello:  Mach-O executable (for architecture m68k) not stripped 
bash-2.01$ ./hello 
Hello!