libg2c -- EGCS's version of libf2c (plus enhancements).

This commit is contained in:
David E. O'Brien 1999-04-18 09:48:40 +00:00
parent df35f426d2
commit e4f5e0bb93
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=45768
3 changed files with 460 additions and 0 deletions

117
gnu/lib/libg2c/Makefile Normal file
View File

@ -0,0 +1,117 @@
# $Id: Makefile,v 1.25 1999/04/08 08:39:16 obrien Exp $
EGCSDIR= ${.CURDIR}/../../../contrib/egcs
.PATH: ${EGCSDIR}/libf2c ${EGCSDIR}/libf2c/libU77 ${EGCSDIR}/libf2c/libF77 \
${EGCSDIR}/libf2c/libI77
LIB= g2c
SHLIB_MAJOR= 1
SHLIB_MINOR= 0
# Traditional FORTRAN Library members defined in libF77
F77MISC= F77_aloc.c main.c s_rnge.c abort_.c getarg_.c \
iargc_.c getenv_.c signal_.c s_stop.c s_paus.c system_.c \
cabs.c derf_.c derfc_.c erf_.c erfc_.c sig_die.c exit_.c \
setarg.c setsig.c
F77POW= pow_ci.c pow_dd.c pow_di.c pow_hh.c pow_ii.c pow_ri.c pow_zi.c \
pow_zz.c
F77CX= c_abs.c c_cos.c c_div.c c_exp.c c_log.c c_sin.c c_sqrt.c
F77DCX= ${F77CX:S/^c_/z_/g}
F77REAL= r_abs.c r_acos.c r_asin.c r_atan.c r_atn2.c r_cnjg.c r_cos.c \
r_cosh.c r_dim.c r_exp.c r_imag.c r_int.c r_lg10.c r_log.c \
r_mod.c r_nint.c r_sign.c r_sin.c r_sinh.c r_sqrt.c r_tan.c \
r_tanh.c
F77DBL= ${F77REAL:S/^r_/d_/g} d_prod.c
F77CMP= l_ge.c l_gt.c l_le.c l_lt.c hl_ge.c hl_gt.c hl_le.c hl_lt.c
F77EFL= ef1asc_.c ef1cmc_.c
F77CHAR= s_cat.c s_cmp.c s_copy.c
F77F90BIT= lbitbits.c lbitshft.c qbitbits.c qbitshft.c
F77SRCS= ${F77MISC} ${F77POW} ${F77CX} ${F77DCX} ${F77REAL} ${F77DBL} \
${F77CMP} ${F77EFL} ${F77CHAR} ${F77F90BIT}
# I/O Library members defined in libI77
I77SRCS= backspace.c close.c dfe.c dolio.c due.c endfile.c \
err.c fmt.c fmtlib.c iio.c ilnw.c inquire.c lread.c lwrite.c \
open.c rdfmt.c rewind.c rsfe.c rsli.c rsne.c sfe.c sue.c \
typesize.c uio.c util.c wref.c wrtfmt.c wsfe.c wsle.c wsne.c \
xwsne.c ftell_.c
# UNIX Library members defined in libU77
U77SRCS= gerror_.c perror_.c ierrno_.c itime_.c time_.c \
unlink_.c fnum_.c getpid_.c getuid_.c getgid_.c kill_.c \
rand_.c srand_.c irand_.c sleep_.c idate_.c ctime_.c \
etime_.c dtime_.c isatty_.c ltime_.c fstat_.c stat_.c \
lstat_.c access_.c link_.c getlog_.c ttynam_.c getcwd_.c \
symlnk_.c vxttime_.c vxtidate_.c gmtime_.c fdate_.c \
secnds_.c bes.c dbes.c chdir_.c chmod_.c lnblnk_.c \
hostnm_.c rename_.c fgetc_.c fputc_.c umask_.c \
sys_clock_.c date_.c second_.c flush1_.c mclock_.c \
alarm_.c datetime_.c
# Library members refered to as libE77 by EGCS
E77OBJS= abort.o access.o alarm.o besj0.o besj1.o besjn.o \
besy0.o besy1.o besyn.o chdir.o chmod.o ctime.o date.o \
dbesj0.o dbesj1.o dbesjn.o dbesy0.o dbesy1.o dbesyn.o derf.o \
derfc.o dtime.o ef1asc.o ef1cmc.o erf.o erfc.o etime.o exit.o \
fdate.o fget.o fgetc.o flush.o flush1.o fnum.o fput.o fputc.o \
fseek.o fstat.o ftell.o gerror.o getarg.o getcwd.o getenv.o \
getgid.o getlog.o getpid.o getuid.o gmtime.o hostnm.o iargc.o \
idate.o ierrno.o irand.o isatty.o itime.o kill.o link.o \
lnblnk.o lstat.o ltime.o mclock.o perror.o rand.o rename.o \
secnds.o second.o signal.o sleep.o srand.o stat.o symlnk.o \
system.o time.o ttynam.o umask.o unlink.o vxtidt.o vxttim.o
LIBF77SRCS= ${F77SRCS} ${I77SRCS} ${U77SRCS} ${E77SRCS}
SRCS= ${LIBF77SRCS}
CLEANFILES= ${LIBF77SRCS}
OBJS= ${E77OBJS}
CFLAGS+= -DHAVE_CONFIG_H=1 -DSTDC_HEADERS=1 -DHAVE_TEMPNAM=1
CFLAGS+= -DNO_EOF_CHAR_CHECK=1 -DRETSIGTYPE=void
CFLAGS+= -DSkip_f2c_Undefs=1 -DIEEE_drem=1 -DAllow_TYQUAD -DPedantic
CFLAGS+= -I${EGCSDIR}/libf2c -I${EGCSDIR}/libf2c/libF77
CFLAGS+= -I${EGCSDIR}/libf2c/libI77 -I${EGCSDIR}/libf2c/libU77
CFLAGS+= -I${EGCSDIR}/gcc/f -I${EGCSDIR}/gcc -I${EGCSDIR}/gcc/config
CFLAGS+= -I${.CURDIR}
.for x in F I U
${x}77SRCS+= Version${x}.c
Version${x}.c: ${EGCSDIR}/libf2c/lib${x}77/Version.c
ln -sf ${.ALLSRC} ${.TARGET}
.endfor
${E77OBJS}: f2cext.c
${CC} ${CFLAGS} -c -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c}
@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
@mv ${.TARGET}.tmp ${.TARGET}
.if !defined(NOPIC)
${E77OBJS:.o=.So}: f2cext.c
${CC} ${PICFLAG} -DPIC ${CFLAGS} -c -DL${.PREFIX} -o ${.TARGET} \
${.ALLSRC:M*.c}
@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
@mv ${.TARGET}.tmp ${.TARGET}
.endif
.if !defined(NOPROFILE)
${E77OBJS:.o=.po}: f2cext.c
${CC} -p ${CFLAGS} -c -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c}
@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
@mv ${.TARGET}.tmp ${.TARGET}
.endif
.include <bsd.lib.mk>

107
gnu/lib/libg2c/config.h Normal file
View File

@ -0,0 +1,107 @@
/* config.h. Generated automatically by configure. */
/* config.hin. Generated automatically from configure.in by autoheader. */
/* Define to empty if the keyword does not work. */
/* #undef const */
/* Define if your struct stat has st_blksize. */
#define HAVE_ST_BLKSIZE 1
/* Define if your struct stat has st_blocks. */
#define HAVE_ST_BLOCKS 1
/* Define if your struct stat has st_rdev. */
#define HAVE_ST_RDEV 1
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef mode_t */
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef pid_t */
/* Define to `unsigned' if <sys/types.h> doesn't define. */
/* #undef size_t */
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1
/* Define if your <sys/time.h> declares struct tm. */
/* #undef TM_IN_SYS_TIME */
/* Define as the path of the `chmod' program. */
#define CHMOD_PATH "/bin/chmod"
/* Define if you have the alarm function. */
#define HAVE_ALARM 1
/* Define if you have the clock function. */
#define HAVE_CLOCK 1
/* Define if you have the getcwd function. */
#define HAVE_GETCWD 1
/* Define if you have the getgid function. */
#define HAVE_GETGID 1
/* Define if you have the gethostname function. */
#define HAVE_GETHOSTNAME 1
/* Define if you have the getlogin function. */
#define HAVE_GETLOGIN 1
/* Define if you have the getrusage function. */
#define HAVE_GETRUSAGE 1
/* Define if you have the gettimeofday function. */
#define HAVE_GETTIMEOFDAY 1
/* Define if you have the getuid function. */
#define HAVE_GETUID 1
/* Define if you have the getwd function. */
#define HAVE_GETWD 1
/* Define if you have the kill function. */
#define HAVE_KILL 1
/* Define if you have the link function. */
#define HAVE_LINK 1
/* Define if you have the lstat function. */
#define HAVE_LSTAT 1
/* Define if you have the strerror function. */
#define HAVE_STRERROR 1
/* Define if you have the symlink function. */
#define HAVE_SYMLINK 1
/* Define if you have the times function. */
#define HAVE_TIMES 1
/* Define if you have the ttyname function. */
#define HAVE_TTYNAME 1
/* Define if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1
/* Define if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define if you have the <sys/times.h> header file. */
#define HAVE_SYS_TIMES_H 1
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1

236
gnu/lib/libg2c/g2c.h Normal file
View File

@ -0,0 +1,236 @@
/* g2c.h -- g77 version of f2c (Standard Fortran to C header file) */
/* This file is generated by the g77 libg2c configuration process from a
file named g2c.hin. This process sets up the appropriate types,
defines the appropriate macros, and so on. The resulting g2c.h file
is used to build g77's copy of libf2c, named libg2c, and also can
be used when compiling C code produced by f2c to link the resulting
object file(s) with those produced by the same version of g77 that
produced this file, allowing inter-operability of f2c-compiled and
g77-compiled code. */
/** 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
/* F2C_INTEGER will normally be `int' but would be `long' on 16-bit systems */
/* we assume short, float are OK */
typedef long int /* long int */ integer;
typedef unsigned long int /* long */ 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 long int /* long int */ logical;
typedef short int shortlogical;
typedef char logical1;
typedef char integer1;
typedef long long int /* long long */ longint; /* system-dependent */
typedef unsigned long long int /* long long */ ulongint; /* system-dependent */
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
#define TRUE_ (1)
#define FALSE_ (0)
/* Extern is for use with -E */
#ifndef Extern
#define Extern extern
#endif
/* I/O stuff */
#ifdef f2c_i2
#error "f2c_i2 will not work with g77!!!!"
/* for -i2 */
typedef short flag;
typedef short ftnlen;
typedef short ftnint;
#else
typedef long int /* long int */ flag;
typedef long int /* long int */ ftnlen;
typedef long int /* long 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
/* (No such symbols should be defined in a strict ANSI C compiler.
We can avoid trouble with f2c-translated code by using
gcc -ansi [-traditional].) */
#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