diff options
author | obrien <obrien@FreeBSD.org> | 1999-04-18 09:48:40 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1999-04-18 09:48:40 +0000 |
commit | 1c8df85eb1e7d70be3b495e91bd4d0f4ec7ad835 (patch) | |
tree | e6ecbedc5d9e7a62971b5129a4b30471892f629b /gnu/lib/libg2c | |
parent | b710768bd34c0afcc9eb7116cd47eb89d244f667 (diff) | |
download | FreeBSD-src-1c8df85eb1e7d70be3b495e91bd4d0f4ec7ad835.zip FreeBSD-src-1c8df85eb1e7d70be3b495e91bd4d0f4ec7ad835.tar.gz |
libg2c -- EGCS's version of libf2c (plus enhancements).
Diffstat (limited to 'gnu/lib/libg2c')
-rw-r--r-- | gnu/lib/libg2c/Makefile | 117 | ||||
-rw-r--r-- | gnu/lib/libg2c/config.h | 107 | ||||
-rw-r--r-- | gnu/lib/libg2c/g2c.h | 236 |
3 files changed, 460 insertions, 0 deletions
diff --git a/gnu/lib/libg2c/Makefile b/gnu/lib/libg2c/Makefile new file mode 100644 index 0000000..9d9126e --- /dev/null +++ b/gnu/lib/libg2c/Makefile @@ -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> diff --git a/gnu/lib/libg2c/config.h b/gnu/lib/libg2c/config.h new file mode 100644 index 0000000..045a43f --- /dev/null +++ b/gnu/lib/libg2c/config.h @@ -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 diff --git a/gnu/lib/libg2c/g2c.h b/gnu/lib/libg2c/g2c.h new file mode 100644 index 0000000..f2f4ad1 --- /dev/null +++ b/gnu/lib/libg2c/g2c.h @@ -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 |