summaryrefslogtreecommitdiffstats
path: root/math/metis-edf/Makefile
blob: 8914aa0e58862b419bd42213b7c8003349d80477 (plain)
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
# Created by: thierry@pompo.net
# $FreeBSD$

PORTNAME=	metis-edf
DISTVERSION=	4.1-2
PORTREVISION=	5
CATEGORIES=	math

MAINTAINER=	bf@FreeBSD.org
COMMENT=	Meshes partitioning tool used by Code_Aster

CONFLICTS=	metis-[0-9]* metis4-4*

ALL_TARGET=	default
MAKE_ENV+=	AR="${AR}" PICFLAG="${PICFLAG}"
MAKE_JOBS_UNSAFE=	yes
REINPLACE_ARGS=	-i ""

USES=		fortran
FFLAGS+=	-O2
PICFLAG?=	-fPIC

WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION:R}

PROGS=		kmetis onmetis.exe pmetis
DOCS=		CHANGES Doc/manual.ps README_Code_Aster

FORTRANLIBS=	-lgfortranbegin -lgfortran
GCCLIBDIR=	-L`${CAT} ${WRKSRC}/LIBDIR` -L`${CAT} ${WRKSRC}/LIBDIR`/../../..

NO_STAGE=	yes
.include <bsd.port.pre.mk>
.include "${.CURDIR}/../../french/aster/bsd.aster.mk"

MACHINEARCH=	${ARCH}
.if ${ARCH} == "i386"
USE_LDCONFIG=	yes
PLIST_SUB+=	SHLIB=""
.else
PLIST_SUB+=	SHLIB="@comment "
.endif

pre-configure:
.if ${MACHINEARCH} != "i386"
	${FIND} ${WRKSRC} -type f -name "*.c" -o -name "*.h" | ${XARGS}	\
		${REINPLACE_CMD} -e "s|long int|int|g"				\
			-e "s|long|int|g"					\
			-e "s|\(%[[:digit:]]\)ld|\1d|g"				\
			-e "s|\(%[[:digit:]]\.[[:digit:]]\)le|\1e|g"		\
			-e "s|%ld|%d|g"
	${REINPLACE_CMD} -e 's|%%SHLIB%%|#|' ${WRKSRC}/Lib/Makefile
.else
	${REINPLACE_CMD} -e 's|%%SHLIB%%||' ${WRKSRC}/Lib/Makefile
.endif
	${DIRNAME} `${FC} -print-libgcc-file-name` > ${WRKSRC}/LIBDIR
	${REINPLACE_CMD} -e 's|%%FORTRANLIBS%%|${FORTRANLIBS}|g' -e 's|%%GCCLIBDIR%%|${GCCLIBDIR}|g'\
		${WRKSRC}/Programs/Makefile
	${REINPLACE_CMD} -e 's|$$prefix|${PREFIX}/bin|' ${WRKSRC}/CONFIG/onmetis.in
	${REINPLACE_CMD} -e 's|$$prefix|${WRKSRC}|' ${WRKSRC}/onmetis

do-install:
	${MKDIR} ${PREFIX}/include/metis
	${INSTALL_DATA} ${WRKSRC}/Lib/*.h    ${PREFIX}/include/metis
	${CP} ${WRKSRC}/CONFIG/onmetis.in ${WRKSRC}/onmetis
	${REINPLACE_CMD} -e "s#HOME_METIS#${PREFIX}/bin#" ${WRKSRC}/onmetis
	${INSTALL_SCRIPT} ${WRKSRC}/onmetis ${PREFIX}/bin
	${REINPLACE_CMD} -e 's|${WRKSRC}|${PREFIX}/bin|' ${PREFIX}/bin/onmetis
	${INSTALL_PROGRAM} ${PROGS:S|^|${WRKSRC}/|} ${PREFIX}/bin
	${INSTALL_DATA} ${WRKSRC}/libmetis.a ${PREFIX}/lib
.if ${MACHINEARCH} == "i386"
	${INSTALL_DATA} ${WRKSRC}/libmetis.so ${PREFIX}/lib
	${INSTALL_PROGRAM} ${WRKSRC}/libmetis.so.1 ${PREFIX}/lib
.endif

post-install:
.if !defined(NOPORTDOCS)
	${MKDIR} ${DOCSDIR}
. for df in ${DOCS}
	${INSTALL_DATA} ${WRKSRC}/${df} ${DOCSDIR}
. endfor
	@${ECHO_MSG} "===> Documentation installed in ${DOCSDIR}."
.endif
.if !defined(NOPORTEXAMPLES)
	${MKDIR} ${EXAMPLESDIR}
	${INSTALL_DATA} ${WRKSRC}/Test/fort.81 ${EXAMPLESDIR}
	@${ECHO_MSG} "===> Test file installed in ${EXAMPLESDIR}."
.endif

.include <bsd.port.post.mk>
OpenPOWER on IntegriCloud