summaryrefslogtreecommitdiff
path: root/science/dftbplus
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2018-09-12 22:25:20 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2018-09-12 22:25:20 +0000
commite8b751e04de6120c8bff8c4e983b4c5c27a7e3ec (patch)
tree712b5cb88c26438e41b7a48a9c2fad62bdd72d11 /science/dftbplus
parentdatabases/timescaledb: Update to 0.12.0 (diff)
New port: science/dftbplus: Package for performing fast atomistic simulations
Notes
Notes: svn path=/head/; revision=479622
Diffstat (limited to 'science/dftbplus')
-rw-r--r--science/dftbplus/Makefile60
-rw-r--r--science/dftbplus/distinfo9
-rw-r--r--science/dftbplus/files/patch-external_xmlf90_make.dpbuild11
-rw-r--r--science/dftbplus/files/patch-make.config37
-rw-r--r--science/dftbplus/files/patch-makefile16
-rw-r--r--science/dftbplus/pkg-descr9
-rw-r--r--science/dftbplus/pkg-plist51
7 files changed, 193 insertions, 0 deletions
diff --git a/science/dftbplus/Makefile b/science/dftbplus/Makefile
new file mode 100644
index 000000000000..5a690e8a26f6
--- /dev/null
+++ b/science/dftbplus/Makefile
@@ -0,0 +1,60 @@
+# $FreeBSD$
+
+PORTNAME= dftbplus
+DISTVERSION= 18.2
+CATEGORIES= science
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Package for performing fast atomistic simulations
+
+LICENSE= GPLv3+
+
+LIB_DEPENDS= libblas.so:math/blas \
+ liblapack.so:math/lapack
+RUN_DEPENDS= ${PYNUMPY}
+
+USES= fortran gmake python shebangfix
+SHEBANG_FILES= tools/dptools/bin/* tools/misc/* utils/srcmanip/* utils/build/* external/fypp/bin/* utils/get_opt_externals \
+ external/fypp/bin/fypp utils/test/testlist_to_fypp test/prog/dftb+/bin/tagdiff
+SHEBANG_GLOB= *.py
+USE_GITHUB= yes
+GH_TUPLE= dftbplus:mpifx:099ff75:mpifx/external/mpifx/origin \
+ dftbplus:scalapackfx:86cd6e4:scalapackfx/external/scalapackfx/origin \
+ dftbplus:dftd3-lib:00504a9:dftd3/external/dftd3/origin
+MAKEFILE= makefile
+
+LDFLAGS+= -llapack -lblas
+
+MAKE_ARGS= PYTHON=${PYTHON_CMD} INSTALLDIR=${STAGEDIR}${PREFIX} FREEBSD_PYDISTUTILS_INSTALLARGS="${PYDISTUTILS_INSTALLARGS} --root=${STAGEDIR}"
+
+OPTIONS_DEFINE= ARPACK DFTD3 MPI SOCKETS
+OPTIONS_DEFAULT= ARPACK DFTD3 MPI SOCKETS
+
+ARPACK_DESC= Build with ARPACK for large eigenvalue problems
+ARPACK_MAKE_ENV= WITH_ARPACK=1
+ARPACK_MAKE_ENV_OFF= WITH_ARPACK=0
+LIB_LIB_DEPENDS= libarpack.so:math/arpack
+
+DFTD3_DESC= Build with libdft3
+DFTD3_MAKE_ENV= WITH_DFTD3=1
+DFTD3_MAKE_ENV_OFF= WITH_DFTD3=0
+
+MPI_MAKE_ENV= WITH_MPI=1
+MPI_MAKE_ENV_OFF= WITH_MPI=0
+MPI_LIB_DEPENDS= libmpich.so:net/mpich2 \
+ libscalapack.so:math/scalapack
+
+SOCKETS_DESC= Build with sockets library
+SOCKETS_MAKE_ENV= WITH_SOCKETS=1
+SOCKETS_MAKE_ENV_OFF= WITH_SOCKETS=0
+SOCKETS_BINARY_ALIAS= gcc=${CC}
+
+MAKE_JOBS_UNSAFE= yes # race conditions when some options are ON
+
+post-patch:
+ @cd ${WRKSRC} && ${LN} -s sys/make.x86_64-linux-gnu make.arch
+
+post-install:
+ @cd ${STAGEDIR}${PREFIX}/bin && ${STRIP_CMD} dftb+ modes waveplot
+
+.include <bsd.port.mk>
diff --git a/science/dftbplus/distinfo b/science/dftbplus/distinfo
new file mode 100644
index 000000000000..50bcbee6b71d
--- /dev/null
+++ b/science/dftbplus/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1536787612
+SHA256 (dftbplus-dftbplus-18.2_GH0.tar.gz) = 21846f0866cc8ca40d80776d2786c41aac3b05d759e8137c10490b677ab93e6c
+SIZE (dftbplus-dftbplus-18.2_GH0.tar.gz) = 1053090
+SHA256 (dftbplus-mpifx-099ff75_GH0.tar.gz) = 444d5f73eb112a9bb8e225e394aa5cd52406c69e652fd39a491fff696f5f8573
+SIZE (dftbplus-mpifx-099ff75_GH0.tar.gz) = 59513
+SHA256 (dftbplus-scalapackfx-86cd6e4_GH0.tar.gz) = 81e6330f392d3766199f646877e3fd2fe2bf2be6da26b3163a8fdb6a51ff88f1
+SIZE (dftbplus-scalapackfx-86cd6e4_GH0.tar.gz) = 71360
+SHA256 (dftbplus-dftd3-lib-00504a9_GH0.tar.gz) = b6d891320139d7b41029ddaa389eb92878a2f55be065fdc438d199e7e0414cbb
+SIZE (dftbplus-dftd3-lib-00504a9_GH0.tar.gz) = 575172
diff --git a/science/dftbplus/files/patch-external_xmlf90_make.dpbuild b/science/dftbplus/files/patch-external_xmlf90_make.dpbuild
new file mode 100644
index 000000000000..2289825264ef
--- /dev/null
+++ b/science/dftbplus/files/patch-external_xmlf90_make.dpbuild
@@ -0,0 +1,11 @@
+--- external/xmlf90/make.dpbuild.orig 2018-09-12 21:14:34 UTC
++++ external/xmlf90/make.dpbuild
+@@ -31,7 +31,7 @@ clean:
+ rm -f *.o _mod_* *.mod
+
+ %.o: %.f90
+- $(FXX) $(FXXOPT) -o $@ -c $<
++ $(FXX) -c $(FXXOPT) -o $@ -c $<
+
+ _mod_%:
+ @[ -f $< ] && touch $@
diff --git a/science/dftbplus/files/patch-make.config b/science/dftbplus/files/patch-make.config
new file mode 100644
index 000000000000..b3c7cbce48bf
--- /dev/null
+++ b/science/dftbplus/files/patch-make.config
@@ -0,0 +1,37 @@
+--- make.config.orig 2018-08-17 17:13:08 UTC
++++ make.config
+@@ -13,19 +13,19 @@ INSTALLDIR := $(ROOT)/_install
+ ################################################################################
+
+ # Whether DFTB+ should support MPI-parallelism
+-WITH_MPI := 0
++WITH_MPI ?= 0
+
+ # Whether the socket library (external control) should be linked.
+-WITH_SOCKETS := 1
++WITH_SOCKETS ?= 1
+
+ # Whether the ARPACK library (needed by TD-DFTB) should be linked with DFTB+
+ # Only affects serial build (MPI-version is built without ARPACK/TD-DFTB).
+-WITH_ARPACK := 1
++WITH_ARPACK ?= 1
+
+ # Whether the DFTD3 library (dispersion) should be linked.
+ # NOTE: Due to license incompatibility, distribution of a DFTB+ binary built
+ # with this component is not permitted. Use it only for your personal research.
+-WITH_DFTD3 := 0
++WITH_DFTD3 ?= 0
+
+ ################################################################################
+ # General building/testing options
+@@ -55,8 +55,8 @@ COMPILE_DFTD3 := 1
+
+ # Set the compile time include and the link time library options for
+ # dftd3-lib. Ignored if WITH_DFTD3 has been disabled or COMPILE_DFTD3 enabled.
+-DFTD3_INCS := -I/usr/local/include/dftd3-lib
+-DFTD3_LIBS := -L/usr/local/lib -ldftd3
++DFTD3_INCS := -I$(PREFIX)/include/dftd3-lib
++DFTD3_LIBS := -L$(PREFIX)/lib -ldftd3
+
+ # Link time library options for linking ARPACK. Ignored if WITH_ARPACK was
+ # disabled.
diff --git a/science/dftbplus/files/patch-makefile b/science/dftbplus/files/patch-makefile
new file mode 100644
index 000000000000..00c150731814
--- /dev/null
+++ b/science/dftbplus/files/patch-makefile
@@ -0,0 +1,16 @@
+--- makefile.orig 2018-08-17 17:13:08 UTC
++++ makefile
+@@ -123,11 +123,11 @@ install_misc_skderivs install_misc_slako
+ ROOT=$(ROOT) BUILDROOT=$(BUILDDIR) install
+
+
+-PYTHON := python
++PYTHON ?= python
+ .PHONY: install_dptools
+ install_dptools:
+ cd $(ROOT)/tools/dptools \
+- && $(PYTHON) setup.py install --prefix $(INSTALLDIR)
++ && $(PYTHON) setup.py install $(FREEBSD_PYDISTUTILS_INSTALLARGS)
+
+ ################################################################################
+ # Check targets
diff --git a/science/dftbplus/pkg-descr b/science/dftbplus/pkg-descr
new file mode 100644
index 000000000000..3e3a7d741ade
--- /dev/null
+++ b/science/dftbplus/pkg-descr
@@ -0,0 +1,9 @@
+DFTB+ is a fast and efficient versatile quantum mechanical simulation software
+package. Using DFTB+ you can carry out quantum mechanical simulations similar to
+density functional theory but in an approximate way, typically gaining around
+two orders of magnitude in speed.
+
+DFTB+ can be used either as a standalone application or embeded it into other
+academic or commercial simulation packages as a library.
+
+WWW: https://www.dftbplus.org/
diff --git a/science/dftbplus/pkg-plist b/science/dftbplus/pkg-plist
new file mode 100644
index 000000000000..fa0d54f712a9
--- /dev/null
+++ b/science/dftbplus/pkg-plist
@@ -0,0 +1,51 @@
+bin/dftb+
+bin/dp_bands
+bin/dp_dos
+bin/gen2cif
+bin/gen2xyz
+bin/makecube
+bin/modes
+bin/repeatgen
+bin/straingen
+bin/waveplot
+bin/xyz2gen
+%%PYTHON_SITELIBDIR%%/dptools-18.2-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/dptools/__init__.py
+%%PYTHON_SITELIBDIR%%/dptools/__init__.pyc
+%%PYTHON_SITELIBDIR%%/dptools/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/bandout.py
+%%PYTHON_SITELIBDIR%%/dptools/bandout.pyc
+%%PYTHON_SITELIBDIR%%/dptools/bandout.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/cif.py
+%%PYTHON_SITELIBDIR%%/dptools/cif.pyc
+%%PYTHON_SITELIBDIR%%/dptools/cif.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/common.py
+%%PYTHON_SITELIBDIR%%/dptools/common.pyc
+%%PYTHON_SITELIBDIR%%/dptools/common.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/gen.py
+%%PYTHON_SITELIBDIR%%/dptools/gen.pyc
+%%PYTHON_SITELIBDIR%%/dptools/gen.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/geometry.py
+%%PYTHON_SITELIBDIR%%/dptools/geometry.pyc
+%%PYTHON_SITELIBDIR%%/dptools/geometry.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/grids.py
+%%PYTHON_SITELIBDIR%%/dptools/grids.pyc
+%%PYTHON_SITELIBDIR%%/dptools/grids.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/gridsio.py
+%%PYTHON_SITELIBDIR%%/dptools/gridsio.pyc
+%%PYTHON_SITELIBDIR%%/dptools/gridsio.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/scripts/__init__.py
+%%PYTHON_SITELIBDIR%%/dptools/scripts/__init__.pyc
+%%PYTHON_SITELIBDIR%%/dptools/scripts/__init__.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/scripts/common.py
+%%PYTHON_SITELIBDIR%%/dptools/scripts/common.pyc
+%%PYTHON_SITELIBDIR%%/dptools/scripts/common.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/scripts/repeatgen.py
+%%PYTHON_SITELIBDIR%%/dptools/scripts/repeatgen.pyc
+%%PYTHON_SITELIBDIR%%/dptools/scripts/repeatgen.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/scripts/straingen.py
+%%PYTHON_SITELIBDIR%%/dptools/scripts/straingen.pyc
+%%PYTHON_SITELIBDIR%%/dptools/scripts/straingen.%%PYTHON_PYOEXTENSION%%
+%%PYTHON_SITELIBDIR%%/dptools/xyz.py
+%%PYTHON_SITELIBDIR%%/dptools/xyz.pyc
+%%PYTHON_SITELIBDIR%%/dptools/xyz.%%PYTHON_PYOEXTENSION%%