aboutsummaryrefslogtreecommitdiffstats
path: root/math
diff options
context:
space:
mode:
authornaddy <naddy@FreeBSD.org>2002-08-20 00:20:09 +0800
committernaddy <naddy@FreeBSD.org>2002-08-20 00:20:09 +0800
commitf6f7be684a87d549e3cdf5f88a5731c8693a3baa (patch)
tree7d28f3ab11416b8f6830a9f061be5cf60422f1ce /math
parent2a436b5bb7568b04e46c047da8b86dcd45672006 (diff)
downloadfreebsd-ports-graphics-f6f7be684a87d549e3cdf5f88a5731c8693a3baa.tar.gz
freebsd-ports-graphics-f6f7be684a87d549e3cdf5f88a5731c8693a3baa.tar.zst
freebsd-ports-graphics-f6f7be684a87d549e3cdf5f88a5731c8693a3baa.zip
Fix build on alpha.
PR: 41770 Submitted by: Nakata Maho <chat95@mbox.kyoto-inet.or.jp>
Diffstat (limited to 'math')
-rw-r--r--math/atlas/Makefile15
-rw-r--r--math/atlas/files/alpha-patch9
-rw-r--r--math/atlas/files/patch-aa33
-rw-r--r--math/atlas/pkg-descr11
4 files changed, 56 insertions, 12 deletions
diff --git a/math/atlas/Makefile b/math/atlas/Makefile
index e95f2d0e45a..52b1966f6ff 100644
--- a/math/atlas/Makefile
+++ b/math/atlas/Makefile
@@ -5,6 +5,9 @@
# $FreeBSD$
#
+# NOTE: This port purposely ignores the CC and CFLAGS settings.
+# Program and compiler flags are finetuned to gcc 2.95/3.1.
+
PORTNAME= atlas
PORTVERSION= 3.4.1
PORTREVISION= 1
@@ -20,6 +23,11 @@ LIB_DEPENDS= lapack:${PORTSDIR}/math/lapack
USE_BZIP2= yes
WRKSRC= ${WRKDIR}/ATLAS
INSTALLS_SHLIB= yes
+USE_REINPLACE= yes
+
+.if (${MACHINE_ARCH} == "alpha")
+USE_GCC= 3.1
+.endif
do-configure:
.if defined(BATCH) || defined(PACKAGE_BUILDING)
@@ -27,9 +35,16 @@ do-configure:
.else
@(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} config)
.endif
+.if (${MACHINE_ARCH} == "alpha")
+ @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/alpha-patch)
+.endif
do-build:
+.if (${MACHINE_ARCH} == "alpha") || defined(USE_GCC)
+ @${REINPLACE_CMD} -e 's|/usr/bin/gcc|${CC}|g;' ${WRKSRC}/Make.`cat ${WRKSRC}/ARCHNAME`
+.endif
(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=`cat ${WRKSRC}/ARCHNAME`)
+ (cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} sanity_test arch=`cat ${WRKSRC}/ARCHNAME`)
(cd ${WRKSRC}; ${MKDIR} tmp ; \
${CP} ${LOCALBASE}/lib/liblapack.a tmp ;\
cd tmp ;\
diff --git a/math/atlas/files/alpha-patch b/math/atlas/files/alpha-patch
new file mode 100644
index 00000000000..564198d5be9
--- /dev/null
+++ b/math/atlas/files/alpha-patch
@@ -0,0 +1,9 @@
+--- src/blas/gemm/GOTO/ATLU_usergemm.c~ Mon Jun 17 10:38:22 2002
++++ src/blas/gemm/GOTO/ATLU_usergemm.c Sun Aug 18 10:41:19 2002
+@@ -1,5 +1,5 @@
+ #include "atlas_misc.h"
+-#include <sys/mman.h>
++/*#include <sys/mman.h>*/
+
+ #ifdef EV6
+ #ifdef ATL_OS_OSF1
diff --git a/math/atlas/files/patch-aa b/math/atlas/files/patch-aa
index 3787b5f644b..9946706d23a 100644
--- a/math/atlas/files/patch-aa
+++ b/math/atlas/files/patch-aa
@@ -1,6 +1,26 @@
---- config.c.orig Mon Jun 17 09:37:24 2002
-+++ config.c Mon Jul 15 18:39:46 2002
-@@ -2049,12 +2049,14 @@
+--- config.c.orig Mon Jun 17 10:37:24 2002
++++ config.c Sun Aug 18 03:11:24 2002
+@@ -692,7 +692,7 @@
+ else if (mach == IA64Itan || MachIsUS(mach) ||
+ mach == Dec21164 || mach == Dec21264)
+ {
+- if (major == 3)
++ if ((major == 2 && minor < 96) || (major == 3)) /* Nasty hack for FreeBSD/Alpha STABLE */
+ {
+ strcpy(goodgcc, files[i]);
+ return(0);
+@@ -2040,7 +2040,10 @@
+ if (!CmndOneLine(targ, "sysctl hw.model", ln))
+ {
+ if (strstr(ln, "433au")) mach = Dec21164;
++ else if (strstr(ln, "500au")) mach = Dec21164;
++ else if (strstr(ln, "AlphaPC 164")) mach = Dec21164;
+ else if (strstr(ln, "XP1000")) mach = Dec21264;
++ else mach = Dec21264;
+ }
+ break;
+ case LAIA64: /* don't know */
+@@ -2049,12 +2052,14 @@
if (!CmndOneLine(targ, "sysctl hw.model", ln))
{
if (strstr(ln, "Pentium Pro")) mach = IntPPRO;
@@ -10,12 +30,13 @@
else if (strstr(ln, "Athlon")) mach = AmdAthlon;
else if (strstr(ln, "AMD-K7")) mach = AmdAthlon;
else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX; /* sent by */
- else if (strstr(ln, "Pentium")) mach=IntP5; /* Nakata Maho */
-+ else mach=IntP5;
+- else if (strstr(ln, "Pentium")) mach=IntP5; /* Nakata Maho */
++ else if (strstr(ln, "Pentium")) mach = IntP5; /* Nakata Maho */
++ else mach = IntP5;
}
break;
default:;
-@@ -3024,6 +3026,9 @@
+@@ -3024,6 +3029,9 @@
}
if (USEWINF77) strcpy(F77, "$(BINdir)/winf77.exe");
diff --git a/math/atlas/pkg-descr b/math/atlas/pkg-descr
index 1057e8d2f0a..ddb171ecf5b 100644
--- a/math/atlas/pkg-descr
+++ b/math/atlas/pkg-descr
@@ -11,14 +11,13 @@ TO ENABLE SSE1/SSE2 SUPPORT BEFORE MAKING ATLAS!
IT SIGNIFICANTLY IMPROVES PERFORMANCE.
If you use blas, you can simply change flags when linking,
-from -lblas to -lf77blas -latlas (order is important)
-get a significantly performance increase.
+from -lblas to -lf77blas -latlas (order is important).
A few routines from LAPACK are merged into one library as libalapack.
It requres both C and Fortran77 interfaces, and thus that link line would be:
--lalapack -lf77blas -lcblas -latlas -lg2c -lm
-Order *is* important, so -latlas -lcblas will *not* work.
+-lalapack -lf77blas -lcblas -latlas -lg2c -lm .
+
+Other choice of CC and CFLAGS are *NOT* recommended.
+They are already optimized for this platform and automatically searched.
WWW: http://math-atlas.sourceforge.net/
-- NAKATA, Maho
- E-mail: chat95@mbox.kyoto-inet.or.jp