aboutsummaryrefslogtreecommitdiffstats
path: root/math/atlas-devel/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'math/atlas-devel/Makefile')
-rw-r--r--math/atlas-devel/Makefile111
1 files changed, 111 insertions, 0 deletions
diff --git a/math/atlas-devel/Makefile b/math/atlas-devel/Makefile
new file mode 100644
index 000000000000..c78d03034dd0
--- /dev/null
+++ b/math/atlas-devel/Makefile
@@ -0,0 +1,111 @@
+# New ports collection makefile for: atlas-devel
+# Date created: 14 September 2003
+# Whom: Nakata Maho <maho@FreeBSD.org>
+#
+# $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.5.11
+CATEGORIES= math
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR= math-atlas
+DISTNAME= ${PORTNAME}${PORTVERSION}
+
+MAINTAINER= maho@FreeBSD.org
+COMMENT= Development version of math/atlas
+
+LIB_DEPENDS= lapack:${PORTSDIR}/math/lapack
+
+USE_BZIP2= yes
+WRKSRC= ${WRKDIR}/ATLAS
+INSTALLS_SHLIB= yes
+USE_REINPLACE= yes
+PKGNAMESUFFIX= -devel
+
+post-patch:
+ @${REINPLACE_CMD} -e 's+%%PTHREAD_CFLAGS%%+ ${PTHREAD_CFLAGS}+' \
+ ${WRKSRC}/config.c
+ @${REINPLACE_CMD} -e 's+%%PTHREAD_LIBS%%+ ${PTHREAD_LIBS}+' \
+ ${WRKSRC}/config.c
+.if (${MACHINE_ARCH} == "alpha")
+ @(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
+
+post-configure:
+.if 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}
+.endif
+
+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/${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 ${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}_r.a
+ @${INSTALL_DATA} ${WRKSRC}/lib/${THREADED_ATLAS}/${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
+ @${LN} -sf ${i}.so.1 ${PREFIX}/lib/${i}.so
+.endfor
+ @${INSTALL_DATA} ${WRKSRC}/include/cblas.h ${PREFIX}/include
+ @${INSTALL_DATA} ${WRKSRC}/include/clapack.h ${PREFIX}/include
+ @${INSTALL_DATA} ${FILESDIR}/blas.h ${PREFIX}/include
+ @${INSTALL_DATA} ${FILESDIR}/lapack.h ${PREFIX}/include
+.if !defined(NOPORTDOCS)
+ @${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/doc/* ${DOCSDIR}
+.endif
+
+.include <bsd.port.mk>