parent
9e7c5b3312
commit
f9d350aa7c
1 changed files with 86 additions and 0 deletions
@ -0,0 +1,86 @@ |
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
#
|
||||
# Installer for nwchem
|
||||
# 20210415
|
||||
# Wirawan Purwanto
|
||||
#
|
||||
# CAUTION: This is a GNU makefile.
|
||||
|
||||
NWCHEM_VERSION = 7.0.0
|
||||
INSTALL_ROOT_DIR = /shared/apps/manual/nwchem/7.0.0
|
||||
TOOLCHAIN_COMBO = gcc7.3-openmpi3.1.4
|
||||
BUILD_VARIANT = LINUX64.OPENIB.internalblas
|
||||
DESTDIR = $(INSTALL_ROOT_DIR)/$(TOOLCHAIN_COMBO)/$(BUILD_VARIANT)
|
||||
DATADIR = $(INSTALL_ROOT_DIR)/data
|
||||
|
||||
# FIXME: not same flexibility as above
|
||||
# FIXME: need to build on a dedicated (symlinked) dir
|
||||
# `/shared/apps/manual/nwchem/7.0.0/_BUILD` because one of the functions
|
||||
# in nwchem is not flexible.
|
||||
BUILD_DIR = /scratch/$(USER)/BUILD/nwchem7/$(TOOLCHAIN_COMBO)/prod-nwchem.OPENIB
|
||||
|
||||
|
||||
# commands
|
||||
INSTALL = install -o root -g root
|
||||
INSTALL = install
|
||||
RSYNC = rsync
|
||||
|
||||
|
||||
# Detect if we are running as ROOT
|
||||
ROOT_USER := $(shell if [ "`id -ur`" = 0 ]; then echo yes; else echo no; fi)
|
||||
|
||||
|
||||
# default target
|
||||
all-install all: nwchem-bin nwchem-data |
||||
|
||||
|
||||
# Install instruction:
|
||||
# https://nwchemgit.github.io/Compiling-NWChem.html#general-site-installation
|
||||
|
||||
nwchem-bin: $(DESTDIR)/bin/nwchem |
||||
|
||||
$(DESTDIR)/bin/nwchem: $(BUILD_DIR)/bin/LINUX64/nwchem |
||||
mkdir -p -v $$(dirname "$@")
|
||||
$(INSTALL) -m 755 -p $< $@
|
||||
if [ "x$(ROOT_USER)" = xyes ]; then chown -R root.root $@; fi
|
||||
|
||||
NWCHEM_DATA_FILES = \
|
||||
$(DATADIR) \
|
||||
$(DATADIR)/libraries \
|
||||
$(DATADIR)/libraryps \
|
||||
|
||||
|
||||
nwchem-data: $(NWCHEM_DATA_FILES) |
||||
|
||||
# We have to use rsync because install can't be used to copy
|
||||
# a directory tree.
|
||||
# Args:
|
||||
# $@ = destination directory
|
||||
# $< = source directory
|
||||
#
|
||||
# CAVEAT: By default all regular files will have 644 attr and directories 755.
|
||||
define proc_install_tree |
||||
mkdir -p $@
|
||||
$(RSYNC) -av $</. $@
|
||||
find $@ -type d -exec chmod 755 '{}' \;
|
||||
find $@ -type f -exec chmod 644 '{}' \;
|
||||
if [ "x$(ROOT_USER)" = xyes ]; then chown -R root.root $@; fi
|
||||
endef |
||||
|
||||
$(DATADIR): $(BUILD_DIR)/src/data |
||||
$(proc_install_tree)
|
||||
|
||||
$(DATADIR)/libraries: $(BUILD_DIR)/src/basis/libraries |
||||
$(proc_install_tree)
|
||||
|
||||
$(DATADIR)/libraryps: $(BUILD_DIR)/src/nwpw/libraryps |
||||
$(proc_install_tree)
|
||||
|
||||
# Undocumented. See:
|
||||
# nwpw/pspw/lib/exchange-correlation/vdw-DF/vdw_DF_get_qmesh_filename.F
|
||||
$(DATADIR)/nwpw/xc/vdw-DF/vdw_qmesh.dat: $(BUILD_DIR)/src/nwpw/pspw/lib/exchange-correlation/vdw-DF/vdw_qmesh.dat |
||||
mkdir -p -v $$(dirname "$@")
|
||||
$(INSTALL) -m 644 -p $< $@
|
||||
if [ "x$(ROOT_USER)" = xyes ]; then chown -R root.root $@; fi
|
||||
|
Loading…
Reference in new issue