10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-22 20:35:19 +01:00

Added /home/scemama/quantum_package/scripts/make_binary.sh

make[1]: Entering directory `/home/scemama/quantum_package/src'
cd AOs ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/AOs'
make[3]: Entering directory `/home/scemama/quantum_package/src/AOs'
make[3]: Leaving directory `/home/scemama/quantum_package/src/AOs'
make[2]: Leaving directory `/home/scemama/quantum_package/src/AOs'
cd BiInts ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/BiInts'
make[3]: Entering directory `/home/scemama/quantum_package/src/BiInts'
make[3]: Leaving directory `/home/scemama/quantum_package/src/BiInts'
make[2]: Leaving directory `/home/scemama/quantum_package/src/BiInts'
cd Bitmask ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Bitmask'
make[3]: Entering directory `/home/scemama/quantum_package/src/Bitmask'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Bitmask'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Bitmask'
cd Dets ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Dets'
make[3]: Entering directory `/home/scemama/quantum_package/src/Dets'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Dets'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Dets'
cd Electrons ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Electrons'
make[3]: Entering directory `/home/scemama/quantum_package/src/Electrons'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Electrons'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Electrons'
cd Ezfio_files ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Ezfio_files'
make[3]: Entering directory `/home/scemama/quantum_package/src/Ezfio_files'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Ezfio_files'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Ezfio_files'
cd Full_CI ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Full_CI'
make[3]: Entering directory `/home/scemama/quantum_package/src/Full_CI'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Full_CI'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Full_CI'
cd Generators_full ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Generators_full'
make[3]: Entering directory `/home/scemama/quantum_package/src/Generators_full'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Generators_full'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Generators_full'
cd Hartree_Fock ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[3]: Entering directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Hartree_Fock'
cd MOGuess ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/MOGuess'
make[3]: Entering directory `/home/scemama/quantum_package/src/MOGuess'
make[3]: Leaving directory `/home/scemama/quantum_package/src/MOGuess'
make[2]: Leaving directory `/home/scemama/quantum_package/src/MOGuess'
cd MonoInts ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/MonoInts'
make[3]: Entering directory `/home/scemama/quantum_package/src/MonoInts'
make[3]: Leaving directory `/home/scemama/quantum_package/src/MonoInts'
make[2]: Leaving directory `/home/scemama/quantum_package/src/MonoInts'
cd MOs ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/MOs'
make[3]: Entering directory `/home/scemama/quantum_package/src/MOs'
make[3]: Leaving directory `/home/scemama/quantum_package/src/MOs'
make[2]: Leaving directory `/home/scemama/quantum_package/src/MOs'
cd Nuclei ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Nuclei'
make[3]: Entering directory `/home/scemama/quantum_package/src/Nuclei'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Nuclei'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Nuclei'
cd Output ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Output'
make[3]: Entering directory `/home/scemama/quantum_package/src/Output'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Output'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Output'
cd Selectors_full ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Selectors_full'
make[3]: Entering directory `/home/scemama/quantum_package/src/Selectors_full'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Selectors_full'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Selectors_full'
cd Utils ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Utils'
make[3]: Entering directory `/home/scemama/quantum_package/src/Utils'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Utils'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Utils'
cd Molden ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[2]: Entering directory `/home/scemama/quantum_package/src/Molden'
make[3]: Entering directory `/home/scemama/quantum_package/src/Molden'
make[3]: Leaving directory `/home/scemama/quantum_package/src/Molden'
make[2]: Leaving directory `/home/scemama/quantum_package/src/Molden'
make[1]: Leaving directory `/home/scemama/quantum_package/src'
make[1]: Entering directory `/home/scemama/quantum_package/ocaml'
rm -f -- test_atom
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_atom.byte  -use-ocamlfind
# No parallelism done
ln -s test_atom.byte test_atom
rm -f -- test_basis
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_basis.byte  -use-ocamlfind
# No parallelism done
ln -s test_basis.byte test_basis
rm -f -- test_bitlist
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_bitlist.byte  -use-ocamlfind
# No parallelism done
ln -s test_bitlist.byte test_bitlist
rm -f -- test_determinants
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_determinants.byte  -use-ocamlfind
# No parallelism done
ln -s test_determinants.byte test_determinants
rm -f -- test_elements
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_elements.byte  -use-ocamlfind
# No parallelism done
ln -s test_elements.byte test_elements
rm -f -- test_excitation
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_excitation.byte  -use-ocamlfind
# No parallelism done
ln -s test_excitation.byte test_excitation
rm -f -- test_gto
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_gto.byte  -use-ocamlfind
# No parallelism done
ln -s test_gto.byte test_gto
rm -f -- test_input
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_input.byte  -use-ocamlfind
# No parallelism done
ln -s test_input.byte test_input
rm -f -- test_mo_label
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_mo_label.byte  -use-ocamlfind
# No parallelism done
ln -s test_mo_label.byte test_mo_label
rm -f -- test_molecule
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_molecule.byte  -use-ocamlfind
# No parallelism done
ln -s test_molecule.byte test_molecule
rm -f -- test_point3d
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt test_point3d.byte  -use-ocamlfind
# No parallelism done
ln -s test_point3d.byte test_point3d
make -C /home/scemama/quantum_package/data executables
make[2]: Entering directory `/home/scemama/quantum_package/data'
cd  /home/scemama/quantum_package/src ; make executables
make[3]: Entering directory `/home/scemama/quantum_package/src'
cd AOs ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/AOs'
make[5]: Entering directory `/home/scemama/quantum_package/src/AOs'
make[5]: Leaving directory `/home/scemama/quantum_package/src/AOs'
make[4]: Leaving directory `/home/scemama/quantum_package/src/AOs'
cd BiInts ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/BiInts'
make[5]: Entering directory `/home/scemama/quantum_package/src/BiInts'
make[5]: Leaving directory `/home/scemama/quantum_package/src/BiInts'
make[4]: Leaving directory `/home/scemama/quantum_package/src/BiInts'
cd Bitmask ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Bitmask'
make[5]: Entering directory `/home/scemama/quantum_package/src/Bitmask'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Bitmask'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Bitmask'
cd Dets ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Dets'
make[5]: Entering directory `/home/scemama/quantum_package/src/Dets'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Dets'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Dets'
cd Electrons ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Electrons'
make[5]: Entering directory `/home/scemama/quantum_package/src/Electrons'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Electrons'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Electrons'
cd Ezfio_files ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Ezfio_files'
make[5]: Entering directory `/home/scemama/quantum_package/src/Ezfio_files'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Ezfio_files'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Ezfio_files'
cd Full_CI ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Full_CI'
make[5]: Entering directory `/home/scemama/quantum_package/src/Full_CI'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Full_CI'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Full_CI'
cd Generators_full ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Generators_full'
make[5]: Entering directory `/home/scemama/quantum_package/src/Generators_full'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Generators_full'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Generators_full'
cd Hartree_Fock ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[5]: Entering directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Hartree_Fock'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Hartree_Fock'
cd MOGuess ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/MOGuess'
make[5]: Entering directory `/home/scemama/quantum_package/src/MOGuess'
make[5]: Leaving directory `/home/scemama/quantum_package/src/MOGuess'
make[4]: Leaving directory `/home/scemama/quantum_package/src/MOGuess'
cd MonoInts ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/MonoInts'
make[5]: Entering directory `/home/scemama/quantum_package/src/MonoInts'
make[5]: Leaving directory `/home/scemama/quantum_package/src/MonoInts'
make[4]: Leaving directory `/home/scemama/quantum_package/src/MonoInts'
cd MOs ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/MOs'
make[5]: Entering directory `/home/scemama/quantum_package/src/MOs'
make[5]: Leaving directory `/home/scemama/quantum_package/src/MOs'
make[4]: Leaving directory `/home/scemama/quantum_package/src/MOs'
cd Nuclei ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Nuclei'
make[5]: Entering directory `/home/scemama/quantum_package/src/Nuclei'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Nuclei'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Nuclei'
cd Output ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Output'
make[5]: Entering directory `/home/scemama/quantum_package/src/Output'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Output'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Output'
cd Selectors_full ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Selectors_full'
make[5]: Entering directory `/home/scemama/quantum_package/src/Selectors_full'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Selectors_full'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Selectors_full'
cd Utils ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Utils'
make[5]: Entering directory `/home/scemama/quantum_package/src/Utils'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Utils'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Utils'
cd Molden ; make -j $(cat /proc/cpuinfo | grep MHz | wc -l)
make[4]: Entering directory `/home/scemama/quantum_package/src/Molden'
make[5]: Entering directory `/home/scemama/quantum_package/src/Molden'
make[5]: Leaving directory `/home/scemama/quantum_package/src/Molden'
make[4]: Leaving directory `/home/scemama/quantum_package/src/Molden'
rm -f executables ; \
	for EXE in $(find /home/scemama/quantum_package/src -perm /u+x -type f | grep -e "/home/scemama/quantum_package/src/[^/]*/[^/]*$" |sort ) ; \
	  do printf "%-30s %s\n" $(basename $EXE) $EXE | sed "s|/home/scemama/quantum_package|\$QPACKAGE_ROOT|g" >> executables ;\
	done
make[3]: Leaving directory `/home/scemama/quantum_package/src'
mv /home/scemama/quantum_package/src/executables .
make[2]: Leaving directory `/home/scemama/quantum_package/data'
rm -f -- qp_basis_clean
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_basis_clean.native -use-ocamlfind
# No parallelism done
ln -s qp_basis_clean.native qp_basis_clean
rm -f -- qp_create_ezfio_from_xyz
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_create_ezfio_from_xyz.native -use-ocamlfind
# No parallelism done
ln -s qp_create_ezfio_from_xyz.native qp_create_ezfio_from_xyz
rm -f -- qp_edit
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_edit.native -use-ocamlfind
# No parallelism done
ln -s qp_edit.native qp_edit
rm -f -- qp_print
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_print.native -use-ocamlfind
# No parallelism done
ln -s qp_print.native qp_print
rm -f -- qp_run
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_run.native -use-ocamlfind
# No parallelism done
ln -s qp_run.native qp_run
rm -f -- qp_set_ddci
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_set_ddci.native -use-ocamlfind
# No parallelism done
ln -s qp_set_ddci.native qp_set_ddci
rm -f -- qp_set_mo_class
ocamlbuild -j 0 -syntax camlp4o -cflags "-g -warn-error A" -lflags "-g -warn-error A" -ocamlopt ocamlc.opt qp_set_mo_class.native -use-ocamlfind
# No parallelism done
ln -s qp_set_mo_class.native qp_set_mo_class
make[1]: Leaving directory `/home/scemama/quantum_package/ocaml'
Creating root of static directory
Copying binary files
/home/scemama/quantum_package
Copying dynamic libraries
Copying EMSL_Basis directory
Copying scripts directory
Creating quantum_package.rc
Creating the archive
Done : /home/scemama/quantum_package/quantum_package_static.tar.gz
This commit is contained in:
Anthony Scemama 2015-01-16 00:48:09 +01:00
parent 4a470139d5
commit f6a5e40b6e
5 changed files with 219 additions and 24 deletions

View File

@ -7,7 +7,7 @@ BLUE=
BLACK=(B
.PHONY: doc src curl m4 ocaml irpf90 emsl
.PHONY: doc src curl m4 ocaml irpf90 emsl build binary
default:
@echo -----------------------------------------------
@ -16,6 +16,9 @@ default:
@echo
@echo To compile everything, run
@echo make build
@echo
@echo To compile a binary distribution for export, run
@echo make binary
@echo -----------------------------------------------
ifndef QPACKAGE_ROOT
@ -29,8 +32,8 @@ build:
@echo -----------------------------------------------
else
build:
$(MAKE) -C src
$(MAKE) -C ocaml
$(MAKE) -C src
$(MAKE) -C ocaml
endif
curl: bin/curl
@ -38,6 +41,9 @@ m4: bin/m4
irpf90: bin/irpf90
emsl: EMSL_Basis
binary:
$(QPACKAGE_ROOT)/scripts/make_binary.sh
EZFIO: bin/irpf90
$(info $(BLUE)===== Fetching EZFIO from the web ===== $(BLACK))
@sleep 1

View File

@ -49,6 +49,9 @@ let run ?o b c m xyz_file =
end
in
let temp_filename =
Filename.temp_file "qp_create_" ".basis"
in
let rec build_basis = function
| [] -> ()
| elem_and_basis_name :: rest ->
@ -66,7 +69,8 @@ let run ?o b c m xyz_file =
apply new_accu rest
in
let accu =
Qpackage.root ^ "/scripts/get_basis.sh \"" ^ basis ^"\""
Qpackage.root ^ "/scripts/get_basis.sh \"" ^ temp_filename
^ "\" " ^ basis
in
List.map nuclei ~f:(fun x -> x.Atom.element)
|> apply accu
@ -97,8 +101,8 @@ let run ?o b c m xyz_file =
let key = Element.to_string elem
in
let command =
Qpackage.root ^ "/scripts/get_basis.sh \"" ^ basis ^ "\""
^ " " ^ key
Qpackage.root ^ "/scripts/get_basis.sh \"" ^ temp_filename ^
"\" " ^ basis ^ " " ^ key
in
begin
let filename =

View File

@ -1,6 +1,6 @@
#!/bin/bash
#
# get_basis.sh <basis_name> <atom_list>
# get_basis.sh <temp_file> <basis_name> <atom_list>...
#
# Uses the EMSL_api.py to get the basis set:
# https://github.com/TApplencourt/EMSL_Basis_Set_Exchange_Local
@ -11,6 +11,8 @@
export EMSL_API_ROOT="${QPACKAGE_ROOT}"/EMSL_Basis/
export PYTHONPATH="${EMSL_API_ROOT}":${PYTHONPATH}
tmpfile="$1"
shift
basis="$1"
shift
atoms=""
@ -20,7 +22,6 @@ do
atoms+="--atom ${atom} "
done
tmpfile=$(tempfile)
if [[ $? -ne 0 ]]
then
echo "==================================================" 1>& 2

184
scripts/make_binary.sh Executable file
View File

@ -0,0 +1,184 @@
#!/bin/bash
#
# Creates a self-contained binary distribution in the form of a tar.gz file
#
# Tue Jan 13 14:06:25 CET 2015
#
# Check the QPACKAGE_ROOT directory
if [[ -z ${QPACKAGE_ROOT} ]]
then
echo "The QPACKAGE_ROOT environment variable is not set."
echo "Please reload the quantum_package.rc file."
exit 1
fi
cd ${QPACKAGE_ROOT}
if [[ -f quantum_package.rc \
&& -f README.md \
&& -d src \
&& -d bin \
&& -d ocaml \
&& -d scripts ]]
then
head -1 README.md | grep "Quantum package" > /dev/null
if [[ $? -ne 0 ]]
then
echo "This doesn't look like a quantum_package directory (README.md)"
exit 1
fi
else
echo "This doesn't look like a quantum_package directory"
exit 1
fi
# Build all sources
for dir in ${QPACKAGE_ROOT}/{src,ocaml}
do
make -C ${dir}
if [[ $? -ne 0 ]]
then
echo "Error building ${dir}"
fi
done
# Copy the files in the static directory
QPACKAGE_STATIC=${QPACKAGE_ROOT}/quantum_package_static
function find_libs ()
{
for i in $@
do
ldd $i
done | sort | grep '/' | cut -d ' ' -f 3 | uniq
}
function find_exec ()
{
find ${QPACKAGE_ROOT}/$1 -perm /u+x -type f
}
#
echo "Creating root of static directory"
# ---------------------------------
rm -rf -- ${QPACKAGE_STATIC}
mkdir -p -- ${QPACKAGE_STATIC}/{bin,lib,data}
if [[ $? -ne 0 ]] ;
then
echo "Error creating ${QPACKAGE_STATIC}/{bin,lib,data,scripts}"
exit 1
fi
#
echo "Copying binary files"
# --------------------
FORTRAN_EXEC=$(find_exec src)
if [[ -z $FORTRAN_EXEC ]] ;
then
echo 'Error : No Fortran binaries found.'
exit 1
fi
OCAML_EXEC=$(find_exec ocaml | grep .native )
if [[ -z $OCAML_EXEC ]] ;
then
echo 'Error : No ocaml binaries found.'
exit 1
fi
cp -- ${FORTRAN_EXEC} ${OCAML_EXEC} ${QPACKAGE_STATIC}/bin
if [[ $? -ne 0 ]] ;
then
echo 'cp -- ${FORTRAN_EXEC} ${OCAML_EXEC} ${QPACKAGE_STATIC}/bin'
exit 1
fi
cd ${QPACKAGE_STATIC}/bin
for i in *.native
do
mv "$i" $(basename "$i" .native)
done
cd -
for i in ${FORTRAN_EXEC}
do
i=$(basename $i)
echo $i \$QPACKAGE_ROOT/bin/$i
done >> ${QPACKAGE_STATIC}/data/executables
#
echo "Copying dynamic libraries"
# --------------------------
MKL_LIBS=$(find_libs ${FORTRAN_EXEC} | grep libmkl | head -1)
MKL_LIBS=$(dirname ${MKL_LIBS})
MKL_LIBS=$(ls ${MKL_LIBS}/libmkl_{def,avx,avx2}.so)
ALL_LIBS=$(find_libs ${OCAML_EXEC} ${FORTRAN_EXEC})
cp -- ${ALL_LIBS} ${MKL_LIBS} ${QPACKAGE_STATIC}/lib
if [[ $? -ne 0 ]] ;
then
echo 'cp -- ${ALL_LIBS} ${MKL_LIBS} ${QPACKAGE_STATIC}/lib'
exit 1
fi
#
echo "Copying EMSL_Basis directory"
# ----------------------------
cp -r -- ${QPACKAGE_ROOT}/EMSL_Basis ${QPACKAGE_STATIC}/
if [[ $? -ne 0 ]] ;
then
echo 'cp -r -- ${QPACKAGE_ROOT}/EMSL_Basis ${QPACKAGE_STATIC}/'
exit 1
fi
#
echo "Copying scripts directory"
# -------------------------
cp -r -- ${QPACKAGE_ROOT}/scripts ${QPACKAGE_STATIC}/
if [[ $? -ne 0 ]] ;
then
echo 'cp -r -- ${QPACKAGE_ROOT}/scripts ${QPACKAGE_STATIC}/'
exit 1
fi
#
echo "Creating quantum_package.rc"
# ---------------------------
cat << EOF > ${QPACKAGE_STATIC}/quantum_package.rc
export QPACKAGE_ROOT=\$( cd \$(dirname "\${BASH_SOURCE}") ; pwd -P )
export LD_LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LD_LIBRARY_PATH}
export LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LIBRARY_PATH}
export PYTHONPATH="\${QPACKAGE_ROOT}"/scripts:\${PYTHONPATH}
export PATH="\${QPACKAGE_ROOT}"/scripts:\${PATH}
export PATH="\${QPACKAGE_ROOT}"/bin:\${PATH}
export PATH="\${QPACKAGE_ROOT}"/ocaml:\${PATH}
EOF
#exit 0
#
echo "Creating the archive"
# --------------------
tar -zcf "${QPACKAGE_STATIC}".tar.gz quantum_package_static && rm -rf -- "${QPACKAGE_STATIC}"
if [[ $? -ne 0 ]] ;
then
echo 'tar -zcf "${QPACKAGE_STATIC}".tar.gz "${QPACKAGE_STATIC}" && rm -rf -- "${QPACKAGE_STATIC}"'
exit 1
fi
echo "Done : ${QPACKAGE_STATIC}.tar.gz"

View File

@ -8,13 +8,14 @@ BLUE=""
RED=""
BLACK="(B"
QPACKAGE_ROOT=${PWD}
QPACKAGE_ROOT="$( cd "$(dirname "$BASH_SOURCE")" ; pwd -P )"
if [[ -z ${IRPF90} ]] ;
if [[ -z "${IRPF90}" ]] ;
then
make irpf90
IRPF90=${QPACKAGE_ROOT}/bin/irpf90
if [[ ! -x ${IRPF90} ]]
IRPF90="${QPACKAGE_ROOT}"/bin/irpf90
if [[ ! -x "${IRPF90}" ]]
then
echo $RED "Error in IRPF90 installation" $BLACK
exit 1
@ -28,18 +29,17 @@ then
fi
cat << EOF > quantum_package.rc
export IRPF90=${IRPF90}
export OCAMLBREW_BASE=${OCAMLBREW_BASE}
export QPACKAGE_ROOT=${QPACKAGE_ROOT}
export LD_LIBRARY_PATH="\${QPACKAGE_ROOT}/lib":\${LD_LIBRARY_PATH}
export LIBRARY_PATH="\${QPACKAGE_ROOT}/lib":\${LIBRARY_PATH}
export C_INCLUDE_PATH=\${QPACKAGE_ROOT}/include:\${C_INCLUDE_PATH}
export PYTHONPATH=\${PYTHONPATH}:\${QPACKAGE_ROOT}/scripts
export PATH=\${PATH}:\${QPACKAGE_ROOT}/scripts
export PATH=\${PATH}:\${QPACKAGE_ROOT}/bin
export PATH=\${PATH}:\${QPACKAGE_ROOT}/ocaml
export QPACKAGE_CACHE_URL="http://qmcchem.ups-tlse.fr/files/scemama/quantum_package/cache"
source "\${QPACKAGE_ROOT}/bin/irpman" &> /dev/null
export IRPF90="${IRPF90}"
export OCAMLBREW_BASE="${OCAMLBREW_BASE}"
export QPACKAGE_ROOT=\$( cd \$(dirname "\${BASH_SOURCE}") ; pwd -P )
export LD_LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LD_LIBRARY_PATH}
export LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LIBRARY_PATH}
export C_INCLUDE_PATH="\${QPACKAGE_ROOT}"/include:\${C_INCLUDE_PATH}
export PYTHONPATH=\${PYTHONPATH}:"\${QPACKAGE_ROOT}"/scripts
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/scripts
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/bin
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/ocaml
source "\${QPACKAGE_ROOT}"/bin/irpman" &> /dev/null
source "\${OCAMLBREW_BASE}"/ocaml-4*/etc/ocamlbrew.bashrc &> /dev/null
EOF