diff options
author | asau <asau@pkgsrc.org> | 2009-12-02 22:32:46 +0000 |
---|---|---|
committer | asau <asau@pkgsrc.org> | 2009-12-02 22:32:46 +0000 |
commit | 28bf4a5df3848fe743f73fc53def604c8b7c5de5 (patch) | |
tree | 2205bde51f6e0e21bbe97d4e941291476feb3ae0 /devel/libf2c/files | |
parent | ba70b8ad5215d93e14d2197a742cdda7add2a941 (diff) | |
download | pkgsrc-28bf4a5df3848fe743f73fc53def604c8b7c5de5.tar.gz |
Import libf2c-20090201 as devel/libf2c.
libf2c is Fortran support library distributed by Netlib with f2c
(Fortran 77 to C translator).
libf2c combines libF77 and libI77 in one library.
Diffstat (limited to 'devel/libf2c/files')
-rw-r--r-- | devel/libf2c/files/bsd.init.mk | 9 | ||||
-rw-r--r-- | devel/libf2c/files/chktypes.c | 118 | ||||
-rw-r--r-- | devel/libf2c/files/libf2c.mk | 67 | ||||
-rw-r--r-- | devel/libf2c/files/ltlib.mk | 34 |
4 files changed, 228 insertions, 0 deletions
diff --git a/devel/libf2c/files/bsd.init.mk b/devel/libf2c/files/bsd.init.mk new file mode 100644 index 00000000000..72ca4d7f686 --- /dev/null +++ b/devel/libf2c/files/bsd.init.mk @@ -0,0 +1,9 @@ +# Simulate "bsd.init.mk" because pkgsrc doesn't provide it for some reason: +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include <bsd.own.mk> +.MAIN: all +.endif diff --git a/devel/libf2c/files/chktypes.c b/devel/libf2c/files/chktypes.c new file mode 100644 index 00000000000..88766eca64c --- /dev/null +++ b/devel/libf2c/files/chktypes.c @@ -0,0 +1,118 @@ +/* $NetBSD: chktypes.c,v 1.1.1.1 2009/12/02 22:32:47 asau Exp $ */ +/* +does a sanity check of the settings in f2c.h If these settings +are wrong, a message is printed asking that the package maintainer +be contacted. +*/ + +#include <stdio.h> +#include <string.h> +#include "f2c.h" + +int main(int argc, char *argv[]) +{ + + int err=0; + int pok=0; + + + if(argc > 1) + { + if(strncmp(argv[1],"-v",2)==0) + { + pok=1; + } + } + if(sizeof(doublecomplex) == 2*sizeof(doublereal)) + { + if(pok) + printf("sizeof(doublecomplex) = 2*sizeof(doublereal) = %d\n",sizeof(doublecomplex)); + } + else + { + printf("ERROR:\tsizeof(doublecomplex) \t= %d\n\t2*sizeof(doublereal) \t= %d\n", + sizeof(doublecomplex),2*sizeof(doublereal)); + err=1; + } + + + if(sizeof(doublereal) == sizeof(complex)) + { + if(pok) + printf("sizeof(doublereal) = sizeof(complex) = %d\n",sizeof(doublereal)); + } + else + { + printf("ERROR:\tsizeof(doublereal) \t= %d\n\tsizeof(complex) \t= %d\n", + sizeof(doublereal),sizeof(complex)); + err=1; + } + + + if(sizeof(doublereal) == 2*sizeof(real)) + { + if(pok) + printf("sizeof(doublereal) = 2*sizeof(real) = %d\n",sizeof(doublereal)); + } + else + { + printf("ERROR:\tsizeof(doublereal) \t= %d\n\t2*sizeof(real)\t = %d\n", + sizeof(doublereal),2*sizeof(real)); + err=1; + } + + if(sizeof(real) == sizeof(integer)) + { + if(pok) + printf("sizeof(real) = sizeof(integer) = %d\n",sizeof(real)); + } + else + { + printf("ERROR:\tsizeof(real) \t= %d\n\tsizeof(integer) \t= %d\n", + sizeof(real),sizeof(integer)); + err=1; + } + + if(sizeof(real) == sizeof(logical)) + { + if(pok) + printf("sizeof(real) = sizeof(logical) = %d\n",sizeof(real)); + } + else + { + printf("ERROR:\tsizeof(real) \t= %d\n\tsizeof(logical) \t= %d\n", + sizeof(real),sizeof(logical)); + err=1; + } + + if(sizeof(real) == 2*sizeof(shortint)) + { + if(pok) + printf("sizeof(real) = 2*sizeof(shortint) = %d\n",sizeof(real)); + } + else + { + printf("ERROR:\tsizeof(real) \t= %d\n\t2*sizeof() \t= %d\n", + sizeof(real),2*sizeof(shortint)); + err=1; + } + + if(pok) + { + printf("\n\n-------------------\n"); + printf("sizeof(short) = %d\n",sizeof(short)); + printf("sizeof(int) = %d\n",sizeof(int)); + printf("sizeof(float) = %d\n",sizeof(float)); + printf("sizeof(long) = %d\n",sizeof(long)); + printf("sizeof(double) = %d\n",sizeof(double)); + printf("\n\n-------------------\n"); + } + + if(err) + { + printf("The header file f2c.h has the wrong typedef's for your machine\n"); + printf("architecture. Please contact the package maintainer.\n"); + } + + return(err); +} diff --git a/devel/libf2c/files/libf2c.mk b/devel/libf2c/files/libf2c.mk new file mode 100644 index 00000000000..f29f3ea00c1 --- /dev/null +++ b/devel/libf2c/files/libf2c.mk @@ -0,0 +1,67 @@ +LIB= f2c +SHLIB_MAJOR= 0 +SHLIB_MINOR= 0 + +.include "bsd.init.mk" +.PATH: $(LIBF2CSRCDIR) + +INCS= f2c.h +SRCS= $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \ + $(HALF) $(CMP) $(EFL) $(CHAR) $(F90BIT) $(TIME) +SRCS+= $(IO) # libI77 part +DPSRCS= f2c.h signal1.h # generated files +DPSRCS+= sysdep1.h # libI77 generated file +CLEANFILES= $(DPSRCS) + +CPPFLAGS+= -I/usr/include # override "." to pull in correct <ctype.h> +CPPFLAGS+= -I. # for generated include files +CPPFLAGS+= -DSkip_f2c_Undefs +CPPFLAGS+= -DNO_My_ctype # internal "ctype" causes more problems + +# libF77 part: +MISC = f77_aloc.c f77vers.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 +POW = pow_ci.c pow_dd.c pow_di.c pow_hh.c pow_ii.c pow_ri.c pow_zi.c pow_zz.c +CX = c_abs.c c_cos.c c_div.c c_exp.c c_log.c c_sin.c c_sqrt.c +DCX = z_abs.c z_cos.c z_div.c z_exp.c z_log.c z_sin.c z_sqrt.c +REAL = 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 +DBL = d_abs.c d_acos.c d_asin.c d_atan.c d_atn2.c \ + d_cnjg.c d_cos.c d_cosh.c d_dim.c d_exp.c \ + d_imag.c d_int.c d_lg10.c d_log.c d_mod.c \ + d_nint.c d_prod.c d_sign.c d_sin.c d_sinh.c \ + d_sqrt.c d_tan.c d_tanh.c +INT = i_abs.c i_dim.c i_dnnt.c i_indx.c i_len.c i_mod.c i_nint.c i_sign.c +HALF = h_abs.c h_dim.c h_dnnt.c h_indx.c h_len.c h_mod.c h_nint.c h_sign.c +CMP = l_ge.c l_gt.c l_le.c l_lt.c hl_ge.c hl_gt.c hl_le.c hl_lt.c +EFL = ef1asc_.c ef1cmc_.c +CHAR = s_cat.c s_cmp.c s_copy.c +F90BIT = lbitbits.c lbitshft.c +QINT = pow_qq.c qbitbits.c qbitshft.c +TIME = dtime_.c etime_.c + +# libI77 part: +IO = backspac.c close.c dfe.c dolio.c due.c endfile.c err.c \ + fmt.c fmtlib.c ftell_.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 +IO+= i77vers.c # previously known as "Version.c" +# Previously there was "backspace.c" instead of "backspac.c". + +f2c.h: f2c.h0; cp $> $@ +signal1.h: signal1.h0; cp $> $@ +sysdep1.h: sysdep1.h0; cp $> $@ # libI77 + +# i77vers.lo: i77vers.c +# $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $(.ALLSRC:M*.c) + +install: incinstall # install include files + +.if defined(MKLTARCHIVE) && !empty(MKLTARCHIVE:M[Yy][Ee][Ss]) +.include "ltlib.mk" +.else +.include "bsd.lib.mk" +.endif diff --git a/devel/libf2c/files/ltlib.mk b/devel/libf2c/files/ltlib.mk new file mode 100644 index 00000000000..a4dda191b3c --- /dev/null +++ b/devel/libf2c/files/ltlib.mk @@ -0,0 +1,34 @@ +# building library using libtool, simplified + +.include "bsd.init.mk" +.include <bsd.obj.mk> +.include <bsd.dep.mk> +.-include <bsd.depall.mk> # it doesn't exist on NetBSD + +OBJS+= $(SRCS:.c=.o) +LTOBJS+= $(SRCS:.c=.lo) + +.SUFFIXES: .c .lo +.c.lo: + $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< +lib$(LIB).la: $(LTOBJS) + $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(LTOBJS) $(LDFLAGS) -rpath $(LIBDIR) -version-info $(SHLIB_MAJOR):$(SHLIB_MINOR) + +$(LTOBJS): $(DPSRCS) + +all: lib$(LIB).la + +install: lib$(LIB).la + $(LIBTOOL) --mode=install $(INSTALL) $(RENAME) $(PRESERVE) $(COPY) $(INSTPRIV) \ + -o $(LIBOWN) -g $(LIBGRP) -m $(LIBMODE) \ + lib$(LIB).la $(DESTDIR)$(LIBDIR) + +clean cleandir: + rm -f $(CLEANFILES) + rm -f lib$(LIB).la $(LTOBJS) $(OBJS) + rm -rf .libs + +LIBTOOL?= libtool +LIBDIR?= /usr/local/lib # required + +.include "bsd.inc.mk" |