Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Mac os x installation scripts #46

Open
wants to merge 33 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
60efffc
Merge pull request #1 from pyne/main
nsryan2 Aug 10, 2020
f14554f
create a macosx sh file
nsryan2 Aug 10, 2020
eabc212
Create macosx install script from mint script
nsryan2 Aug 10, 2020
401d66e
change dependency list name
nsryan2 Aug 10, 2020
f6b8edd
Update brew and pip install lines to include elements of the ubuntu p…
nsryan2 Aug 10, 2020
7432182
Apply suggestions from code review
nsryan2 Aug 10, 2020
48abe72
Update build moab script and add build dagmc to operate with cmake
nsryan2 Aug 10, 2020
1d3b0d8
Add eigen to list of brew package installs
nsryan2 Aug 10, 2020
df3f162
Add hdf5 to the packages
nsryan2 Aug 11, 2020
655ac35
Remove references to hdf5_libdir
nsryan2 Aug 11, 2020
798a948
Remove references to hdf5_libdir
nsryan2 Aug 11, 2020
8fa80d8
Apply suggestions from code review
nsryan2 Aug 11, 2020
0892a60
Update macosx.sh
nsryan2 Aug 11, 2020
de30a2c
Update macosx.sh
nsryan2 Aug 11, 2020
e1b4d0e
Apply suggestions from code review
nsryan2 Aug 11, 2020
d0ef93a
Remove reference to python 2
nsryan2 Aug 11, 2020
234e758
add chmod=+x to the install_scripts folder
nsryan2 Aug 11, 2020
cadaae6
Merge branch 'add_mac' into main
nsryan2 Aug 11, 2020
cfb92d1
Merge pull request #2 from nsryan2/main
nsryan2 Aug 11, 2020
6542c38
Delete osx_10.15.6-stable.dockerfile
nsryan2 Aug 11, 2020
a66978b
Delete .DS_Store
nsryan2 Aug 11, 2020
7c30f01
this should now be working
bam241 Aug 12, 2020
7f9cbba
Merge branch 'add_mac' of https://github.com/nsryan2/install_scripts …
bam241 Aug 12, 2020
71b765e
cleaning
bam241 Aug 12, 2020
d0ad7a6
Merge pull request #3 from bam241/some_fix
nsryan2 Aug 12, 2020
3d32f49
Update macosx.sh
nsryan2 Aug 12, 2020
b6f7e77
Update macosx.sh
nsryan2 Aug 13, 2020
e1facd1
Add the curly brackets around variables
nsryan2 Aug 14, 2020
1f4b113
this should be the last one
bam241 Aug 14, 2020
266a31a
Merge pull request #5 from bam241/some_fix
nsryan2 Aug 14, 2020
2e4facc
convergence in macos and ubuntu scripts
gonuke Aug 14, 2020
b6a126c
Merge pull request #6 from gonuke/add_mac
nsryan2 Aug 14, 2020
1c06a88
Apply suggestions from code review
nsryan2 Aug 14, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 144 additions & 0 deletions macosx.sh
Original file line number Diff line number Diff line change
@@ -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

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Difference from Ubuntu: why not update the ENV Variables directly here (instead of sourcing .bashrc below)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should update the linux version accordingly:

I see 2 advantages:

  • simplify the scripts
  • allow to check if .bashrc if properly formed

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

nsryan2 marked this conversation as resolved.
Show resolved Hide resolved
nsryan2 marked this conversation as resolved.
Show resolved Hide resolved
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."
22 changes: 22 additions & 0 deletions osx_10.15.6.sh
Original file line number Diff line number Diff line change
@@ -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 <version>
# is either "dev" or "stable":
# $ ./osx_10.15.6.sh <version>
# 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
36 changes: 11 additions & 25 deletions ubuntu_mint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,26 +34,20 @@ 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
echo "export C_INCLUDE_PATH=${install_dir}/moab/include:\$C_INCLUDE_PATH" >> ~/.bashrc

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 {
Expand Down Expand Up @@ -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
}


Expand Down Expand Up @@ -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."