summaryrefslogtreecommitdiff
path: root/devel/libf2c/files
diff options
context:
space:
mode:
authorasau <asau@pkgsrc.org>2009-12-02 22:32:46 +0000
committerasau <asau@pkgsrc.org>2009-12-02 22:32:46 +0000
commit28bf4a5df3848fe743f73fc53def604c8b7c5de5 (patch)
tree2205bde51f6e0e21bbe97d4e941291476feb3ae0 /devel/libf2c/files
parentba70b8ad5215d93e14d2197a742cdda7add2a941 (diff)
downloadpkgsrc-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.mk9
-rw-r--r--devel/libf2c/files/chktypes.c118
-rw-r--r--devel/libf2c/files/libf2c.mk67
-rw-r--r--devel/libf2c/files/ltlib.mk34
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"