Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
fb83a291
Commit
fb83a291
authored
Dec 24, 2016
by
jchodera
Browse files
Add documentation and remove gcc build scripts
parent
3164ee17
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
53 additions
and
252 deletions
+53
-252
devtools/packaging/README.md
devtools/packaging/README.md
+53
-0
devtools/packaging/scripts/linux/build-gcc.sh
devtools/packaging/scripts/linux/build-gcc.sh
+0
-59
devtools/packaging/scripts/linux/package.sh
devtools/packaging/scripts/linux/package.sh
+0
-48
devtools/packaging/scripts/linux/prepare.sh
devtools/packaging/scripts/linux/prepare.sh
+0
-32
devtools/packaging/scripts/source/build-clang.sh
devtools/packaging/scripts/source/build-clang.sh
+0
-113
devtools/packaging/scripts/source/build.sh
devtools/packaging/scripts/source/build.sh
+0
-0
No files found.
devtools/packaging/README.md
0 → 100644
View file @
fb83a291
# Packaging OpenMM into ZIP installers
## Source
Start the docker container:
```
bash
docker run
-i
-t
--rm
-v
`
pwd
`
:/io jchodera/omnia-build-box:cuda80-amd30-clang38 bash
```
Inside the docker container:
```
bash
# Clone the OpenMM beta or release candidate tag $TAG
git clone https://github.com/pandegroup/openmm.git
cd
openmm
;
git checkout
$TAG
;
cd
..
# Build and package
source
openmm/devtools/packaging/scripts/source/prepare.sh
source
openmm/devtools/packaging/scripts/source/build.sh
source
openmm/devtools/packaging/scripts/source/package.sh
# Recover the packages to host directory
cp
packaging/compressed/
*
/io
```
## Linux
Start the docker container:
```
bash
docker run
-i
-t
--rm
-v
`
pwd
`
:/io jchodera/omnia-build-box:cuda80-amd30-clang38 bash
```
Inside the docker container:
```
bash
# Clone the OpenMM beta or release candidate tag $TAG
git clone https://github.com/pandegroup/openmm.git
cd
openmm
;
git checkout
$TAG
;
cd
..
# Build and package
source
openmm/devtools/packaging/scripts/linux/prepare.sh
source
openmm/devtools/packaging/scripts/linux/build.sh
source
openmm/devtools/packaging/scripts/linux/package.sh
# Recover the packages to host directory
cp
packaging/compressed/
*
/io
```
## OS X
On an
`osx`
machine with XCode and the OS X 10.9 frameworks installed:
```
bash
# Clone the OpenMM beta or release candidate tag $TAG
git clone https://github.com/pandegroup/openmm.git
cd
openmm
;
git checkout
$TAG
;
cd
..
# Build and package
source
openmm/devtools/packaging/scripts/osx/prepare.sh
source
openmm/devtools/packaging/scripts/osx/build.sh
source
openmm/devtools/packaging/scripts/osx/package.sh
```
devtools/packaging/scripts/linux/build-gcc.sh
deleted
100755 → 0
View file @
3164ee17
#!/bin/bash
# Build script for Linux distribution, for use in automated packaging.
# Note that this must be run from outside the checked-out openmm/ directory.
# Set relative workspace path.
export
WORKSPACE
=
`
pwd
`
# Add conda binaries to path.
PATH
=
$WORKSPACE
/miniconda/bin:
$PATH
INSTALL
=
`
pwd
`
/install
if
[
-e
$INSTALL
]
;
then
rm
-rf
$INSTALL
fi
CMAKE_FLAGS
=
"-DCMAKE_INSTALL_PREFIX=
$INSTALL
"
# Don't build tests
CMAKE_FLAGS+
=
" -DBUILD_TESTING=OFF"
# Ensure we build a release
CMAKE_FLAGS+
=
" -DCMAKE_BUILD_TYPE=Release"
# setting the rpath so that libOpenMMPME.so finds the right libfftw3
#CMAKE_FLAGS+=" -DCMAKE_INSTALL_RPATH=.."
# Use NVIDIA CUDA 8.0
CMAKE_FLAGS+
=
" -DCUDA_CUDART_LIBRARY=/usr/local/cuda-8.0/lib64/libcudart.so"
CMAKE_FLAGS+
=
" -DCUDA_NVCC_EXECUTABLE=/usr/local/cuda-8.0/bin/nvcc"
CMAKE_FLAGS+
=
" -DCUDA_SDK_ROOT_DIR=/usr/local/cuda-8.0/"
CMAKE_FLAGS+
=
" -DCUDA_TOOLKIT_INCLUDE=/usr/local/cuda-8.0/include"
CMAKE_FLAGS+
=
" -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0/"
# Use AMD APP SDK 3.0
CMAKE_FLAGS+
=
" -DOPENCL_INCLUDE_DIR=/opt/AMDAPPSDK-3.0/include/"
CMAKE_FLAGS+
=
" -DOPENCL_LIBRARY=/opt/AMDAPPSDK-3.0/lib/x86_64/libOpenCL.so"
# Generate API docs
CMAKE_FLAGS+
=
" -DOPENMM_GENERATE_API_DOCS=ON"
# Set location for FFTW3
PREFIX
=
"
$WORKSPACE
/miniconda"
CMAKE_FLAGS+
=
" -DFFTW_INCLUDES=
$PREFIX
/include"
CMAKE_FLAGS+
=
" -DFFTW_LIBRARY=
$PREFIX
/lib/libfftw3f.so"
CMAKE_FLAGS+
=
" -DFFTW_THREADS_LIBRARY=
$PREFIX
/lib/libfftw3f_threads.so"
# Necessary to find GL headers
CMAKE_FLAGS+
=
" -DCMAKE_CXX_FLAGS_RELEASE=-I/usr/include/nvidia/"
# Build in subdirectory.
if
[
-e
build
]
;
then
rm
-rf
build
fi
mkdir
build
cd
build
cmake ../openmm
$CMAKE_FLAGS
make
-j4
all
install
make
-j4
PythonInstall C++ApiDocs PythonApiDocs sphinxpdf
# Install.
make
install
cd
..
devtools/packaging/scripts/linux/package.sh
deleted
100755 → 0
View file @
3164ee17
#!/bin/bash
# Packaging script for Linux distribution, for use in automated packaging.
# Note that this must be run from outside the checked-out openmm/ directory.
# CONFIGURE HERE
export
PACKAGE_DIR
=
"packaging"
# directory to stuff packaged source distribution
export
VERSION
=
$(
sed
-nr
"s/OPENMM_VERSION:STRING=(.*)/
\1
/p"
build/CMakeCache.txt
)
export
PACKAGE_SUBDIR
=
"OpenMM-
${
VERSION
}
-Linux"
# directory where distribution will be unpacked
export
DISTRO_PREFIX
=
"OpenMM-
${
VERSION
}
-Linux"
# prefix for source distribution (e.g. ${DISTRIBUTION_NAME}.zip)
# Perform all work in a work directory.
cd
work
# Clean up.
rm
-rf
$PACKAGE_DIR
# Make a directory to contain packaged source distribution
mkdir
$PACKAGE_DIR
mkdir
$PACKAGE_DIR
/
$PACKAGE_SUBDIR
for
filename
in
$(
cat
openmm/devtools/packaging/manifests/binary/manifest.txt
)
;
do
CMD
=
"cp -r install/
$filename
$PACKAGE_DIR
/
$PACKAGE_SUBDIR
"
echo
$CMD
`
$CMD
`
done
# Add the install.sh script
CMD
=
"cp -r openmm/devtools/packaging/install.sh
$PACKAGE_DIR
/
$PACKAGE_SUBDIR
"
echo
$CMD
`
$CMD
`
# Make Python source distribution.
echo
"Building Python source distribution..."
pushd
.
cd
build
make PythonSdist
cd
python/dist
tar
zxf OpenMM-
${
VERSION
}
.tar.gz
mv
OpenMM-
${
VERSION
}
python
popd
cp
-r
build/python/dist/python
$PACKAGE_DIR
/
$PACKAGE_SUBDIR
# Create archives.
cd
$PACKAGE_DIR
mkdir
compressed
tar
zcf compressed/
${
DISTRO_PREFIX
}
.tgz
$PACKAGE_SUBDIR
zip
-r
compressed/
${
DISTRO_PREFIX
}
.zip
$PACKAGE_SUBDIR
cd
..
devtools/packaging/scripts/linux/prepare.sh
deleted
100755 → 0
View file @
3164ee17
#!/bin/bash
# Prepare for build by ensuring necessary prerequisites are locally installed.
# Set relative workspace path.
export
WORKSPACE
=
`
pwd
`
# Install miniconda
export
VERSION
=
"latest"
export
PLATFORM
=
"Linux"
export
ARCH
=
"x86_64"
export
MINICONDA
=
"Miniconda3-
$VERSION
-
$PLATFORM
-
$ARCH
.sh"
if
[
-f
miniconda
]
;
then
echo
"miniconda already exists"
else
echo
"Downloading miniconda..."
rm
-rf
Miniconda-
*
miniconda ~/.condarc
wget
--quiet
https://repo.continuum.io/miniconda/
${
MINICONDA
}
bash
${
MINICONDA
}
-b
-p
miniconda
PIP_ARGS
=
"-U"
fi
# Add to path.
export
PATH
=
$WORKSPACE
/miniconda/bin:
$PATH
# Workaround for missing libgcrypt
yum
install
-y
libgcrypt
# Ensure configuration is up to date.
conda config
--add
channels omnia
conda
install
--yes
--quiet
swig fftw3f pip doxygen sphinx sphinxcontrib-bibtex sphinxcontrib-lunrsearch sphinxcontrib-autodoc_doxygen lxml cmake
devtools/packaging/scripts/source/build-clang.sh
deleted
100755 → 0
View file @
3164ee17
#!/bin/bash
# Build script for Linux distribution, for use in automated packaging.
# Note that this must be run from outside the checked-out openmm/ directory.
#
# For Docker build
#
# Fix hbb issues.
# If statements needed because multiple Python versions are built in same docker image.
if
[
!
-e
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux
]
;
then
ln
-s
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-CentOS-linux/ /opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux
fi
if
[
!
-e
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/x86_64-redhat-linux
]
;
then
ln
-s
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/x86_64-CentOS-linux/ /opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/x86_64-redhat-linux
fi
# Clang paths
export
CLANG_PREFIX
=
"/opt/clang"
export
PATH
=
$PATH
:
$CLANG_PREFIX
/bin
# enable devtoolset-2
# will return an error return code because of python 3.x incompatible code, but this error is inconsequential
#source /opt/rh/devtoolset-2/enable || true
export
PATH
=
/opt/rh/devtoolset-2/root/usr/bin
${
PATH
:+:
${
PATH
}}
export
MANPATH
=
/opt/rh/devtoolset-2/root/usr/share/man:
$MANPATH
export
INFOPATH
=
/opt/rh/devtoolset-2/root/usr/share/info
${
INFOPATH
:+:
${
INFOPATH
}}
export
PCP_DIR
=
/opt/rh/devtoolset-2/root
# Some perl Ext::MakeMaker versions install things under /usr/lib/perl5
# even though the system otherwise would go to /usr/lib64/perl5.
export
PERL5LIB
=
/opt/rh/devtoolset-2/root//usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi:/opt/rh/devtoolset-2/root/usr/lib/perl5:/opt/rh/devtoolset-2/root//usr/lib/perl5/vendor_perl/5.8.8
${
PERL5LIB
:+:
${
PERL5LIB
}}
# bz847911 workaround:
# we need to evaluate rpm's installed run-time % { _libdir }, not rpmbuild time
# or else /etc/ld.so.conf.d files?
rpmlibdir
=
`
rpm
--eval
"%{_libdir}"
`
# bz1017604: On 64-bit hosts, we should include also the 32-bit library path.
if
[
"
$rpmlibdir
"
!=
"
${
rpmlibdir
/lib64/
}
"
]
;
then
rpmlibdir32
=
":/opt/rh/devtoolset-2/root
${
rpmlibdir
/lib64/lib
}
"
fi
export
LD_LIBRARY_PATH
=
/opt/rh/devtoolset-2/root
$rpmlibdir$rpmlibdir32
${
LD_LIBRARY_PATH
:+:
${
LD_LIBRARY_PATH
}}
# duplicate python site.py logic for sitepackages
pythonvers
=
`
python
-c
'import sys; print(sys.version[:3])'
`
export
PYTHONPATH
=
/opt/rh/devtoolset-2/root/usr/lib64/python
$pythonvers
/site-packages:/opt/rh/devtoolset-2/root/usr/lib/python
$pythonvers
/site-packages
${
PYTHONPATH
:+:
${
PYTHONPATH
}}
# CFLAGS
export
MINIMAL_CFLAGS
=
"-g -O3"
export
CFLAGS
=
"
$MINIMAL_CFLAGS
"
export
CXXFLAGS
=
"
$MINIMAL_CFLAGS
"
export
LDFLAGS
=
"
$LDPATHFLAGS
"
# Set relative workspace path.
export
WORKSPACE
=
`
pwd
`
# Add conda binaries to path.
PATH
=
$WORKSPACE
/miniconda/bin:
$PATH
INSTALL
=
`
pwd
`
/install
if
[
-e
$INSTALL
]
;
then
rm
-rf
$INSTALL
fi
CMAKE_FLAGS
=
"-DCMAKE_INSTALL_PREFIX=
$INSTALL
"
# Don't build tests
CMAKE_FLAGS+
=
" -DBUILD_TESTING=OFF"
# Use clang 3.8.1 inside omnia-build-box docker image
CMAKE_FLAGS+
=
" -DCMAKE_C_COMPILER=
$CLANG_PREFIX
/bin/clang -DCMAKE_CXX_COMPILER=
$CLANG_PREFIX
/bin/clang++"
# Ensure we build a release
CMAKE_FLAGS+
=
" -DCMAKE_BUILD_TYPE=Release"
# setting the rpath so that libOpenMMPME.so finds the right libfftw3
#CMAKE_FLAGS+=" -DCMAKE_INSTALL_RPATH=.."
# Use NVIDIA CUDA 8.0
CMAKE_FLAGS+
=
" -DCUDA_CUDART_LIBRARY=/usr/local/cuda-8.0/lib64/libcudart.so"
CMAKE_FLAGS+
=
" -DCUDA_NVCC_EXECUTABLE=/usr/local/cuda-8.0/bin/nvcc"
CMAKE_FLAGS+
=
" -DCUDA_SDK_ROOT_DIR=/usr/local/cuda-8.0/"
CMAKE_FLAGS+
=
" -DCUDA_TOOLKIT_INCLUDE=/usr/local/cuda-8.0/include"
CMAKE_FLAGS+
=
" -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0/"
# Use AMD APP SDK 3.0
CMAKE_FLAGS+
=
" -DOPENCL_INCLUDE_DIR=/opt/AMDAPPSDK-3.0/include/"
CMAKE_FLAGS+
=
" -DOPENCL_LIBRARY=/opt/AMDAPPSDK-3.0/lib/x86_64/libOpenCL.so"
# Generate API docs
CMAKE_FLAGS+
=
" -DOPENMM_GENERATE_API_DOCS=ON"
# Set location for FFTW3
PREFIX
=
"
$WORKSPACE
/miniconda"
CMAKE_FLAGS+
=
" -DFFTW_INCLUDES=
$PREFIX
/include"
CMAKE_FLAGS+
=
" -DFFTW_LIBRARY=
$PREFIX
/lib/libfftw3f.so"
CMAKE_FLAGS+
=
" -DFFTW_THREADS_LIBRARY=
$PREFIX
/lib/libfftw3f_threads.so"
# Necessary to find GL headers
CMAKE_FLAGS+
=
" -DCMAKE_CXX_FLAGS_RELEASE=-I/usr/include/nvidia/"
# Build in subdirectory.
if
[
-e
build
]
;
then
rm
-rf
build
fi
mkdir
build
cd
build
cmake ../openmm
$CMAKE_FLAGS
make
-j4
all
install
export
CFLAGS
=
"
$MINIMAL_CFLAGS
"
export
CXXFLAGS
=
"
$MINIMAL_CFLAGS
"
export
LDFLAGS
=
"
$LDPATHFLAGS
"
make
-j4
PythonInstall C++ApiDocs PythonApiDocs sphinxpdf
# Install.
make
install
cd
..
devtools/packaging/scripts/
linux/build-clang
.sh
→
devtools/packaging/scripts/
source/build
.sh
View file @
fb83a291
File moved
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment