8 MASTER_SITES= NL/lapack/
9 DISTFILES= lapack-${PORTVERSION}.tgz
10 .if make(makesum) || !(defined(BLAS_SLAVEPORT) || defined(XLAPACK_SLAVEPORT))
11 DISTFILES+= manpages-${PORTVERSION}.tgz
15 MAINTAINER?= maho@FreeBSD.org
16 COMMENT?= A library of Fortran 77 subroutines for linear algebra
19 LICENSE_FILE= ${WRKSRC}/LICENSE
23 OPTIONS_DEFINE= PROFILE SHARED STATIC
24 OPTIONS_DEFAULT= SHARED STATIC
25 PROFILE_DESC= Build profiling libraries
26 SHARED_DESC= Build shared libraries and PIC archives
27 STATIC_DESC= Build (non-PIC) archives
29 MAKE_ENV= BLASLIB="${BLASLIB}"
30 PLIST_SUB= SVERSION="${SVERSION}"
32 WRKSRC= ${WRKDIR}/lapack-${PORTVERSION}
33 WRKSRC_PROFILE= ${WRKSRC}_PROFILE
34 WRKSRC_SHARED= ${WRKSRC}_SHARED
35 WRKSRC_STATIC= ${WRKSRC}
37 .include <bsd.port.options.mk>
39 .if defined(BLAS_SLAVEPORT)
41 BLASLIB= ../../libblas.a
43 PLIST_SUB+= BLAS="" LAPACK="@comment " XLAPACK="@comment "
45 TEST_TARGET= blas_testing
48 BLASLIB?= -L${LOCALBASE}/lib -lblas
49 LIB_DEPENDS+= libblas.so:${PORTSDIR}/math/blas
52 TEST_TARGET= lapack_testing
53 .if defined(MAINTAINER_MODE) || defined(PACKAGE_BUILDING)
59 .if defined(XLAPACK_SLAVEPORT)
60 LIB_DEPENDS+= libxblas.so:${PORTSDIR}/math/xblas
61 MAKE_ENV+= USEXBLAS=yes XBLASLIB="${XBLASLIB}"
63 PLIST_SUB+= BLAS="@comment " LAPACK="@comment " XLAPACK=""
64 XBLASLIB?= -L${LOCALBASE}/lib -lxblas
66 PLIST_FILES+= ${MAN3L:S|^|man/man3/|:S|$|.gz|}
67 PLIST_SUB+= BLAS="@comment " LAPACK="" XLAPACK="@comment "
68 .if defined(MAINTAINER_MODE)
69 BUILD_DEPENDS += doxygen:${PORTSDIR}/devel/doxygen
70 MAN_TARGET= build-manpages
75 .if ${ARCH} == "sparc64"
82 FFLAGS_SHARED ?= ${PICFLAG}
84 .if ${PORT_OPTIONS:MPROFILE} && !exists(/usr/lib/libc_p.a)
85 IGNORE= you have chosen WITH_PROFILE, but have not installed the\
86 base system profiling libraries
89 .if ${PORT_OPTIONS:MSHARED}
93 .for o in PROFILE SHARED STATIC
94 .if ${PORT_OPTIONS:M${o}}
97 PLIST_SUB+= ${o}="@comment "
103 s@^(FORTRAN|LOADER)([[:blank:]]*=)(.*)@\1\2 $${FC}@; \
104 s@^(OPTS[[:blank:]]*=)(.*)@\1 $${FFLAGS} $${EXTRAFLAGS}@; \
105 s@^NOOPT[[:blank:]]*=.*@& $${EXTRAFLAGS}@; \
106 s@^(LOADOPTS[[:blank:]]*=)(.*)@\1 $${LDFLAGS} $${EXTRAFLAGS}@; \
107 \@(BLAS|RAN)LIB[[:blank:]]*=@d;' \
108 ${WRKSRC}/make.inc.example > ${WRKSRC}/make.inc
109 @${REINPLACE_CMD} -e 's@\./lapack_testing\.py@${S} &@' \
111 .for o in PROFILE SHARED
112 .if ${PORT_OPTIONS:M${o}}
113 @${CP} -a ${WRKSRC} ${WRKSRC_${o}}
117 do-build: ${MAN_TARGET} build-profile build-shared build-static
119 .for o in PROFILE SHARED STATIC
121 .if ${PORT_OPTIONS:M${o}}
122 ${PRINTF} "\n\nBuilding ${o:tl} libraries:\n\n\n"
123 cd ${WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} EXTRAFLAGS="${FFLAGS_${o}}" \
124 ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" ${ALL_TARGET}
129 .if defined (MAINTAINER_MODE)
130 build-manpages: patch
131 @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${_MAKE_JOBS} \
137 .if ${PORT_OPTIONS:MSHARED}
139 cd ${WRKSRC_SHARED} ; ${FC} ${FFLAGS} ${FFLAGS_SHARED} ${LDFLAGS} -shared \
140 -o lib${P}${L}.so.${SVERSION} -Wl,-x -Wl,-soname,lib${P}${L}.so.${SVERSION} \
141 -Wl,--whole-archive lib${L}.a -Wl,--no-whole-archive
145 .if ${PORT_OPTIONS:MSHARED}
147 .elif ${PORT_OPTIONS:MSTATIC}
149 .elif ${PORT_OPTIONS:MPROFILE}
150 TESTS ?= test-profile
153 check regression-test test: ${TESTS}
155 .for o in PROFILE SHARED STATIC
156 test-${o:tl}: build-${o:tl}
157 .if ${PORT_OPTIONS:M${o}}
158 @${PRINTF} "\n\nTesting ${o:tl} libraries:\n\n\n"
159 @cd ${WRKSRC_${o}}; ${SETENV} ${MAKE_ENV} EXTRAFLAGS="${FFLAGS_${o}}" \
160 ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" ${TEST_TARGET}
161 .if defined(BLAS_SLAVEPORT)
162 @${CAT} ${WRKSRC_${o}}/BLAS/*.out
170 .if ${PORT_OPTIONS:MSTATIC}
171 @${INSTALL_DATA} ${WRKSRC}/lib${L}.a ${STAGEDIR}${PREFIX}/lib/lib${P}${L}.a
173 .if ${PORT_OPTIONS:MSHARED}
174 @${INSTALL_DATA} ${WRKSRC_SHARED}/lib${L}.a ${STAGEDIR}${PREFIX}/lib/lib${P}${L}_pic.a
175 @${INSTALL_DATA} ${WRKSRC_SHARED}/lib${P}${L}.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib
176 @${LN} -sf lib${P}${L}.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib/lib${P}${L}.so
178 .if ${PORT_OPTIONS:MPROFILE}
179 @${INSTALL_DATA} ${WRKSRC_PROFILE}/lib${L}.a ${STAGEDIR}${PREFIX}/lib/lib${P}${L}_p.a
183 .include <bsd.port.pre.mk>
185 .if !(defined(BLAS_SLAVEPORT) || defined(XLAPACK_SLAVEPORT))
187 .include "${FILESDIR}/manpages"
190 @cd ${WRKDIR}/man ; ${ECHO_CMD} ${MAN3L:S|^|man3/|} \
191 | ${XARGS} -J @ ${INSTALL_MAN} @ ${STAGEDIR}${MAN3PREFIX}/man/man3
193 .if defined(MAINTAINER_MODE)
194 package-manpages: build-manpages
195 @${RM} -f ${WRKDIR}/lapack-manpages-${PORTVERSION}.tar.gz ; \
196 cd ${WRKSRC}/DOCS/man; \
197 ${TAR} -czvf ${WRKDIR}/lapack-manpages-${PORTVERSION}.tar.gz \
202 .include <bsd.port.post.mk>