aboutsummaryrefslogtreecommitdiffstats
path: root/cad/calculix/Makefile
blob: 311040bf3fd395c10d85179214a93864cfc6fff1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Created by: Pedro Giffuni
# $FreeBSD$

PORTNAME=   CalculiX
PORTVERSION=    2.9
CATEGORIES= cad
MASTER_SITES=   http://www.dhondt.de/
DISTFILES=  ${DIST_SOURCES}
DIST_SUBDIR=    calculix
EXTRACT_ONLY=   ${DIST_SOURCES}

MAINTAINER= maho@FreeBSD.org
COMMENT=    Three-Dimensional Structural Finite Element Program

LICENSE=    GPLv2

LIB_DEPENDS=    libarpack.so:${PORTSDIR}/math/arpack    \
        libspooles.so:${PORTSDIR}/math/spooles  \
        libtaucs.so:${PORTSDIR}/math/taucs

DIST_SOURCES=   ccx_${PORTVERSION}.src${EXTRACT_SUFX}   \
        cgx_${PORTVERSION}.all${EXTRACT_SUFX}
DIST_HTM=   ccx_${PORTVERSION}.htm${EXTRACT_SUFX}   \
        cgx_${PORTVERSION}.htm${EXTRACT_SUFX}
DIST_PS=    ccx_${PORTVERSION}.ps${EXTRACT_SUFX}
DIST_PDF=   cgx_${PORTVERSION}.pdf
DIST_EXAMPLES=  ccx_${PORTVERSION}.test${EXTRACT_SUFX}  \
        cgx_${PORTVERSION}.exa${EXTRACT_SUFX}

WRKSRC=     ${WRKDIR}/${PORTNAME}
CCX_VER=    ccx_${PORTVERSION}
CGX_VER=    cgx_${PORTVERSION}

USES=       compiler:openmp fortran gmake tar:bzip2
USE_GCC=    yes
USE_XORG=   xmu
USE_GL= glut

BROWSER?=   firefox
PSVIEWER?=  gv

OPTIONS_DEFINE= METIS METIS_EDF DOCS EXAMPLES
OPTIONS_DEFAULT=METIS

OPTIONS_RADIO=  BLAS
OPTIONS_RADIO_BLAS=     REFERENCE OBLAS
OPTIONS_DEFAULT=        REFERENCE

REFERENCE_DESC= Blas / Lapack
REFERENCE_USES= blaslapack:netlib

OBLAS_DESC=     Openblas
OBLAS_USES=     blaslapack:openblas

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MEXAMPLES}
DISTFILES+= ${DIST_EXAMPLES}
EXTRACT_ONLY+=  ${DIST_EXAMPLES}
.endif

.if ${PORT_OPTIONS:MDOCS}
DISTFILES+= ${DIST_HTM} ${DIST_PS} ${DIST_PDF}
EXTRACT_ONLY+=  ${DIST_HTM} ccx_${PORTVERSION}.ps${EXTRACT_SUFX}
.endif

.if ${PORT_OPTIONS:MMETIS}
LIB_DEPENDS+=   libmetis.so:${PORTSDIR}/math/metis4
.endif
.if ${PORT_OPTIONS:MMETIS_EDF}
LIB_DEPENDS+=   libmetis.so:${PORTSDIR}/math/metis-edf
.endif

.if ${ARCH} == "sparc64"
CFLAGS+=    -fPIC
FFLAGS+=    -fPIC
.else
CFLAGS+=    -fpic
FFLAGS+=    -fpic
.endif

.if empty(PORT_OPTIONS:MEXAMPLES)
PLIST_SUB=  PORTEXAMPLES="@comment "
.else
PLIST_SUB=  PORTEXAMPLES=""
.endif

pre-build:
    @${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; s+%%CC%%+${CC}+g ; \
    s+%%BLAS_LIBS%%+${BLASLIB}+ ; \
    s+%%LAPACK_LIBS%%+${LAPACKLIB}+ ; \
    s+%%LOCALBASE%%+${LOCALBASE}+g;' \
        ${WRKSRC}/${CCX_VER}/src/Makefile
    @${REINPLACE_CMD} -e 's/c++/${CXX}/g;' \
        ${WRKSRC}/libSNL/src/makefile
    @${REINPLACE_CMD} -e 's+%%DOCSDIR%%+${DOCSDIR}+g; \
    s+"firefox"+"${BROWSER}"+ ; \
    s+"gv"+"${PSVIEWER}"+ ;' \
        ${WRKSRC}/${CGX_VER}/src/cgx.h

do-build:
    @(cd ${WRKSRC}/${CCX_VER}/src; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} )
    @(cd ${WRKSRC}/libSNL/src; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} )
    @(cd ${WRKSRC}/${CGX_VER}/src; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} )

do-install:
    ${INSTALL_PROGRAM} ${WRKSRC}/${CCX_VER}/src/${CCX_VER} \
      ${STAGEDIR}${PREFIX}/bin/ccx
    ${INSTALL_PROGRAM} ${WRKSRC}/${CGX_VER}/src/cgx \
      ${STAGEDIR}${PREFIX}/bin/cgx
.if ${PORT_OPTIONS:MDOCS}
    @${MKDIR} ${STAGEDIR}${DOCSDIR}/ccx
    @(cd ${WRKSRC}/${CCX_VER}/doc/ccx && ${COPYTREE_SHARE} . \
      ${STAGEDIR}${DOCSDIR}/ccx)
    @${MKDIR} ${STAGEDIR}${DOCSDIR}/cgx
    @(cd ${WRKSRC}/${CGX_VER}/doc/cgx && ${COPYTREE_SHARE} . \
      ${STAGEDIR}${DOCSDIR}/cgx)
    ${INSTALL_DATA} ${WRKSRC}/${CCX_VER}/doc/${CCX_VER}.ps ${STAGEDIR}${DOCSDIR}
    @${GZIP_CMD} ${STAGEDIR}${DOCSDIR}/${CCX_VER}.ps
    ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cgx_${PORTVERSION}.pdf \
      ${STAGEDIR}${DOCSDIR}
.endif
.if ${PORT_OPTIONS:MEXAMPLES}
    @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
    @(cd ${WRKSRC}/${CGX_VER}/examples && ${COPYTREE_SHARE} . \
      ${STAGEDIR}${EXAMPLESDIR})
    @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/test
    @(cd ${WRKSRC}/${CCX_VER}/test && ${COPYTREE_SHARE} . \
      ${STAGEDIR}${EXAMPLESDIR}/test)
.endif

.include <bsd.port.mk>