diff --git a/src/resources/help/en_US/relnotes3.4.1.html b/src/resources/help/en_US/relnotes3.4.1.html index c770df6b90c..647c471b041 100644 --- a/src/resources/help/en_US/relnotes3.4.1.html +++ b/src/resources/help/en_US/relnotes3.4.1.html @@ -15,6 +15,7 @@ @@ -38,6 +39,7 @@
  • Several bugs were fixed in UNV plugin including fixing normals for quads.
  • Fixed a problem with global node ids on point meshes from Silo plugin.
  • Fixed a bug in the Wavefront OBJ Writer that caused zonal variables saved out using the writer to have some incorrect colors in downstream tools such as PowerPoint.
  • +
  • Fixed srun launch issues on LLNL TOSS4 systems.
  • @@ -55,10 +57,115 @@
  • VisIt's CLI has a new GetLastMessage() function that returns the last message that VisIt issued, regardless of its type.
  • GetPlotInformation() can now contain entries for multiple-curves when Query-over-time is performed on multiple variables. For example, if a pick-through-time was performed for variables 'u' and 'v', the curve for 'v' would be retrieved via 'GetPlotInformation()['Curves']['v']. Single variable results will still be retrieved via 'GetPlotInformation()['Curve'].
  • A number of improvements were made to the UNV plugin including quadric elements, support for antique SDRC/I-Deas files prior to Master Series (versions 4,5 and 6), GMSH hidden polygon linear element.
  • -
  • The Docker files for Debian 10,11,12, Fedora 31, Ubuntu 18, 20,22 have all been updated for this release. All but Unbuntu18 build Qt 6.
  • - +
  • The Docker files for Debian 10,11,12, Fedora 31, Ubuntu 18, 20,22 have all been updated for this release. All but Ubuntu 18 build Qt 6.
  • +
  • Updated LLNL host profiles for new systems
  • +
  • Ported VisIt to LANL's Crossroads (XR) System
  • +
  • Refactored VisIt's CMake Python logic to use pip instead of distutils.
  • +
  • Updated VisIt to use Python 3.9.
  • + +

    Third-party Libraries used for version 3.4.1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    adios2-2.10.0-rc1
    adios-1.13.1
    AdvIO-1.2
    c-blosc2-2.11.3
    boost_1_67_0
    ccse-1.3.5
    cfe-6.0.1.src
    llvm-6.0.1.src
    cfitsio3006
    CGNS-4.1.0
    cmake-3.24.3
    conduit-v0.9.1
    embree-3.2.0.x86_64.macosx
    FMS-0.2
    gdal-2.2.4
    glu-9.0.0
    H5Part-1.6.6
    hdf5-1.8.14
    icet-master-77c708f9090236b576669b74c53e9f105eedbd7e
    ilmbase-2.2.0
    ispc-v1.9.2-osx
    mdsplus-5.0
    mesa-17.3.9
    mfem-4.6
    mili-23.02
    moab-5.5.0
    mpich-3.3.1
    nektar-5.0.0
    netcdf-4.1.1
    openexr-2.2.0
    mesa-17.3.9
    ospray-3.0.0
    PIDX-0.9.3
    Qt6
    qtbase-everywhere-src-6.4.2
    qtsvg-everywhere-src-6.4.2
    qttools-everywhere-src-6.4.2
    qwt-git-d3706f6e7f0351d278be2d989a4caaf92b399bbd
    -
    Qt5
    qt-everywhere-src-5.14.2
    qwt-6.1.2.tar.bz2
    -
    silo-4.10.2
    stripack-ACM.RJRenka.Sep97
    szip-2.1
    tbb2018_20171205oss_mac
    Uintah-2.6.2
    VTK-9.2.6
    vtk-m-v1.9.0
    Xdmf-2.1.1
    zlib-1.2.13
    Python
    Python-3.9.18
    alabaster-0.7.13
    Babel-2.12.1
    calver-2022.6.26
    certifi-2023.5.7
    charset-normalizer-3.2.0
    Cython-3.0.0
    docutils-0.18.1
    editables-0.5
    flit_core-3.9.0
    hatchling-1.18.0
    idna-3.4
    imagesize-1.4.1
    importlib_metadata-6.8.0
    Jinja2-3.1.2
    MarkupSafe-2.1.3
    mpi4py-3.1.4
    numpy-1.25.1
    packaging-23.1
    pathspec-0.11.2
    Pillow-10.0.0
    pluggy-1.2.0
    Pygments-2.15.1
    pyside-setup-5.14.2
    requests-2.31.0
    setuptools-68.0.0
    snowballstemmer-2.2.0
    sphinxcontrib-applehelp-1.0.4
    sphinxcontrib-devhelp-1.0.2
    sphinxcontrib-htmlhelp-2.0.1
    sphinxcontrib-jquery-4.1
    sphinxcontrib-jsmath-1.0.1
    sphinxcontrib-qthelp-1.0.3
    sphinxcontrib-serializinghtml-1.1.5
    Sphinx-7.0.1
    sphinx_rtd_theme-1.2.2
    sphinx-tabs-3.4.1
    tomli-2.0.1
    toml-0.10.2
    trove-classifiers-2023.8.7
    urllib3-2.0.3
    wheel-0.41.1
    zipp-3.16.2
    -
    +

    Click the following link to view the release notes for the previous version of VisIt: 3.4.0.

    diff --git a/src/resources/help/en_US/relnotes3.4.2.html b/src/resources/help/en_US/relnotes3.4.2.html new file mode 100644 index 00000000000..8337e76b111 --- /dev/null +++ b/src/resources/help/en_US/relnotes3.4.2.html @@ -0,0 +1,46 @@ + + + + + + VisIt 3.4.2 Release Notes + + + +
    VisIt 3.4.2 Release Notes
    + +

    Welcome to VisIt's release notes page. This page describes the important +enhancements and bug-fixes that were added to this release.

    + +

    Sections

    + + + +

    Bugs fixed in version 3.4.2

    + + + +

    Enhancements in version 3.4.2

    + + + +

    Changes for VisIt developers in version 3.4.2

    + + +

    Click the following link to view the release notes for the previous version +of VisIt: 3.4.1.

    + + diff --git a/src/tools/dev/scripts/alastor_cron_script b/src/tools/dev/scripts/alastor_cron_script deleted file mode 100755 index 9637e56a3a3..00000000000 --- a/src/tools/dev/scripts/alastor_cron_script +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Change directories to the working directory. -cd visit_run_tests - -# Get the latest version of the scripts -rm -rf svn_bin -svn co svn+ssh://brugger@cori.nersc.gov/project/projectdirs/visit/svn/visit/trunk/src/svn_bin -cd svn_bin - -# Run the test suite. -./regressiontest_alastor diff --git a/src/tools/dev/scripts/alastor_crontab b/src/tools/dev/scripts/alastor_crontab deleted file mode 100644 index 5ba9ebc21c1..00000000000 --- a/src/tools/dev/scripts/alastor_crontab +++ /dev/null @@ -1,7 +0,0 @@ -# use /bin/sh to run commands, no matter what /etc/passwd says -SHELL=/bin/sh -# mail any output to 'brugger1@llnl.gov', no matter whose crontab this is -MAILTO=brugger1@llnl.gov -# -# run at 10:00 PM, every day -0 22 * * * $HOME/visit_run_tests/alastor_cron_script >> $HOME/visit_run_tests/out 2>&1 diff --git a/src/tools/dev/scripts/build_visit b/src/tools/dev/scripts/build_visit index 6facea311a4..10bb5ccd4cd 100755 --- a/src/tools/dev/scripts/build_visit +++ b/src/tools/dev/scripts/build_visit @@ -30,17 +30,17 @@ export VISIT_VERSION=${VISIT_VERSION:-"3.4.1"} ### # RC Branch: ### -export TRUNK_BUILD="no" -export RC_BUILD="yes" -export TAGGED_BUILD="no" +# export TRUNK_BUILD="no" +# export RC_BUILD="yes" +# export TAGGED_BUILD="no" ### # Tagged Release: ### -#export TRUNK_BUILD="no" -#export RC_BUILD="no" -#export TAGGED_BUILD="yes" +export TRUNK_BUILD="no" +export RC_BUILD="no" +export TAGGED_BUILD="yes" export INITIAL_PWD=$PWD diff --git a/src/tools/dev/scripts/build_visit_BGQ b/src/tools/dev/scripts/build_visit_BGQ deleted file mode 100755 index 715636580ea..00000000000 --- a/src/tools/dev/scripts/build_visit_BGQ +++ /dev/null @@ -1,1096 +0,0 @@ -#!/bin/bash - -VISIT_VERSION="2.12.0" - -################################################################################ -## DEFAULT VALUES FOR VARIABLES -################################################################################ - -# Global variables -ARCH=linux-ppc64_gcc-4.4 -PREFIXARCH=linux-ppc64-BGQ -PREFIX="$PWD/$PREFIXARCH" - -BG_CC=bgxlc_r -BG_C_OPT_FLAGS="-qarch=qp -qtune=qp" -BG_CXX=bgxlC_r -BG_CXX_OPT_FLAGS="-qarch=qp -qtune=qp" - -# Compiler used for Mesa. -BG_GNU_CC=powerpc64-bgq-linux-gcc -BG_GNU_CXX=powerpc64-bgq-linux-g++ - -BG_MPI_GNU_CC=mpicc # not used -BG_MPI_GNU_CXX=mpicxx - -BG_MPI_CC=mpixlc_r -BG_MPI_C_OPT_FLAGS="-qarch=qp -qtune=qp" -BG_MPI_CXX=mpixlcxx_r -BG_MPI_CXX_OPT_FLAGS="-qarch=qp -qtune=qp" - -BUILD_MODE="Release" -CC=gcc -C_OPT_FLAGS="" -CXX=g++ -CXX_OPT_FLAGS="" -EXTRA_ARGS="" -GROUP="bdiv" -INSTALLATION_BUILD_DIR="builds_static" -IO_PACKAGES="--szip --hdf5 --silo" -VISIT_SELECTED_DATABASE_PLUGINS="BOV;Cale;CaleHDF5;Curve2D;EnSight;Miranda;PDB;PlainText;SAMRAI;Silo;VTK" -MAKE=make -MAKE_OPT_FLAGS="" -NO_VISIT="" -DO_SVN="" -DO_SVN_ANON="" -SVN="" -TAR=tar -THIRD_PARTY_PATH="`pwd`/thirdparty_static" -TARBALL="--tarball visit${VISIT_VERSION}.tar.gz" - -export CMAKE_VERSION=3.0.2 -export CMAKE_SHORT_VERSION=3.0 - -export MESA_FILE=${MESA_FILE:-"MesaLib-7.8.2.tar.gz"} -export MESA_VERSION=${MESA_VERSION:-"7.8.2"} -export MESA_BUILD_DIR=${MESA_BUILD_DIR:-"Mesa-7.8.2"} -export MESA_URL="http://visit.ilight.com/svn/visit/trunk/third_party" - -export ZLIB_FILE=${ZLIB_FILE:-"zlib-1.2.8.tar.gz"} -export ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"} -export ZLIB_BUILD_DIR=${ZLIB_BUILD_DIR:-"zlib-1.2.8"} -export ZLIB_URL="http://zlib.net/" - -export VTK_VERSION="6.1.0" - -################################################################################ -## CODE BORROWED FROM build_visit -################################################################################ - -#First step download the support directory from svn repository.. -bv_PATH=`dirname $0` - -bv_PREFIX=$bv_PATH/bv_support/ - -function configure_support_files -{ - if [ ! -d $bv_PREFIX ]; then - #check current directory - bv_PREFIX=$PWD/bv_support/ - - if [ ! -d $bv_PREFIX ]; then - - for choice in `echo "curl wget svn"` - do - echo "Trying to fetch support files using: $choice" - - #if choice successful then exit, else try next.. - webaddr="http://visit.ilight.com/svn/visit/trunk/src/svn_bin/bv_support/" - tmp_choice=`which $choice` - - if [ $? != 0 ]; then - continue - fi - if [[ $choice == "curl" ]]; then - tmp_curl=`curl -s ${webaddr}/ | grep 'sh\|xml' | grep li|sed s/.*bv_/bv_/g | sed -e s/\.sh.*/\.sh/g | sed -e s/.*href\=\"//g;` - - if [ $? != 0 ]; then - continue - fi - - mkdir -p bv_support_tmp - is_successful=1 - #fetch each file.. - for curl_files in `echo $tmp_curl` - do - curl -s ${webaddr}/${curl_files} -o bv_support_tmp/$curl_files - if [ $? != 0 ]; then - is_successful=0 - break - fi - done - - #if not successful cleanup and try next option.. - if [ $is_successful == 0 ]; then - rm -fR bv_support_tmp - else - mv bv_support_tmp bv_support - fi - elif [[ $choice == "wget" ]]; then - wget -r -nH --cut-dirs=5 --no-parent --reject="index.html" -q ${webaddr} - else - svn co ${webaddr} bv_support - fi - - if [ ! -d $bv_PREFIX ]; then - echo "$choice failed to retrieve support files" - else - echo "Success. downloaded support, continuing" - break - fi - done - fi - - if [ ! -d $bv_PREFIX ]; then - echo "Failed to detect or fetch support files, Quitting..." - exit 2 - fi - fi -} - -#configure the support files if needed.. -configure_support_files - -#import initialize and run functions.. -. $bv_PREFIX/bv_main.sh - -#import helper functions.. -. $bv_PREFIX/helper_funcs.sh - -function banner -{ - echo "====================================================================================" - echo "$1" - echo "====================================================================================" - - return 0 -} - -################################################################################ -## build_mesa_BGQ -################################################################################ - -function build_mesa_BGQ -{ - PF=$THIRD_PARTY_PATH/mesa/$MESA_VERSION/${ARCH}_BGQ - - # - # Test whether Mesa has already been installed. - # - if test -d $PF ; then - return 0 - fi - - # - # Download file if needed - # - if ! test -e $MESA_FILE ; then - download_file $MESA_FILE $MESA_URL - if [[ $? == 1 ]] ; then - warn "Unable to download Mesa sources $MESA_FILE. Giving Up!" - return 1 - fi - fi - - # - # prepare build dir - # - prepare_build_dir $MESA_BUILD_DIR $MESA_FILE - untarred_mesa=$? - - if [[ $untarred_mesa == -1 ]] ; then - warn "Unable to prepare Mesa build directory. Giving Up!" - return 1 - fi - - if test -e $MESA_BUILD_DIR ; then - echo "Moving $MESA_BUILD_DIR into ${INSTALLATION_BUILD_DIR}_BGQ" - if test -e ${INSTALLATION_BUILD_DIR}_BGQ/$MESA_BUILD_DIR ; then - rm -rf ${INSTALLATION_BUILD_DIR}_BGQ/$MESA_BUILD_DIR - fi - mv $MESA_BUILD_DIR ${INSTALLATION_BUILD_DIR}_BGQ/$MESA_BUILD_DIR - cd ${INSTALLATION_BUILD_DIR}_BGQ - fi - - # - # Build bluegene-visit-osmesa config. - # - banner "Building Mesa (Compute Node)" - cd $MESA_BUILD_DIR || error "Couldn't cd to mesa build dir." - if test -e configs/bluegene-visit-osmesa ; then - rm -f configs/bluegene-visit-osmesa - fi - cat << \EOF > configs/bluegene-visit-osmesa -include $(TOP)/configs/default -CONFIG_NAME = bluegene-visit-osmesa -# Compiler and flags -APP_CC = gcc -APP_CXX = g++ -CFLAGS = -O3 -DNDEBUG -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -CXXFLAGS = -O3 -DNDEBUG -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -MKLIB_OPTIONS = -static -GL_LIB_NAME = libUsedToBeCalledGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB = OSMesa -OSMESA_LIB_NAME = libOSMesa.a -# Directories -SRC_DIRS = glsl mesa glu -DRIVER_DIRS = osmesa -PROGRAM_DIRS = osdemos -# Dependencies -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -lm -GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB) -GLUT_LIB_DEPS = -GLW_LIB_DEPS = -APP_LIB_DEPS = -lOSMesa -lGLU -lm -EOF - - # Append the bluegene compilers and install location. - echo "CC=$BG_GNU_CC" >> configs/bluegene-visit-osmesa - echo "CXX=$BG_GNU_CXX" >> configs/bluegene-visit-osmesa - echo "INSTALL_DIR=$PF" >> configs/bluegene-visit-osmesa - - sed "s/bluegene-osmesa/bluegene-osmesa bluegene-visit-osmesa/g" Makefile > Makefile.visit - mv Makefile.visit Makefile - - cat configs/bluegene-visit-osmesa - - # - # Build Mesa. - # - info "Building OSMesa as libGL replacement ..." - ${MAKE} bluegene-visit-osmesa ${MAKE_OPT_FLAGS} - if [[ $? != 0 ]] ; then - warn "Mesa: 'make bluegene-visit-osmesa' failed. Giving up" - return 1 - fi - info "Installing OSMesa as libGL replacement ..." - ${MAKE} install - if [[ $? != 0 ]] ; then - warn "Mesa: 'make install' failed. Giving up" - return 1 - fi - - # Some versions of Mesa erroneously install GLEW as well. We need to make - # sure we get VisIt's GLEW when we include it, so remove the ones Mesa - # installs. - rm -f $PF/include/GL/gl*ew.h - - if [[ $? != 0 ]] ; then - warn "Mesa build failed. Giving up" - return 1 - fi - - chmod -R ug+w,a+rX "$THIRD_PARTY_PATH/mesa" - chgrp -R ${GROUP} "$THIRD_PARTY_PATH/mesa" - - info "Done with Mesa" - return 0 -} - -function write_platform_file -{ - # Remove the platform file if it exists. - if test -e $1 ; then - rm -f $1 - fi - - # Write boilerplate platform file. - cat << \EOF > $1 -# From BlueGeneP-base.cmake - -# -# For BGQ builds, we're cross compiling, but we don't want to re-root things -# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on -# the shared filesystems, and this may lie outside the root. Instead, we set the -# system directories so that the various system BGQ CNK library locations are -# searched first. This is not the clearest thing in the world, given IBM's driver -# layout, but this should cover all the standard ones. -# -set(CMAKE_SYSTEM_LIBRARY_PATH - /bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers) - /bgsys/drivers/ppcfloor/comm/sys/lib # DCMF, other lower-level comm libraries - /bgsys/drivers/ppcfloor/runtime/SPI # other low-level stuff - /bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory - /bgsys/drivers/ppcfloor/gnu-linux/powerpc-BGQ-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc. -) - -# -# This adds directories that find commands should specifically ignore for cross compiles. -# Most of these directories are the includeand lib directories for the frontend on BG/P systems. -# Not ignoring these can cause things like FindX11 to find a frontend PPC version mistakenly. -# We use this on BG instead of re-rooting because backend libraries are typically strewn about -# the filesystem, and we can't re-root ALL backend libraries to a single place. -# -set(CMAKE_SYSTEM_IGNORE_PATH - /lib /lib64 /include - /usr/lib /usr/lib64 /usr/include - /usr/local/lib /usr/local/lib64 /usr/local/include - /usr/X11/lib /usr/X11/lib64 /usr/X11/include - /usr/lib/X11 /usr/lib64/X11 /usr/include/X11 - /usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include - /usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include -) - -# -# Indicate that this is a unix-like system -# -set(UNIX 1) - -# -# Library prefixes, suffixes, extra libs. -# -set(CMAKE_LINK_LIBRARY_SUFFIX "") -set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib -set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .a - -set(CMAKE_SHARED_LIBRARY_PREFIX "lib") # lib -set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") # .so -set(CMAKE_EXECUTABLE_SUFFIX "") # .exe -set(CMAKE_DL_LIBS "dl") - -# -# This macro needs to be called for dynamic library support. Unfortunately on BGQ, -# We can't support both static and dynamic links in the same platform file. The -# dynamic link platform file needs to call this explicitly to set up dynamic linking. -# -macro(__BlueGeneP_set_dynamic_flags compiler_id lang) - if (${compiler_id} STREQUAL XL) - # Flags for XL compilers if we explicitly detected XL - set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-qpic") - set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-qpie") - set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic") - set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink") - set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc") - else() - # Assume flags for GNU compilers (if the ID is GNU *or* anything else). - set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC") - set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE") - set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC") - set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared") - set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-dynamic") - endif() - - # Both toolchains use the GNU linker on BG/P, so these options are shared. - set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,") - set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,") - set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,") - set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic") - set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib - set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty - - set(BGQ_${lang}_DEFAULT_EXE_FLAGS - " -o ") - set(CMAKE_${lang}_LINK_EXECUTABLE - " -Wl,-relax ${BGQ_${lang}_DYNAMIC_EXE_FLAGS} ${BGQ_${lang}_DEFAULT_EXE_FLAGS}") -endmacro() - -# -# This macro needs to be called for static builds. Right now it just adds -Wl,-relax -# to the link line. -# -macro(__BlueGeneQ_set_static_flags compiler_id lang) - set(BGQ_${lang}_DEFAULT_EXE_FLAGS - " -o ") - set(CMAKE_${lang}_LINK_EXECUTABLE - " -Wl,-relax ${BGQ_${lang}_DEFAULT_EXE_FLAGS}") -endmacro() - -# From BlueGeneP-static.cmake, which has a broken include -set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) -set(CMAKE_FIND_LIBRARY_PREFIXES "lib") -set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") - -# Use the XL compilers -__BlueGeneQ_set_static_flags(XL CXX) -EOF - - return 0 -} - -# -# Build cmake with the regular compiler. Make a link to the regular version -# so we can have a "BGQ" version too. -# -function build_cmake -{ - if test -d $THIRD_PARTY_PATH/cmake/$CMAKE_VERSION/${ARCH}_BGQ ; then - info "CMake is already installed." - return 0 - fi - - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - CFLAGSARGS="" - if test -n "$C_OPT_FLAGS" ; then - CFLAGSARGS="--cflags \"$C_OPT_FLAGS\"" - fi - CXXFLAGSARGS="" - if test -n "$CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflags \"$CXX_OPT_FLAGS\"" - fi - - banner "Building CMake" - (export BUILD_VISIT_BGQ="yes" - eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL\ - --no-thirdparty --cmake\ - --log-file building_cmake.txt \ - --arch "${ARCH}" \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}" \ - --cc $CC $CFLAGSARGS \ - --cxx $CXX $CXXFLAGSARGS $MAKEARGS \ - --group $GROUP || error "Cannot build cmake for login node.") - - # Create a symlink to make a "BGQ" version of the login node cmake. - STARTDIR=`pwd` - cd $THIRD_PARTY_PATH/cmake/$CMAKE_VERSION - if ! test -e "${ARCH}_BGQ" ; then - ln -s $ARCH "${ARCH}_BGQ" - fi - cd $STARTDIR - - # The BlueGeneP-static-XL-CXX platform files are hosed in cmake's install. - # Overwrite. - TOOLCHAIN="$THIRD_PARTY_PATH/cmake/$CMAKE_VERSION/$ARCH/share/cmake-$CMAKE_SHORT_VERSION/Modules/Platform/BlueGeneP-static-XL-CXX.cmake" - write_platform_file "$TOOLCHAIN" - - cd $STARTDIR - - return 0 -} - -function build_zlib_BGQ -{ - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - CFLAGSARGS="" - if test -n "$BG_C_OPT_FLAGS" ; then - CFLAGSARGS="--cflag \"${BG_C_OPT_FLAGS}\"" - fi - CXXFLAGSARGS="" - if test -n "$BG_CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflag \"${BG_CXX_OPT_FLAGS}\"" - fi - - # Build some packages that require GNU compilers. - banner "Building zlib (Compute Node)" - (eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL --engine-only \ - --log-file compute_node.txt \ - --arch "${ARCH}_BGQ" \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}_BGQ" \ - --cc $BG_CC $CFLAGSARGS \ - --cxx $BG_CXX $CXXFLAGSARGS $MAKEARGS \ - --no-thirdparty --zlib \ - --group $GROUP) - if [[ $? != 0 ]] ; then - warn "ZLIB build failed. Giving up" - return 1 - fi - - return 0 -} - -function build_vtk_BGQ -{ - # Come up with some extra arguments for VTK's cmake line. - MESADIR="$THIRD_PARTY_PATH/mesa/$MESA_VERSION/${ARCH}_BGQ" - ZLIBDIR="$THIRD_PARTY_PATH/zlib/$ZLIB_VERSION/${ARCH}_BGQ" - VTKDIR="$THIRD_PARTY_PATH/vtk/$VTK_VERSION/${ARCH}_BGQ" - VTK_SRC_DIR="${INSTALLATION_BUILD_DIR}_BGQ/VTK-${VTK_VERSION}" - VTK_BUILD_DIR="${INSTALLATION_BUILD_DIR}_BGQ/VTK-${VTK_VERSION}-build" - - # If the VTK installation directory already exists, return. - if test -d $VTKDIR ; then - info "VTK is already installed." - return 0 - fi - - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - CFLAGSARGS="" - if test -n "$BG_C_OPT_FLAGS" ; then - CFLAGSARGS="--cflags \"$BG_C_OPT_FLAGS\"" - fi - CXXFLAGSARGS="" - if test -n "$BG_CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflags \"$BG_CXX_OPT_FLAGS\"" - fi - - # Form extra arguments that we'll pass to cmake for VTK. - vopts="-DCMAKE_CROSSCOMPILING:BOOL=ON -DVTK_OPENGL_HAS_OSMESA:BOOL=ON" - vopts="${vopts} -DOPENGL_INCLUDE_DIR:PATH=$MESADIR/include" - vopts="${vopts} -DOPENGL_gl_LIBRARY:PATH=$MESADIR/lib/libOSMesa.a" - vopts="${vopts} -DOPENGL_glu_LIBRARY:PATH=$MESADIR/lib/libGLU.a" - vopts="${vopts} -DVTK_USE_X:BOOL=OFF" - vopts="${vopts} -DOSMESA_LIBRARY:FILEPATH=$MESADIR/lib/libOSMesa.a" - vopts="${vopts} -DOSMESA_INCLUDE_DIR:FILEPATH=$MESADIR/include" - - vopts="${vopts} -DVTK_USE_SYSTEM_ZLIB:BOOL=ON" - vopts="${vopts} -DZLIB_INCLUDE_DIR:PATH=$ZLIBDIR/include" - vopts="${vopts} -DZLIB_LIBRARY:FILEPATH=$ZLIBDIR/lib/libz.a" - - vopts="${vopts} -DCMAKE_REQUIRE_LARGE_FILE_SUPPORT:INTERNAL=1" - vopts="${vopts} -DVTK_TYPE_CHAR_IS_SIGNED:INTERNAL=1" - vopts="${vopts} -DVTK_ANSI_STREAM_EOF_RESULT:INTERNAL=0" - vopts="${vopts} -DKWSYS_LFS_WORKS:INTERNAL=0" - vopts="${vopts} -DKWSYS_CHAR_IS_SIGNED:INTERNAL=0" - - # Delete the old cache file if there is one. - if test -e $VTK_BUILD_DIR/CMakeCache.txt ; then - rm -f $VTK_BUILD_DIR/CMakeCache.txt - fi - - # Call build_visit. - banner "Building VTK (Compute Node)" - (export VTK_EXTRA_OPTIONS="${vopts}" - export C_COMPILER=$BG_CC - export BUILD_VISIT_BGQ="yes" - eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL --engine-only \ - --no-thirdparty --cmake --vtk \ - --log-file compute_node.txt \ - --arch "${ARCH}_BGQ" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}_BGQ" \ - --cc $BG_CC $CFLAGSARGS \ - --cxx $BG_CXX $CXXFLAGSARGS $MAKEARGS \ - --group $GROUP) - - rm -rf $VTK_SRC_DIR - rm -rf $VTK_BUILD_DIR - - return $? -} - -function build_icet_BGQ -{ - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - CFLAGSARGS="" - if test -n "$BG_C_OPT_FLAGS" ; then - CFLAGSARGS="--cflag \"$BG_C_OPT_FLAGS\"" - fi - CXXFLAGSARGS="" - if test -n "$BG_CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflag \"$BG_CXX_OPT_FLAGS\"" - fi - - # Call build_visit just to build Ice-T. Use the gnu compilers to build - # it but use the XL/MPI compilers to detect MPI. - banner "Building Ice-T (Compute Node)" - (export PAR_COMPILER=$BG_MPI_CC - export C_COMPILER=$BG_CC - eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL --engine-only \ - --no-thirdparty --cmake --icet \ - --log-file compute_node.txt \ - --arch "${ARCH}_BGQ" \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}_BGQ" \ - --cc $BG_GNU_CC $CFLAGSARGS \ - --cxx $BG_GNU_CXX $CXXFLAGSARGS $MAKEARGS \ - --group $GROUP) - - rm -rf ${INSTALLATION_BUILD_DIR}_BGQ/IceT-1-0-0 - - return $? -} - -# 0 on success, Non-zero on failure. -function build_for_compute_node -{ - banner "BUILDING FOR COMPUTE NODE" - - # We need to build Mesa with a special config file. - STARTDIR=`pwd` - build_mesa_BGQ - if [[ $? != 0 ]] ; then - warn "Mesa build failed. Giving up" - return 1 - fi - cd $STARTDIR - - # We need to build zlib - build_zlib_BGQ - if [[ $? != 0 ]] ; then - warn "ZLIB build failed. Giving up" - return 1 - fi - cd $STARTDIR - - # We need to build VTK - build_vtk_BGQ - if [[ $? != 0 ]] ; then - warn "VTK build failed. Giving up" - return 1 - fi - cd $STARTDIR - - # We need to build Ice-T - build_icet_BGQ - if [[ $? != 0 ]] ; then - warn "Ice-T build failed. Giving up" - return 1 - fi - cd $STARTDIR - - # Build the other packages (and VisIt) that don't need special treatment. - - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - CFLAGSARGS="" - if test -n "$BG_C_OPT_FLAGS" ; then - CFLAGSARGS="--cflag \"$BG_C_OPT_FLAGS\"" - fi - CXXFLAGSARGS="" - if test -n "$BG_CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflag \"$BG_CXX_OPT_FLAGS\"" - fi - - # Build some packages that require GNU compilers. - banner "Building I/O libraries (Compute Node)" - (export SILO_EXTRA_OPTIONS="--disable-browser --disable-hzip --disable-fpzip" - export BUILD_VISIT_BGQ="yes" - eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL --engine-only \ - --log-file compute_node.txt \ - --arch "${ARCH}_BGQ" \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}_BGQ" \ - --cc $BG_GNU_CC $CFLAGSARGS \ - --cxx $BG_GNU_CXX $CXXFLAGSARGS $MAKEARGS \ - --no-thirdparty --zlib $IO_PACKAGES \ - --group $GROUP) - if [[ $? != 0 ]] ; then - warn "3rd party I/O build failed. Giving up" - return 1 - fi - - # Call build_visit to build VisIt itself. Note that we set PAR_COMPILER, - # C_COMPILER, BUILD_VISIT_BGQ to trigger special behaviors in build_visit. - # - # NOTE: We do not build with Mesa support because we're already using Mesa - # as our GL library. This way, we use the VTK rendering classes since - # they are working better than the VisIt Mesa-based ones. - # - - DBPLUGINSARGS="" - if test -n "${VISIT_SELECTED_DATABASE_PLUGINS}" ; then - DBPLUGINSARGS="--database-plugins \"${VISIT_SELECTED_DATABASE_PLUGINS}\"" - fi - - banner "Building VisIt (Compute Node)" - (export PAR_COMPILER=$BG_MPI_CC - export C_COMPILER=$BG_CC - export BUILD_VISIT_BGQ="yes" - eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static $NO_VISIT $SVN $TARBALL --engine-only\ - --log-file compute_node.txt \ - --arch "${ARCH}_BGQ" \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir "${INSTALLATION_BUILD_DIR}_BGQ" \ - --cc $BG_CC $CFLAGSARGS \ - --cxx $BG_CXX $CXXFLAGSARGS $MAKEARGS \ - --no-thirdparty --no-boost --zlib $IO_PACKAGES \ - --parallel --cmake --icet \ - --group $GROUP \ - ${DBPLUGINSARGS}) - if [[ $? != 0 ]] ; then - warn "VisIt build failed. Giving up" - return 1 - fi - - # If we built VisIt then move the libsim lib directory because otherwise - # we'll clobber it with the login node version later. - if test "$NO_VISIT" = "" ; then - LIBSIM_BGQ="" - if test -d $PREFIX/${VISIT_VERSION}/linux-ppc64/libsim/V2/lib ; then - LIBSIM_BGQ=$PREFIX/${VISIT_VERSION}/linux-ppc64/libsim/V2/libBGQ - mv $PREFIX/${VISIT_VERSION}/linux-ppc64/libsim/V2/lib ${LIBSIM_BGQ} - fi - if test -d $PREFIX/${VISIT_VERSION}b/linux-ppc64/libsim/V2/lib ; then - LIBSIM_BGQ=$PREFIX/${VISIT_VERSION}b/linux-ppc64/libsim/V2/libBGQ - mv $PREFIX/${VISIT_VERSION}b/linux-ppc64/libsim/V2/lib ${LIBSIM_BGQ} - fi - # copy static libs, which are dependencies for the static libsimV2 libs - if [ ! -z "${LIBSIM_BGQ}" ]; then - cp builds_static_BGQ/src/lib/libsimV2runtime_par.a ${LIBSIM_BGQ} - cp builds_static_BGQ/src/lib/libengine_par.a ${LIBSIM_BGQ} - cp builds_static_BGQ/src/lib/libsimV2_static_par.a ${LIBSIM_BGQ} - cp builds_static_BGQ/src/lib/libcognomen.a ${LIBSIM_BGQ} - cp builds_static_BGQ/src/lib/libvisit_vtk.a ${LIBSIM_BGQ} - fi - fi - - return 0 -} - -function build_for_login_node -{ - banner "BUILDING FOR LOGIN NODE" - - MAKEARGS="" - if test -n "$MAKE_OPT_FLAGS" ; then - MAKEARGS="--makeflags \"$MAKE_OPT_FLAGS\"" - fi - - CFLAGSARGS="" - if test -n "$C_OPT_FLAGS" ; then - CFLAGSARGS="--cflag \"$C_OPT_FLAGS\"" - fi - CXXFLAGSARGS="" - if test -n "$CXX_OPT_FLAGS" ; then - CXXFLAGSARGS="--cxxflag \"$CXX_OPT_FLAGS\"" - fi - DBPLUGINSFLAGSARGS="" - if test -n "$VISIT_SELECTED_DATABASE_PLUGINS" ; then - DBPLUGINSFLAGSARGS="--database-plugins \"$VISIT_SELECTED_DATABASE_PLUGINS\"" - fi - - # Build cmake, python, VTK. We pass BUILD_VISIT_BGQ in the environment so - # VTK will be configured using a script. This works around a glitch in - # identifying the compiler. - banner "Building Dependencies (Login Node)" - (eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static --no-visit $SVN $TARBALL --server-components-only \ - --log-file login_node.txt \ - --arch $ARCH \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir $INSTALLATION_BUILD_DIR \ - --cc $CC $CFLAGSARGS \ - --cxx $CXX $CXXFLAGSARGS $MAKEARGS \ - --no-thirdparty --cmake --vtk --python \ - --group $GROUP) - if [[ $? != 0 ]] ; then - warn "VisIt build failed. Giving up" - return 1 - fi - - # Do another build_visit pass with no BUILD_VISIT_BGQ since we don't want what - # it would do to the resulting config-site file. - banner "Building VisIt (Login Node)" - (eval $bv_PATH/build_visit \ - --version ${VISIT_VERSION} \ - --static $NO_VISIT $SVN $TARBALL --server-components-only \ - --log-file login_node.txt \ - --arch $ARCH \ - --prefix "${PREFIX}" \ - --build-mode $BUILD_MODE \ - --thirdparty-path $THIRD_PARTY_PATH \ - --installation-build-dir $INSTALLATION_BUILD_DIR \ - --cc $CC $CFLAGSARGS \ - --cxx $CXX $CXXFLAGSARGS $MAKEARGS \ - --no-thirdparty --no-boost --cmake --vtk $IO_PACKAGES --python \ - --group $GROUP \ - ${DBPLUGINSFLAGSARGS}) - if [[ $? != 0 ]] ; then - warn "VisIt build failed. Giving up" - return 1 - fi - - return 0 -} - - -function printvars -{ - echo "========================================================================" - echo "The following variables will be used during the build process:" - echo "" - echo "Build Settings" - echo "===============" - echo "ARCH=$ARCH" - echo "BUILD_MODE=$BUILD_MODE" - echo "THIRD_PARTY_PATH=$THIRD_PARTY_PATH" - echo "INSTALLATION_BUILD_DIR=$INSTALLATION_BUILD_DIR" - echo "PREFIX=$PREFIX" - echo "EXTRA_ARGS=$EXTRA_ARGS" - echo "GROUP=$GROUP" - echo "IO_PACKAGES=$IO_PACKAGES" - echo "MAKE_OPT_FLAGS=$MAKE_OPT_FLAGS" - echo "NO_VISIT=$NO_VISIT" - echo "SVN=$SVN" - echo "VISIT_SELECTED_DATABASE_PLUGINS=$VISIT_SELECTED_DATABASE_PLUGINS" - echo "" - echo "Login Node" - echo "===========" - echo "CC=$CC" - echo "C_OPT_FLAGS=$C_OPT_FLAGS" - echo "CXX=$CXX" - echo "CXX_OPT_FLAGS=$CXX_OPT_FLAGS" - echo "" - echo "Compute Node" - echo "=============" - echo "BG_CC=$BG_CC" - echo "BG_C_OPT_FLAGS=$BG_C_OPT_FLAGS" - echo "BG_CXX=$BG_CXX" - echo "BG_CXX_OPT_FLAGS=$BG_CXX_OPT_FLAGS" - echo "" - echo "BG_GNU_CC=$BG_GNU_CC" - echo "BG_GNU_CXX=$BG_GNU_CXX" - echo "" - echo "BG_MPI_CC=$BG_MPI_CC" - echo "BG_MPI_C_OPT_FLAGS=$BG_MPI_C_OPT_FLAGS" - echo "BG_MPI_CXX=$BG_MPI_CXX" - echo "BG_MPI_CXX_OPT_FLAGS=$BG_MPI_CXX_OPT_FLAGS" - echo "========================================================================" - - return 0 -} - -function usage -{ - echo "Usage: build_visit_BGQ [arguments]" - echo "" - echo "This script builds statically-linked VisIt server components for BlueGene-Q " - echo "computers. The parallel compute engine is built for the compute nodes and the" - echo "mdserver, vcl, and engine_ser components are built for the login nodes." - echo "" - echo "Argument Description" - echo "============================= ==========================================================" - echo "--database-plugins list A list of database plugins to build (e.g. Curve2D;Silo)" - echo "--installation-build-dir dir The build directory to be used to build the code." - echo "--thirdparty-path path The directory where 3rd party libraries will be installed." - echo "--build-mode mode The build mode: Debug or Release" - echo "--group group Set the group for installed 3rd party libraries." - echo "-h/--help Print the help and exit." - echo "--print Print the variables that will be used for the build." - echo "--makeflags flags Build the code, passing flags to make." - echo "--no-compute Do not build the compute node version." - echo "--no-login Do not build the login node version." - echo "--no-visit Do not build the VisIt sources." - echo "--svn Download sources from svn." - echo "--svn-anonymous Download sources from anonymous svn." - echo "" - echo "Login Node" - echo "===========" - echo "--cc path The C compiler to use for login node compilation." - echo "--cflag flag Append a flag to the CFLAGS used with the --cc compiler." - echo "--cflags flags Set the CFLAGS used with the --cc compiler." - echo "--cxx path The C++ compiler to use for login node compilation." - echo "--cxxflag flag Append a flag to the CXXFLAGS used with the --cxx compiler." - echo "--cxxflags flags Set the CXXFLAGS used with the --cxx compiler." - echo "" - echo "" - echo "Compute Node" - echo "=============" - echo "--bgcc path The serial C compiler to use for compute node compilation." - echo "--bgcflag flag Append a flag to the CFLAGS used with the --bgcc/--bggnucc compilers." - echo "--bgcflags flags Set the CFLAGS used with the --bgcc/--bggnucc compilers." - echo "--bgcxx path The serial C++ compiler to use for compute node compilation." - echo "--bgcxxflag flag Append a flag to the CXXFLAGS used with the --bgcxx/--bggnucxx compilers." - echo "--bgcxxflags flags Set the CXXFLAGS used with the --bgcxx/--bggnucxx compilers." - echo "" - echo "--bggnucc path The serial GNU C compiler to use for compute node compilation." - echo " This compiler is used for 3rd party packages that have autoconf" - echo " build systems: Mesa, Silo, ... The CFLAGS specified using " - echo " --bgcflag/--bgcflags are used." - echo "--bggnucxx path The serial GNU C++ compiler to use for compute node compilation." - echo " The CXXFLAGS specified using --bgcxxflag/--bgcxxflags are used." - echo - echo "--bgmpicc path The parallel C compiler to use for compute node compilation." - echo "--bgmpicflag flag Append a flag to the CFLAGS used with the --bgmpicc compiler." - echo "--bgmpicflags flags Set the CFLAGS used with the --bgmpicc compiler." - echo "--bgmpicxx path The parallel C++ compiler to use for compute node compilation." - echo "--bgmpicxxflag flag Append a flag to the CXXFLAGS used with the --bgmpicxx compiler." - echo "--bgmpicxxflags flags Set the CXXFLAGS used with the --bgmpicxx compiler." - - return 0 -} - -function main -{ - DO_COMPUTE="yes" - DO_LOGIN="yes" - next_action="" - next_arg="" - for arg in "$@" ; do - # Was the last option something that took an argument? - if test -n "$next_arg" ; then - # Yep. Which option was it? - case $next_arg in - installation-build-dir) INSTALLATION_BUILD_DIR="$arg";; - build-mode) BUILD_MODE="${arg}";; - - append-cflags) C_OPT_FLAGS="${C_OPT_FLAGS} ${arg}";; - append-cxxflags) CXX_OPT_FLAGS="${CXX_OPT_FLAGS} ${arg}";; - cflags) C_OPT_FLAGS="${arg}";; - cxxflags) CXX_OPT_FLAGS="${arg}";; - cc) CC="${arg}";; - cxx) CXX="${arg}";; - - append-bgcflags) BG_C_OPT_FLAGS="${BG_C_OPT_FLAGS} ${arg}";; - append-bgcxxflags) BG_CXX_OPT_FLAGS="${BG_CXX_OPT_FLAGS} ${arg}";; - bgcflags) BG_C_OPT_FLAGS="${arg}";; - bgcxxflags) BG_CXX_OPT_FLAGS="${arg}";; - bgcc) BG_CC="${arg}";; - bgcxx) BG_CXX="${arg}";; - bggnucc) BG_GNU_CC="${arg}";; - bggnucxx) BG_GNU_CXX="${arg}";; - - append-bgmpicflags) BG_MPI_C_OPT_FLAGS="${BG_MPI_C_OPT_FLAGS} ${arg}";; - append-bgmpicxxflags) BG_MPI_CXX_OPT_FLAGS="${BG_MPI_CXX_OPT_FLAGS} ${arg}";; - bgmpicflags) BG_MPI_C_OPT_FLAGS="${arg}";; - bgmpicxxflags) BG_MPI_CXX_OPT_FLAGS="${arg}";; - bgmpicc) BG_MPI_CC="${arg}";; - bgmpicxx) BG_MPI_CXX="${arg}";; - - database-plugins) VISIT_SELECTED_DATABASE_PLUGINS="${arg}";; - group) GROUP="${arg}";; - makeflags) MAKE_OPT_FLAGS="${arg}";; - thirdparty-path) THIRD_PARTY_PATH="${arg}";; - *) error "Unknown next_arg value '$next_arg'!" - esac - # Make sure we process the next option as an option and not an - # argument to an option. - next_arg="" - continue - fi - case $arg in - --installation-build-dir) next_arg="installation-build-dir";; - --build-mode) next_arg="build-mode";; - - --cflag) next_arg="append-cflags";; - --cflags) next_arg="cflags";; - --cxxflag) next_arg="append-cxxflags";; - --cxxflags) next_arg="cxxflags";; - --cc) next_arg="cc";; - --cxx) next_arg="cxx";; - - --bgcflag) next_arg="append-bgcflags";; - --bgcflags) next_arg="bgcflags";; - --bgcxxflag) next_arg="append-bgcxxflags";; - --bgcxxflags) next_arg="bgcxxflags";; - --bgcc) next_arg="bgcc";; - --bgcxx) next_arg="bgcxx";; - --bggnucc) next_arg="bggnucc";; - --bggnucxx) next_arg="bggnucxx";; - - --bgmpicflag) next_arg="append-bgmpicflags";; - --bgmpicflags) next_arg="bgmpicflags";; - --bgmpicxxflag) next_arg="append-bgmpicxxflags";; - --bgmpicxxflags) next_arg="bgmpicxxflags";; - --bgmpicc) next_arg="bgmpicc";; - --bgmpicxx) next_arg="bgmpicxx";; - - --database-plugins) next_arg="database-plugins";; - --group) next_arg="group";; - -h|--help) next_action="help";; - --print) next_action="printvars";; - --makeflags) next_arg="makeflags";; - --no-compute) DO_COMPUTE="";; - --no-login) DO_LOGIN="";; - --no-visit) NO_VISIT="--no-visit";; - --svn) SVN="--svn" ; DO_SVN="yes" ; TARBALL="";; - --svn-anonymous) SVN="--svn-anonymous"; DO_SVN_ANON="yes" ; TARBALL="";; - --thirdparty-path) next_arg="thirdparty-path";; - esac - done - - if test -n "${next_action}" ; then - case ${next_action} in - printvars) printvars; exit 2;; - help) usage; exit 2;; - esac - fi - - # Print the settings we're using for the build - printvars - - # Make build directories. - if ! test -d $INSTALLATION_BUILD_DIR ; then - mkdir $INSTALLATION_BUILD_DIR - - fi - if ! test -d ${INSTALLATION_BUILD_DIR}_BGQ ; then - mkdir ${INSTALLATION_BUILD_DIR}_BGQ - fi - - # Make an installation directory. - if ! test -d $THIRD_PARTY_PATH ; then - mkdir $THIRD_PARTY_PATH - else - echo "$THIRD_PARTY_PATH already exists." - fi - - if test "${SVN}" == "" && test "${NO_VISIT}" == "" ; then - # We're building VisIt from a local source file (not svn) so check that - # the file is present at the level of the build_visit_BGQ script. - # If we find it then we'll copy it into the installation build dirs so - # the build_visit scripts will locate it. - if ! test -e visit${VISIT_VERSION}.tar.gz ; then - error "VisIt source file visit${VISIT_VERSION}.tar.gz not found in $PWD. Exiting." - exit 3 - fi - - # Copy local source file into installation build dirs if it's not there. - if ! test -e $INSTALLATION_BUILD_DIR/visit${VISIT_VERSION}.tar.gz ; then - cp visit${VISIT_VERSION}.tar.gz $INSTALLATION_BUILD_DIR - fi - if ! test -e ${INSTALLATION_BUILD_DIR}_BGQ/visit${VISIT_VERSION}.tar.gz ; then - cp visit${VISIT_VERSION}.tar.gz ${INSTALLATION_BUILD_DIR}_BGQ - fi - fi - - # We build cmake specially so we can share the build between the login - # node and compute node build stages. - build_cmake - - # We build the compute node version first. - if test -n "${DO_COMPUTE}" ; then - build_for_compute_node - if [[ $? != 0 ]] ; then - warn "Compute node build failed. Giving up" - exit 4 - fi - fi - - # Now build for the login node so the engine_ser for the login node will - # overwrite the compute node's version that was previously installed. - if test -n "${DO_LOGIN}" ; then - build_for_login_node - if [[ $? != 0 ]] ; then - warn "Login node build failed. Giving up" - exit 5 - fi - fi - - # We installed VisIt so tar up the binary distribution since it contains - # binaries for both the login nodes and the compute nodes. - if test "$NO_VISIT" = "" ; then - VV=$(echo ${VISIT_VERSION} | tr "." "_") - tar zcf visit${VV}.${PREFIXARCH}.tar.gz ${PREFIXARCH} - fi - - return 0 -} - -main "$@" -exit 0 diff --git a/src/tools/dev/scripts/bv_support/bv_main.sh b/src/tools/dev/scripts/bv_support/bv_main.sh index d88db0fa45a..ff72d2a87ec 100644 --- a/src/tools/dev/scripts/bv_support/bv_main.sh +++ b/src/tools/dev/scripts/bv_support/bv_main.sh @@ -605,6 +605,7 @@ function initialize_build_visit() export DO_QT510="no" export DO_VTK9="no" DOWNLOAD_ONLY="no" + LIST_TPS="no" if [[ "$CXX_COMPILER" == "g++" ]] ; then @@ -1223,6 +1224,7 @@ function run_build_visit() -h|--help) next_action="help";; --install-network) next_arg="install-network";; --java) DO_JAVA="yes";; + --list-tpls) LIST_TPLS="yes";; --makeflags) next_arg="makeflags";; --no-hostconf) DO_HOSTCONF="no";; --no-boost) DO_BOOST="no";; @@ -1384,8 +1386,19 @@ function run_build_visit() fi fi + if [[ "$LIST_TPLS" == "yes" ]] ; then + info $LINES + info "build_visit Third-party Libraries:" + for var in $(set -o posix; set | grep _FILE=; set +o posix); do + var=$(echo $var | cut -d '=' -f1) + info $var ${!var} + done + info $LINES + exit 0 + fi + #enabling any dependent libraries, handles both dependers and dependees.. - #TODO: handle them seperately + #TODO: handle them separately info "enabling any dependent libraries" enable_dependent_libraries diff --git a/src/tools/dev/scripts/bvauto.input b/src/tools/dev/scripts/bvauto.input deleted file mode 100644 index 7262f111b8c..00000000000 --- a/src/tools/dev/scripts/bvauto.input +++ /dev/null @@ -1,3 +0,0 @@ -python -cmake -silo:szip,hdf5 diff --git a/src/tools/dev/scripts/bvtest.css b/src/tools/dev/scripts/bvtest.css deleted file mode 100644 index cd5260fa672..00000000000 --- a/src/tools/dev/scripts/bvtest.css +++ /dev/null @@ -1,43 +0,0 @@ -table.wikitable, -table.prettytable { - margin: 1em 1em 1em 0; - background: #f9f9f9; - border: 1px #aaa solid; - border-collapse: collapse; -} -.wikitable th, .wikitable td, -.prettytable th, .prettytable td { - border: 1px #aaa solid; - padding: 0.2em; -} -.wikitable th, -.prettytable th { - background: #f2f2f2; - text-align: center; -} -.wikitable caption, -.prettytable caption { - margin-left: inherit; - margin-right: inherit; - font-weight: bold; -} - - -.rh -{ - background: #ececec; - color: black; - text-align: left; - padding-left: 0.5em; - font-weight: bold; -} - -.green -{ - background: #90ff90; -} - -.red -{ - background: #ff9090; -} \ No newline at end of file diff --git a/src/tools/dev/scripts/bvtest.py b/src/tools/dev/scripts/bvtest.py deleted file mode 100755 index 2e2c85c1a51..00000000000 --- a/src/tools/dev/scripts/bvtest.py +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env python -# ***************************************************************************** -# Script: bvtest.py -# -# Purpose: -# Provide an easy (and cron-able) way to test the build_visit script. -# Usage: -# bvtest.py [output_dir] [lib1] ... -# -# Results: -# Outputs a xml summary of build results to stdout. -# -# ***************************************************************************** -# Current Functionality: -# foreach lib invoke build_visit with the following options: -# build_visit --console --no-visit --no-thirdparty --no-hostconf --stdout \ -# --[libname] --thirdparty-path [output] > [output]/bv_log_[libname] -# Check for "Finished!" at tail of output log -# -# Possible Future Functionality: -# Cleanup after (each?) build. -# Figure out $VISITARCH and version of each lib &check for lib installed -# -# ***************************************************************************** - -import sys,os,time,socket,subprocess - -def sexe(cmd): - """ - Execute a shell command. - """ - sys.stderr.write("[exe:%s]\n" % cmd) - os.system(cmd) - -def sub_pipe(cmd): - """ - Execute a shell command and return the result as string. - """ - proc = subprocess.Popen(cmd, - shell=True, - universal_newlines = True, - stdout=subprocess.PIPE) - res = proc.communicate()[0] - return res.strip() - -def current_time(): - """ - Helper to return a human readble string /w the current time. - """ - return time.strftime("%Y-%m-%d %H:%M:%S") - -class BuildResult(object): - """ - Class that holds the results for an attemped build of a library. - """ - def __init__(self,lib,cmd,log,build_start,build_end,result): - self.lib = lib - self.cmd = cmd - self.log = log - self.build_start = build_start - self.build_end = build_end - self.result = result - def to_xml(self,space=""): - res = space + "\n" - res += space + space +"%s\n" % self.lib - res += space + space +"%s\n" % self.cmd - res += space + space +"%s\n" % self.log - res += space + space +"%s\n" % self.build_start - res += space + space +"%s\n" % self.build_end - res += space + space +"%s\n" % self.result - res += space + "" - return res - -class BuildTest(object): - """ - Class executes build_visit tests and holds a set of results. - """ - def __init__(self,output_dir,libcmds,bvexe,mode = "svn"): - self.odir = os.path.abspath(output_dir) - if self.odir[-1] == "/": - self.odir = self.odir[:-1] - self.libcmds = libcmds - self.bvexe = bvexe - self.mode = mode - self.host = socket.gethostname() - self.user = os.environ['USER'] - self.arch = self.__get_arch() - self.start_time = None - self.end_time = None - self.results = [] - - def execute(self): - self.start_time = current_time() - self.results = self.build_libs(self.libcmds) - self.end_time = current_time() - - def build_lib(self,libcmd): - """ - Build a library using build_visit and return a BuildResult. - """ - # make sure output dir exists! - if self.odir != "": - if not os.path.exists(self.odir): - os.mkdir(self.odir) - libs = self.__parse_libcmd(libcmd) - bvc = self.__build_visit_command(libs); - lib = libs[-1] - lfile = self.__log_file_name(lib) - bresult = "failure" - bstart = current_time() - sexe(bvc) - bend = current_time() - if self.__check_build(lib): - bresult = "success" - return BuildResult(lib,libcmd,lfile,bstart,bend,bresult) - - def build_libs(self,libcmds): - """ - Build a collection of libraries using build_visit and return a BuildResult for each. - """ - return [ self.build_lib(libcmd) for libcmd in libcmds ] - - def result_xml(self): - res = '\n' - res += '\n' - info = 'host="%s" ' % self.host - info += 'user="%s" ' % self.user - info += 'arch="%s" ' % self.arch - info += 'odir="%s" ' % self.odir - info += 'libs="%s" ' % str(self.libcmds) - info += 'start="%s" ' % self.start_time - info += 'end="%s" ' % self.end_time - res += "\n" % info - res += " \n" - for r in self.results: - res += r.to_xml(" ") - res +=" \n" - res +="\n" - return res - - def __log_file_name(self,lib): - """ - Construct the output log file name. - """ - return "bv_log_%s.txt" % (lib) - - def __build_visit_command(self,libs): - """ - Construct the proper build_visit command. - """ - options = "--console --no-visit --no-thirdparty --no-hostconf --stdout --makeflags -j4" - if self.mode == "svn": - options = "--svn HEAD " + options - blibs="" - for l in libs: - blibs+="--%s " % l - lib = libs[-1] - if self.odir == "": - cmd = "echo yes | %s %s %s >> %s" - cmd = cmd % (self.bvexe,options,blibs,self.__log_file_name(lib)) - else: - cmd = "echo yes | %s %s %s --thirdparty-path %s >> %s" - cmd = cmd % (self.bvexe,options,blibs,self.odir,self.__log_file_name(lib)) - return cmd - - def __check_build(self,lib): - """ - Checks for sucessful build by examining the end of the build log. - """ - try: - lines = open(self.__log_file_name(lib)).readlines() - nlines = len(lines) - last = lines[nlines-1].strip() - return last == "Finished!" - except: - return False - - def __parse_libcmd(self,vstr): - """ - Parses two simple build command types: - lib --> [lib] - lib_3:lib_1,lib_2 --> [lib_1,lib_2,lib_3] - """ - res = [] - cidx = vstr.find(":") - if cidx >0: - pre = vstr[cidx+1:].split(",") - post = vstr[:cidx] - for p in pre: - res.append(p) - res.append(post) - else: - res.append(vstr) - return res - - def __get_arch(self): - """ - Helper to return a human readable string describing the current platform. - """ - opsys = sub_pipe("uname -s").lower() - proc = sub_pipe("uname -p") - comp = "gcc" - comp_ver = "" - # use gcc everwhere except AIX - if opsys == "aix": - comp = "xlc" - - res = "%s-%s-%s" % (opsys,proc,comp) - # get gcc version - if comp == "gcc": - sub_res = sub_pipe("gcc -v 2>&1") - tok = sub_res[sub_res.find("gcc version")+len("gcc version"):].split() - if len(tok) > 0: - comp_ver = tok[0] - if comp_ver !="": - res += "-%s" % comp_ver; - return res - -def main(): - """ - Main driver routine. - """ - nargs = len(sys.argv) - if nargs < 3: - sys.stderr.write("usage: bvtest.py [output_dir] [lib_1] .... \n") - sys.exit(1) - odir = sys.argv[1] - libcmds = sys.argv[2:] - bt = BuildTest(odir,libcmds,"./build_visit") - bt.execute() - print(bt.result_xml()) - - -if __name__ == "__main__": - main() - diff --git a/src/tools/dev/scripts/bvtest.xsl b/src/tools/dev/scripts/bvtest.xsl deleted file mode 100644 index 03ac3cc7062..00000000000 --- a/src/tools/dev/scripts/bvtest.xsl +++ /dev/null @@ -1,76 +0,0 @@ - - - - - -
    bvtest results
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - bvtest results -
    Host
    User
    Arch
    Libraries
    Start
    End
    LibraryCommandBuild StartBuild EndResultLog File
    - - - - - [open] - -
    - - - - - [open] - -
    - - -
    - -
    diff --git a/src/tools/dev/scripts/filter_link_commands_BGQ.sh b/src/tools/dev/scripts/filter_link_commands_BGQ.sh deleted file mode 100644 index 286f884bf2b..00000000000 --- a/src/tools/dev/scripts/filter_link_commands_BGQ.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash - -# This script needs to be run after cmake on BG/Q systems to filter out -# unwanted X11 dependencies that CMake places in the link line. - -# Filter the engine link line so it will not include X11 libraries. CMake is adding -# them even though we don't want them. Also get rid of extra static/dynamic -# link keywords that prevent the linker from making a good static executable. -for target in engine_ser_exe.dir engine_par_exe.dir -do - edir="engine/main/CMakeFiles/$target" - if test -e "$edir/link.txt" ; then - sed "s/-lX11//g" $edir/link.txt > $edir/link1.txt - sed "s/-lXext//g" $edir/link1.txt > $edir/link2.txt - sed "s/-Wl,-Bstatic//g" $edir/link2.txt > $edir/link3.txt - sed "s/-Wl,-Bdynamic//g" $edir/link3.txt > $edir/link4.txt - rm -f $edir/link1.txt $edir/link2.txt $edir/link3.txt - mv $edir/link4.txt $edir/link.txt - else - echo "***** DID NOT SEE: $edir/link.txt pwd=`pwd`" - fi - if test -e "$edir/relink.txt" ; then - sed "s/-lX11//g" $edir/relink.txt > $edir/relink1.txt - sed "s/-lXext//g" $edir/relink1.txt > $edir/relink2.txt - sed "s/-Wl,-Bstatic//g" $edir/relink2.txt > $edir/relink3.txt - sed "s/-Wl,-Bdynamic//g" $edir/relink3.txt > $edir/relink4.txt - rm -f $edir/relink1.txt $edir/relink2.txt $edir/relink3.txt - mv $edir/relink4.txt $edir/relink.txt - else - echo "***** DID NOT SEE: $edir/relink.txt pwd=`pwd`" - fi -done -# Filter the visitconvert link line so it will not include X11 libraries. CMake -# is adding them even though we don't want them. Also get rid of extra static/dynamic -# link keywords that prevent the linker from making a good static executable. -for target in visitconvert_ser.dir visitconvert_par.dir -do - edir="tools/convert/CMakeFiles/$target" - if test -e "$edir/link.txt" ; then - sed "s/-lX11//g" $edir/link.txt > $edir/link1.txt - sed "s/-lXext//g" $edir/link1.txt > $edir/link2.txt - sed "s/-Wl,-Bstatic//g" $edir/link2.txt > $edir/link3.txt - sed "s/-Wl,-Bdynamic//g" $edir/link3.txt > $edir/link4.txt - rm -f $edir/link1.txt $edir/link2.txt $edir/link3.txt - mv $edir/link4.txt $edir/link.txt - else - echo "***** DID NOT SEE: $edir/link.txt pwd=`pwd`" - fi - if test -e "$edir/relink.txt" ; then - sed "s/-lX11//g" $edir/relink.txt > $edir/relink1.txt - sed "s/-lXext//g" $edir/relink1.txt > $edir/relink2.txt - sed "s/-Wl,-Bstatic//g" $edir/relink2.txt > $edir/relink3.txt - sed "s/-Wl,-Bdynamic//g" $edir/relink3.txt > $edir/relink4.txt - rm -f $edir/relink1.txt $edir/relink2.txt $edir/relink3.txt - mv $edir/relink4.txt $edir/relink.txt - else - echo "***** DID NOT SEE: $edir/relink.txt pwd=`pwd`" - fi -done - -# Filter the osmesavtktest link line so it will not include X11 libraries. CMake -# is adding them even though we don't want them. Also get rid of extra static/dynamic -# link keywords that prevent the linker from making a good static executable. -for target in osmesavtktest_ser.dir osmesavtktest_par.dir -do - edir="tools/diagnostics/osmesatest/CMakeFiles/$target" - if test -e "$edir/link.txt" ; then - sed "s/-lX11//g" $edir/link.txt > $edir/link1.txt - sed "s/-lXext//g" $edir/link1.txt > $edir/link2.txt - sed "s/-Wl,-Bstatic//g" $edir/link2.txt > $edir/link3.txt - sed "s/-Wl,-Bdynamic//g" $edir/link3.txt > $edir/link4.txt - rm -f $edir/link1.txt $edir/link2.txt $edir/link3.txt - mv $edir/link4.txt $edir/link.txt - else - echo "***** DID NOT SEE: $edir/link.txt pwd=`pwd`" - fi - if test -e "$edir/relink.txt" ; then - sed "s/-lX11//g" $edir/relink.txt > $edir/relink1.txt - sed "s/-lXext//g" $edir/relink1.txt > $edir/relink2.txt - sed "s/-Wl,-Bstatic//g" $edir/relink2.txt > $edir/relink3.txt - sed "s/-Wl,-Bdynamic//g" $edir/relink3.txt > $edir/relink4.txt - rm -f $edir/relink1.txt $edir/relink2.txt $edir/relink3.txt - mv $edir/relink4.txt $edir/relink.txt - else - echo "***** DID NOT SEE: $edir/relink.txt pwd=`pwd`" - fi -done - -# Filter the test_cache link line so it will not include X11 libraries. CMake -# is adding them even though we don't want them. Also get rid of extra static/dynamic -# link keywords that prevent the linker from making a good static executable. -for target in test_cache.dir -do - edir="avt/Database/CMakeFiles/$target" - if test -e "$edir/link.txt" ; then - sed "s/-lX11//g" $edir/link.txt > $edir/link1.txt - sed "s/-lXext//g" $edir/link1.txt > $edir/link2.txt - sed "s/-Wl,-Bstatic//g" $edir/link2.txt > $edir/link3.txt - sed "s/-Wl,-Bdynamic//g" $edir/link3.txt > $edir/link4.txt - rm -f $edir/link1.txt $edir/link2.txt $edir/link3.txt - mv $edir/link4.txt $edir/link.txt - else - echo "***** DID NOT SEE: $edir/link.txt pwd=`pwd`" - fi - if test -e "$edir/relink.txt" ; then - sed "s/-lX11//g" $edir/relink.txt > $edir/relink1.txt - sed "s/-lXext//g" $edir/relink1.txt > $edir/relink2.txt - sed "s/-Wl,-Bstatic//g" $edir/relink2.txt > $edir/relink3.txt - sed "s/-Wl,-Bdynamic//g" $edir/relink3.txt > $edir/relink4.txt - rm -f $edir/relink1.txt $edir/relink2.txt $edir/relink3.txt - mv $edir/relink4.txt $edir/relink.txt - else - echo "***** DID NOT SEE: $edir/relink.txt pwd=`pwd`" - fi -done - -exit 0 - - - - - - diff --git a/src/tools/dev/scripts/lastpass_alastor b/src/tools/dev/scripts/lastpass_alastor deleted file mode 100644 index 24e811524f9..00000000000 --- a/src/tools/dev/scripts/lastpass_alastor +++ /dev/null @@ -1 +0,0 @@ -15705 diff --git a/src/tools/dev/scripts/lastpass_surface b/src/tools/dev/scripts/lastpass_surface deleted file mode 100644 index 9f8e468f019..00000000000 --- a/src/tools/dev/scripts/lastpass_surface +++ /dev/null @@ -1 +0,0 @@ -33252 diff --git a/src/tools/dev/scripts/vulcan_cron_script b/src/tools/dev/scripts/vulcan_cron_script deleted file mode 100644 index bf1ba870b93..00000000000 --- a/src/tools/dev/scripts/vulcan_cron_script +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Change directories to the working directory. -cd visit_run_tests - -# The surface test suite run will have already freshened the svn_bin directory here. - -# Defaults -user=`whoami` -tmpDir="/nfs/tmp2/" -tonight=`date "+visit%Y-%m-%d"` -vulcanbank="ddcwork" - -# Run the vulcan nightly build -svn_bin/vulcan_nightly_build -user $user -tmpdir $tmpDir -tonight $tonight -vulcanbank $vulcanbank - -# Run the vulcan nightly test -svn_bin/vulcan_nightly_test -user $user -tmpdir $tmpDir -tonight $tonight -vulcanbank $vulcanbank - diff --git a/src/tools/dev/scripts/vulcan_crontab b/src/tools/dev/scripts/vulcan_crontab deleted file mode 100644 index 111a811c9a4..00000000000 --- a/src/tools/dev/scripts/vulcan_crontab +++ /dev/null @@ -1,7 +0,0 @@ -# use /bin/sh to run commands, no matter what /etc/passwd says -SHELL=/bin/sh -# mail any output to 'brugger1@llnl.gov', no matter whose crontab this is -MAILTO=brugger1@llnl.gov -# -# run at 10:30 PM, every day -30 22 * * * $HOME/visit_run_tests/vulcan_cron_script >> $HOME/visit_run_tests/out.vulcan 2>&1 diff --git a/src/tools/dev/scripts/vulcan_nightly_build b/src/tools/dev/scripts/vulcan_nightly_build deleted file mode 100755 index 17fc217f44e..00000000000 --- a/src/tools/dev/scripts/vulcan_nightly_build +++ /dev/null @@ -1,193 +0,0 @@ -#!/bin/sh - -# Function: create_trunk_tarballs -# -# Arguments: -# destDir : The destination directory where the tarball will be placed. -# tmpDir : The temporary directory where the svn sources will be checked out. -# user : The local username. -# -# Returns: 0 on success; 1 on error. -# -function create_trunk_tarballs -{ - destDir=$1 - tmpDir=$2 - user=$3 - workingDir="nightly_checkout" - - # Create the checkout container directory. - echo "Removing any old checkouts at: $tmpDir/$user/$workingDir" - rm -rf $tmpDir/$user/$workingDir - mkdir $tmpDir/$user/$workingDir - cd $tmpDir/$user/$workingDir - - # Check out the source+data from anonymous svn - echo "Checkouts (src+data) started at: `date`" - svn co http://visit.ilight.com/svn/visit/trunk/src > buildlog 2>&1 - svn co http://visit.ilight.com/svn/visit/trunk/data >> buildlog 2>&1 - if test ! -e src; then - return 1 - fi - if test ! -e data; then - return 1 - fi - - # Run visit-dist to make the nightly tarball. - visitVer=`cat src/VERSION | sed "s/b//g"` - ./src/svn_bin/visit-dist visit$visitVer - - # Copy the tarball and VERSION file to the nightly destination. - cp -f visit$visitVer.tar.gz $destDir - cp -f src/VERSION $destDir - cp -f src/svn_bin/visit-install $destDir - chmod 664 $destDir/* - chmod 775 $destDir/visit-install - - echo "Checkouts completed at: `date`" - return 0 -} - -# Function: vulcan_build -# -# destDir : The destination directory where the tarball will be placed. -# tmpDir : The temporary directory where we'll build. -# user : The local username. -# -# Notes: We have to build VisIt on the vulcan LAC nodes since the compute nodes -# are a different platform. This means that we don't need to submit a -# a job for the build. -# -function vulcan_build -{ - destDir=$1 - tmpDir=$2 - user=$3 - workingDir="nightly_build" - - # Create the build container directory. - echo "Removing any old builds at: $tmpDir/$user/$workingDir" - rm -rf $tmpDir/$user/$workingDir - mkdir $tmpDir/$user/$workingDir - cd $tmpDir/$user/$workingDir - - # Copy the source tarball to this workingDir. Extract the svn_bin dir from it. - echo "Extract svn_bin from $destDir/visit$visitVer.tar.gz" - visitVer=`cat $destDir/VERSION | sed "s/b//g"` - if test ! -e $destDir/visit$visitVer.tar.gz ; then - echo "vulcan_build: Could not locate source tarball." - return 1 - fi - cp $destDir/visit$visitVer.tar.gz . - mkdir unpack - cd unpack - tar zxvf ../visit$visitVer.tar.gz - mv visit$visitVer/src/svn_bin .. - cd .. - rm -rf unpack - if test ! -e svn_bin ; then - echo "vulcan_build: Could not locate svn_bin extracted from source tarball." - return 1 - fi - - # Make some symlinks - ln -s svn_bin/build_visit . - ln -s svn_bin/bv_support . - - # Create a version of build_visit_BGQ that replaces its "2.10.0" version string - # with the current version string. -#FIXME: sed svn_bin/build_visit_BGQ "s/VISIT_VERSION=\"2.10.0\"/VISIT_VERSION=\"$visitVer\"/g" > build_visit_BGQ - cp svn_bin/build_visit_BGQ . - chmod 700 build_visit_BGQ - - # Run the build_visit_BGQ script to build the code in the local tarball. - echo "Running build_visit_BGQ" - #./build_visit_BGQ --thirdparty-path /g/g17/whitlocb/build/thirdparty_static/2.10.0 --makeflags -j2 - ./build_visit_BGQ --thirdparty-path /usr/gapps/visit/thirdparty_static/$visitVer --makeflags -j2 - - # If a binary distribution was produced, copy it to the destDir. - tarballVer=`cat $destDir/VERSION | tr . _ | sed "s/b//g"` - tarballVerCorrect=`cat $destDir/VERSION | tr . _ ` - tarball="visit$tarballVer.linux-ppc64-BGQ.tar.gz" - if test ! -e $tarball ; then - echo "vulcan_build: The BGQ binary distribution for VisIt was not located." - return 1 - fi - - # Copy the tarball into the destDir. Note that we will rename it if the - # version contains a 'b' to make sure that visit-install works later. - cp -f $tarball $destDir/visit$tarballVerCorrect.linux-ppc64-BGQ.tar.gz - - return 0 -} - -function main -{ - # Defaults - user=`whoami` - tmpDir="/nfs/tmp2/" - tonight=`date "+visit%Y-%m-%d"` - vulcanbank="sspwork" - - # Handle command line args. - for abc - do - case $1 in - -user) - user=$2 - shift 2 - ;; - -tmpdir) - tmpDir=$2 - shift 2 - ;; - -tonight) - tonight=$2 - shift 2 - ;; - -vulcanbank) - vulcanbank=$2 - shift 2 - ;; - esac - done - - # For debugging: - #echo "user=$user" - #echo "tmpDir=$tmpDir" - #echo "tonight=$tonight" - #echo "vulcanbank=$vulcanbank" - #exit 1 - - # Make sure that there is a destination directory for tonight's tarball. - if test ! -e $HOME/visit_nightly; then - mkdir $HOME/visit_nightly - fi - if test ! -e $HOME/visit_nightly/$tonight; then - mkdir $HOME/visit_nightly/$tonight - fi - chmod 755 $HOME/visit_nightly - chmod 755 $HOME/visit_nightly/$tonight - - # Make sure that there's a temp directory. - if test ! -e $tmpDir/$user; then - mkdir $tmpDir/$user - fi - - # Create tonight's source tarballs. - create_trunk_tarballs $HOME/visit_nightly/$tonight $tmpDir $user - if [[ $? != 0 ]] ; then - echo "Nightly checkouts could not be completed. `date`" - exit 1 - fi - - # Do the build to make a binary distribution. - vulcan_build $HOME/visit_nightly/$tonight $tmpDir $user $vulcanbank - if [[ $? != 0 ]] ; then - echo "Nightly vulcan build could not be completed. `date`" - exit 1 - fi -} - -# Run main -main $@ diff --git a/src/tools/dev/scripts/vulcan_nightly_test b/src/tools/dev/scripts/vulcan_nightly_test deleted file mode 100755 index 8640f53f5b1..00000000000 --- a/src/tools/dev/scripts/vulcan_nightly_test +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/sh - -# Function: vulcan_test -# -# destDir : The destination directory that contains tarballs, etc. -# tmpDir : The temporary directory where we'll install. -# user : The local username. -# vulcanbank : The bank to use on vulcan. -# testhost : The host that runs the test suite. -# -# Notes: We install the vulcan build of VisIt and then make a script for -# surface that uses the existing build, which would have completed by now, -# to fire off a run of some test suite commands that do client/server to -# the vulcan installation. -# -function vulcan_test -{ - destDir=$1 - tmpDir=$2 - user=$3 - vulcanbank=$4 - testhost=$5 - datahost=$6 - submit=$7 - workingDir="nightly_install" - - #echo "destDir=$destDir" - #echo "tmpDir=$tmpDir" - #echo "user=$user" - #echo "vulcanbank=$vulcanbank" - #echo "testhost=$testhost" - #echo "datahost=$datahost" - #echo "submit=$submit" - - # Create the install container directory. - echo "Removing any old installs at: $tmpDir/$user/$workingDir" - rm -rf $tmpDir/$user/$workingDir - mkdir $tmpDir/$user/$workingDir - - # Install the vulcan binary distribution to a temporary directory - ver=`cat $destDir/VERSION` - cd $destDir - ./visit-install -c llnl_open_cz -b $vulcanbank $ver linux-ppc64-BGQ $tmpDir/$user/$workingDir - if test ! -e $tmpDir/$user/$workingDir/bin/visit ; then - echo "vulcan_test: VisIt for BGQ was not installed." - return 1 - fi - - cd $tmpDir/$user/$workingDir - # Make a testing script that we can scp to surface and submit to msub. - testscript="vulcan_${testhost}_test" - rm -f $testscript - - # If we're not submitting the job then limit the number of procs since - # the script will run on the login node. - if test "$submit" == "no" ; then - limitprocs="-n 1" - fi - -cat < $testscript -#!/bin/sh -############################################################################## -cd $tmpDir/$user -if test -e vulcan_test ; then - rm -rf vulcan_test -fi -mkdir vulcan_test - -# list of tests to run. 2 tests for now... -TESTS="$tmpDir/$user/test_trunk/test/tests" -testlist="\$TESTS/databases/bov.py \$TESTS/rendering/scalable.py" - -# Run the test suite with arguments that make it use data and the engine on vulcan. -# NOTE: This relies on the regular surface test suite already running since the -# runtest script and all tests/data are from that test suite. -# -# HACK: Adding -debug 1 since it seems to work better for some reason. -# -cd $tmpDir/$user/test_trunk/test -./runtest $limitprocs --no-timings --vargs "-debug 1" --data-host $datahost.llnl.gov --host-profile-dir $tmpDir/$user/test_trunk/src/resources/hosts/llnl --parallel-launch "-dir $tmpDir/$user/$workingDir -b $vulcanbank" -o $tmpDir/$user/vulcan_test -m scalable,parallel,icet \$testlist -echo "Test completed at: \`date\`" - -# FUTURE WORK: add code to post the results to LBL. Borrow from regressiontest_surface script. - -############################################################################## -EOF - chmod 750 $testscript - - # Run the test suite. - scp $testscript $testhost:$testscript - if test "$submit" == "no" ; then - ssh $testhost ./$testscript - else - subTag=`date +%Y-%m-%d-%H:%M` - ssh $testhost "msub -l nodes=1:ppn=12 -l gres=ignore -l walltime=12:00:00 -o $testscript_$subTag.out -q pbatch -A wbronze -z ./$testscript" - fi - return 0 -} - -function main -{ - # Defaults - user=`whoami` - tmpDir="/nfs/tmp2/" - tonight=`date "+visit%Y-%m-%d"` - vulcanbank="sspwork" - testhost="surface" - datahost="vulcan" - submit="no" - - # Handle command line args. - for abc - do - case $1 in - -user) - user=$2 - shift 2 - ;; - -tmpdir) - tmpDir=$2 - shift 2 - ;; - -tonight) - tonight=$2 - shift 2 - ;; - -vulcanbank) - vulcanbank=$2 - shift 2 - ;; - -testhost) - testhost=$2 - shift 2 - ;; - -datahost) - datahost=$2 - shift 2 - ;; - -submit) - submit="yes" - shift - ;; - esac - done - - # Make sure that there is a destination directory for tonight's tarball. - if test ! -e $HOME/visit_nightly; then - mkdir $HOME/visit_nightly - fi - if test ! -e $HOME/visit_nightly/$tonight; then - mkdir $HOME/visit_nightly/$tonight - fi - chmod 755 $HOME/visit_nightly - chmod 755 $HOME/visit_nightly/$tonight - - # Make sure that there's a temp directory. - if test ! -e $tmpDir/$user; then - mkdir $tmpDir/$user - fi - - # Do some tests for vulcan - vulcan_test $HOME/visit_nightly/$tonight $tmpDir $user $vulcanbank $testhost $datahost $submit - if [[ $? != 0 ]] ; then - echo "Nightly vulcan testing could not be completed. `date`" - exit 1 - fi -} - -# Run main -main $@