summaryrefslogtreecommitdiff
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
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.
-rw-r--r--devel/libf2c/DESCR3
-rw-r--r--devel/libf2c/Makefile53
-rw-r--r--devel/libf2c/PLIST3
-rw-r--r--devel/libf2c/buildlink3.mk12
-rw-r--r--devel/libf2c/distinfo6
-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
-rw-r--r--devel/libf2c/patches/patch-ai30
10 files changed, 335 insertions, 0 deletions
diff --git a/devel/libf2c/DESCR b/devel/libf2c/DESCR
new file mode 100644
index 00000000000..a7924d47837
--- /dev/null
+++ b/devel/libf2c/DESCR
@@ -0,0 +1,3 @@
+libf2c is Fortran support library distributed by Netlib with f2c
+(Fortran 77 to C translator).
+libf2c combines libF77 and libI77 in one library.
diff --git a/devel/libf2c/Makefile b/devel/libf2c/Makefile
new file mode 100644
index 00000000000..b217dc8c0ea
--- /dev/null
+++ b/devel/libf2c/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.1.1.1 2009/12/02 22:32:46 asau Exp $
+
+DISTNAME= libf2c-20090201
+CATEGORIES= lang
+MASTER_SITES= ${MASTER_SITE_LOCAL} # see notes below
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= http://www.netlib.org/f2c/index.html
+COMMENT= f2c Fortran support library
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+CONFLICTS= egcs-current-19980608 \
+ f2c<=20090411
+
+EXTRACT_DIR= ${WRKDIR}/libf2c
+WRKSRC= ${EXTRACT_DIR}
+
+USE_BSD_MAKEFILE= yes
+USE_LIBTOOL= yes
+MAKE_FLAGS= LIBF2CSRCDIR=. MKLTARCHIVE=yes
+
+INSTALLATION_DIRS= lib include
+
+TEST_TARGET= test
+
+pre-extract:
+ @cd ${WRKDIR} && ${MKDIR} ${EXTRACT_DIR}
+
+post-extract:
+ @${CP} ${FILESDIR:Q}/libf2c.mk ${WRKSRC}/Makefile
+ @${CP} ${FILESDIR:Q}/ltlib.mk ${WRKSRC}/ltlib.mk
+ @${CP} ${FILESDIR:Q}/bsd.init.mk ${WRKSRC}/bsd.init.mk # pkgsrc lossage
+ @${RM} -f ${WRKSRC}/ctype.h # don't mess with system ctype.h
+ @${CP} ${FILESDIR:Q}/chktypes.c ${WRKDIR}
+
+do-test:
+ @cd ${WRKDIR} && ${CC} -I libf2c -o chktypes chktypes.c
+ ${WRKDIR}/chktypes -v
+
+# Notes
+#
+# Original distfile doesn't carry version information,
+# This makes it difficult at best to use the real master site.
+# We create our local the distfile:
+# ftp http://www.netlib.org/f2c/libf2c.zip
+# unzip -d tmp libf2c.zip
+# (cd tmp; ls | pax -zwf ../libf2c-yyyymmdd.tar.gz)
+#
+# Date corresponds to the last libf2c change from:
+# http://www.netlib.org/f2c/changes
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/devel/libf2c/PLIST b/devel/libf2c/PLIST
new file mode 100644
index 00000000000..56b1e451f9d
--- /dev/null
+++ b/devel/libf2c/PLIST
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2009/12/02 22:32:46 asau Exp $
+include/f2c.h
+lib/libf2c.la
diff --git a/devel/libf2c/buildlink3.mk b/devel/libf2c/buildlink3.mk
new file mode 100644
index 00000000000..b4d8d0bf0aa
--- /dev/null
+++ b/devel/libf2c/buildlink3.mk
@@ -0,0 +1,12 @@
+# $NetBSD: buildlink3.mk,v 1.1.1.1 2009/12/02 22:32:46 asau Exp $
+
+BUILDLINK_TREE+= libf2c
+
+.if !defined(LIBF2C_BUILDLINK3_MK)
+LIBF2C_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.libf2c+= libf2c>=20090201
+BUILDLINK_PKGSRCDIR.libf2c?= ../../devel/libf2c
+.endif # LIBF2C_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -libf2c
diff --git a/devel/libf2c/distinfo b/devel/libf2c/distinfo
new file mode 100644
index 00000000000..207abd00bd6
--- /dev/null
+++ b/devel/libf2c/distinfo
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1.1.1 2009/12/02 22:32:46 asau Exp $
+
+SHA1 (libf2c-20090201.tar.gz) = 85bd1602dce67a4d784fa9815c993202b1da3216
+RMD160 (libf2c-20090201.tar.gz) = 27fe1476eef9431042b67660120285395850d6a7
+Size (libf2c-20090201.tar.gz) = 81983 bytes
+SHA1 (patch-ai) = 3524fe7abcfcdcd636c134c0515279f9172dc7dc
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"
diff --git a/devel/libf2c/patches/patch-ai b/devel/libf2c/patches/patch-ai
new file mode 100644
index 00000000000..80835985b63
--- /dev/null
+++ b/devel/libf2c/patches/patch-ai
@@ -0,0 +1,30 @@
+$NetBSD: patch-ai,v 1.1.1.1 2009/12/02 22:32:47 asau Exp $
+
+required to make
+sizeof(integer) == sizeof(real)
+and
+sizeof(logical) == sizeof(real)
+(per f2c/readme)
+
+--- f2c.h0.orig Tue Sep 7 13:46:24 1999
++++ f2c.h0 Tue Dec 7 18:08:26 1999
+@@ -8,5 +8,9 @@
+ #define F2C_INCLUDE
+
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__sparcv8) || defined(__sparcv9)
++typedef int integer;
++#else
+ typedef long int integer;
++#endif
+ typedef unsigned long int uinteger;
+ typedef char *address;
+@@ -16,5 +20,9 @@
+ typedef struct { real r, i; } complex;
+ typedef struct { doublereal r, i; } doublecomplex;
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__sparcv8) || defined(__sparcv9)
++typedef int logical;
++#else
+ typedef long int logical;
++#endif
+ typedef short int shortlogical;
+ typedef char logical1;