From 190bd6ca65ae724abd409d644a18689bec433063 Mon Sep 17 00:00:00 2001 From: Matthew Krafczyk Date: Tue, 3 Jan 2017 15:23:14 -0600 Subject: Create rockstar package rockstar is a halo finding algorithm --- .../packages/rockstar/adjust_buildscript.patch | 13 ++++++++ .../repos/builtin/packages/rockstar/package.py | 37 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 var/spack/repos/builtin/packages/rockstar/adjust_buildscript.patch create mode 100644 var/spack/repos/builtin/packages/rockstar/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/rockstar/adjust_buildscript.patch b/var/spack/repos/builtin/packages/rockstar/adjust_buildscript.patch new file mode 100644 index 0000000000..e9a18e4ee4 --- /dev/null +++ b/var/spack/repos/builtin/packages/rockstar/adjust_buildscript.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index fafba4b..a21ef9e 100644 +--- a/Makefile ++++ b/Makefile +@@ -6,7 +6,7 @@ PROFFLAGS = -lm -g -pg -O2 -std=c99 + CC = gcc + CFILES = rockstar.c check_syscalls.c fof.c groupies.c subhalo_metric.c potential.c nfw.c jacobi.c fun_times.c interleaving.c universe_time.c hubble.c integrate.c distance.c config_vars.c config.c bounds.c inthash.c io/read_config.c client.c server.c merger.c inet/socket.c inet/rsocket.c inet/address.c io/meta_io.c io/io_internal.c io/io_ascii.c io/stringparse.c io/io_gadget.c io/io_generic.c io/io_art.c io/io_tipsy.c io/io_bgc2.c io/io_util.c io/io_arepo.c io/io_hdf5.c + DIST_FLAGS = +-HDF5_FLAGS = -DH5_USE_16_API -lhdf5 -DENABLE_HDF5 -I/opt/local/include -L/opt/local/lib ++HDF5_FLAGS = -DH5_USE_16_API -lhdf5 -DENABLE_HDF5 -I$(HDF5_INC_DIR) -L$(HDF5_LIB_DIR) + + all: + @make reg EXTRA_FLAGS="$(OFLAGS)" diff --git a/var/spack/repos/builtin/packages/rockstar/package.py b/var/spack/repos/builtin/packages/rockstar/package.py new file mode 100644 index 0000000000..7d430f3aec --- /dev/null +++ b/var/spack/repos/builtin/packages/rockstar/package.py @@ -0,0 +1,37 @@ +from spack import * + +class Rockstar(Package): + """Description""" + + homepage = "https://bitbucket.org/gfcstanford/rockstar" + url = "https://bitbucket.org/gfcstanford/rockstar" + + version('develop', git='https://bitbucket.org/gfcstanford/rockstar.git') + version('yt', hg='https://bitbucket.org/MatthewTurk/rockstar') + + variant('hdf5', description='Build rockstar with HDF5 support') + + patch('adjust_buildscript.patch') + + depends_on('hdf5', when='+hdf5') + + def install(self, spec, prefix): + # Set environment appropriately for HDF5 + if '+hdf5' in spec: + os.environ['HDF5_INC_DIR'] = os.environ['HDF5_DIR']+"/include" + os.environ['HDF5_LIB_DIR'] = os.environ['HDF5_DIR']+"/lib" + + # Build depending on whether hdf5 is to be used + if '+hdf5' in spec: + make('with_hdf5') + else: + make() + + # Build rockstar library + make('lib') + + mkdir(join_path(prefix.bin)) + mkdir(join_path(prefix.lib)) + + install('rockstar', join_path(prefix.bin, 'rockstar')) + install('librockstar.so', join_path(prefix.lib, 'librockstar.so')) -- cgit v1.2.3-70-g09d2 From d74309a7b75b34027256d92a5a9949c5a1116076 Mon Sep 17 00:00:00 2001 From: Matthew Krafczyk Date: Wed, 4 Jan 2017 17:49:05 -0500 Subject: Correct how rockstar prefix is found and written to file --- var/spack/repos/builtin/packages/py-yt/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py index cf35912191..00ea99c625 100644 --- a/var/spack/repos/builtin/packages/py-yt/package.py +++ b/var/spack/repos/builtin/packages/py-yt/package.py @@ -23,9 +23,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ############################################################################## +import os from spack import * - class PyYt(Package): """Volumetric Data Analysis -- cgit v1.2.3-70-g09d2 From 31f7a01a9d1babf4aa161491d8ef4557724aa6ad Mon Sep 17 00:00:00 2001 From: Matthew Krafczyk Date: Wed, 4 Jan 2017 17:44:28 -0500 Subject: Correct rockstar package installation process Needed to change the way the necessary prefixes are found as well as how the completed package is copied. There should probably be a way to do the copying in a more 'spack' way. --- var/spack/repos/builtin/packages/rockstar/package.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/rockstar/package.py b/var/spack/repos/builtin/packages/rockstar/package.py index 7d430f3aec..1235be58e0 100644 --- a/var/spack/repos/builtin/packages/rockstar/package.py +++ b/var/spack/repos/builtin/packages/rockstar/package.py @@ -1,3 +1,5 @@ +import os +import shutil from spack import * class Rockstar(Package): @@ -18,8 +20,8 @@ class Rockstar(Package): def install(self, spec, prefix): # Set environment appropriately for HDF5 if '+hdf5' in spec: - os.environ['HDF5_INC_DIR'] = os.environ['HDF5_DIR']+"/include" - os.environ['HDF5_LIB_DIR'] = os.environ['HDF5_DIR']+"/lib" + os.environ['HDF5_INC_DIR'] = spec.get_dependency('hdf5').spec.prefix+"/include" + os.environ['HDF5_LIB_DIR'] = spec.get_dependency('hdf5').spec.prefix+"/lib" # Build depending on whether hdf5 is to be used if '+hdf5' in spec: @@ -30,8 +32,10 @@ class Rockstar(Package): # Build rockstar library make('lib') - mkdir(join_path(prefix.bin)) - mkdir(join_path(prefix.lib)) - - install('rockstar', join_path(prefix.bin, 'rockstar')) - install('librockstar.so', join_path(prefix.lib, 'librockstar.so')) + # Install all files and directories + for filename in os.listdir('.'): + if filename != "." and filename != "..": + if os.path.isdir(filename): + shutil.copytree(join_path(".",filename), join_path(prefix, filename)) + else: + install(filename, join_path(prefix, filename)) -- cgit v1.2.3-70-g09d2 From 40cbe69897ea702ba5b104bab80766e07845846b Mon Sep 17 00:00:00 2001 From: Matthew Krafczyk Date: Tue, 17 Jan 2017 15:27:52 -0600 Subject: Fix installation of rockstar. --- var/spack/repos/builtin/packages/rockstar/package.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/rockstar/package.py b/var/spack/repos/builtin/packages/rockstar/package.py index 1235be58e0..993086410e 100644 --- a/var/spack/repos/builtin/packages/rockstar/package.py +++ b/var/spack/repos/builtin/packages/rockstar/package.py @@ -39,3 +39,9 @@ class Rockstar(Package): shutil.copytree(join_path(".",filename), join_path(prefix, filename)) else: install(filename, join_path(prefix, filename)) + + mkdir(prefix.bin) + mkdir(prefix.lib) + + install('rockstar', join_path(prefix.bin, 'rockstar')) + install('librockstar.so', join_path(prefix.lib, 'librockstar.so')) -- cgit v1.2.3-70-g09d2