1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

New port: science/libgridxc: Library to compute the exchange and correlation energy and potentials

This commit is contained in:
Yuri Victorovich 2018-09-04 15:03:13 +00:00
parent f4e334291f
commit ab342e2c5d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=478965
9 changed files with 228 additions and 0 deletions

View File

@ -103,6 +103,7 @@
SUBDIR += libefp
SUBDIR += libgeodecomp
SUBDIR += libghemical
SUBDIR += libgridxc
SUBDIR += libint
SUBDIR += libint2
SUBDIR += libkml

View File

@ -0,0 +1,57 @@
# $FreeBSD$
PORTNAME= libgridxc
DISTVERSION= 0.8.0
CATEGORIES= science
MASTER_SITES= https://launchpad.net/${PORTNAME}/trunk/${DISTVERSION:R}/+download/
MAINTAINER= yuri@FreeBSD.org
COMMENT= Library to compute the exchange and correlation energy and potentials
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/../BSD_LICENSE
USES= fortran gmake tar:tgz
USE_LDCONFIG= yes
MAKEFILE= makefile
ALL_TARGET= default
WRKSRC_SUBDIR= src
BUILD_WRKSRC= ${WRKSRC}/../build
TMP_STAGEDIR= ${WRKDIR}/tmp_stage
MAKE_ENV= INSTALL_DIR=${TMP_STAGEDIR}${PREFIX} FREEBSD_LOCALBASE=${LOCALBASE}
BINARY_ALIAS= make=${GMAKE}
OPTIONS_DEFINE= MPI LIBXC
OPTIONS_DEFAULT= MPI LIBXC
MPI_MAKE_ENV= WITH_MPI=1
MPI_LIB_DEPENDS= libmpich.so:net/mpich2
LIBXC_DESC= Use libxc for exchange-correlation functionals for DFT
LIBXC_MAKE_ENV= WITH_LIBXC=1
LIBXC_LIB_DEPENDS= libxc.so:science/libxc
post-patch:
@${MKDIR} ${BUILD_WRKSRC}
@${CAT} ${WRKSRC}/../extra/fortran.mk \
| ${SED} '\
s|FC_SERIAL=gfortran|&${GCC_DEFAULT}|; \
s|LIBXC_ROOT=/usr/local|LIBXC_ROOT=${LOCALBASE}|; \
s|FFLAGS= -O2|& -fPIC|' \
> ${BUILD_WRKSRC}/fortran.mk
do-configure:
@cd ${BUILD_WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${SH} ../src/config.sh
do-build:
@cd ${BUILD_WRKSRC} && ${MKDIR} ${TMP_STAGEDIR} && ${SETENV} ${MAKE_ENV} ${SH} ../src/build.sh
do-install:
cd ${TMP_STAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}
${MKDIR} ${STAGEDIR}${PREFIX}/share/mk && ${MV} ${STAGEDIR}${PREFIX}/*.mk ${STAGEDIR}${PREFIX}/share/mk
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1536009612
SHA256 (libgridxc-0.8.0.tgz) = 823002baa3e5e18eddef05b2ea55ff08cf9c311dd655dd7147df26a3f7096390
SIZE (libgridxc-0.8.0.tgz) = 222704

View File

@ -0,0 +1,34 @@
--- build.sh.orig 2018-02-01 10:48:08 UTC
+++ build.sh
@@ -39,14 +39,17 @@
# libGridXC installations in the old style.
#
#
-inPREFIX=${PREFIX}
+inPREFIX=${INSTALL_DIR}
#
# Build first without MPI
#
-echo "==> make WITH_LIBXC=${WITH_LIBXC} WITH_MPI= PREFIX=${inPREFIX}/serial"
-sleep 1
-make clean
-make WITH_LIBXC=${WITH_LIBXC} WITH_MPI= PREFIX=${inPREFIX}/serial
+if [ "${WITH_MPI}" = "" ]
+then
+ echo "==> make WITH_LIBXC=${WITH_LIBXC} WITH_MPI= PREFIX=${inPREFIX}/serial"
+ #sleep 1
+ make clean
+ make WITH_LIBXC=${WITH_LIBXC} WITH_MPI= PREFIX=${inPREFIX}/serial
+fi
#
# Install the top-level gridxc.mk
#
@@ -63,7 +66,7 @@ fi
if [ "${WITH_MPI}" != "" ]
then
echo "==> make WITH_LIBXC=${WITH_LIBXC} WITH_MPI=1 PREFIX=${inPREFIX}/mpi"
- sleep 1
+ #sleep 1
make clean
make WITH_LIBXC=${WITH_LIBXC} WITH_MPI=1 PREFIX=${inPREFIX}/mpi
#

View File

@ -0,0 +1,17 @@
--- gridxc.mk.in.orig 2018-02-01 10:48:08 UTC
+++ gridxc.mk.in
@@ -22,7 +22,7 @@ ifeq ($(GRIDXC_USES_LIBXC),1)
$(error you need to define LIBXC_ROOT in your arch.make)
endif
#
- include $(GRIDXC_ROOT)/libxc.mk
+ include $(GRIDXC_ROOT)/share/mk/libxc.mk
#
else
#
@@ -31,4 +31,4 @@ else
endif
#
GRIDXC_INCFLAGS= -I $(GRIDXC_ROOT)/include $(LIBXC_INCFLAGS)
-GRIDXC_LIBS=$(GRIDXC_ROOT)/lib/libGridXC.a $(LIBXC_LIBS)
+GRIDXC_LIBS=$(GRIDXC_ROOT)/lib/libGridXC.so $(LIBXC_LIBS)

View File

@ -0,0 +1,63 @@
--- makefile.orig 2018-02-01 10:48:08 UTC
+++ makefile
@@ -93,15 +93,20 @@ else
MPI_INTERFACE=
endif
+ifdef WITH_LIBXC
+LIBXC=$(FREEBSD_LOCALBASE)/lib/libxc.so
+endif
+
libmpi_f90.a:
@(cd MPI_instr ; $(MAKE) \
"VPATH=$(VPATH)/MPI_instr" )
-libGridXC.a: $(MPI_INTERFACE) $(ALL_OBJS)
- $(AR) $(ARFLAGS_EXTRA) cru libGridXC.a $(ALL_OBJS)
+libGridXC.so: $(MPI_INTERFACE) $(ALL_OBJS)
@if [ ! -z "$(MPI_INTERFACE)" ] ; then \
- $(AR) $(ARFLAGS_EXTRA) cru libGridXC.a MPI_instr/*.o ; fi
- -$(RANLIB) libGridXC.a
+ $(CC) -shared -o libGridXC.so -Wl,-soname,libGridXC.so $(ALL_OBJS) MPI_instr/*.o $(FREEBSD_LOCALBASE)/lib/libmpich.so $(LIBXC); \
+ else \
+ $(CC) -shared -o libGridXC.so -Wl,-soname,libGridXC.so $(ALL_OBJS) $(LIBXC); \
+ fi;
MODULES_TO_INSTALL=gridxc.mod gridxc_config.mod m_atomxc.mod \
m_cellxc.mod xcmod.mod m_ldaxc.mod m_ggaxc.mod \
@@ -126,23 +131,23 @@ setup_mk_file:
endif
endif
-module: setup_mk_file libGridXC.a
+module: setup_mk_file libGridXC.so
@echo "Prefix: $(PREFIX)"
mkdir -p lib
mkdir -p include
cp -p $(MODULES_TO_INSTALL) include/
- cp -p libGridXC.a lib/
+ cp -p libGridXC.so lib/
@if [ "$(PREFIX)" != "$(MAIN_OBJDIR)" ]; then \
- echo "mkdir -p $(GRIDXC_PREFIX)/lib" ; \
- mkdir -p $(GRIDXC_PREFIX)/lib ; \
- echo "mkdir -p $(GRIDXC_PREFIX)/include" ; \
- mkdir -p $(GRIDXC_PREFIX)/include ; \
- echo "cp -p $(MODULES_TO_INSTALL) $(GRIDXC_PREFIX)/include/" ; \
- cp -p $(MODULES_TO_INSTALL) $(GRIDXC_PREFIX)/include/ ; \
- echo "cp -p libGridXC.a $(GRIDXC_PREFIX)/lib" ; \
- cp -p libGridXC.a $(GRIDXC_PREFIX)/lib ; \
- echo "cp -p gridxc.mk libxc.mk $(GRIDXC_PREFIX)" ; \
- cp -p gridxc.mk libxc.mk $(GRIDXC_PREFIX) ; fi
+ echo "mkdir -p $(INSTALL_DIR)/lib" ; \
+ mkdir -p $(INSTALL_DIR)/lib ; \
+ echo "mkdir -p $(INSTALL_DIR)/include" ; \
+ mkdir -p $(INSTALL_DIR)/include ; \
+ echo "cp -p $(MODULES_TO_INSTALL) $(INSTALL_DIR)/include/" ; \
+ cp -p $(MODULES_TO_INSTALL) $(INSTALL_DIR)/include/ ; \
+ echo "cp -p libGridXC.so $(INSTALL_DIR)/lib" ; \
+ cp -p libGridXC.so $(INSTALL_DIR)/lib ; \
+ echo "cp -p gridxc.mk libxc.mk $(INSTALL_DIR)" ; \
+ cp -p gridxc.mk libxc.mk $(INSTALL_DIR) ; fi
clean:
rm -f *.o *.*d *.a gridxc.mk

View File

@ -0,0 +1,33 @@
--- top.gridxc.mk.in.orig 2018-02-01 10:48:08 UTC
+++ top.gridxc.mk.in
@@ -13,8 +13,8 @@ GRIDXC_USES_MPI=0
#
ifeq ($(GRIDXC_USES_MPI),1)
$(info GRIDXC includes MPI support)
- GRIDXC_MPI_INCFLAGS= -I $(GRIDXC_ROOT)/mpi/include $(LIBXC_INCFLAGS)
- GRIDXC_MPI_LIBS=$(GRIDXC_ROOT)/mpi/lib/libGridXC.a $(LIBXC_LIBS)
+ GRIDXC_MPI_INCFLAGS= -I $(GRIDXC_ROOT)/include $(LIBXC_INCFLAGS)
+ GRIDXC_MPI_LIBS=$(GRIDXC_ROOT)/lib/libGridXC.so $(LIBXC_LIBS)
endif
#
ifeq ($(GRIDXC_USES_LIBXC),1)
@@ -24,7 +24,7 @@ ifeq ($(GRIDXC_USES_LIBXC),1)
$(error you need to define LIBXC_ROOT in your arch.make)
endif
#
- include $(GRIDXC_ROOT)/libxc.mk
+ include $(GRIDXC_ROOT)/share/mk/libxc.mk
#
else
#
@@ -32,8 +32,8 @@ else
LIBXC_LIBS=
endif
#
-GRIDXC_SERIAL_INCFLAGS= -I $(GRIDXC_ROOT)/serial/include $(LIBXC_INCFLAGS)
-GRIDXC_SERIAL_LIBS=$(GRIDXC_ROOT)/serial/lib/libGridXC.a $(LIBXC_LIBS)
+GRIDXC_SERIAL_INCFLAGS= -I $(GRIDXC_ROOT)/include $(LIBXC_INCFLAGS)
+GRIDXC_SERIAL_LIBS=$(GRIDXC_ROOT)/lib/libGridXC.so $(LIBXC_LIBS)
#
ifdef WITH_MPI
ifneq ($(GRIDXC_USES_MPI),1)

View File

@ -0,0 +1,7 @@
A library to compute the exchange and correlation energy and potential in
spherical (i.e. an atom) or periodic systems. It is based on SiestaXC.
The project is based on the SiestaXC code, and eventually will produce a package
to be included in the Electronic Structure Library.
WWW: https://launchpad.net/libgridxc

View File

@ -0,0 +1,13 @@
include/debugxc.mod
include/gridxc.mod
include/gridxc_config.mod
include/m_atomxc.mod
include/m_cellxc.mod
include/m_fft_gpfa.mod
include/m_ggaxc.mod
include/m_ldaxc.mod
include/mesh3d.mod
include/xcmod.mod
lib/libGridXC.so
share/mk/gridxc.mk
share/mk/libxc.mk