Skip to content

Commit

Permalink
Toolchain: Split into stages to simplify Dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
oschuett committed Jan 24, 2021
1 parent e3b7457 commit 8a5b25a
Show file tree
Hide file tree
Showing 48 changed files with 159 additions and 268 deletions.
110 changes: 19 additions & 91 deletions tools/toolchain/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ COPY ./scripts/VERSION \
./scripts/tool_kit.sh \
./scripts/common_vars.sh \
./scripts/signal_trap.sh \
./scripts/get_openblas_arch.sh \
./scripts/

# Dry-run leaves behind config files for the followup install scripts.
Expand All @@ -34,105 +35,32 @@ RUN ./install_cp2k_toolchain.sh \
--libint-lmax=${LIBINT_LMAX} \
--dry-run

COPY ./scripts/install_gcc.sh \
./scripts/get_openblas_arch.sh \
./scripts/setup_buildtools.sh \
./scripts/openblas-0.3.6-disable-avx512.patch \
./scripts/
COPY ./scripts/files/gcc-10.2.0-cpp-__has_include.patch \
./scripts/files/
RUN ./scripts/install_gcc.sh && \
./scripts/setup_buildtools.sh && \
rm -rf ./build

COPY ./scripts/install_cmake.sh ./scripts/
RUN ./scripts/install_cmake.sh && rm -rf ./build

COPY ./scripts/install_mpich.sh \
./scripts/install_openmpi.sh \
./scripts/install_intelmpi.sh \
./scripts/
RUN ./scripts/install_openmpi.sh && \
./scripts/install_mpich.sh && \
./scripts/install_intelmpi.sh && \
rm -rf ./build

COPY ./scripts/install_valgrind.sh ./scripts/
RUN ./scripts/install_valgrind.sh && rm -rf ./build

COPY ./scripts/install_reflapack.sh \
./scripts/install_mkl.sh \
./scripts/install_acml.sh \
./scripts/install_openblas.sh \
./scripts/install_mathlibs.sh \
./scripts/
RUN ./scripts/install_mathlibs.sh && rm -rf ./build
COPY ./scripts/stage0/ ./scripts/stage0/
RUN ./scripts/stage0/install_stage0.sh && rm -rf ./build

COPY ./scripts/install_fftw.sh ./scripts/
RUN ./scripts/install_fftw.sh && rm -rf ./build
COPY ./scripts/stage1/ ./scripts/stage1/
RUN ./scripts/stage1/install_stage1.sh && rm -rf ./build

COPY ./scripts/install_libint.sh ./scripts/
RUN ./scripts/install_libint.sh && rm -rf ./build
COPY ./scripts/stage2/ ./scripts/stage2/
RUN ./scripts/stage2/install_stage2.sh && rm -rf ./build

COPY ./scripts/install_libxc.sh ./scripts/
RUN ./scripts/install_libxc.sh && rm -rf ./build
COPY ./scripts/stage3/ ./scripts/stage3/
RUN ./scripts/stage3/install_stage3.sh && rm -rf ./build

COPY ./scripts/install_libsmm.sh \
./scripts/install_libxsmm.sh \
./scripts/install_scalapack.sh \
./scripts/install_cosma.sh \
./scripts/
COPY ./scripts/files/scalapack-2.1.0-gcc10.patch \
./scripts/files/
RUN ./scripts/install_libsmm.sh && \
./scripts/install_libxsmm.sh && \
./scripts/install_scalapack.sh && \
./scripts/install_cosma.sh && \
rm -rf ./build

COPY ./scripts/install_elpa.sh ./scripts/
COPY ./scripts/files/elpa-2020.05.001-no-LDFLAGS-for-NVCC-compile.patch \
./scripts/files/
RUN ./scripts/install_elpa.sh && rm -rf ./build

COPY ./scripts/install_ptscotch.sh \
./scripts/install_superlu.sh \
./scripts/install_pexsi.sh \
./scripts/
RUN ./scripts/install_ptscotch.sh && \
./scripts/install_superlu.sh && \
./scripts/install_pexsi.sh && \
rm -rf ./build
COPY ./scripts/stage4/ ./scripts/stage4/
RUN ./scripts/stage4/install_stage4.sh && rm -rf ./build

COPY ./scripts/install_quip.sh \
./scripts/install_plumed.sh \
./scripts/
RUN ./scripts/install_quip.sh && \
./scripts/install_plumed.sh && \
rm -rf ./build
COPY ./scripts/stage5/ ./scripts/stage5/
RUN ./scripts/stage5/install_stage5.sh && rm -rf ./build

COPY ./scripts/install_gsl.sh \
./scripts/install_hdf5.sh \
./scripts/
RUN ./scripts/install_gsl.sh && \
./scripts/install_hdf5.sh && \
rm -rf ./build
COPY ./scripts/stage6/ ./scripts/stage6/
RUN ./scripts/stage6/install_stage6.sh && rm -rf ./build

COPY ./scripts/install_libvdwxc.sh \
./scripts/install_spglib.sh \
./scripts/install_libvori.sh \
./scripts/
RUN ./scripts/install_libvdwxc.sh && \
./scripts/install_spglib.sh && \
./scripts/install_libvori.sh && \
rm -rf ./build
COPY ./scripts/stage7/ ./scripts/stage7/
RUN ./scripts/stage7/install_stage7.sh && rm -rf ./build

COPY ./scripts/install_spfft.sh \
./scripts/install_sirius.sh \
./scripts/
RUN ./scripts/install_spfft.sh && \
./scripts/install_sirius.sh && \
rm -rf ./build
COPY ./scripts/stage8/ ./scripts/stage8/
RUN ./scripts/stage8/install_stage8.sh && rm -rf ./build

COPY ./scripts/arch_base.tmpl \
./scripts/generate_arch_files.sh \
Expand Down
38 changes: 10 additions & 28 deletions tools/toolchain/install_cp2k_toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -909,34 +909,16 @@ done
if [ "$dry_run" == "__TRUE__" ] ; then
echo "Wrote only configuration files (--dry-run)."
else
./scripts/install_gcc.sh
./scripts/setup_buildtools.sh
./scripts/install_cmake.sh
./scripts/install_mpich.sh
./scripts/install_openmpi.sh
./scripts/install_intelmpi.sh
./scripts/install_valgrind.sh
./scripts/install_mathlibs.sh
./scripts/install_fftw.sh
./scripts/install_libint.sh
./scripts/install_libxc.sh
./scripts/install_libsmm.sh
./scripts/install_libxsmm.sh
./scripts/install_scalapack.sh
./scripts/install_cosma.sh
./scripts/install_elpa.sh
./scripts/install_ptscotch.sh
./scripts/install_superlu.sh
./scripts/install_pexsi.sh
./scripts/install_quip.sh
./scripts/install_gsl.sh
./scripts/install_plumed.sh
./scripts/install_hdf5.sh
./scripts/install_libvdwxc.sh
./scripts/install_spglib.sh
./scripts/install_libvori.sh
./scripts/install_spfft.sh
./scripts/install_sirius.sh
./scripts/stage0/install_stage0.sh
./scripts/stage1/install_stage1.sh
./scripts/stage2/install_stage2.sh
./scripts/stage3/install_stage3.sh
./scripts/stage4/install_stage4.sh
./scripts/stage5/install_stage5.sh
./scripts/stage6/install_stage6.sh
./scripts/stage7/install_stage7.sh
./scripts/stage8/install_stage8.sh
# Stage 9 is reserved for DBCSR.
./scripts/generate_arch_files.sh
fi

Expand Down
69 changes: 0 additions & 69 deletions tools/toolchain/scripts/files/libxc-4.3.0-fix-fortran-iface.patch

This file was deleted.

14 changes: 0 additions & 14 deletions tools/toolchain/scripts/openblas-0.3.6-disable-avx512.patch

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

cmake_ver="3.18.5"
cmake_sha256="080bf24b0f73f4bf3ec368d2be1aa59369b9bb1cd693deeb6f18fe553ca74ab4"
Expand Down Expand Up @@ -45,7 +45,7 @@ case "$with_cmake" in
make -j $NPROCS > make.log 2>&1
make install > install.log 2>&1
cd ..
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage0/$(basename ${SCRIPT_NAME})"
fi
;;
__SYSTEM__)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

gcc_ver="10.2.0"
gcc_sha256="27e879dccc639cd7b0cc08ed575c1669492579529b53c9ff27b0b96265fa867d"

patches=(
"${SCRIPT_DIR}/files/gcc-${gcc_ver}-cpp-__has_include.patch"
"${SCRIPT_DIR}/stage0/gcc-${gcc_ver}-cpp-__has_include.patch"
)

source "${SCRIPT_DIR}"/common_vars.sh
Expand Down Expand Up @@ -97,7 +97,7 @@ case "$with_gcc" in
cd $GCCROOT/obj/
fi
cd ../..
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage0/$(basename ${SCRIPT_NAME})"
fi
GCC_CFLAGS="-I'${pkg_install_dir}/include'"
GCC_LDFLAGS="-L'${pkg_install_dir}/lib64' -L'${pkg_install_dir}/lib' -Wl,-rpath='${pkg_install_dir}/lib64' -Wl,-rpath='${pkg_install_dir}/lib64'"
Expand Down
7 changes: 7 additions & 0 deletions tools/toolchain/scripts/stage0/install_stage0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash -e

./scripts/stage0/install_gcc.sh
./scripts/stage0/setup_buildtools.sh
./scripts/stage0/install_cmake.sh

#EOF
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash -e

[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "${SCRIPT_NAME}")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "${SCRIPT_NAME}")/.." && pwd -P)"

source "${SCRIPT_DIR}"/common_vars.sh
source "${SCRIPT_DIR}"/tool_kit.sh
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

source "${SCRIPT_DIR}"/common_vars.sh
source "${SCRIPT_DIR}"/tool_kit.sh
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

mpich_ver="3.3.2"
mpich_sha256="4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9"
Expand Down Expand Up @@ -49,7 +49,7 @@ case "$with_mpich" in
make -j $NPROCS > make.log 2>&1
make install > install.log 2>&1
cd ..
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage1/$(basename ${SCRIPT_NAME})"
fi
MPICH_CFLAGS="-I'${pkg_install_dir}/include'"
MPICH_LDFLAGS="-L'${pkg_install_dir}/lib' -Wl,-rpath='${pkg_install_dir}/lib'"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

openmpi_ver="4.0.5"
openmpi_sha256="572e777441fd47d7f06f1b8a166e7f44b8ea01b8b2e79d1e299d509725d1bd05"
Expand Down Expand Up @@ -54,7 +54,7 @@ case "$with_openmpi" in
make -j $NPROCS > make.log 2>&1
make -j $NPROCS install > install.log 2>&1
cd ..
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage1/$(basename ${SCRIPT_NAME})"
fi
OPENMPI_CFLAGS="-I'${pkg_install_dir}/include'"
OPENMPI_LDFLAGS="-L'${pkg_install_dir}/lib' -Wl,-rpath='${pkg_install_dir}/lib'"
Expand Down
8 changes: 8 additions & 0 deletions tools/toolchain/scripts/stage1/install_stage1.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash -e

./scripts/stage1/install_mpich.sh
./scripts/stage1/install_openmpi.sh
./scripts/stage1/install_intelmpi.sh
./scripts/stage1/install_valgrind.sh

#EOF
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

valgrind_ver="3.16.1"
valgrind_sha256="c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca"
Expand Down Expand Up @@ -37,7 +37,7 @@ case "$with_valgrind" in
make -j $NPROCS > make.log 2>&1
make -j $NPROCS install > install.log 2>&1
cd ..
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage1/$(basename ${SCRIPT_NAME})"
fi
;;
__SYSTEM__)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"

source "${SCRIPT_DIR}"/common_vars.sh
source "${SCRIPT_DIR}"/tool_kit.sh
Expand Down

0 comments on commit 8a5b25a

Please sign in to comment.