aboutsummaryrefslogtreecommitdiff
path: root/science/quantum-espresso/Makefile
blob: b666a4a5109568a7d8705910301d998f45c0ffbe (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
# $FreeBSD$

PORTNAME=	quantum-espresso
DISTVERSIONPREFIX=	qe-
DISTVERSION=	6.3
PORTREVISION=	1
CATEGORIES=	science
MASTER_SITES=	http://www.quantum-espresso.org/wp-content/uploads/upf_files/:pp
DIST_SUBDIR=	${PORTNAME}
EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	Package for research in electronic structure, simulation, optimization

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/License

BUILD_DEPENDS=	fox-xml>0:textproc/fox-xml \
		bash:shells/bash
LIB_DEPENDS=	libmpich.so:net/mpich2 \
		libblas.so:math/blas \
		liblapack.so:math/lapack

USES=		fortran gmake python shebangfix
SHEBANG_FILES=	configure PW/tools/cell2ibrav.py
GNU_CONFIGURE=	yes
USE_GITHUB=	yes
GH_ACCOUNT=	QEF
GH_PROJECT=	q-e

MAKE_ARGS=	TOPDIR=${WRKSRC}
BINARY_ALIAS=	make=gmake cpp=/usr/local/bin/cpp${GCC_DEFAULT}
FFLAGS+=	-x f95-cpp-input
LDFLAGS+=	${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgfortran.so -lm

MAKE_JOBS_UNSAFE=	yes # https://github.com/QEF/q-e/issues/9

# pseudo potentials used in calculations
PSEUDO_LIST=	Al.pbe-n-rrkjus_psl.0.1.UPF Al.pbe-n-van.UPF Al.pbe-rrkj.UPF Al.pz-vbc.UPF As.pz-bhs.UPF Au.rel-pz-kjpaw.UPF \
		B.pbe-n-kjpaw_psl.0.1.UPF B.pbe-n-kjpaw_psl.0.1.upf B.pz-vbc.UPF C.pbe-hgh.UPF C.pbe-n-rrkjus_psl.0.1.UPF C.pbe-rrkjus.UPF \
		C.pz-kjpaw.UPF C.pz-rrkjus.UPF C.pz-van_ak.UPF C.pz-vbc.UPF C.tpss-mt.UPF Co.pbe-nd-rrkjus.UPF Cu.pbe-kjpaw.UPF \
		Cu.pz-d-rrkjus.UPF Fe.pz-nd-rrkjus.UPF Fe.rel-pbe-kjpaw.UPF Fe.rel-pbe-spn-rrkjus_psl.0.2.1.UPF H.blyp-vbc.UPF H.pbe-kjpaw.UPF \
		H.pbe-rrkjus.UPF H.pbe-van_ak.UPF H.pz-kjpaw.UPF H.pz-vbc.UPF H.tpss-mt.UPF Mg.pbe-n-kjpaw_psl.0.3.0.upf \
		Mg.pz-n-vbc.UPF N.blyp-mt.UPF N.pbe-kjpaw.UPF N.pbe-n-kjpaw_psl.0.1.UPF N.pz-vbc.UPF Ni.pbe-nd-rrkjus.UPF Ni.pz-nd-rrkjus.UPF \
		O.blyp-mt.UPF O.pbe-hgh.UPF O.pbe-kjpaw.UPF O.pbe-rrkjus.UPF O.pbe-van_ak.UPF O.pz-rrkjus.UPF O.pz-van_ak.UPF \
		Pb.pz-d-van.UPF Pt.rel-pz-n-rrkjus.UPF Si.pbe-rrkj.UPF \
		Si.pz-vbc.UPF Ti.pz-sp-van_ak.UPF Zn.pbe-d-hgh.UPF

.for pp in ${PSEUDO_LIST}
DISTFILES+=	${pp}:pp
.endfor

post-extract:
	@${RM} ${WRKSRC}/archive/lapack-3.6.1.tgz
	@cd ${WRKSRC} && ${MKDIR} FoX && ${LN} -s ${LOCALBASE}/include FoX/finclude

pre-build:
	@${REINPLACE_CMD} -i '' -e ' \
		s|$$(CPP) $$(CPPFLAGS)|$$(CPP) -P -traditional $$(CPPFLAGS)| ; \
		s|LD *=.*|LD=${CC}| ; \
		s|LAPACK_LIBS *=.*|LAPACK_LIBS=-L${LOCALBASE}/lib -llapack -lblas|' \
		${WRKSRC}/make.inc

post-install:
	cd ${WRKSRC} && ${COPYTREE_SHARE} pseudo ${STAGEDIR}${DATADIR}
.for pp in ${PSEUDO_LIST}
	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${pp} ${STAGEDIR}${DATADIR}/pseudo
.endfor

run-examples: build
.for c in PP PW PWCOND PHonon
	@cd ${WRKSRC}/$c/examples && PREFIX=${STAGEDIR}${PREFIX} ./run_all_examples
.endfor

.include <bsd.port.mk>