From c010ddec15bde90f3c4c70484cb92ef5912c1f69 Mon Sep 17 00:00:00 2001 From: obrien Date: Sat, 24 Apr 1999 22:33:15 +0000 Subject: f2c FORTRAN "compiler" port'ified from src/contrib/ PR: ports/11220 Submitted by: Steven G. Kargl --- lang/f2c/Makefile | 37 ++++++++ lang/f2c/distinfo | 1 + lang/f2c/files/f2c.h.alpha | 223 +++++++++++++++++++++++++++++++++++++++++++++ lang/f2c/pkg-comment | 1 + lang/f2c/pkg-descr | 10 ++ lang/f2c/pkg-plist | 5 + 6 files changed, 277 insertions(+) create mode 100644 lang/f2c/Makefile create mode 100644 lang/f2c/distinfo create mode 100644 lang/f2c/files/f2c.h.alpha create mode 100644 lang/f2c/pkg-comment create mode 100644 lang/f2c/pkg-descr create mode 100644 lang/f2c/pkg-plist (limited to 'lang/f2c') diff --git a/lang/f2c/Makefile b/lang/f2c/Makefile new file mode 100644 index 0000000..f0ab50f --- /dev/null +++ b/lang/f2c/Makefile @@ -0,0 +1,37 @@ +# Ports collection makefile for: f2c-freebsd +# Version required: 2.0.1 +# Date created: 28 DEC 1998 +# Whom: Steven G. Kargl +# +# $Id$ +# + +DISTNAME= f2c-freebsd.2.0.1 +PKGNAME= f2c-2.0.1 +CATEGORIES= lang +MASTER_SITES= ftp://troutmask.apl.washington.edu/pub/ + +MAINTAINER= kargl@troutmask.apl.washington.edu + +.include + +.if (${ARCH} == "alpha") +pre-configure: + @cp ${FILESDIR}/f2c.h.alpha ${WRKSRC}/f2c/f2c.h +.endif + +ALL_TARGET= depend all + +MAN1= f2c.1 + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/f2c/f2c ${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/f2c/f2c.h ${PREFIX}/include + ${INSTALL_MAN} ${WRKSRC}/f2c/f2c.1 ${PREFIX}/man/man1 + ${INSTALL_DATA} ${WRKSRC}/libf2c/libf2c.* ${PREFIX}/lib + ${LN} -sf libf2c.so.2 ${PREFIX}/lib/libf2c.so + +post-install: + ${LDCONFIG} -m ${PREFIX}/lib + +.include diff --git a/lang/f2c/distinfo b/lang/f2c/distinfo new file mode 100644 index 0000000..5fb47fe --- /dev/null +++ b/lang/f2c/distinfo @@ -0,0 +1 @@ +MD5 (f2c-freebsd.2.0.1.tar.gz) = 8ccc3c27b5e8a96154d8002a30878b01 diff --git a/lang/f2c/files/f2c.h.alpha b/lang/f2c/files/f2c.h.alpha new file mode 100644 index 0000000..61f72af --- /dev/null +++ b/lang/f2c/files/f2c.h.alpha @@ -0,0 +1,223 @@ +/* f2c.h -- Standard Fortran to C header file */ + +/** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed." + + - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */ + +#ifndef F2C_INCLUDE +#define F2C_INCLUDE + +typedef int integer; +typedef unsigned int uinteger; +typedef char *address; +typedef short int shortint; +typedef float real; +typedef double doublereal; +typedef struct { real r, i; } complex; +typedef struct { doublereal r, i; } doublecomplex; +typedef int logical; +typedef short int shortlogical; +typedef char logical1; +typedef char integer1; +#if 0 /* Adjust for integer*8. */ +typedef long long longint; /* system-dependent */ +typedef unsigned long long ulongint; /* system-dependent */ +#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b))) +#define qbit_set(a,b) ((a) | ((ulongint)1 << (b))) +#endif + +#define TRUE_ (1) +#define FALSE_ (0) + +/* Extern is for use with -E */ +#ifndef Extern +#define Extern extern +#endif + +/* I/O stuff */ + +#ifdef f2c_i2 +/* for -i2 */ +typedef short flag; +typedef short ftnlen; +typedef short ftnint; +#else +typedef int flag; +typedef int ftnlen; +typedef int ftnint; +#endif + +/*external read, write*/ +typedef struct +{ flag cierr; + ftnint ciunit; + flag ciend; + char *cifmt; + ftnint cirec; +} cilist; + +/*internal read, write*/ +typedef struct +{ flag icierr; + char *iciunit; + flag iciend; + char *icifmt; + ftnint icirlen; + ftnint icirnum; +} icilist; + +/*open*/ +typedef struct +{ flag oerr; + ftnint ounit; + char *ofnm; + ftnlen ofnmlen; + char *osta; + char *oacc; + char *ofm; + ftnint orl; + char *oblnk; +} olist; + +/*close*/ +typedef struct +{ flag cerr; + ftnint cunit; + char *csta; +} cllist; + +/*rewind, backspace, endfile*/ +typedef struct +{ flag aerr; + ftnint aunit; +} alist; + +/* inquire */ +typedef struct +{ flag inerr; + ftnint inunit; + char *infile; + ftnlen infilen; + ftnint *inex; /*parameters in standard's order*/ + ftnint *inopen; + ftnint *innum; + ftnint *innamed; + char *inname; + ftnlen innamlen; + char *inacc; + ftnlen inacclen; + char *inseq; + ftnlen inseqlen; + char *indir; + ftnlen indirlen; + char *infmt; + ftnlen infmtlen; + char *inform; + ftnint informlen; + char *inunf; + ftnlen inunflen; + ftnint *inrecl; + ftnint *innrec; + char *inblank; + ftnlen inblanklen; +} inlist; + +#define VOID void + +union Multitype { /* for multiple entry points */ + integer1 g; + shortint h; + integer i; + /* longint j; */ + real r; + doublereal d; + complex c; + doublecomplex z; + }; + +typedef union Multitype Multitype; + +/*typedef long int Long;*/ /* No longer used; formerly in Namelist */ + +struct Vardesc { /* for Namelist */ + char *name; + char *addr; + ftnlen *dims; + int type; + }; +typedef struct Vardesc Vardesc; + +struct Namelist { + char *name; + Vardesc **vars; + int nvars; + }; +typedef struct Namelist Namelist; + +#define abs(x) ((x) >= 0 ? (x) : -(x)) +#define dabs(x) (doublereal)abs(x) +#define min(a,b) ((a) <= (b) ? (a) : (b)) +#define max(a,b) ((a) >= (b) ? (a) : (b)) +#define dmin(a,b) (doublereal)min(a,b) +#define dmax(a,b) (doublereal)max(a,b) +#define bit_test(a,b) ((a) >> (b) & 1) +#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b))) +#define bit_set(a,b) ((a) | ((uinteger)1 << (b))) + +/* procedure parameter types for -A and -C++ */ + +#define F2C_proc_par_types 1 +#ifdef __cplusplus +typedef int /* Unknown procedure type */ (*U_fp)(...); +typedef shortint (*J_fp)(...); +typedef integer (*I_fp)(...); +typedef real (*R_fp)(...); +typedef doublereal (*D_fp)(...), (*E_fp)(...); +typedef /* Complex */ VOID (*C_fp)(...); +typedef /* Double Complex */ VOID (*Z_fp)(...); +typedef logical (*L_fp)(...); +typedef shortlogical (*K_fp)(...); +typedef /* Character */ VOID (*H_fp)(...); +typedef /* Subroutine */ int (*S_fp)(...); +#else +typedef int /* Unknown procedure type */ (*U_fp)(); +typedef shortint (*J_fp)(); +typedef integer (*I_fp)(); +typedef real (*R_fp)(); +typedef doublereal (*D_fp)(), (*E_fp)(); +typedef /* Complex */ VOID (*C_fp)(); +typedef /* Double Complex */ VOID (*Z_fp)(); +typedef logical (*L_fp)(); +typedef shortlogical (*K_fp)(); +typedef /* Character */ VOID (*H_fp)(); +typedef /* Subroutine */ int (*S_fp)(); +#endif +/* E_fp is for real functions when -R is not specified */ +typedef VOID C_f; /* complex function */ +typedef VOID H_f; /* character function */ +typedef VOID Z_f; /* double complex function */ +typedef doublereal E_f; /* real function with -R not specified */ + +/* undef any lower-case symbols that your C compiler predefines, e.g.: */ + +#ifndef Skip_f2c_Undefs +#undef cray +#undef gcos +#undef mc68010 +#undef mc68020 +#undef mips +#undef pdp11 +#undef sgi +#undef sparc +#undef sun +#undef sun2 +#undef sun3 +#undef sun4 +#undef u370 +#undef u3b +#undef u3b2 +#undef u3b5 +#undef unix +#undef vax +#endif +#endif diff --git a/lang/f2c/pkg-comment b/lang/f2c/pkg-comment new file mode 100644 index 0000000..c245407 --- /dev/null +++ b/lang/f2c/pkg-comment @@ -0,0 +1 @@ +Fortran-to-C converter and its run-time libraries. diff --git a/lang/f2c/pkg-descr b/lang/f2c/pkg-descr new file mode 100644 index 0000000..7e07bed --- /dev/null +++ b/lang/f2c/pkg-descr @@ -0,0 +1,10 @@ +f2c and its run-time library, libf2c.a, are a port of the +Fortran-to-C converter available from ftp.netlib.org. This +software was originally developed by AT&T, Lucent Technologies, +and Bellcore. The port contains some enhancements for FreeBSD. + +http://www.netlib.org or ftp://ftp.netlib.org + +-- +Steve +kargl@troutmask.apl.washington.edu diff --git a/lang/f2c/pkg-plist b/lang/f2c/pkg-plist new file mode 100644 index 0000000..29f6833 --- /dev/null +++ b/lang/f2c/pkg-plist @@ -0,0 +1,5 @@ +bin/f2c +include/f2c.h +lib/libf2c.a +lib/libf2c.so.2 +@exec /sbin/ldconfig -m %D/lib -- cgit v1.1