arpack stable port information

Info2: <<
Package: arpack%type_pkg[-atlas]
Version: 96patched
Revision: 7
Type: -atlas (boolean)

Maintainer: Alexander Hansen
Description: Solve large scale eigenvalue problems
DescDetail: <<
ARPACK is a collection of Fortran77 subroutines designed to solve large scale
eigenvalue problems.
<<
DescUsage: <<
This package contains the header, static libraries, Fortran examples, and
documentation.
<<
BuildDependsOnly: true
Homepage: http://www.caam.rice.edu/software/ARPACK
License: BSD

Source: http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz
Source2: http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz
Source2Rename: arpack-patch.tar.gz
Source-MD5: fffaa970198b285676f4156cebc8626e
Source2-MD5: 14830d758f195f272b8594a493501fa2
SourceDirectory: ARPACK

BuildDepends: <<
(%type_raw[-atlas] != .) atlas,
fink (>=0.30.0),
gcc46-compiler
<<
Depends: %N-shlibs (= %v-%r )
Conflicts: %{Ni}, %{Ni}-atlas, %{Ni}-ng, %{Ni}-ng-atlas
Replaces: %{Ni}, %{Ni}-atlas, %{Ni}-ng, %{Ni}-ng-atlas

PatchFile: %{ni}.patch
PatchFile-MD5:7f2b7e1cc58e18f9705c784a680e71ef
PatchScript: <<
#!/bin/sh -ev
sed -e 's|FINKPREFIX|%p|g' %{PatchFile} | patch -p1
perl -pi -e 's|\$\(HOME\)/ARPACK|%b|' ARmake.inc
# set appropriate libraries for variant
if [ "%type_raw[-atlas]" = "-atlas" ]
then
sed -i.bak -e 's|@FF2C@||' \
-e 's|@LAPACKLIB@|%p/lib/liblapack.dylib|' \
-e 's|@BLASLIB@|%p/lib/libf77blas.dylib|' ARmake.inc
sed -i.bak -e 's|@LAPACKLINK@|%p/lib/liblapack.dylib|' \
-e 's|@BLASLINK@|%p/lib/libf77blas.dylib|' Makefile
else
sed -i.bak -e 's|@FF2C@|-ff2c|' \
-e 's|@LAPACKLIB@|-framework Accelerate|' \
-e 's|@BLASLIB@||' ARmake.inc
sed -i.bak -e 's|@LAPACKLINK@|/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib|' \
-e 's|@BLASLINK@|/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib|' \
Makefile
fi
# set LDFLAGS appropriately
if [ `uname -r | cut -f1 -d.` -ge 9 ]
then
sed -i.bak -e 's|@LDFLAGS@|-Wl,-dead_strip_dylibs|' ARmake.inc
else
sed -i.bak -e 's|@LDFLAGS@||' ARmake.inc
fi
# use OS-appropriate methods to make dylib
if [ `uname -r | cut -f1 -d.` -le 9 ]
then
sed -i.bak -e 's|@LOAD@|-all_load|' Makefile
else
sed -i.bak -e 's|@LOAD@|-force_load|' Makefile
fi
<<

UseMaxBuildJobs: false
CompileScript: <<
make all
make arpackdylib
<<
InstallScript: <<
#!/bin/sh -ev
install -d -v %i/lib
install -m 644 -v libarpack.a %i/lib
ranlib %i/lib/libarpack.a
mv libarpack.dylib libarpack.0.dylib
install -m 644 -v libarpack.0.dylib %i/lib
pushd %i/lib
ln -s libarpack.0.dylib libarpack.dylib
popd
install -d -v %i/share
install -d -v %i/share/%n
cp -r -v EXAMPLES %i/share/%n
<<

DocFiles: DOCUMENTS
DescPackaging: <<
Borrowed liberally from Macports.

Needs a gfortran; I've arbitrarily chosen gcc46, as it's the
lowest-versioned one available on 10.7.

Needs -ff2c when using Accelerate.framework, but not when using
ATLAS.
<<
DescPort: <<
Dynamic library originally courtesy of Ben Abbot. I've tweaked it to
have a nonzero compatibility_version and current_version. Additional
tweaks thanks to J-F Mertens and Peter O'Gorman

Fortran files are built at -O0 to avoid runtime crashes--thanks to
Martin Costabel for bringing this up.
<<

Splitoff: <<
Package: %N-shlibs
Files: lib/lib%{Ni}.0.dylib
Shlibs: %p/lib/lib%{Ni}.0.dylib 1.1.0 %n (>=96patched-6)
Depends: <<
(%type_raw[-atlas] != .) atlas-shlibs,
gcc46-shlibs
<<
Conflicts: %{Ni}-shlibs, %{Ni}-atlas-shlibs
Replaces: %{Ni}-shlibs, %{Ni}-atlas-shlibs
DescDetail: <<
This package contains a dynamic library.
<<
DocFiles: DOCUMENTS/README
<<
<<

arpack stable port .patch

diff -Nurd ARPACK/ARmake.inc ARPACK.patched/ARmake.inc
--- ARPACK/ARmake.inc 1996-04-26 15:12:57.000000000 -0400
+++ ARPACK.patched/ARmake.inc 2011-09-15 11:32:22.000000000 -0400
@@ -34,6 +34,11 @@
#
PLAT = SUN4
#
+# The communication library ( need for parallel library only )
+# Current availible platforms are: BLACS or MPI
+#
+COMMLIB = MPI
+#
# %------------------------------------------------------%
# | The directories to find the various pieces of ARPACK |
# %------------------------------------------------------%
@@ -42,6 +47,8 @@
LAPACKdir = $(home)/LAPACK
UTILdir = $(home)/UTIL
SRCdir = $(home)/SRC
+PSRCdir = $(home)/PARPACK/SRC/$(COMMLIB)
+PUTILdir = $(home)/PARPACK/UTIL/$(COMMLIB)
#
DIRS = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
#
@@ -51,17 +58,22 @@
# | NOTE: ARPACK assumes the use of LAPACK version 2 codes. |
# %-------------------------------------------------------------------%
#
-#DIRS = $(UTILdir) $(SRCdir)
+DIRS = $(UTILdir) $(SRCdir)
#
# %---------------------------------------------------%
# | The name of the libraries to be created/linked to |
# %---------------------------------------------------%
#
-ARPACKLIB = $(home)/libarpack_$(PLAT).a
-LAPACKLIB =
-BLASLIB =
+ARPACKLIB = $(home)/libarpack.a
+ARPACKDYLIB = $(home)/libarpack.dylib
+PARPACKLIB = $(home)/libparpack.a
+LAPACKLIB = @LAPACKLIB@
+BLASLIB = @BLASLIB@
#
ALIBS = $(ARPACKLIB) $(LAPACKLIB) $(BLASLIB)
+MPILIBS =
+PLIBS = $(PARPACKLIB) $(ALIBS) $(MPILIBS)
+
#
#
# %---------------------------------------------------------%
@@ -91,9 +103,9 @@
# | Command to build .o files from .f files. |
# %-------------------------------------------%
#
-.f.o:
- @$(ECHO) Making $@ from $<
- @$(FC) -c $(FFLAGS) $<
+#.f.o:
+# @$(ECHO) Making $@ from $<
+# @$(FC) -c $(FFLAGS) $<
#
# %-----------------------------------------%
# | Various compilation programs and flags. |
@@ -101,10 +113,10 @@
# | for your system. |
# %-----------------------------------------%
#
-FC = f77
-FFLAGS = -O -cg89
+FC = FINKPREFIX/bin/gfortran-fsf-4.6
+FFLAGS = -O -fPIC -single_module @FF2C@

-LDFLAGS =
+LDFLAGS = @LDFLAGS@
CD = cd

ECHO = echo
@@ -112,7 +124,7 @@
LN = ln
LNFLAGS = -s

-MAKE = /bin/make
+MAKE = make

RM = rm
RMFLAGS = -f
diff -Nurd ARPACK/UTIL/second.f ARPACK.patched/UTIL/second.f
--- ARPACK/UTIL/second.f 1995-10-02 14:56:44.000000000 -0400
+++ ARPACK.patched/UTIL/second.f 2011-09-15 10:53:32.000000000 -0400
@@ -20,15 +20,15 @@
REAL TARRAY( 2 )
* ..
* .. External Functions ..
- REAL ETIME
- EXTERNAL ETIME
+* REAL ETIME
+* EXTERNAL ETIME
* ..
* .. Executable Statements ..
*

- T1 = ETIME( TARRAY )
- T = TARRAY( 1 )
-
+* T1 = ETIME( TARRAY )
+* T = TARRAY( 1 )
+ T = 1
RETURN
*
* End of SECOND
diff -Nurd ARPACK/Makefile ARPACK.patched/Makefile
--- ARPACK/Makefile 1996-09-24 10:55:31.000000000 -0400
+++ ARPACK.patched/Makefile 2011-09-15 10:53:32.000000000 -0400
@@ -64,6 +64,12 @@
done );
$(RANLIB) $(ARPACKLIB)

+arpackdylib: arpacklib tmp
+ ( cd tmp; ar -x $(ARPACKLIB) )
+ ( $(FC) $(FFLAGS) $(LDFLAGS) -dynamiclib -install_name FINKPREFIX/lib/libarpack.0.dylib -compatibility_version 1.1.0 -current_version 1.1.0 -o $(ARPACKDYLIB) @LAPACKLINK@ @BLASLINK@ -Wl,@LOAD@,$(ARPACKLIB) )
+
+tmp:
+ ( mkdir tmp )
cleantest:

cleanlib:

arpack _unstable_ port .patch