Update math/cloog to version 0.18.3
[dports.git] / math / xblas / Makefile
1 # Created by: bf@FreeBSD.org
2 # $FreeBSD$
3
4 PORTNAME=       xblas
5 PORTVERSION=    1.0.248
6 CATEGORIES=     math
7 MASTER_SITES=   NL/xblas LOCAL/bf
8 DISTNAME=       xblas
9
10 MAINTAINER=     bf@FreeBSD.org
11 COMMENT=        Extra Precise Basic Linear Algebra Subroutines (BLAS)
12
13 LICENSE=        BSD3CLAUSE
14
15 USE_LDCONFIG=   yes
16
17 CFLAGS+=        ${MANGLING}
18 HDIR=           include/xblas
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
27 PLIST_FILES=    ${HEADERS:S|^|${HDIR}/|}
28 SHLIB_MAJOR=    0
29 WRKSRC=         ${WRKDIR}/xblas-${PORTVERSION}
30
31 .include <bsd.port.options.mk>
32
33 M4?=    m4
34 M4_OPTS?=       #empty
35 MANGLING?=      -DCONFIG_FC_UNDERSCORE
36
37 .if ${ARCH} == "i386" || ${ARCH} == "x86_64"
38 CFLAGS+=        -Dx86
39 .endif
40
41 .if ${ARCH} == "sparc64"
42 PICFLAG=        -fPIC
43 .else
44 PICFLAG=        -fpic
45 .endif
46
47 PORTDOCS=       report.ps
48
49 .if ${PORT_OPTIONS:MSHARED}
50 PLIST_FILES+=   lib/libxblas_pic.a lib/libxblas.so lib/libxblas.so.${SHLIB_MAJOR}
51 .endif
52
53 .if ${PORT_OPTIONS:MSTATIC}
54 PLIST_FILES+=   lib/libxblas.a
55 .endif
56
57 post-patch:
58         @${REINPLACE_CMD} -E \
59         -e '/(ARCH|CC|(C|LD)FLAGS|EXTRA_LIBS|M4|M4_OPTS|RANLIB|XBLASLIB)[[:blank:]]*=/d' \
60                 ${WRKSRC}/make.inc
61 .if ${PORT_OPTIONS:MSTATIC}
62         @${CP} -af ${WRKSRC} ${WRKSRC}_STATIC
63 .endif
64         @${PRINTF} "\nCFLAGS+=\t${PICFLAG}\n" >> ${WRKSRC}/make.inc
65 # Fix parallel (-jX) builds
66         @${FIND} ${WRKSRC} -name Makefile | ${XARGS} ${REINPLACE_CMD} \
67                 -E 's/cd (.+) && (\$$\(MAKE\))/\2 -C \1/'
68
69 do-build: build-shared build-static
70
71 build-shared: patch
72 .if ${PORT_OPTIONS:MSHARED}
73         @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas_pic.a" ${MAKE} \
74         ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" lib ; \
75         ${CC} ${CFLAGS} ${PICFLAG} ${LDFLAGS} -shared -Wl,-x \
76         -Wl,-soname,libxblas.so.${SHLIB_MAJOR} -o libxblas.so.${SHLIB_MAJOR} \
77         -Wl,--whole-archive libxblas_pic.a -Wl,--no-whole-archive -Wl,--as-needed -lm
78 .endif
79
80 build-static: patch
81 .if ${PORT_OPTIONS:MSTATIC}
82         @cd ${WRKSRC}_STATIC; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas.a" ${MAKE} \
83         ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" lib
84 .endif
85
86 do-install:
87         @${MKDIR} ${STAGEDIR}${PREFIX}/${HDIR}
88         @cd ${WRKSRC}/src; ${INSTALL_DATA} ${HEADERS} ${STAGEDIR}${PREFIX}/${HDIR}
89 .if ${PORT_OPTIONS:MSHARED}
90         @cd ${WRKSRC}; ${INSTALL_DATA} libxblas_pic.a \
91         libxblas.so.${SHLIB_MAJOR} ${STAGEDIR}${PREFIX}/lib
92         @${LN} -sf libxblas.so.${SHLIB_MAJOR} ${STAGEDIR}${PREFIX}/lib/libxblas.so
93 .endif
94 .if ${PORT_OPTIONS:MSTATIC}
95         @${INSTALL_DATA} ${WRKSRC}_STATIC/libxblas.a ${STAGEDIR}${PREFIX}/lib
96 .endif
97 .if ${PORT_OPTIONS:MDOCS}
98         @${MKDIR} ${STAGEDIR}${DOCSDIR}
99         @${INSTALL_DATA} ${WRKSRC}/doc/report.ps ${STAGEDIR}${DOCSDIR}
100 .endif
101
102 check regression-test test: test-shared test-static
103
104 test-shared: build
105 .if ${PORT_OPTIONS:MSHARED}
106         @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas_pic.a" ${MAKE} \
107         ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" tests
108 .endif
109
110 test-static: build
111 .if ${PORT_OPTIONS:MSTATIC}
112         @cd ${WRKSRC}_STATIC; ${SETENV} ${MAKE_ENV} XBLASLIB="libxblas.a" ${MAKE} \
113         ${_MAKE_JOBS} ${MAKE_ARGS} ARCH="${AR}" tests
114 .endif
115
116 .include <bsd.port.mk>