diff --git a/macosx.sh b/macosx.sh new file mode 100755 index 0000000..5ae6cc9 --- /dev/null +++ b/macosx.sh @@ -0,0 +1,144 @@ +#!/bin/bash +# This script contains common code for building PyNE on various Debian-derived systems +# + +function check_repo() { + + repo_name=$1 + + if [ -d ${repo_name} ] ; then + read -p "Delete the existing ${repo_name} directory and all contents? (y/n) " -n 1 -r + if [[ $REPLY =~ ^[Yy]$ ]] ; then + rm -rf ${repo_name} + fi + fi + +} + +function build_moab { + + # Install MOAB + cd ${install_dir} + mkdir -p moab + cd moab + check_repo moab-repo + git clone --branch Version5.1.0 --single-branch https://bitbucket.org/fathomteam/moab moab-repo + cd moab-repo + mkdir -p build + cd build + cmake ../ -DENABLE_HDF5=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_PYMOAB=ON \ + -DENABLE_BLASLAPACK=OFF \ + -DENABLE_FORTRAN=OFF \ + -DCMAKE_INSTALL_PREFIX=${install_dir}/moab + make + make install + + echo "if [ -n \"\${LD_LIBRARY_PATH-}\" ]" >> ~/.bashrc + echo "then" >> ~/.bashrc + echo " export LD_LIBRARY_PATH=${install_dir}/moab/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc + echo "else" >> ~/.bashrc + echo " export LD_LIBRARY_PATH=${install_dir}/moab/lib" >> ~/.bashrc + echo "fi" >> ~/.bashrc + + PYTHON_VERSION=$(python -c 'import sys; print(sys.version.split('')[0][0:3])') + echo "if [ -n \"\${PYTHONPATH-}\" ]" >> ~/.bashrc + echo "then" >> ~/.bashrc + echo " export PYTHONPATH=${install_dir}/moab/lib/python${PYTHON_VERSION}/site-packages:\$PYTHONPATH" >> ~/.bashrc + echo "else" >> ~/.bashrc + echo " export PYTHONPATH=${install_dir}/moab/lib/python${PYTHON_VERSION}/site-packages" >> ~/.bashrc + echo "fi" >> ~/.bashrc + source ~/.bashrc +} + +function build_dagmc { + + # Install DAGMC + cd ${install_dir} + check_repo dagmc + mkdir -p dagmc + cd dagmc + git clone https://github.com/svalinn/DAGMC.git dagmc-repo + cd dagmc-repo + git checkout develop + mkdir build + cd build + cmake .. -DMOAB_DIR=${install_dir}/moab \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_INSTALL_PREFIX=${install_dir}/dagmc + make + make install +} + +function install_pyne { + + # Install PyNE + cd ${install_dir} + check_repo pyne + git clone https://github.com/pyne/pyne.git + cd pyne + if [ $1 == 'stable' ] ; then + TAG=$(git describe --abbrev=0 --tags) + git checkout tags/`echo ${TAG}` -b `echo ${TAG}` + fi + + + python setup.py install --user -- -DMOAB_LIBRARY=${install_dir}/moab/lib \ + -DMOAB_INCLUDE_DIR=${install_dir}/moab/include \ + --dagmc ${install_dir}/dagmc \ + --clean + + echo "export PATH=${HOME}/.local/bin:\$PATH" >> ~/.bashrc + echo "export LD_LIBRARY_PATH=${HOME}/.local/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc + + PYTHON_VERSION=$(python -c 'import sys; print(sys.version.split('')[0][0:3])') + echo "if [ -n \"\${PYTHONPATH-}\" ]" >> ~/.bashrc + echo "then" >> ~/.bashrc + echo " export PYTHONPATH=~/.local/lib/python${PYTHON_VERSION}/site-packages:\$PYTHONPATH" >> ~/.bashrc + echo "else" >> ~/.bashrc + echo " export PYTHONPATH=~/.local/lib/python${PYTHON_VERSION}/site-packages" >> ~/.bashrc + echo "fi" >> ~/.bashrc + source ~/.bashrc +} + +function run_nuc_data_make { + + cd + # Generate nuclear data file + nuc_data_make + +} + +function test_pyne { + + cd $install_dir/pyne + cd tests + + ./travis-run-tests.sh python3 +} + +set -euo pipefail +IFS=$'\n\t' + +# system update +eval brew update +eval brew install ${brew_package_list} +export PATH="${HOME}/.local/bin:${PATH}" +eval sudo pip3 install ${pip_package_list} + +install_dir=${HOME}/opt +mkdir -p ${install_dir} + +build_moab + +build_dagmc + +install_pyne $1 + +run_nuc_data_make + +test_pyne + +echo "Run 'source ~/.bashrc' to update environment variables. PyNE may not function correctly without doing so." +echo "PyNE build complete." diff --git a/osx_10.15.6.sh b/osx_10.15.6.sh new file mode 100755 index 0000000..7c777d7 --- /dev/null +++ b/osx_10.15.6.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# This script builds the repo version of PyNE (with the MOAB optional +# dependency) from scratch on MacOS 10.15.6. The folder $HOME/opt is created +# and PyNE is installed within. +# +# Run this script from any directory by issuing the command where +# is either "dev" or "stable": +# $ ./osx_10.15.6.sh +# After the build finishes run: +# $ source ~/.bashrc +# or open a new terminal. + +# Use package manager for as many packages as possible +brew_package_list="glib python3 wget eigen \ + git cmake vim emacs gcc openblas \ + lapack autoconf libtool make hdf5" + +pip_package_list="future numpy scipy cython nose tables matplotlib jinja2 \ + setuptools h5py" + + +source macosx.sh $1 diff --git a/ubuntu_mint.sh b/ubuntu_mint.sh index 23bd75e..c1978e2 100755 --- a/ubuntu_mint.sh +++ b/ubuntu_mint.sh @@ -34,14 +34,7 @@ function build_moab { -DCMAKE_INSTALL_PREFIX=${install_dir}/moab make make install - export LD_LIBRARY_PATH=${install_dir}/moab/lib:$LD_LIBRARY_PATH - export LIBRARY_PATH=${install_dir}/moab/lib:$LIBRARY_PATH - if [ -z \$PYTHONPATH ] - then - export PYTHONPATH=${install_dir}/moab/lib/python2.7/site-packages - else - export PYTHONPATH=${install_dir}/moab/lib/python2.7/site-packages:\$PYTHONPATH - fi + echo "export LD_LIBRARY_PATH=${install_dir}/moab/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc echo "export LIBRARY_PATH=${install_dir}/moab/lib:\$LIBRARY_PATH" >> ~/.bashrc echo "export CPLUS_INCLUDE_PATH=${install_dir}/moab/include:\$CPLUS_INCLUDE_PATH" >> ~/.bashrc @@ -49,11 +42,12 @@ function build_moab { PYTHON_VERSION=$(python -c 'import sys; print(sys.version.split('')[0][0:3])') echo "if [ -z \$PYTHONPATH ]" >> ~/.bashrc - echo "then" >> ~/.bashrc >> ~/.bashrc + echo "then" >> ~/.bashrc echo " export PYTHONPATH=$install_dir/moab/lib/python${PYTHON_VERSION}/site-packages" >> ~/.bashrc echo "else" >> ~/.bashrc echo " export PYTHONPATH=$install_dir/moab/lib/python${PYTHON_VERSION}/site-packages:\$PYTHONPATH" >> ~/.bashrc echo "fi" >> ~/.bashrc + source ~/.bashrc } function build_dagmc { @@ -92,31 +86,23 @@ function install_pyne { --clean echo "export PATH=${HOME}/.local/bin:\$PATH" >> ~/.bashrc echo "export LD_LIBRARY_PATH=${HOME}/.local/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc - echo "alias build_pyne='python setup.py install --user -- -DMOAB_LIBRARY=${install_dir}/moab/lib -DMOAB_INCLUDE_DIR=${install_dir}/moab/include'" >> ~/.bashrc - + source ~/.bashrc } -function nuc_data_make { +function run_nuc_data_make { + cd # Generate nuclear data file - export LD_LIBRARY_PATH=${HOME}/.local/lib:${LD_LIBRARY_PATH} - ./scripts/nuc_data_make + nuc_data_make } function test_pyne { + cd $install_dir/pyne cd tests - # check which python version to run correct tests - version=`python -c 'import sys; print(sys.version_info[:][0])'` - - # Run all the tests - if [ ${version} == '2' ] ; then - source ./travis-run-tests.sh python2 - elif [ ${version} == '3' ] ; then - source ./travis-run-tests.sh python3 - fi + ./travis-run-tests.sh python3 } @@ -144,9 +130,9 @@ build_dagmc install_pyne $1 -nuc_data_make +run_nuc_data_make test_pyne echo "Run 'source ~/.bashrc' to update environment variables. PyNE may not function correctly without doing so." -echo "PyNE build complete. PyNE can be rebuilt with the alias 'build_pyne' executed from ${install_dir}/pyne" +echo "PyNE build complete."