mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
build both threaded/non-threaded libraries
which introduced some kludge... Reported by: kris (broken on bento for lapack++) Suggestion from: "Pedro F. Giffuni" <giffunip@yahoo.com>
This commit is contained in:
parent
2e8cdd9861
commit
28dd30949a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=84079
5 changed files with 120 additions and 36 deletions
|
@ -10,6 +10,7 @@
|
|||
|
||||
PORTNAME= atlas
|
||||
PORTVERSION= 3.5.5
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= math
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
|
||||
MASTER_SITE_SUBDIR= math-atlas
|
||||
|
@ -34,44 +35,72 @@ post-patch:
|
|||
${WRKSRC}/config.c
|
||||
@${REINPLACE_CMD} -e 's+%%PTHREAD_LIBS%%+ ${PTHREAD_LIBS}+' \
|
||||
${WRKSRC}/config.c
|
||||
.if !defined(USE_THREADS)
|
||||
@${ECHO_MSG} "make USE_THREADS=yes for force to make threaded version"
|
||||
.else
|
||||
@(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/thread-patch)
|
||||
.endif
|
||||
|
||||
do-configure:
|
||||
.if defined(BATCH) || defined(PACKAGE_BUILDING)
|
||||
@(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} config < ${FILESDIR}/answer)
|
||||
.else
|
||||
@(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} config)
|
||||
.endif
|
||||
.if (${MACHINE_ARCH} == "alpha")
|
||||
@(cd ${WRKSRC}; ${PATCH} < ${FILESDIR}/alpha-patch)
|
||||
.endif
|
||||
|
||||
do-build:
|
||||
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
|
||||
|
||||
post-configure:
|
||||
.if (${MACHINE_ARCH} == "alpha") || defined(USE_GCC)
|
||||
@${REINPLACE_CMD} -e 's|/usr/bin/gcc|${CC}|g;' ${WRKSRC}/Make.`cat ${WRKSRC}/ARCHNAME`
|
||||
@${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}
|
||||
.endif
|
||||
(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} install arch=`cat ${WRKSRC}/ARCHNAME`)
|
||||
(cd ${WRKSRC}; ${MAKE_ENV} ${MAKE} sanity_test arch=`cat ${WRKSRC}/ARCHNAME`)
|
||||
|
||||
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 ;\
|
||||
ar x liblapack.a ;\
|
||||
ar x ../lib/`cat ${WRKSRC}/ARCHNAME`/liblapack.a ;\
|
||||
ar r ../lib/`cat ${WRKSRC}/ARCHNAME`/libalapack.a *.o ;\
|
||||
ranlib ../lib/`cat ${WRKSRC}/ARCHNAME`/libalapack.a )
|
||||
.for i in libatlas libcblas libf77blas libtstatlas libalapack
|
||||
( cd ${WRKSRC}/lib/`cat ${WRKSRC}/ARCHNAME`/ ; \
|
||||
ar x ../lib/${NON_THREADED_ATLAS}/liblapack.a ;\
|
||||
ar r ../lib/${NON_THREADED_ATLAS}/libalapack.a *.o ;\
|
||||
ranlib ../lib/${NON_THREADED_ATLAS}/libalapack.a )
|
||||
.for i in ${ATLAS_LIBS1}
|
||||
( cd ${WRKSRC}/lib/${NON_THREADED_ATLAS}/ ; \
|
||||
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 )
|
||||
.for i in ${ATLAS_LIBS1} ${ATLAS_LIBS2}
|
||||
( cd ${WRKSRC}/lib/${THREADED_ATLAS}/ ; \
|
||||
ld -Bshareable -o ${i}.so.1 -x -soname ${i}.so.1 --whole-archive ${i}.a )
|
||||
.endfor
|
||||
|
||||
do-install:
|
||||
.for i in libatlas libcblas libf77blas libtstatlas libalapack
|
||||
@${INSTALL_DATA} ${WRKSRC}/lib/`cat ${WRKSRC}/ARCHNAME`/${i}.a ${PREFIX}/lib
|
||||
@${INSTALL_DATA} ${WRKSRC}/lib/`cat ${WRKSRC}/ARCHNAME`/${i}.so.1 ${PREFIX}/lib
|
||||
.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
|
||||
@${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}thr.a
|
||||
@${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${i}.so.1 ${PREFIX}/lib/${i}thr.so.1
|
||||
@${LN} -sf ${i}thr.so.1 ${PREFIX}/lib/${i}thr.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
|
||||
@${LN} -sf ${i}.so.1 ${PREFIX}/lib/${i}.so
|
||||
.endfor
|
||||
@${INSTALL_DATA} ${WRKSRC}/include/cblas.h ${PREFIX}/include
|
||||
|
|
18
math/atlas/files/non-thread-patch
Normal file
18
math/atlas/files/non-thread-patch
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- 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);
|
|
@ -1,5 +1,5 @@
|
|||
--- config.c.orig Mon Jun 23 00:58:35 2003
|
||||
+++ config.c Sat Jun 28 16:44:25 2003
|
||||
--- 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)
|
||||
|
@ -66,11 +66,10 @@
|
|||
}
|
||||
break;
|
||||
default:;
|
||||
@@ -3136,6 +3154,9 @@
|
||||
@@ -3136,6 +3154,8 @@
|
||||
}
|
||||
if (USEWINF77) strcpy(F77, "$(BINdir)/winf77.exe");
|
||||
|
||||
+ fpout = fopen("ARCHNAME", "w");
|
||||
+ fprintf(fpout, "%s", ARCH);
|
||||
+ fclose(fpout);
|
||||
ATL_mprintf(2, fplog, stdout,"\nCreating make include file Make.%s\n", ARCH);
|
||||
|
|
|
@ -1,11 +1,28 @@
|
|||
--- config.c~ Wed Jun 11 11:25:09 2003
|
||||
+++ config.c Wed Jun 11 11:35:08 2003
|
||||
--- config.c.orig Tue Jul 1 12:35:09 2003
|
||||
+++ config.c Tue Jul 1 12:35:44 2003
|
||||
@@ -79,7 +79,7 @@
|
||||
char *usermmnam[2] = {"", "GOTO"};
|
||||
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
|
||||
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);
|
||||
|
|
|
@ -3,20 +3,41 @@ include/clapack.h
|
|||
include/blas.h
|
||||
include/lapack.h
|
||||
lib/libalapack.a
|
||||
lib/libalapack.so
|
||||
lib/libalapack.so.1
|
||||
lib/libalapack.so
|
||||
lib/libalapackthr.a
|
||||
lib/libalapackthr.so.1
|
||||
lib/libalapackthr.so
|
||||
lib/libatlas.a
|
||||
lib/libatlas.so
|
||||
lib/libatlas.so.1
|
||||
lib/libatlas.so
|
||||
lib/libatlasthr.a
|
||||
lib/libatlasthr.so.1
|
||||
lib/libatlasthr.so
|
||||
lib/libcblas.a
|
||||
lib/libcblas.so
|
||||
lib/libcblas.so.1
|
||||
lib/libcblas.so
|
||||
lib/libcblasthr.a
|
||||
lib/libcblasthr.so.1
|
||||
lib/libcblasthr.so
|
||||
lib/libf77blas.a
|
||||
lib/libf77blas.so
|
||||
lib/libf77blas.so.1
|
||||
lib/libf77blas.so
|
||||
lib/libf77blasthr.a
|
||||
lib/libf77blasthr.so.1
|
||||
lib/libf77blasthr.so
|
||||
lib/libptcblas.a
|
||||
lib/libptcblas.so.1
|
||||
lib/libptcblas.so
|
||||
lib/libptf77blas.a
|
||||
lib/libptf77blas.so.1
|
||||
lib/libptf77blas.so
|
||||
lib/libtstatlas.a
|
||||
lib/libtstatlas.so
|
||||
lib/libtstatlas.so.1
|
||||
lib/libtstatlas.so
|
||||
lib/libtstatlasthr.a
|
||||
lib/libtstatlasthr.so.1
|
||||
lib/libtstatlasthr.so
|
||||
%%PORTDOCS%%share/doc/atlas/AtlasCredits.txt
|
||||
%%PORTDOCS%%share/doc/atlas/ChangeLog
|
||||
%%PORTDOCS%%share/doc/atlas/DirStruct.txt
|
||||
|
|
Loading…
Add table
Reference in a new issue