libg2c -- EGCS's version of libf2c (plus enhancements).
This commit is contained in:
parent
fb67c013f7
commit
c8ac8006aa
117
gnu/lib/libg2c/Makefile
Normal file
117
gnu/lib/libg2c/Makefile
Normal 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
107
gnu/lib/libg2c/config.h
Normal 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
236
gnu/lib/libg2c/g2c.h
Normal 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
|
Loading…
Reference in New Issue
Block a user