*BSD News Article 8289


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.hawaii.edu!ames!haven.umd.edu!uunet!zaphod.mps.ohio-state.edu!wupost!micro-heart-of-gold.mit.edu!uw-beaver!newsfeed.rice.edu!rice!news.Rice.edu!rich
From: rich@Rice.edu (Richard Murphey)
Subject: [386bsd] f2c and fsplit available
Message-ID: <RICH.92Nov28234039@omicron.Rice.edu>
Sender: news@rice.edu (News)
Reply-To: Rich@rice.edu
Organization: Department of Electrical and Computer Engineering, Rice
	University
Date: Sun, 29 Nov 1992 05:40:39 GMT
Lines: 208


I've put ports of the fortran to C translator f2c-3.2.90, fsplit and
getopt (which is required by the f77 script) on nova.cc.purdue.edu
(128.210.7.22) in /pub/386bsd/submissions and ref.tfs.com
(140.145.254.251) in /usr/packages and perhaps soon on
rachel.ibmpcug.co.uk.  The files are:

f2c-3.2.90-bin.tar.Z
f2c-3.2.90-src.tar.Z
fsplit-bin.tar.Z
fsplit-src.tar.Z
getopt-bin.tar.Z
getopt-src.tar.Z

You need getopt in order to use f77.  With both you can use existing
makefiles for fortran code, link fortran and C, etc.  fsplit separates
fortran subroutines into separate files, which facilitates creating
libraries.

Terry Lambert posted a version of f2c last weekend, but it was based
on an earlier version of f2c {and all my attempts to contact him about
failed}.

Below is a copy of the README contained in f2c-3.2.90-bin.tar.Z. It
describes some farily steps for installating f77 and contains a small
set of patches.  Rich


~~~~~~~~~~~~~~~~
This is a port of f2c-3.2.90 to 386bsd.  It is avaiailable from
nova.cc.purdue.edu (128.210.7.22) in /pub/386bsd/submissions and
ref.tfs.com (140.145.254.251) in /usr/packages.  f2c-3.2.90-bin.tar.Z
is the ready-to-install executables and libraries and
f2c-3.2.90-src.tar.Z is the patched sources.

The patches are below and you can get the original sources from which
this port was derived by anonymous ftp from prep.ai.mit.edu
(18.71.0.38) in the directory /pub/gnu.  The file is f2c-3.2.90.tar.Z.

This supercedes the sources currently available by ftp on
research.att.com in the netlib account and contains many bug fixes.

In order to use the f77 script you will also need getopt.  Getopt
sources and 386bsd executables are available by anon ftp from
ref.tfs.com (140.145.254.251) in /usr/packages.  There is a port of
fsplit there as well.

To install it, cd to /usr/local and:
	tar xzf f2c-3.2.90.bin.Z

this will create:

README.f2c  (this file)
man/cat1/f2c.0
lib/libF77.a
lib/libI77.a
include/f2c.h
bin/f77
bin/f2c

The only changes that are needed in order to install it somewhere
besides /usr/local are the values of variables in the f77 script.

To install it elsewhere, you need to edit the f77 script to specify
the directory containing f2c.h header file, and the directory
containing the libF77.a and libI77.a libraries:

    CC=${CC_f2c:-'cc -I/usr/whereever/include' -L/usr/whereever/lib}

And you need to speciy the location of the f2c executable in f77:

    F2C=${F2C:-/usr/whereever/f2c}

Below are the paches for the sources and makefile in
/pub/gnu/f2c-3.2.90.tar.Z on prep.ai.mit.edu (18.71.0.38).

Rich Murphey  Rich@rice.edu


diff -rc ../t/f2c-3.2.90/libF77/makefile ./libF77/makefile
*** ../t/f2c-3.2.90/libF77/makefile	Wed Feb 28 13:53:08 1990
--- ./libF77/makefile	Sun Sep 13 13:35:59 1992
***************
*** 1,7 ****
  .SUFFIXES: .c .o
  # compile, then strip unnecessary symbols
  .c.o:
! 	cc -O -c -DSkip_f2c_Undefs $*.c
  	ld -r -x $*.o
  	mv a.out $*.o
  
--- 1,7 ----
  .SUFFIXES: .c .o
  # compile, then strip unnecessary symbols
  .c.o:
! 	cc -O -c -DSkip_f2c_Undefs -DIEEE_drem $*.c
  	ld -r -x $*.o
  	mv a.out $*.o
  
diff -rc ../t/f2c-3.2.90/libI77/err.c ./libI77/err.c
*** ../t/f2c-3.2.90/libI77/err.c	Wed Feb 28 13:53:30 1990
--- ./libI77/err.c	Sun Sep 13 13:41:33 1992
***************
*** 2,7 ****
--- 2,8 ----
  #include "sys/stat.h"
  #include "f2c.h"
  #include "fio.h"
+ #include "local.h"
  
  extern FILE *fdopen();
  
diff -rc ../t/f2c-3.2.90/libI77/local.h ./libI77/local.h
*** ../t/f2c-3.2.90/libI77/local.h	Sun Sep 13 13:39:54 1992
--- ./libI77/local.h	Sun Sep 13 13:39:25 1992
***************
*** 0 ****
--- 1,6 ----
+ /* Use 
+    -DNON_ANSI_RW_MODES in libI77/makefile and
+    -DIEEE_drem in libF77/makefile.  Rich */
+ #define _base	_bf._base
+ #define _flag	_flags
+ #define _ptr	_p
diff -rc ../t/f2c-3.2.90/libI77/makefile ./libI77/makefile
*** ../t/f2c-3.2.90/libI77/makefile	Wed Feb 28 13:53:29 1990
--- ./libI77/makefile	Sun Sep 13 13:39:30 1992
***************
*** 1,6 ****
  .SUFFIXES: .c .o
  
! CFLAGS = -DSkip_f2c_Undefs -O
  
  # compile, then strip unnecessary symbols
  .c.o:
--- 1,6 ----
  .SUFFIXES: .c .o
  
! CFLAGS = -DSkip_f2c_Undefs -O -DNON_ANSI_RW_MODES
  
  # compile, then strip unnecessary symbols
  .c.o:
diff -rc ../t/f2c-3.2.90/libI77/wrtfmt.c ./libI77/wrtfmt.c
*** ../t/f2c-3.2.90/libI77/wrtfmt.c	Wed Feb 28 13:53:35 1990
--- ./libI77/wrtfmt.c	Sun Sep 13 13:41:14 1992
***************
*** 1,6 ****
--- 1,7 ----
  #include "f2c.h"
  #include "fio.h"
  #include "fmt.h"
+ #include "local.h"
  extern int cursor;
  extern char *icvt(), *ecvt();
  int hiwater;
diff -rc ../t/f2c-3.2.90/libI77/wsfe.c ./libI77/wsfe.c
*** ../t/f2c-3.2.90/libI77/wsfe.c	Wed Feb 28 13:53:35 1990
--- ./libI77/wsfe.c	Sun Sep 13 13:41:04 1992
***************
*** 2,7 ****
--- 2,8 ----
  #include "f2c.h"
  #include "fio.h"
  #include "fmt.h"
+ #include "local.h"
  extern int x_putc(),w_ed(),w_ned();
  extern int xw_end(),xw_rev(),x_wSL();
  extern int hiwater;
*** ../t/f2c-3.2.90/fc	Wed Feb 28 13:53:36 1990
--- ./fc	Sun Sep 13 13:54:02 1992
***************
*** 1,5 ****
  #!/bin/sh
! PATH=/v/bin:/bin:/usr/bin
  # f77-style shell script to compile and load fortran, C, and assembly codes
  
  #	usage:	f77 [-O] [-o absfile] [-c] files [-l library]
--- 1,5 ----
  #!/bin/sh
! PATH=/usr/site/f2c-3.2.90/bin:/bin:/usr/bin
  # f77-style shell script to compile and load fortran, C, and assembly codes
  
  #	usage:	f77 [-O] [-o absfile] [-c] files [-l library]
***************
*** 29,39 ****
  
  s=/tmp/stderr_$$
  t=/tmp/f77_$$.o
! CC=${CC_f2c:-'/v/bin/lcc double=8,4,1'}
! EFL=${EFL:-/v/bin/efl}
  EFLFLAGS=${EFLFLAGS:-'system=portable deltastno=10'}
! F2C=${F2C:-/v/bin/f2c}
! F2CFLAGS=${F2CFLAGS:='-ARw8 -T/usr/tmp'}
  rc=0
  trap "rm -f $s $t; exit \$rc" 0
  lib=/lib/num/lib.lo
--- 29,39 ----
  
  s=/tmp/stderr_$$
  t=/tmp/f77_$$.o
! CC=${CC_f2c:-'/usr/bin/cc -I/usr/site/f2c-3.2.90/include'}
! EFL=${EFL:-/usr/bin/efl}
  EFLFLAGS=${EFLFLAGS:-'system=portable deltastno=10'}
! F2C=${F2C:-/usr/site/f2c-3.2.90/bin/f2c}
! F2CFLAGS=${F2CFLAGS:='-ARw8 -T/tmp'}
  rc=0
  trap "rm -f $s $t; exit \$rc" 0
  lib=/lib/num/lib.lo