diff --git a/math/atlas/Makefile b/math/atlas/Makefile index e95f2d0e45a9..52b1966f6ffc 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 000000000000..564198d5be91 --- /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 ++/*#include */ + + #ifdef EV6 + #ifdef ATL_OS_OSF1 diff --git a/math/atlas/files/patch-aa b/math/atlas/files/patch-aa index 3787b5f644b8..9946706d23a8 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 1057e8d2f0ac..ddb171ecf5b3 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