# Ports collection makefile for: gotoblas # Date created: 20070203 # Whom: Sato Hiroki # # $FreeBSD$ # PORTNAME= gotoblas PORTVERSION= 2.${GOTOBLAS2VER} CATEGORIES= math MASTER_SITES= ftp://ftp.netlib.org/lapack/:lapack \ ftp://ftp.netlib.org/lapack/timing/:lapack_tmg \ ftp://ftp.netlib.no/netlib/lapack/:lapack \ ftp://ftp.netlib.no/netlib/lapack/timing/:lapack_tmg DISTFILES= GotoBLAS2-${GOTOBLAS2VER}.tar.gz lapack-3.1.1.tgz:lapack large.tgz:lapack_tmg timing.tgz:lapack_tmg EXTRACT_ONLY= ${GOTOBLAS2_SRCFILE} MAINTAINER= maho@FreeBSD.org COMMENT= A fast implementation of Basic Linear Algebra Subprograms DIST_SUBDIR= gotoblas GOTOBLAS2VER= 1.13 GOTOBLAS2_SRCFILE= GotoBLAS2-${GOTOBLAS2VER}.tar.gz LAPACK_SRCFILE= lapack-3.1.1.tgz LARGE_FILE= large.tgz TIMING_FILE= timing.tgz USE_GMAKE= yes USE_LDCONFIG= yes RESTRICTED= Redistribution not permitted MANUAL_PACKAGE_BUILD= Please obtain the source code manyally from http://www.tacc.utexas.edu/tacc-projects/ WRKSRC= ${WRKDIR}/GotoBLAS2 USE_PERL5_BUILD= yes USE_FORTRAN= yes BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils GOTOLIBS= libgoto2 libgoto2p GOTOFILES= ${GOTOLIBS:S|$|.so|} ${GOTOLIBS:S|$|.so.1|} ${GOTOLIBS:S|$|.a|} PLIST_FILES= ${GOTOFILES:S|^|lib/|} .include BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils .if ${ARCH} == "amd64" || ${ARCH} == "alpha" || ${ARCH} == "sparc64" || ${ARCH} == "ia64" MAKE_FLAGS+= BINARY64=1 .else MAKE_FLAGS+= BINARY32=1 .endif .if defined(WITH_INTERFACE64) MAKE_FLAGS+= INTERFACE64=1 .endif .if defined(WITH_GFORTRAN) MAKE_FLAGS+= F_COMPILER=GFORTRAN .elif defined(WITH_G77) MAKE_FLAGS+= F_COMPILER=G77 .elif defined(WITH_G95) MAKE_FLAGS+= F_COMPILER=G95 .elif defined(WITH_IFORT) MAKE_FLAGS+= F_COMPILER=INTEL .elif defined(WITH_PGF77) MAKE_FLAGS+= F_COMPILER=PGI .elif defined(WITH_PATHF90) MAKE_FLAGS+= F_COMPILER=PATHF90 .elif defined(WITH_XLF) MAKE_FLAGS+= F_COMPILER=IBM .endif .if !defined(PACKAGE_BUILDING) && !exists(${DISTDIR}/${DIST_SUBDIR}/${GOTOBLAS2_SRCFILE}) do-fetch: @${ECHO_CMD} "You need to fetch ${GOTOBLAS2_SRCFILE} from:" @${ECHO_CMD} "http://www.tacc.utexas.edu/tacc-projects/" @${ECHO_CMD} "and put it in ${DISTDIR}/gotoblas." .endif pre-build:: @${ECHO_CMD} "****" @${ECHO_CMD} "You can choose FORTRAN compiler" \ "by using the following knobs:" @${ECHO_CMD} " WITH_GFORTRAN=yes (gfortran; default)" @${ECHO_CMD} " WITH_G77=yes (g77)" @${ECHO_CMD} " WITH_G95=yes (g95)" @${ECHO_CMD} " WITH_IFORT=yes (ifort)" @${ECHO_CMD} " WITH_PGF77=yes (pgf77)" @${ECHO_CMD} " WITH_PATHF90=yes (pathf90)" @${ECHO_CMD} " WITH_XLF=yes (xlf)" @${ECHO_CMD} " WITH_INTERFACE64=yes (for using 64-bit integer interface)" @${ECHO_CMD} "- Note that if the specified compiler does not exist" \ "on your system, build will fail." @${ECHO_CMD} "- None is specified, gfortran will be used." @${ECHO_CMD} "****" post-patch: ${REINPLACE_CMD} -e "s+%%FC%%+${FC}+" -e "s+%%CC%%+${CC}+" ${WRKSRC}/Makefile.rule ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/Makefile.system ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/Makefile.rule ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/Makefile.tail ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/driver/level3/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/driver/others/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/exports/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/interface/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/kernel/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/kernel/Makefile.L3 ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/lapack/laswp/Makefile ${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" ${WRKSRC}/reference/Makefile do-build: ${CP} ${DISTDIR}/${DIST_SUBDIR}/${LAPACK_SRCFILE} ${WRKSRC} ${CP} ${DISTDIR}/${DIST_SUBDIR}/${LARGE_FILE} ${WRKSRC} ${CP} ${DISTDIR}/${DIST_SUBDIR}/${TIMING_FILE} ${WRKSRC} ${MKDIR} ${WRKDIR}/lib cd ${WRKSRC} && ${GMAKE} ${MAKE_FLAGS} USE_THREAD=1 DYNAMIC_ARCH=1 cd ${WRKSRC}/exports && ${GMAKE} ${MAKE_FLAGS} USE_THREAD=1 DYNAMIC_ARCH=1 ${INSTALL_DATA} ${WRKSRC}/libgoto2.a ${WRKDIR}/lib/libgoto2p.a ${INSTALL_DATA} ${WRKSRC}/libgoto2.so ${WRKDIR}/lib/libgoto2p.so cd ${WRKSRC} && ${GMAKE} clean cd ${WRKSRC}/exports && ${GMAKE} clean cd ${WRKSRC} && ${GMAKE} ${MAKE_FLAGS} USE_THREAD=0 DYNAMIC_ARCH=1 cd ${WRKSRC}/exports && ${GMAKE} ${MAKE_FLAGS} USE_THREAD=0 DYNAMIC_ARCH=1 ${INSTALL_DATA} ${WRKSRC}/libgoto2.a ${WRKDIR}/lib/libgoto2.a ${INSTALL_DATA} ${WRKSRC}/libgoto2.so ${WRKDIR}/lib/libgoto2.so benchmark: cd ${WRKSRC}/ && \ ${GMAKE} ${MAKE_FLAGS} hpl cd ${WRKSRC}/benchmark && \ ${GMAKE} ${MAKE_FLAGS} dlinpack.goto do-install: cd ${WRKDIR}/lib/ && \ ${INSTALL_DATA} ${GOTOLIBS:S|$|.a|} ${PREFIX}/lib/ && \ ${INSTALL_DATA} ${GOTOLIBS:S|$|.so|} ${PREFIX}/lib/ cd ${PREFIX}/lib/ && \ for i in ${GOTOLIBS:S|$|.so|}; do \ ${LN} -sf $$i $$i.1;done .include