1 # Created by: bf@FreeBSD.org
7 MASTER_SITES= NL/xblas LOCAL/bf
10 MAINTAINER= bf@FreeBSD.org
11 COMMENT= Extra Precise Basic Linear Algebra Subroutines (BLAS)
19 HEADERS= blas_dense_proto.h blas_enum.h blas_extended.h \
20 blas_extended_private.h blas_extended_proto.h blas_fpu.h \
21 blas_malloc.h f2c-bridge.h
22 MAKE_ENV= EXTRA_LIBS="-lm" LINKER="${CC}" M4="${M4}" RANLIB="${RANLIB}"
23 OPTIONS_DEFINE= SHARED STATIC DOCS
24 OPTIONS_DEFAULT= SHARED
25 SHARED_DESC= Build a shared library and PIC archive
26 STATIC_DESC= Build a non-PIC archive
28 PLIST_FILES= ${HEADERS:S|^|${HDIR}/|}
30 WRKSRC= ${WRKDIR}/xblas-${PORTVERSION}
32 .include <bsd.port.options.mk>
36 MANGLING?= -DCONFIG_FC_UNDERSCORE
38 .if ${ARCH} == "i386" || ${ARCH} == "x86_64"
42 .if ${ARCH} == "sparc64"
50 .if ${PORT_OPTIONS:MSHARED}
51 PLIST_FILES+= lib/libxblas_pic.a lib/libxblas.so lib/libxblas.so.${SHLIB_MAJOR}
54 .if ${PORT_OPTIONS:MSTATIC}
55 PLIST_FILES+= lib/libxblas.a
59 @${REINPLACE_CMD} -E \
60 -e '/(ARCH|CC|(C|LD)FLAGS|EXTRA_LIBS|M4|M4_OPTS|RANLIB|XBLASLIB)[[:blank:]]*=/d' \
62 .if ${PORT_OPTIONS:MSTATIC}
63 @${CP} -af ${WRKSRC} ${WRKSRC}_STATIC
65 @${PRINTF} "\nCFLAGS+=\t${PICFLAG}\n" >> ${WRKSRC}/make.inc
66 # Fix parallel (-jX) builds
67 @${FIND} ${WRKSRC} -name Makefile | ${XARGS} ${REINPLACE_CMD} \
68 -E 's/cd (.+) && (\$$\(MAKE\))/\2 -C \1/'
70 do-build: build-shared build-static
73 .if ${PORT_OPTIONS:MSHARED}
74 @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas_pic.a" ${MAKE} \
75 ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" lib ; \
76 ${CC} ${CFLAGS} ${PICFLAG} ${LDFLAGS} -shared -Wl,-x \
77 -Wl,-soname,libxblas.so.${SHLIB_MAJOR} -o libxblas.so.${SHLIB_MAJOR} \
78 -Wl,--whole-archive libxblas_pic.a -Wl,--no-whole-archive -Wl,--as-needed -lm
82 .if ${PORT_OPTIONS:MSTATIC}
83 @cd ${WRKSRC}_STATIC; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas.a" ${MAKE} \
84 ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" lib
88 @${MKDIR} ${STAGEDIR}${PREFIX}/${HDIR}
89 @cd ${WRKSRC}/src; ${INSTALL_DATA} ${HEADERS} ${STAGEDIR}${PREFIX}/${HDIR}
90 .if ${PORT_OPTIONS:MSHARED}
91 @cd ${WRKSRC}; ${INSTALL_DATA} libxblas_pic.a \
92 libxblas.so.${SHLIB_MAJOR} ${STAGEDIR}${PREFIX}/lib
93 @${LN} -sf libxblas.so.${SHLIB_MAJOR} ${STAGEDIR}${PREFIX}/lib/libxblas.so
95 .if ${PORT_OPTIONS:MSTATIC}
96 @${INSTALL_DATA} ${WRKSRC}_STATIC/libxblas.a ${STAGEDIR}${PREFIX}/lib
98 .if ${PORT_OPTIONS:MDOCS}
99 @${MKDIR} ${STAGEDIR}${DOCSDIR}
100 @${INSTALL_DATA} ${WRKSRC}/doc/report.ps ${STAGEDIR}${DOCSDIR}
103 check regression-test test: test-shared test-static
106 .if ${PORT_OPTIONS:MSHARED}
107 @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas_pic.a" ${MAKE} \
108 ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" tests
112 .if ${PORT_OPTIONS:MSTATIC}
113 @cd ${WRKSRC}_STATIC; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas.a" ${MAKE} \
114 ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" tests
117 .include <bsd.port.mk>