aboutsummaryrefslogtreecommitdiffstats
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/atlas/Makefile159
-rw-r--r--math/atlas/distinfo3
-rw-r--r--math/atlas/files/answer10
-rw-r--r--math/atlas/files/non-thread-patch18
-rw-r--r--math/atlas/files/patch-config.c139
-rw-r--r--math/atlas/files/thread-patch19
-rw-r--r--math/atlas/pkg-message8
7 files changed, 222 insertions, 134 deletions
diff --git a/math/atlas/Makefile b/math/atlas/Makefile
index 3d35f739ee52..07179df4cd19 100644
--- a/math/atlas/Makefile
+++ b/math/atlas/Makefile
@@ -6,10 +6,10 @@
#
# NOTE: This port purposely ignores the CC and CFLAGS settings.
-# Program and compiler flags are finetuned to gcc 2.95/3.1.
+# Program and compiler flags are finetuned to gcc.
PORTNAME= atlas
-PORTVERSION= 3.5.5
+PORTVERSION= 3.6.0
PORTEPOCH= 1
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
@@ -19,18 +19,29 @@ DISTNAME= ${PORTNAME}${PORTVERSION}
MAINTAINER= maho@FreeBSD.org
COMMENT= Automatically Tuned Linear Algebra Software (ATLAS)
-BUILD_DEPENDS= ${LOCALBASE}/lib/liblapack.a:${PORTSDIR}/math/lapack
-
USE_BZIP2= yes
WRKSRC= ${WRKDIR}/ATLAS
INSTALLS_SHLIB= yes
USE_REINPLACE= yes
-.if (${MACHINE_ARCH} == "alpha")
-USE_GCC= 3.1
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 501000 && ${MACHINE_ARCH} == "alpha"
+USE_GCC=3.3
+.endif
+
+# only affects for lapack sub project
+.if defined(WITH_OPTIMIZED_FLAGS)
+FFLAGS+= -pipe -O3 -ffast-math -finline-functions -fstrength-reduce -funroll-loops -fexpensive-optimizations
+.if (${MACHINE_ARCH} == "i386" && !${MACHINE_ARCH} == "amd64" )
+FFLAGS+= -mfancy-math-387 -mpreferred-stack-boundary=3 -malign-double
+.endif # i386
.endif
post-patch:
+.if !defined(WITH_OPTIMIZED_FLAGS)
+ @${ECHO_CMD} "You can optimize lapack sub project by setting WITH_OPTIMIZED_FLAGS=yes."
+.endif
@${REINPLACE_CMD} -e 's+%%PTHREAD_CFLAGS%%+ ${PTHREAD_CFLAGS}+' \
${WRKSRC}/config.c
@${REINPLACE_CMD} -e 's+%%PTHREAD_LIBS%%+ ${PTHREAD_LIBS}+' \
@@ -39,68 +50,120 @@ post-patch:
@(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/alpha-patch)
.endif
-do-configure:
- @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/non-thread-patch)
- @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} config < ${FILESDIR}/answer)
- @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/thread-patch)
- @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} config < ${FILESDIR}/answer)
-
-NON_THREADED_ATLAS=`cat ${WRKSRC}/ARCHNAME-NON-THREADED`
-THREADED_ATLAS=`cat ${WRKSRC}/ARCHNAME-THREADED`
-ATLAS_LIBS1=libatlas libcblas libf77blas libtstatlas libalapack
-ATLAS_LIBS2=libptcblas libptf77blas
+.if !defined(PICFLAG)
+.if ${MACHINE_ARCH} == "sparc64"
+PICFLAG=-fPIC
+.else
+PICFLAG=-fpic
+.endif
+.endif
+
+ANSWER_i386?= ${PRINTF} "\n\n\n\n\n\n\n\n\n\n"
+ANSWER_ia64?= ${PRINTF} "\n\n\n2\n\n\n\n\nf77\n-O2 -static\n\n"
-post-configure:
-.if (${MACHINE_ARCH} == "alpha") || defined(USE_GCC)
- @${REINPLACE_CMD} -e 's|/usr/bin/gcc|${CC}|g;' ${WRKSRC}/Make.${NON_THREADED_ATLAS}
- @${REINPLACE_CMD} -e 's|/usr/bin/gcc|${CC}|g;' ${WRKSRC}/Make.${THREADED_ATLAS}
+.if !defined(ANSWER_${ARCH})
+ANSWER= ${ANSWER_i386}
+.else
+ANSWER= ${ANSWER_${ARCH}}
.endif
+do-configure:
+ @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} xconfig && \
+ ${ANSWER} | ./xconfig -N 1 -c ${CC} -f ${FC} -a NON_THREADED && \
+ ${ANSWER} | ./xconfig -N 1 -c ${CC} -f ${FC} -a NON_THREADED_PIC \
+ -F c '${PICFLAG} -DPIC' -F f '${PICFLAG} -DPIC' \
+ -F m '${PICFLAG} -DPIC' -F x '${PICFLAG} -DPIC')
+ @(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/thread-patch && \
+ ${MAKE_ENV} ${MAKE} xconfig && \
+ ${ANSWER} | ./xconfig -c ${CC} -f ${FC} -a THREADED && \
+ ${ANSWER} | ./xconfig -c ${CC} -f ${FC} -a THREADED_PIC \
+ -F c '${PICFLAG} -DPIC' -F f '${PICFLAG} -DPIC' \
+ -F m '${PICFLAG} -DPIC' -F x '${PICFLAG} -DPIC' )
+
+ATLAS_LIBS1=libalapack libatlas libcblas libf77blas libtstatlas
+ATLAS_LIBS2=libptcblas libptf77blas
+
do-build:
-# non thread version
- (cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=${NON_THREADED_ATLAS})
-# (cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} sanity_test arch=${NON_THREADED_ATLAS})
- (cd ${WRKSRC}; ${MKDIR} tmp ; \
- ${CP} ${LOCALBASE}/lib/liblapack.a tmp ;\
- cd tmp ;\
+# make lapack
+.if ! exists(${WRKDIR}/lapack/Makefile)
+ @${ECHO_MSG} "===> Extracting lapack sub project"
+ @${MKDIR} ${WRKDIR}/lapack
+ @${CP} -r ${PORTSDIR}/math/lapack/files ${WRKDIR}/lapack
+ @${CP} -r ${PORTSDIR}/math/lapack/scripts ${WRKDIR}/lapack
+ @${CP} ${PORTSDIR}/math/lapack/Makefile ${WRKDIR}/lapack
+ @${CP} ${PORTSDIR}/math/lapack/distinfo ${WRKDIR}/lapack
+ @${CP} ${PORTSDIR}/math/lapack/pkg-descr ${WRKDIR}/lapack
+ @cd ${WRKDIR}/lapack ; ${MAKE} "FFLAGS=${FFLAGS}" FC="${FC}" build WRKDIRPREFIX=""
+.endif
+ @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=NON_THREADED)
+ @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=NON_THREADED_PIC)
+ @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=THREADED)
+ @(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=THREADED_PIC)
+# make atlas enhanced lapack (static ver)
+ (cd ${WRKSRC}; ${MKDIR} tmp1 ; \
+ ${CP} ${WRKDIR}/lapack/work/LAPACK/SRC/liblapack.a tmp1 ;\
+ cd tmp1 ;\
ar x liblapack.a ;\
- ar x ../lib/${NON_THREADED_ATLAS}/liblapack.a ;\
- ar r ../lib/${NON_THREADED_ATLAS}/libalapack.a *.o ;\
- ranlib ../lib/${NON_THREADED_ATLAS}/libalapack.a )
+ ar x ../lib/NON_THREADED/liblapack.a ;\
+ ar r ../lib/NON_THREADED/libalapack.a *.o ;\
+ ranlib ../lib/NON_THREADED/libalapack.a )
+# make atlas enhanced lapack (static and thread safe ver)
+ (cd ${WRKSRC}; ${MKDIR} tmp2 ; \
+ ${CP} ${WRKDIR}/lapack/work/LAPACK/SRC/liblapack.a tmp2 ;\
+ cd tmp2 ;\
+ ar x liblapack.a ;\
+ ar x ../lib/THREADED/liblapack.a ;\
+ ar r ../lib/THREADED/libalapack.a *.o ;\
+ ranlib ../lib/THREADED/libalapack.a )
+# make atlas enhanced lapack (shared ver)
+ ( cd ${WRKSRC}; ${MKDIR} tmp3 ;\
+ ${TAR} --exclude "*.f" --exclude "*.po" --exclude "*.o" -cf - -C ${WRKDIR}/lapack/work/LAPACK/SRC . | ${TAR} xf - -C tmp3 ;\
+ for object in `${FIND} tmp3 -name "*.So"` ; do \
+ n=`${ECHO_CMD} $${object}|${SED} -e 's#.So##'` ; \
+ ${MV} $$n.So $$n.o ; \
+ done ; \
+ cd tmp3 ;\
+ ar x ../lib/NON_THREADED_PIC/liblapack.a ;\
+ ar r ../lib/NON_THREADED_PIC/libalapack.a *.o ;\
+ ranlib ../lib/NON_THREADED_PIC/libalapack.a )
+# make atlas enhanced lapack (shared and thread safe ver)
+ ( cd ${WRKSRC}; ${MKDIR} tmp4 ;\
+ ${TAR} --exclude "*.f" --exclude "*.po" --exclude "*.o" -cf - -C ${WRKDIR}/lapack/work/LAPACK/SRC . | ${TAR} xf - -C tmp4 ;\
+ for object in `${FIND} tmp4 -name "*.So"` ; do \
+ n=`${ECHO_CMD} $${object}|${SED} -e 's#.So##'` ; \
+ ${MV} $$n.So $$n.o ; \
+ done ; \
+ cd tmp4 ;\
+ ar x ../lib/THREADED_PIC/liblapack.a ;\
+ ar r ../lib/THREADED_PIC/libalapack.a *.o ;\
+ ranlib ../lib/THREADED_PIC/libalapack.a )
+
+# make atlas shared library
.for i in ${ATLAS_LIBS1}
- ( cd ${WRKSRC}/lib/${NON_THREADED_ATLAS}/ ; \
+ ( cd ${WRKSRC}/lib/NON_THREADED_PIC/ ; \
ld -Bshareable -o ${i}.so.1 -x -soname ${i}.so.1 --whole-archive ${i}.a )
.endfor
-# thread version
- (cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=${THREADED_ATLAS})
-# (cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} sanity_test arch=${THREADED_ATLAS})
- (cd ${WRKSRC}; ${MKDIR} tmp2 ; \
- ${CP} ${LOCALBASE}/lib/liblapack.a tmp2 ;\
- cd tmp2 ;\
- ar x liblapack.a ;\
- ar x ../lib/${THREADED_ATLAS}/liblapack.a ;\
- ar r ../lib/${THREADED_ATLAS}/libalapack.a *.o ;\
- ranlib ../lib/${THREADED_ATLAS}/libalapack.a )
+# make atlas shared (thread safe) library
.for i in ${ATLAS_LIBS1} ${ATLAS_LIBS2}
- ( cd ${WRKSRC}/lib/${THREADED_ATLAS}/ ; \
+ ( cd ${WRKSRC}/lib/THREADED_PIC/ ; \
ld -Bshareable -o ${i}.so.1 -x -soname ${i}.so.1 --whole-archive ${i}.a )
.endfor
do-install:
.for i in ${ATLAS_LIBS1}
- @${INSTALL_DATA} ${WRKSRC}/lib/${NON_THREADED_ATLAS}/${i}.a ${PREFIX}/lib
- @${INSTALL_DATA} ${WRKSRC}/lib/${NON_THREADED_ATLAS}/${i}.so.1 ${PREFIX}/lib
+ @${INSTALL_DATA} ${WRKSRC}/lib/NON_THREADED/${i}.a ${PREFIX}/lib
+ @${INSTALL_DATA} ${WRKSRC}/lib/NON_THREADED_PIC/${i}.so.1 ${PREFIX}/lib
@${LN} -sf ${i}.so.1 ${PREFIX}/lib/${i}.so
.endfor
.for i in ${ATLAS_LIBS1}
- @${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${i}.a ${PREFIX}/lib/${i}_r.a
- @${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${i}.so.1 ${PREFIX}/lib/${i}_r.so.1
+ @${INSTALL_DATA} ${WRKSRC}/lib/THREADED/${i}.a ${PREFIX}/lib/${i}_r.a
+ @${INSTALL_DATA} ${WRKSRC}/lib/THREADED_PIC/${i}.so.1 ${PREFIX}/lib/${i}_r.so.1
@${LN} -sf ${i}_r.so.1 ${PREFIX}/lib/${i}_r.so
.endfor
.for i in ${ATLAS_LIBS2}
- @${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${i}.a ${PREFIX}/lib
- @${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${i}.so.1 ${PREFIX}/lib
+ @${INSTALL_DATA} ${WRKSRC}/lib/THREADED/${i}.a ${PREFIX}/lib
+ @${INSTALL_DATA} ${WRKSRC}/lib/THREADED_PIC/${i}.so.1 ${PREFIX}/lib
@${LN} -sf ${i}.so.1 ${PREFIX}/lib/${i}.so
.endfor
@${INSTALL_DATA} ${WRKSRC}/include/cblas.h ${PREFIX}/include
@@ -112,4 +175,4 @@ do-install:
${INSTALL_DATA} ${WRKSRC}/doc/* ${DOCSDIR}
.endif
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/math/atlas/distinfo b/math/atlas/distinfo
index 4adfd20da39a..f9adc68c84ee 100644
--- a/math/atlas/distinfo
+++ b/math/atlas/distinfo
@@ -1 +1,2 @@
-MD5 (atlas3.5.5.tar.bz2) = d4acbc5e79cde224d60fa452f741c686
+MD5 (atlas3.6.0.tar.bz2) = df2ee2eb65d1c08ee93d04370172c262
+SIZE (atlas3.6.0.tar.bz2) = 1687723
diff --git a/math/atlas/files/answer b/math/atlas/files/answer
deleted file mode 100644
index 584ba8795fb2..000000000000
--- a/math/atlas/files/answer
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/math/atlas/files/non-thread-patch b/math/atlas/files/non-thread-patch
deleted file mode 100644
index 69c632a45b6a..000000000000
--- a/math/atlas/files/non-thread-patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- config.c.orig Tue Jul 1 12:32:49 2003
-+++ config.c Tue Jul 1 12:35:09 2003
-@@ -2737,6 +2737,7 @@
- Use3DNow = IsYes('n', " ", "Use 3DNow! for computation?");
- }
- ncpu = ProbeNCPU(OS, mach, targ, TOPdir);
-+ ncpu = 1; // force non-threading
- if (ncpu != 1) /* user may want to thread */
- {
- DisplayFile("CONFIG/pthread.txt", stdout, NLINES);
-@@ -3154,6 +3155,7 @@
- }
- if (USEWINF77) strcpy(F77, "$(BINdir)/winf77.exe");
-
-+ fpout = fopen("ARCHNAME-NON-THREADED", "w");
- fprintf(fpout, "%s", ARCH);
- fclose(fpout);
- ATL_mprintf(2, fplog, stdout,"\nCreating make include file Make.%s\n", ARCH);
diff --git a/math/atlas/files/patch-config.c b/math/atlas/files/patch-config.c
index c3bb42b8a882..960597aaca53 100644
--- a/math/atlas/files/patch-config.c
+++ b/math/atlas/files/patch-config.c
@@ -1,15 +1,6 @@
---- config.c.orig Mon Jun 23 07:58:35 2003
-+++ config.c Tue Jul 1 12:32:49 2003
-@@ -708,7 +708,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);
-@@ -1114,7 +1114,9 @@
+--- config.c.org Tue Jan 20 22:32:38 2004
++++ config.c Tue Jan 20 22:32:54 2004
+@@ -1188,7 +1188,9 @@
switch(OS)
{
case OSOSX: /* don't know answer */
@@ -20,19 +11,51 @@
case OSLinux:
break;
case OSSunOS:
-@@ -1252,6 +1254,11 @@
- "-mcpu=ultrasparc -mtune=ultrasparc -fomit-frame-pointer -O3");
+@@ -1450,9 +1452,9 @@
+ if (THREADS && OS == OSFreeBSD)
+ {
+ if (which == CPF77)
+- strcat(flag, " -pthread");
++ strcat(flag, " %%PTHREAD_LIBS%%");
+ else
+- strcat(flag, " -pthread -D_REENTRANT -D_THREAD_SAFE");
++ strcat(flag, " %%PTHREAD_LIBS%% %%PTHREAD_CFLAGS%%");
+ }
+ break;
+ case OSSunOS4:
+@@ -1984,8 +1986,8 @@
+ if (OS == OSFreeBSD)
+ {
+ if (strstr(comp, "cc"))
+- strcat(flag, " -pthread -D_REENTRANT -D_THREAD_SAFE");
+- else strcat(flag, " -pthread");
++ strcat(flag, " %%PTHREAD_LIBS%% %%PTHREAD_CFLAGS%%");
++ else strcat(flag, " %%PTHREAD_LIBS%%");
}
- if (OS == OSFreeBSD && F77) strcpy(F77, "f77");
-+ if (OS == OSFreeBSD && THREADS) {
-+ strcat(F77FLAGS, "%%PTHREAD_CFLAGS%%");
-+ strcat(CCFLAGS, "%%PTHREAD_CFLAGS%%");
-+ strcat(MMFLAGS, "%%PTHREAD_CFLAGS%%");
-+ }
- break;
- case OSSunOS:
- np = 3;
-@@ -2116,7 +2123,10 @@
+ }
+ return(*comp ? comp : NULL);
+@@ -2801,7 +2801,7 @@
+ else if (strstr(ln, "ia64")) la = LAIA64;
+ else if ( strstr(ln, "i686") || strstr(ln, "i586") ||
+ strstr(ln, "i486") || strstr(ln, "i386") ||
+- strstr(ln, "x86_64") ) la = LAX86;
++ strstr(ln, "x86_64") || strstr(ln, "amd64") ) la = LAX86;
+ }
+ return(la);
+ }
+@@ -2835,12 +2837,22 @@
+ }
+ break;
+ case LASPARC: /* don't know */
++ if (!CmndOneLine(targ, "sysctl hw.model", ln))
++ {
++ if (strstr(ln, "UltraSparc-II")) mach = SunUS2;
++ if (strstr(ln, "UltraSparc-I")) mach = SunUS1;
++ if (strstr(ln, "UltraSparc")) mach = SunUSX;
++ else mach = SunUSX;
++ }
+ break;
+ case LAALPHA:
if (!CmndOneLine(targ, "sysctl hw.model", ln))
{
if (strstr(ln, "433au")) mach = Dec21164;
@@ -43,35 +66,73 @@
}
break;
case LAIA64: /* don't know */
-@@ -2125,14 +2135,22 @@
+@@ -2849,14 +2861,32 @@
if (!CmndOneLine(targ, "sysctl hw.model", ln))
{
if (strstr(ln, "Pentium Pro")) mach = IntPPRO;
+ else if (strstr(ln, "Pentium(R) Pro")) mach = IntPPRO;
+ else if (strstr(ln, "Pentium 4")) mach = IntP4;
-+ else if (strstr(ln, "Pentium(R) 4")) mach = IntP4;
++ else if (strstr(ln, "Pentium(R) 4")) mach = IntP4;
++ else if (strstr(ln, "Pentium(R) M")) mach = IntP4;
else if (strstr(ln, "Pentium III")) mach = IntPIII;
+- else if (strstr(ln, "Pentium II ")) mach = IntPII;
++ else if (strstr(ln, "Pentium III/Pentium III")) mach = IntPIII;
+ else if (strstr(ln, "Pentium(R) III")) mach = IntPIII;
- else if (strstr(ln, "Pentium II ")) mach = IntPII;
++ else if (strstr(ln, "Pentium II")) mach = IntPII;
++ else if (strstr(ln, "Pentium II/PentiumII")) mach = IntPII;
+ else if (strstr(ln, "Pentium(R) II ")) mach = IntPII;
+ else if (strstr(ln, "Celeron")) mach = IntPII;
+ else if (strstr(ln, "Celeron(R)")) mach = IntPII;
++ else if (strstr(ln, "Opteron(tm)") && sizeof(void *)==4) mach = AmdHammer32;
++ else if (strstr(ln, "Opteron(tm)") && sizeof(void *)==8) mach = AmdHammer64;
++ else if (strstr(ln, "AMD Athlon(tm) 64") && sizeof(void *)==4) mach = AmdHammer32;
++ else if (strstr(ln, "AMD Athlon(tm) 64") && sizeof(void *)==8) mach = AmdHammer64;
++ else if (strstr(ln, "Athlon(tm)")) mach = AmdAthlon;
else if (strstr(ln, "Athlon")) mach = AmdAthlon;
else if (strstr(ln, "AMD-K7")) mach = AmdAthlon;
- else if (strstr(ln, "32 bit Hammer")) mach = AmdHammer32;
- else if (strstr(ln, "64 bit Hammer")) mach = AmdHammer64;
- else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX; /* sent by */
- else if (strstr(ln, "Pentium")) mach=IntP5; /* Nakata Maho */
+- else if (strstr(ln, "32 bit Hammer")) mach = AmdHammer32;
+- else if (strstr(ln, "64 bit Hammer")) mach = AmdHammer64;
+- else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX; /* sent by */
+- else if (strstr(ln, "Pentium")) mach=IntP5; /* Nakata Maho */
++ else if (strstr(ln, "AMD-K6(tm)")) mach = IntP5MMX;
++ else if (strstr(ln, "Pentium/P55C")) mach = IntP5MMX;
++ else if (strstr(ln, "Pentium/P54C")) mach=IntP5;
++ else if (strstr(ln, "Pentium")) mach=IntP5;
++ else if (strstr(ln, "VIA")) mach=IntP5MMX;
++ else if (strstr(ln, "Crusoe(tm)")) mach=IntP5MMX;
+ else mach = IntP5;
}
break;
default:;
-@@ -3136,6 +3154,8 @@
+@@ -3641,8 +3671,8 @@
+ }
+ if (THREADS) /* add ncpu to ARCH */
+ {
+- for (i=0; ARCH[i]; i++);
+- sprintf(ARCH+i, "_%d", ncpu);
++// for (i=0; ARCH[i]; i++); // do not add number of cpu for ARCHNAME
++// sprintf(ARCH+i, "_%d", ncpu); // #cpu can be different in general
+ }
+ do
+ {
+@@ -4047,9 +4077,9 @@
+ if (mach == IA64Itan || mach == IA64Itan2 )
+ fprintf(fpout, " -DATL_MAXNREG=128");
+ if (ASMD != ASM_None) fprintf(fpout, " -DATL_%s", ASMNAM[ASMD]);
+- if (mach == AmdHammer32 && (OS != OSWinNT && OS != OSWin9x))
++ if (mach == AmdHammer32 && (OS != OSWinNT && OS != OSWin9x && OS != OSFreeBSD))
+ fprintf(fpout, " -m32");
+- else if (mach == AmdHammer64) fprintf(fpout, " -m64");
++ else if (mach == AmdHammer64 && (OS != OSFreeBSD)) fprintf(fpout, " -m64");
+ if (mach == IA64Itan2 && strstr(CC, "icc"))
+ fprintf(fpout, " -DATL_IntelIccBugs");
+ fprintf(fpout, "\n\n");
+@@ -4080,7 +4095,7 @@
+ if (THREADS)
+ {
+ fprintf(fpout, " -DATL_NCPU=%d", ncpu);
+- if (OS == OSFreeBSD) fprintf(fpout, " -D_THREAD_SAFE -D_REENTRANT");
++ if (OS == OSFreeBSD) fprintf(fpout, " %%PTHREAD_CFLAGS%%");
+ if (OS == OSAIX) fprintf(fpout, " -DIBM_PT_ERROR");
+ if (OS == OSIRIX) fprintf(fpout, " -D_POSIX_C_SOURCE=199506L");
}
- if (USEWINF77) strcpy(F77, "$(BINdir)/winf77.exe");
-
-+ fprintf(fpout, "%s", ARCH);
-+ fclose(fpout);
- ATL_mprintf(2, fplog, stdout,"\nCreating make include file Make.%s\n", ARCH);
- sprintf(ln, "Make.%s", ARCH);
- fpout = fopen(ln, "w");
diff --git a/math/atlas/files/thread-patch b/math/atlas/files/thread-patch
index 4d1a00c71f47..5d6521809593 100644
--- a/math/atlas/files/thread-patch
+++ b/math/atlas/files/thread-patch
@@ -5,24 +5,7 @@
enum USERGEMM {UG_None=0, UG_GOTO};
-int XCOMP=0, THREADS=0, USEWINF77=0, NLINES=0, ISWIN=0;
-+int XCOMP=0, THREADS=1, USEWINF77=0, NLINES=0, ISWIN=0; // force threading
++int XCOMP=0, THREADS=1, USEWINF77=0, NLINES=0, ISWIN=0; // force threading for single processor
char TARGNAM[512];
enum MACHTYPE mach=MACHOther;
-@@ -2737,7 +2737,6 @@
- Use3DNow = IsYes('n', " ", "Use 3DNow! for computation?");
- }
- ncpu = ProbeNCPU(OS, mach, targ, TOPdir);
-- ncpu = 1; // force non-threading
- if (ncpu != 1) /* user may want to thread */
- {
- DisplayFile("CONFIG/pthread.txt", stdout, NLINES);
-@@ -3155,7 +3154,7 @@
- }
- if (USEWINF77) strcpy(F77, "$(BINdir)/winf77.exe");
-
-- fpout = fopen("ARCHNAME-NON-THREADED", "w");
-+ fpout = fopen("ARCHNAME-THREADED", "w");
- fprintf(fpout, "%s", ARCH);
- fclose(fpout);
- ATL_mprintf(2, fplog, stdout,"\nCreating make include file Make.%s\n", ARCH);
diff --git a/math/atlas/pkg-message b/math/atlas/pkg-message
new file mode 100644
index 000000000000..3ec289495210
--- /dev/null
+++ b/math/atlas/pkg-message
@@ -0,0 +1,8 @@
+-------------------------------------------------
+This software determines and detects
+appropreate parameters and hardware setting
+(e.g., SSE/SSE2/3DNow etc) while compilation.
+
+The author of this port *strongly* urge you to
+make atlas by yourself.
+-------------------------------------------------