summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/a/package.py3
-rw-r--r--var/spack/repos/builtin.mock/packages/libdwarf/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/libelf/package.py9
-rw-r--r--var/spack/repos/builtin.mock/packages/mixedversions/package.py36
-rw-r--r--var/spack/repos/builtin.mock/packages/multivalue_variant/package.py2
-rw-r--r--var/spack/repos/builtin.mock/packages/patchelf/package.py41
-rw-r--r--var/spack/repos/builtin.mock/packages/printing-package/package.py45
-rw-r--r--var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py39
-rw-r--r--var/spack/repos/builtin/packages/abyss/package.py6
-rw-r--r--var/spack/repos/builtin/packages/adept-utils/package.py13
-rw-r--r--var/spack/repos/builtin/packages/adios/package.py76
-rw-r--r--var/spack/repos/builtin/packages/adios2/package.py119
-rw-r--r--var/spack/repos/builtin/packages/adol-c/package.py1
-rw-r--r--var/spack/repos/builtin/packages/alglib/Makefile20
-rw-r--r--var/spack/repos/builtin/packages/alglib/package.py61
-rw-r--r--var/spack/repos/builtin/packages/alquimia/package.py6
-rw-r--r--var/spack/repos/builtin/packages/alsa-lib/package.py36
-rw-r--r--var/spack/repos/builtin/packages/amg2013/package.py73
-rw-r--r--var/spack/repos/builtin/packages/ampliconnoise/package.py67
-rw-r--r--var/spack/repos/builtin/packages/amr-exp-parabolic/package.py95
-rw-r--r--var/spack/repos/builtin/packages/amrex/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ant/package.py2
-rw-r--r--var/spack/repos/builtin/packages/antlr/gcc.patch15
-rw-r--r--var/spack/repos/builtin/packages/antlr/package.py23
-rw-r--r--var/spack/repos/builtin/packages/apex/package.py32
-rw-r--r--var/spack/repos/builtin/packages/apr-util/package.py92
-rw-r--r--var/spack/repos/builtin/packages/apr/package.py14
-rw-r--r--var/spack/repos/builtin/packages/archer/package.py29
-rw-r--r--var/spack/repos/builtin/packages/armadillo/package.py16
-rw-r--r--var/spack/repos/builtin/packages/arpack/package.py4
-rw-r--r--var/spack/repos/builtin/packages/aspa/package.py72
-rw-r--r--var/spack/repos/builtin/packages/astral/astral.sh3
-rw-r--r--var/spack/repos/builtin/packages/astral/package.py64
-rw-r--r--var/spack/repos/builtin/packages/augustus/package.py1
-rw-r--r--var/spack/repos/builtin/packages/automaded/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bazel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bcftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bcl2fastq2/package.py15
-rw-r--r--var/spack/repos/builtin/packages/bear/package.py12
-rw-r--r--var/spack/repos/builtin/packages/beast2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/benchmark/package.py24
-rw-r--r--var/spack/repos/builtin/packages/binutils/binutilskrell-2.24.patch52
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py5
-rw-r--r--var/spack/repos/builtin/packages/bml/package.py17
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py32
-rw-r--r--var/spack/repos/builtin/packages/bpp-core/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bpp-phyl/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bpp-seq/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bpp-suite/package.py9
-rw-r--r--var/spack/repos/builtin/packages/braker/package.py52
-rw-r--r--var/spack/repos/builtin/packages/bsseeker2/package.py49
-rw-r--r--var/spack/repos/builtin/packages/bucky/package.py57
-rw-r--r--var/spack/repos/builtin/packages/busco/package.py59
-rw-r--r--var/spack/repos/builtin/packages/butter/package.py46
-rw-r--r--var/spack/repos/builtin/packages/c-blosc/package.py26
-rw-r--r--var/spack/repos/builtin/packages/caffe/package.py8
-rw-r--r--var/spack/repos/builtin/packages/callpath/package.py30
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py139
-rw-r--r--var/spack/repos/builtin/packages/canu/package.py61
-rw-r--r--var/spack/repos/builtin/packages/cap3/package.py43
-rw-r--r--var/spack/repos/builtin/packages/cares/package.py41
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py97
-rw-r--r--var/spack/repos/builtin/packages/cbtf-argonavis/package.py99
-rw-r--r--var/spack/repos/builtin/packages/cbtf-krell/package.py192
-rw-r--r--var/spack/repos/builtin/packages/cbtf-lanl/package.py83
-rw-r--r--var/spack/repos/builtin/packages/cbtf/package.py120
-rw-r--r--var/spack/repos/builtin/packages/cdbfasta/package.py39
-rw-r--r--var/spack/repos/builtin/packages/cdhit/package.py49
-rw-r--r--var/spack/repos/builtin/packages/cdo/package.py76
-rw-r--r--var/spack/repos/builtin/packages/cereal/package.py31
-rw-r--r--var/spack/repos/builtin/packages/cgal/package.py29
-rw-r--r--var/spack/repos/builtin/packages/cgns/package.py15
-rw-r--r--var/spack/repos/builtin/packages/check/package.py39
-rw-r--r--var/spack/repos/builtin/packages/chlorop/chlorop.patch36
-rw-r--r--var/spack/repos/builtin/packages/chlorop/package.py53
-rw-r--r--var/spack/repos/builtin/packages/clamr/package.py78
-rw-r--r--var/spack/repos/builtin/packages/cleaveland4/package.py48
-rw-r--r--var/spack/repos/builtin/packages/cleverleaf/package.py15
-rw-r--r--var/spack/repos/builtin/packages/clfft/package.py53
-rw-r--r--var/spack/repos/builtin/packages/clhep/package.py21
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf/package.py110
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf3d/package.py93
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py84
-rw-r--r--var/spack/repos/builtin/packages/cmocka/package.py12
-rw-r--r--var/spack/repos/builtin/packages/cnmem/package.py7
-rw-r--r--var/spack/repos/builtin/packages/cnpy/package.py34
-rw-r--r--var/spack/repos/builtin/packages/cns-nospec/package.py109
-rw-r--r--var/spack/repos/builtin/packages/cntk/lock-file.patch20
-rw-r--r--var/spack/repos/builtin/packages/cntk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/codar-cheetah/package.py45
-rw-r--r--var/spack/repos/builtin/packages/cohmm/package.py61
-rw-r--r--var/spack/repos/builtin/packages/comd/package.py55
-rw-r--r--var/spack/repos/builtin/packages/corset/package.py44
-rw-r--r--var/spack/repos/builtin/packages/cosp2/package.py74
-rw-r--r--var/spack/repos/builtin/packages/cpprestsdk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cppzmq/package.py40
-rw-r--r--var/spack/repos/builtin/packages/cram/package.py13
-rw-r--r--var/spack/repos/builtin/packages/csdp/package.py43
-rw-r--r--var/spack/repos/builtin/packages/cub/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cube/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cufflinks/package.py46
-rw-r--r--var/spack/repos/builtin/packages/cups/package.py44
-rw-r--r--var/spack/repos/builtin/packages/dakota/package.py32
-rw-r--r--var/spack/repos/builtin/packages/daligner/package.py51
-rw-r--r--var/spack/repos/builtin/packages/damselfly/package.py10
-rw-r--r--var/spack/repos/builtin/packages/dataspaces/package.py91
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py39
-rw-r--r--var/spack/repos/builtin/packages/dialign-tx/package.py52
-rw-r--r--var/spack/repos/builtin/packages/discovar/package.py36
-rw-r--r--var/spack/repos/builtin/packages/doxygen/package.py8
-rw-r--r--var/spack/repos/builtin/packages/dyninst/package.py1
-rw-r--r--var/spack/repos/builtin/packages/ea-utils/package.py51
-rw-r--r--var/spack/repos/builtin/packages/ebms/package.py69
-rw-r--r--var/spack/repos/builtin/packages/eccodes/package.py3
-rw-r--r--var/spack/repos/builtin/packages/eigen/package.py12
-rw-r--r--var/spack/repos/builtin/packages/elemental/elemental_cublas.patch668
-rw-r--r--var/spack/repos/builtin/packages/elemental/package.py37
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py12
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py4
-rw-r--r--var/spack/repos/builtin/packages/emboss/package.py40
-rw-r--r--var/spack/repos/builtin/packages/espresso/package.py13
-rw-r--r--var/spack/repos/builtin/packages/espressopp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/exabayes/package.py57
-rw-r--r--var/spack/repos/builtin/packages/expat/package.py24
-rw-r--r--var/spack/repos/builtin/packages/falcon/package.py51
-rw-r--r--var/spack/repos/builtin/packages/fastjar/package.py36
-rw-r--r--var/spack/repos/builtin/packages/fastphase/package.py39
-rw-r--r--var/spack/repos/builtin/packages/fastqc/package.py5
-rw-r--r--var/spack/repos/builtin/packages/fastx-toolkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fenics/package.py10
-rw-r--r--var/spack/repos/builtin/packages/ferret/package.py7
-rw-r--r--var/spack/repos/builtin/packages/ffmpeg/package.py2
-rw-r--r--var/spack/repos/builtin/packages/fftw/package.py5
-rw-r--r--var/spack/repos/builtin/packages/fimpute/package.py40
-rw-r--r--var/spack/repos/builtin/packages/flecsale/package.py8
-rw-r--r--var/spack/repos/builtin/packages/flecsi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/fmt/package.py47
-rw-r--r--var/spack/repos/builtin/packages/foam-extend/package.py1
-rw-r--r--var/spack/repos/builtin/packages/folly/package.py5
-rw-r--r--var/spack/repos/builtin/packages/freebayes/package.py51
-rw-r--r--var/spack/repos/builtin/packages/fseq/package.py41
-rw-r--r--var/spack/repos/builtin/packages/gapcloser/package.py39
-rw-r--r--var/spack/repos/builtin/packages/gapfiller/package.py52
-rw-r--r--var/spack/repos/builtin/packages/gaussian/package.py71
-rw-r--r--var/spack/repos/builtin/packages/gblocks/package.py40
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py22
-rw-r--r--var/spack/repos/builtin/packages/gdbm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/geant4/package.py8
-rw-r--r--var/spack/repos/builtin/packages/gearshifft/package.py74
-rw-r--r--var/spack/repos/builtin/packages/genemark-et/package.py53
-rw-r--r--var/spack/repos/builtin/packages/genometools/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gflags/package.py12
-rw-r--r--var/spack/repos/builtin/packages/git/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glm/package.py14
-rw-r--r--var/spack/repos/builtin/packages/gmake/package.py35
-rw-r--r--var/spack/repos/builtin/packages/gmsh/package.py5
-rw-r--r--var/spack/repos/builtin/packages/go-bootstrap/package.py8
-rw-r--r--var/spack/repos/builtin/packages/go/package.py6
-rw-r--r--var/spack/repos/builtin/packages/gobject-introspection/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gradle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/graphlib/package.py10
-rw-r--r--var/spack/repos/builtin/packages/graphmap/package.py43
-rw-r--r--var/spack/repos/builtin/packages/graphviz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/grib-api/package.py39
-rw-r--r--var/spack/repos/builtin/packages/groff/gropdf.patch13
-rw-r--r--var/spack/repos/builtin/packages/groff/package.py61
-rw-r--r--var/spack/repos/builtin/packages/gromacs/package.py10
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-atl/package.py44
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py41
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-dill/package.py43
-rw-r--r--var/spack/repos/builtin/packages/gtkorvo-enet/package.py38
-rw-r--r--var/spack/repos/builtin/packages/h5z-zfp/package.py3
-rw-r--r--var/spack/repos/builtin/packages/hadoop/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hapcut2/package.py44
-rw-r--r--var/spack/repos/builtin/packages/haploview/haploview.sh3
-rw-r--r--var/spack/repos/builtin/packages/haploview/package.py54
-rw-r--r--var/spack/repos/builtin/packages/hdf/package.py27
-rw-r--r--var/spack/repos/builtin/packages/hdf5-blosc/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hdf5/package.py40
-rw-r--r--var/spack/repos/builtin/packages/hepmc/package.py21
-rw-r--r--var/spack/repos/builtin/packages/hpccg/package.py77
-rw-r--r--var/spack/repos/builtin/packages/hpx/package.py42
-rw-r--r--var/spack/repos/builtin/packages/hybpiper/package.py59
-rw-r--r--var/spack/repos/builtin/packages/icedtea/package.py181
-rw-r--r--var/spack/repos/builtin/packages/icet/package.py4
-rw-r--r--var/spack/repos/builtin/packages/idba/package.py48
-rw-r--r--var/spack/repos/builtin/packages/igraph/package.py36
-rw-r--r--var/spack/repos/builtin/packages/impute2/package.py39
-rw-r--r--var/spack/repos/builtin/packages/infernal/package.py49
-rw-r--r--var/spack/repos/builtin/packages/intel-daal/package.py48
-rw-r--r--var/spack/repos/builtin/packages/intel-ipp/package.py48
-rw-r--r--var/spack/repos/builtin/packages/intel-mkl/package.py81
-rw-r--r--var/spack/repos/builtin/packages/intel-mpi/package.py92
-rw-r--r--var/spack/repos/builtin/packages/intel-parallel-studio/package.py598
-rw-r--r--var/spack/repos/builtin/packages/intel-tbb/package.py (renamed from var/spack/repos/builtin/packages/tbb/package.py)4
-rw-r--r--var/spack/repos/builtin/packages/intel/package.py212
-rw-r--r--var/spack/repos/builtin/packages/isaac-server/jpeg.patch34
-rw-r--r--var/spack/repos/builtin/packages/isaac-server/package.py14
-rw-r--r--var/spack/repos/builtin/packages/isaac/package.py9
-rw-r--r--var/spack/repos/builtin/packages/itsx/package.py44
-rw-r--r--var/spack/repos/builtin/packages/jasper/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jdk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/jmol/package.py2
-rw-r--r--var/spack/repos/builtin/packages/jsoncpp/package.py20
-rw-r--r--var/spack/repos/builtin/packages/kahip/package.py22
-rw-r--r--var/spack/repos/builtin/packages/kallisto/package.py39
-rw-r--r--var/spack/repos/builtin/packages/kealib/package.py21
-rw-r--r--var/spack/repos/builtin/packages/kentutils/package.py52
-rw-r--r--var/spack/repos/builtin/packages/kripke/package.py34
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py6
-rw-r--r--var/spack/repos/builtin/packages/last/package.py39
-rw-r--r--var/spack/repos/builtin/packages/lbann/package.py37
-rw-r--r--var/spack/repos/builtin/packages/lcals/package.py122
-rw-r--r--var/spack/repos/builtin/packages/legion/package.py8
-rw-r--r--var/spack/repos/builtin/packages/libaec/package.py42
-rw-r--r--var/spack/repos/builtin/packages/libbeagle/package.py47
-rw-r--r--var/spack/repos/builtin/packages/libbsd/cdefs.h.patch15
-rw-r--r--var/spack/repos/builtin/packages/libbsd/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libdrm/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libemos/package.py28
-rw-r--r--var/spack/repos/builtin/packages/libevpath/package.py49
-rw-r--r--var/spack/repos/builtin/packages/libfabric/package.py64
-rw-r--r--var/spack/repos/builtin/packages/libffs/package.py51
-rw-r--r--var/spack/repos/builtin/packages/libint/package.py31
-rw-r--r--var/spack/repos/builtin/packages/libjpeg-turbo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libjpeg/package.py (renamed from var/spack/repos/builtin/packages/jpeg/package.py)4
-rw-r--r--var/spack/repos/builtin/packages/libpipeline/package.py40
-rw-r--r--var/spack/repos/builtin/packages/libsplash/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libsvm/package.py43
-rw-r--r--var/spack/repos/builtin/packages/libszip/package.py (renamed from var/spack/repos/builtin/packages/szip/package.py)23
-rw-r--r--var/spack/repos/builtin/packages/libwebsockets/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxc/package.py11
-rw-r--r--var/spack/repos/builtin/packages/libxpm/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libxslt/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libyogrt/package.py38
-rw-r--r--var/spack/repos/builtin/packages/llvm-lld/package.py25
-rw-r--r--var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py36
-rw-r--r--var/spack/repos/builtin/packages/llvm/package.py16
-rw-r--r--var/spack/repos/builtin/packages/lmdb/package.py62
-rw-r--r--var/spack/repos/builtin/packages/lua/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lulesh/package.py65
-rw-r--r--var/spack/repos/builtin/packages/lulesh/remove_defaults.patch60
-rw-r--r--var/spack/repos/builtin/packages/m4/package.py3
-rw-r--r--var/spack/repos/builtin/packages/mad-numdiff/package.py9
-rw-r--r--var/spack/repos/builtin/packages/magics/package.py65
-rw-r--r--var/spack/repos/builtin/packages/mallocmc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/man-db/package.py59
-rw-r--r--var/spack/repos/builtin/packages/mariadb/package.py12
-rw-r--r--var/spack/repos/builtin/packages/matlab/package.py2
-rw-r--r--var/spack/repos/builtin/packages/maven/package.py2
-rw-r--r--var/spack/repos/builtin/packages/maverick/package.py48
-rw-r--r--var/spack/repos/builtin/packages/mbedtls/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mcl/package.py36
-rw-r--r--var/spack/repos/builtin/packages/mesa-glu/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mesa/package.py77
-rw-r--r--var/spack/repos/builtin/packages/metis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py262
-rw-r--r--var/spack/repos/builtin/packages/microbiomeutil/package.py53
-rw-r--r--var/spack/repos/builtin/packages/miniaero/package.py62
-rw-r--r--var/spack/repos/builtin/packages/miniamr/package.py70
-rw-r--r--var/spack/repos/builtin/packages/minife/package.py80
-rw-r--r--var/spack/repos/builtin/packages/minighost/package.py96
-rw-r--r--var/spack/repos/builtin/packages/minigmg/package.py67
-rw-r--r--var/spack/repos/builtin/packages/minimd/package.py76
-rw-r--r--var/spack/repos/builtin/packages/minismac2d/package.py80
-rw-r--r--var/spack/repos/builtin/packages/minixyce/package.py80
-rw-r--r--var/spack/repos/builtin/packages/mitofates/package.py41
-rw-r--r--var/spack/repos/builtin/packages/mitos/package.py10
-rw-r--r--var/spack/repos/builtin/packages/moab/package.py5
-rw-r--r--var/spack/repos/builtin/packages/molcas/install_driver.patch114
-rw-r--r--var/spack/repos/builtin/packages/molcas/package.py48
-rw-r--r--var/spack/repos/builtin/packages/mothur/package.py59
-rw-r--r--var/spack/repos/builtin/packages/mpest/package.py50
-rw-r--r--var/spack/repos/builtin/packages/mpiblast/mpiBLAST-1.6.0-patch-110806182
-rw-r--r--var/spack/repos/builtin/packages/mpiblast/package.py51
-rw-r--r--var/spack/repos/builtin/packages/mpich/mpich32_clang.patch13
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mpifileutils/package.py20
-rw-r--r--var/spack/repos/builtin/packages/mpip/package.py14
-rw-r--r--var/spack/repos/builtin/packages/mpix-launch-swift/package.py47
-rw-r--r--var/spack/repos/builtin/packages/mrbayes/package.py72
-rw-r--r--var/spack/repos/builtin/packages/msgpack-c/package.py10
-rw-r--r--var/spack/repos/builtin/packages/muscle/package.py5
-rw-r--r--var/spack/repos/builtin/packages/muse/package.py38
-rw-r--r--var/spack/repos/builtin/packages/muster/package.py13
-rw-r--r--var/spack/repos/builtin/packages/mvapich2/package.py19
-rw-r--r--var/spack/repos/builtin/packages/mxml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nalu/package.py11
-rw-r--r--var/spack/repos/builtin/packages/nanoflann/package.py39
-rw-r--r--var/spack/repos/builtin/packages/nco/NUL-0-NULL.patch51
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ncview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nekbone/package.py60
-rw-r--r--var/spack/repos/builtin/packages/netcdf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/netlib-scalapack/package.py10
-rw-r--r--var/spack/repos/builtin/packages/nextflow/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ninja-fortran/package.py36
-rw-r--r--var/spack/repos/builtin/packages/ninja/package.py34
-rw-r--r--var/spack/repos/builtin/packages/nut/package.py62
-rw-r--r--var/spack/repos/builtin/packages/octave/package.py8
-rw-r--r--var/spack/repos/builtin/packages/of-adios-write/package.py136
-rw-r--r--var/spack/repos/builtin/packages/ompt-openmp/package.py17
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py23
-rw-r--r--var/spack/repos/builtin/packages/openblas/power8.patch7809
-rw-r--r--var/spack/repos/builtin/packages/opencoarrays/package.py5
-rw-r--r--var/spack/repos/builtin/packages/opencv/package.py171
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-bin.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-bin-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-build.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-build-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-etc.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-etc-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-mgridgen-lib.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/mgridgen-lib-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-mpi.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-mpi-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-scotch-metis-lib.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/scotch-metis-lib-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-site.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-site-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/1612-zoltan-lib.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/zoltan-lib-1612.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/openfoam-site.patch (renamed from var/spack/repos/builtin/packages/openfoam-com/openfoam-site-plus.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-com/package.py44
-rw-r--r--var/spack/repos/builtin/packages/openfoam-org/41-etc.patch (renamed from var/spack/repos/builtin/packages/openfoam-org/openfoam-etc-41.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-org/41-site.patch (renamed from var/spack/repos/builtin/packages/openfoam-org/openfoam-site-41.patch)0
-rw-r--r--var/spack/repos/builtin/packages/openfoam-org/package.py7
-rw-r--r--var/spack/repos/builtin/packages/openmc/package.py91
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py31
-rw-r--r--var/spack/repos/builtin/packages/openscenegraph/package.py36
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py291
-rw-r--r--var/spack/repos/builtin/packages/orfm/package.py37
-rw-r--r--var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py6
-rw-r--r--var/spack/repos/builtin/packages/otf2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/pacbio-daligner/package.py48
-rw-r--r--var/spack/repos/builtin/packages/pacbio-damasker/package.py47
-rw-r--r--var/spack/repos/builtin/packages/pacbio-dazz-db/package.py55
-rw-r--r--var/spack/repos/builtin/packages/pacbio-dextractor/package.py51
-rw-r--r--var/spack/repos/builtin/packages/pagit/package.py68
-rw-r--r--var/spack/repos/builtin/packages/paml/package.py52
-rw-r--r--var/spack/repos/builtin/packages/panda/package.py12
-rw-r--r--var/spack/repos/builtin/packages/paradiseo/package.py27
-rw-r--r--var/spack/repos/builtin/packages/parallel-netcdf/package.py14
-rw-r--r--var/spack/repos/builtin/packages/parmgridgen/package.py4
-rw-r--r--var/spack/repos/builtin/packages/parsimonator/package.py65
-rw-r--r--var/spack/repos/builtin/packages/partitionfinder/package.py52
-rw-r--r--var/spack/repos/builtin/packages/pathfinder/package.py55
-rw-r--r--var/spack/repos/builtin/packages/pbmpi/package.py48
-rw-r--r--var/spack/repos/builtin/packages/pcma/package.py43
-rw-r--r--var/spack/repos/builtin/packages/pdsh/package.py12
-rw-r--r--var/spack/repos/builtin/packages/pegtl/package.py9
-rw-r--r--var/spack/repos/builtin/packages/pennant/package.py99
-rw-r--r--var/spack/repos/builtin/packages/perl-math-cdf/package.py35
-rw-r--r--var/spack/repos/builtin/packages/perl/package.py31
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py6
-rw-r--r--var/spack/repos/builtin/packages/pgdspider/package.py57
-rw-r--r--var/spack/repos/builtin/packages/pgdspider/pgdspider.sh3
-rw-r--r--var/spack/repos/builtin/packages/phylip/package.py45
-rw-r--r--var/spack/repos/builtin/packages/picard/package.py4
-rw-r--r--var/spack/repos/builtin/packages/pidx/package.py12
-rw-r--r--var/spack/repos/builtin/packages/piranha/package.py25
-rw-r--r--var/spack/repos/builtin/packages/pkg-config/package.py11
-rw-r--r--var/spack/repos/builtin/packages/pkgconf/package.py43
-rw-r--r--var/spack/repos/builtin/packages/plink/package.py41
-rw-r--r--var/spack/repos/builtin/packages/pngwriter/package.py2
-rw-r--r--var/spack/repos/builtin/packages/poamsa/package.py50
-rw-r--r--var/spack/repos/builtin/packages/portage/package.py8
-rw-r--r--var/spack/repos/builtin/packages/preseq/package.py44
-rw-r--r--var/spack/repos/builtin/packages/price/package.py40
-rw-r--r--var/spack/repos/builtin/packages/probconsrna/package.py44
-rw-r--r--var/spack/repos/builtin/packages/protobuf/package.py29
-rw-r--r--var/spack/repos/builtin/packages/protobuf/pkgconfig.patch58
-rw-r--r--var/spack/repos/builtin/packages/pruners-ninja/package.py1
-rw-r--r--var/spack/repos/builtin/packages/psi4/package.py35
-rw-r--r--var/spack/repos/builtin/packages/py-3to2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-apache-libcloud/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-apipkg/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-argcomplete/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-astropy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-biom-format/package.py48
-rw-r--r--var/spack/repos/builtin/packages/py-bleach/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-blessings/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-bottleneck/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-cdat-lite/package.py11
-rw-r--r--var/spack/repos/builtin/packages/py-csvkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dask/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dateutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-dbf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-decorator/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-deeptools/package.py45
-rw-r--r--var/spack/repos/builtin/packages/py-emcee/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-entrypoints/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-epydoc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-execnet/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-fastaindex/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-faststructure/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-funcsigs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-functools32/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-git2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-h5py/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-html5lib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-igraph/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-iminuit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-jpype/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-jsonschema/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lazyarray/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-lit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-lockfile/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-logilab-common/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-macholib/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-machotools/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-macs2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mako/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-misopy/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-mock/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mpi4py/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-mpmath/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-nestle/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-networkx/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-numexpr/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-numpy/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-pathspec/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-periodictable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-petsc4py/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-pillow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pipits/package.py80
-rw-r--r--var/spack/repos/builtin/packages/py-pmw/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-ppft/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-prettytable/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-psutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-py2bit/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-pybigwig/package.py37
-rw-r--r--var/spack/repos/builtin/packages/py-pybind11/package.py51
-rw-r--r--var/spack/repos/builtin/packages/py-pycrypto/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pycurl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pydatalog/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pyelftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pylint/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pypeflow/package.py40
-rw-r--r--var/spack/repos/builtin/packages/py-pyrad/package.py41
-rw-r--r--var/spack/repos/builtin/packages/py-pysam/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-pyscaf/package.py38
-rw-r--r--var/spack/repos/builtin/packages/py-pyside/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-pytest-xdist/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-python-daemon/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-readme-renderer/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-regex/package.py36
-rw-r--r--var/spack/repos/builtin/packages/py-restview/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-rpy2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-image/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scikit-learn/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-shiboken/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-slepc4py/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sncosmo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sphinx/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-sqlalchemy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-sympy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-tappy/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-theano/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-twisted/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-unittest2py3k/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-urwid/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-vcversioner/package.py2
-rw-r--r--var/spack/repos/builtin/packages/py-xlrd/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qbox/package.py93
-rw-r--r--var/spack/repos/builtin/packages/qhull/package.py2
-rw-r--r--var/spack/repos/builtin/packages/qhull/qhull-unused-intel-17.02.patch18
-rw-r--r--var/spack/repos/builtin/packages/qmd-progress/package.py62
-rw-r--r--var/spack/repos/builtin/packages/qt-creator/package.py34
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py11
-rw-r--r--var/spack/repos/builtin/packages/qtgraph/package.py73
-rw-r--r--var/spack/repos/builtin/packages/quinoa/package.py56
-rw-r--r--var/spack/repos/builtin/packages/qwt/package.py49
-rw-r--r--var/spack/repos/builtin/packages/r-ada/package.py37
-rw-r--r--var/spack/repos/builtin/packages/r-corpcor/package.py34
-rw-r--r--var/spack/repos/builtin/packages/r-mvtnorm/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-rcpp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rjava/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r-rpart/package.py2
-rw-r--r--var/spack/repos/builtin/packages/r/package.py3
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ravel/package.py8
-rw-r--r--var/spack/repos/builtin/packages/raxml/package.py107
-rw-r--r--var/spack/repos/builtin/packages/ray/package.py44
-rw-r--r--var/spack/repos/builtin/packages/rdp-classifier/package.py45
-rw-r--r--var/spack/repos/builtin/packages/redundans/package.py57
-rw-r--r--var/spack/repos/builtin/packages/relion/package.py4
-rw-r--r--var/spack/repos/builtin/packages/revbayes/package.py62
-rw-r--r--var/spack/repos/builtin/packages/rhash/package.py78
-rw-r--r--var/spack/repos/builtin/packages/root/package.py6
-rw-r--r--var/spack/repos/builtin/packages/rose/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rr/package.py66
-rw-r--r--var/spack/repos/builtin/packages/rsbench/package.py66
-rw-r--r--var/spack/repos/builtin/packages/rsem/package.py45
-rw-r--r--var/spack/repos/builtin/packages/rtags/add_string_iterator_erase_compile_check.patch67
-rw-r--r--var/spack/repos/builtin/packages/rtags/package.py49
-rw-r--r--var/spack/repos/builtin/packages/rtax/package.py43
-rw-r--r--var/spack/repos/builtin/packages/sabre/package.py48
-rw-r--r--var/spack/repos/builtin/packages/salmon/package.py41
-rw-r--r--var/spack/repos/builtin/packages/sas/package.py9
-rw-r--r--var/spack/repos/builtin/packages/satsuma2/package.py41
-rw-r--r--var/spack/repos/builtin/packages/savanna/package.py51
-rw-r--r--var/spack/repos/builtin/packages/sbt/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scala/package.py2
-rw-r--r--var/spack/repos/builtin/packages/scalasca/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py9
-rw-r--r--var/spack/repos/builtin/packages/scorep/gcc7.patch42
-rw-r--r--var/spack/repos/builtin/packages/scorep/package.py7
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py8
-rw-r--r--var/spack/repos/builtin/packages/scr/package.py125
-rw-r--r--var/spack/repos/builtin/packages/sdl2/package.py11
-rw-r--r--var/spack/repos/builtin/packages/seqprep/package.py39
-rw-r--r--var/spack/repos/builtin/packages/serf/package.py68
-rw-r--r--var/spack/repos/builtin/packages/shapeit/package.py44
-rw-r--r--var/spack/repos/builtin/packages/shared-mime-info/package.py1
-rw-r--r--var/spack/repos/builtin/packages/shortstack/package.py45
-rw-r--r--var/spack/repos/builtin/packages/sickle/package.py43
-rw-r--r--var/spack/repos/builtin/packages/signalp/package.py61
-rw-r--r--var/spack/repos/builtin/packages/simplemoc/package.py68
-rw-r--r--var/spack/repos/builtin/packages/singularity/package.py40
-rw-r--r--var/spack/repos/builtin/packages/slepc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/slurm/package.py109
-rw-r--r--var/spack/repos/builtin/packages/smalt/package.py34
-rw-r--r--var/spack/repos/builtin/packages/smc/package.py83
-rw-r--r--var/spack/repos/builtin/packages/snap-berkeley/package.py57
-rw-r--r--var/spack/repos/builtin/packages/snap/package.py64
-rw-r--r--var/spack/repos/builtin/packages/snbone/package.py64
-rw-r--r--var/spack/repos/builtin/packages/sniffles/package.py42
-rw-r--r--var/spack/repos/builtin/packages/snptest/package.py39
-rw-r--r--var/spack/repos/builtin/packages/soap2/package.py42
-rw-r--r--var/spack/repos/builtin/packages/soapindel/package.py53
-rw-r--r--var/spack/repos/builtin/packages/soapsnp/package.py (renamed from var/spack/repos/builtin/packages/gbenchmark/package.py)30
-rw-r--r--var/spack/repos/builtin/packages/somatic-sniper/package.py38
-rw-r--r--var/spack/repos/builtin/packages/sortmerna/package.py44
-rw-r--r--var/spack/repos/builtin/packages/spades/package.py43
-rw-r--r--var/spack/repos/builtin/packages/spark/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sparta/package.py46
-rw-r--r--var/spack/repos/builtin/packages/sqlite/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sspace-longread/package.py52
-rw-r--r--var/spack/repos/builtin/packages/sspace-standard/package.py56
-rw-r--r--var/spack/repos/builtin/packages/stacks/package.py48
-rw-r--r--var/spack/repos/builtin/packages/stc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/stringtie/package.py41
-rw-r--r--var/spack/repos/builtin/packages/structure/package.py47
-rw-r--r--var/spack/repos/builtin/packages/sublime-text/package.py2
-rw-r--r--var/spack/repos/builtin/packages/subread/package.py52
-rw-r--r--var/spack/repos/builtin/packages/sumaclust/package.py42
-rw-r--r--var/spack/repos/builtin/packages/sundials/package.py83
-rw-r--r--var/spack/repos/builtin/packages/superlu/package.py6
-rw-r--r--var/spack/repos/builtin/packages/swarm/package.py41
-rw-r--r--var/spack/repos/builtin/packages/symengine/package.py8
-rw-r--r--var/spack/repos/builtin/packages/sympol/package.py9
-rw-r--r--var/spack/repos/builtin/packages/sz/package.py4
-rw-r--r--var/spack/repos/builtin/packages/tabix/package.py50
-rw-r--r--var/spack/repos/builtin/packages/task/package.py17
-rw-r--r--var/spack/repos/builtin/packages/taskd/package.py16
-rw-r--r--var/spack/repos/builtin/packages/tcoffee/package.py57
-rw-r--r--var/spack/repos/builtin/packages/tealeaf/package.py77
-rw-r--r--var/spack/repos/builtin/packages/tethex/package.py11
-rw-r--r--var/spack/repos/builtin/packages/thrift/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tig/package.py36
-rw-r--r--var/spack/repos/builtin/packages/tk/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tmalign/package.py39
-rw-r--r--var/spack/repos/builtin/packages/tmux/package.py16
-rw-r--r--var/spack/repos/builtin/packages/tophat/package.py47
-rw-r--r--var/spack/repos/builtin/packages/tppred/package.py54
-rw-r--r--var/spack/repos/builtin/packages/transabyss/package.py45
-rw-r--r--var/spack/repos/builtin/packages/transdecoder/package.py50
-rw-r--r--var/spack/repos/builtin/packages/transposome/package.py37
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py70
-rw-r--r--var/spack/repos/builtin/packages/trimgalore/package.py44
-rw-r--r--var/spack/repos/builtin/packages/trimmomatic/package.py4
-rw-r--r--var/spack/repos/builtin/packages/udunits2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/unixodbc/package.py3
-rw-r--r--var/spack/repos/builtin/packages/usearch/package.py49
-rw-r--r--var/spack/repos/builtin/packages/varscan/package.py59
-rw-r--r--var/spack/repos/builtin/packages/varscan/varscan.sh3
-rw-r--r--var/spack/repos/builtin/packages/vc/package.py12
-rw-r--r--var/spack/repos/builtin/packages/vcftools/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vecgeom/package.py9
-rw-r--r--var/spack/repos/builtin/packages/vegas2/package.py49
-rw-r--r--var/spack/repos/builtin/packages/velvet/package.py40
-rw-r--r--var/spack/repos/builtin/packages/viennarna/package.py67
-rw-r--r--var/spack/repos/builtin/packages/visit/package.py35
-rw-r--r--var/spack/repos/builtin/packages/vmatch/package.py42
-rw-r--r--var/spack/repos/builtin/packages/votca-csg/package.py9
-rw-r--r--var/spack/repos/builtin/packages/votca-ctp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/votca-moo/package.py9
-rw-r--r--var/spack/repos/builtin/packages/votca-tools/package.py9
-rw-r--r--var/spack/repos/builtin/packages/votca-xtp/package.py9
-rw-r--r--var/spack/repos/builtin/packages/vpfft/package.py67
-rw-r--r--var/spack/repos/builtin/packages/vpic/package.py9
-rw-r--r--var/spack/repos/builtin/packages/vsearch/package.py39
-rw-r--r--var/spack/repos/builtin/packages/xplor-nih/package.py48
-rw-r--r--var/spack/repos/builtin/packages/xproto/package.py5
-rw-r--r--var/spack/repos/builtin/packages/xrootd/package.py19
-rw-r--r--var/spack/repos/builtin/packages/xsbench/package.py65
-rw-r--r--var/spack/repos/builtin/packages/xsdk/package.py4
-rw-r--r--var/spack/repos/builtin/packages/xsdktrilinos/package.py10
-rw-r--r--var/spack/repos/builtin/packages/yaml-cpp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/zeromq/package.py14
-rw-r--r--var/spack/repos/builtin/packages/zfp/package.py25
-rw-r--r--var/spack/repos/builtin/packages/zlib/package.py2
-rw-r--r--var/spack/repos/builtin/packages/zoltan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/zsh/package.py17
-rw-r--r--var/spack/repos/builtin/packages/zstd/package.py6
601 files changed, 24908 insertions, 3132 deletions
diff --git a/var/spack/repos/builtin.mock/packages/a/package.py b/var/spack/repos/builtin.mock/packages/a/package.py
index 59d8b9e330..037b322f10 100644
--- a/var/spack/repos/builtin.mock/packages/a/package.py
+++ b/var/spack/repos/builtin.mock/packages/a/package.py
@@ -26,12 +26,13 @@ from spack import *
class A(AutotoolsPackage):
- """Simple package with no dependencies"""
+ """Simple package with one optional dependency"""
homepage = "http://www.example.com"
url = "http://www.example.com/a-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
+ version('2.0', '2.0_a_hash')
variant(
'foo',
diff --git a/var/spack/repos/builtin.mock/packages/libdwarf/package.py b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
index 10d6fa8e88..0cdbaf2a33 100644
--- a/var/spack/repos/builtin.mock/packages/libdwarf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libdwarf/package.py
@@ -41,4 +41,4 @@ class Libdwarf(Package):
depends_on("libelf")
def install(self, spec, prefix):
- pass
+ touch(prefix.libdwarf)
diff --git a/var/spack/repos/builtin.mock/packages/libelf/package.py b/var/spack/repos/builtin.mock/packages/libelf/package.py
index 3a2fe603ef..0390963081 100644
--- a/var/spack/repos/builtin.mock/packages/libelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/libelf/package.py
@@ -34,11 +34,4 @@ class Libelf(Package):
version('0.8.10', '9db4d36c283d9790d8fa7df1f4d7b4d9')
def install(self, spec, prefix):
- configure("--prefix=%s" % prefix,
- "--enable-shared",
- "--disable-dependency-tracking",
- "--disable-debug")
- make()
-
- # The mkdir commands in libelf's intsall can fail in parallel
- make("install", parallel=False)
+ touch(prefix.libelf)
diff --git a/var/spack/repos/builtin.mock/packages/mixedversions/package.py b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
new file mode 100644
index 0000000000..5b56eb004d
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/mixedversions/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mixedversions(Package):
+ url = "http://www.fake-mixedversions.org/downloads/mixedversions-1.0.tar.gz"
+
+ version('2.0.1', 'hashc')
+ version('2.0', 'hashb')
+ version('1.0.1', 'hasha')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/multivalue_variant/package.py b/var/spack/repos/builtin.mock/packages/multivalue_variant/package.py
index f20bf7c369..946b9893d8 100644
--- a/var/spack/repos/builtin.mock/packages/multivalue_variant/package.py
+++ b/var/spack/repos/builtin.mock/packages/multivalue_variant/package.py
@@ -52,6 +52,8 @@ class MultivalueVariant(Package):
depends_on('mpi')
depends_on('callpath')
+ depends_on('a')
+ depends_on('a@1.0', when='fee=barbaz')
def install(self, spec, prefix):
pass
diff --git a/var/spack/repos/builtin.mock/packages/patchelf/package.py b/var/spack/repos/builtin.mock/packages/patchelf/package.py
new file mode 100644
index 0000000000..915f3df0c6
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/patchelf/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Patchelf(AutotoolsPackage):
+ """
+ PatchELF is a small utility to modify the
+ dynamic linker and RPATH of ELF executables.
+ """
+
+ homepage = "https://nixos.org/patchelf.html"
+ url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz"
+
+ list_url = "http://nixos.org/releases/patchelf/"
+ list_depth = 1
+
+ version('0.9', '3c265508526760f233620f35d79c79fc')
+ version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01')
diff --git a/var/spack/repos/builtin.mock/packages/printing-package/package.py b/var/spack/repos/builtin.mock/packages/printing-package/package.py
new file mode 100644
index 0000000000..2396677252
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/printing-package/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PrintingPackage(Package):
+ """This package prints some output from its install method.
+
+ We use this to test whether that output is properly logged.
+ """
+ homepage = "http://www.example.com/printing_package"
+ url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
+
+ version('1.0', 'foobarbaz')
+
+ def install(self, spec, prefix):
+ print("BEFORE INSTALL")
+
+ configure('--prefix=%s' % prefix)
+ make()
+ make('install')
+
+ print("AFTER INSTALL")
diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
new file mode 100644
index 0000000000..c6630927c7
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class SinglevalueVariantDependent(Package):
+ """Simple package with one optional dependency"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/archive-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ depends_on('multivalue_variant fee=baz')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/abyss/package.py b/var/spack/repos/builtin/packages/abyss/package.py
index e8e0fb4d45..f3a9f27748 100644
--- a/var/spack/repos/builtin/packages/abyss/package.py
+++ b/var/spack/repos/builtin/packages/abyss/package.py
@@ -31,12 +31,14 @@ class Abyss(AutotoolsPackage):
is useful for assembling genomes up to 100 Mbases in size."""
homepage = "http://www.bcgsc.ca/platform/bioinfo/software/abyss"
- url = "http://www.bcgsc.ca/platform/bioinfo/software/abyss/releases/2.0.2/abyss-2.0.2.tar.gz"
+ url = "https://github.com/bcgsc/abyss/archive/2.0.2.tar.gz"
version('2.0.2', '1623f55ad7f4586e80f6e74b1f27c798')
+ version('1.5.2', '10d6d72d1a915e618d41a5cbbcf2364c')
depends_on('mpi')
- depends_on('boost@:1.50.0,1.53.0:')
+ depends_on('boost@:1.50.0,1.53.0:', when='@2.0.2:')
+ depends_on('boost@:1.50.0,1.53.0:1.59.0', when='@:1.5.2')
depends_on('sparsehash')
depends_on('sqlite')
diff --git a/var/spack/repos/builtin/packages/adept-utils/package.py b/var/spack/repos/builtin/packages/adept-utils/package.py
index 609dff2fe7..ab1a4ca861 100644
--- a/var/spack/repos/builtin/packages/adept-utils/package.py
+++ b/var/spack/repos/builtin/packages/adept-utils/package.py
@@ -25,7 +25,7 @@
from spack import *
-class AdeptUtils(Package):
+class AdeptUtils(CMakePackage):
"""Utility libraries for LLNL performance tools."""
homepage = "https://github.com/llnl/adept-utils"
@@ -34,11 +34,6 @@ class AdeptUtils(Package):
version('1.0.1', '731a310717adcb004d9d195130efee7d')
version('1.0', '5c6cd9badce56c945ac8551e34804397')
- depends_on("boost")
- depends_on("mpi")
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake(*std_cmake_args)
- make()
- make("install")
+ depends_on('boost')
+ depends_on('mpi')
+ depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/adios/package.py b/var/spack/repos/builtin/packages/adios/package.py
index 2d7b9e2997..cebd90144f 100644
--- a/var/spack/repos/builtin/packages/adios/package.py
+++ b/var/spack/repos/builtin/packages/adios/package.py
@@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
@@ -34,11 +33,13 @@ class Adios(AutotoolsPackage):
"""
homepage = "http://www.olcf.ornl.gov/center-projects/adios/"
- url = "https://github.com/ornladios/ADIOS/archive/v1.11.1.tar.gz"
+ url = "https://github.com/ornladios/ADIOS/archive/v1.12.0.tar.gz"
version('develop', git='https://github.com/ornladios/ADIOS.git',
branch='master')
+ version('1.12.0', '84a1c71b6698009224f6f748c5257fc9')
version('1.11.1', '5639bfc235e50bf17ba9dafb14ea4185')
+ version('1.11.0', '5eead5b2ccf962f5e6d5f254d29d5238')
version('1.10.0', 'eff450a4c0130479417cfd63186957f3')
version('1.9.0', '310ff02388bbaa2b1c1710ee970b5678')
@@ -55,29 +56,37 @@ class Adios(AutotoolsPackage):
variant('zlib', default=True, description='Enable zlib transform support')
variant('bzip2', default=False, description='Enable bzip2 transform support')
variant('szip', default=False, description='Enable szip transform support')
- variant('zfp', default=False, description='Enable ZFP transform support')
+ variant('zfp', default=True, description='Enable ZFP transform support')
+ variant('sz', default=True, description='Enable SZ transform support')
# transports and serial file converters
variant('hdf5', default=False, description='Enable parallel HDF5 transport and serial bp2h5 converter')
-
- # Lots of setting up here for this package
- # module swap PrgEnv-intel PrgEnv-$COMP
- # module load cray-hdf5/1.8.14
- # module load python/2.7.10
+ variant('netcdf', default=False, description='Enable netcdf support')
+ variant('flexpath', default=False, description='Enable flexpath transport')
+ variant('dataspaces', default=False, description='Enable dataspaces transport')
+ variant('staging', default=False, description='Enable dataspaces and flexpath staging transports')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
- depends_on('libtool', type='build')
+ depends_on('libtool@:2.4.2', type='build')
depends_on('python', type='build')
depends_on('mpi', when='+mpi')
- depends_on('mxml@2.9:')
# optional transformations
depends_on('zlib', when='+zlib')
depends_on('bzip2', when='+bzip2')
depends_on('szip', when='+szip')
+ depends_on('sz', when='+sz')
depends_on('zfp@:0.5.0', when='+zfp')
# optional transports & file converters
depends_on('hdf5@1.8:+mpi', when='+hdf5')
+ depends_on('netcdf', when='+netcdf')
+ depends_on('libevpath', when='+flexpath')
+ depends_on('libevpath', when='+staging')
+ depends_on('dataspaces+mpi', when='+dataspaces')
+ depends_on('dataspaces+mpi', when='+staging')
+
+ for p in ['+hdf5', '+netcdf', '+flexpath', '+dataspaces', '+staging']:
+ conflicts(p, when='~mpi')
build_directory = 'spack-build'
@@ -103,19 +112,18 @@ class Adios(AutotoolsPackage):
spec = self.spec
self.validate(spec)
- extra_args = []
-
- # required, otherwise building its python bindings on ADIOS will fail
- extra_args.append("CFLAGS=-fPIC")
-
- # always build external MXML, even in ADIOS 1.10.0+
- extra_args.append('--with-mxml=%s' % spec['mxml'].prefix)
+ extra_args = [
+ # required, otherwise building its python bindings will fail
+ 'CFLAGS={0}'.format(self.compiler.pic_flag)
+ ]
if '+shared' in spec:
extra_args.append('--enable-shared')
if '+mpi' in spec:
- extra_args.append('--with-mpi')
+ extra_args.append('--with-mpi=%s' % spec['mpi'].prefix)
+ else:
+ extra_args.append('--without-mpi')
if '+infiniband' in spec:
extra_args.append('--with-infiniband')
else:
@@ -126,15 +134,47 @@ class Adios(AutotoolsPackage):
else:
extra_args.append('--disable-fortran')
+ # Transforms
if '+zlib' in spec:
extra_args.append('--with-zlib=%s' % spec['zlib'].prefix)
+ else:
+ extra_args.append('--without-zlib')
if '+bzip2' in spec:
extra_args.append('--with-bzip2=%s' % spec['bzip2'].prefix)
+ else:
+ extra_args.append('--without-bzip2')
if '+szip' in spec:
extra_args.append('--with-szip=%s' % spec['szip'].prefix)
+ else:
+ extra_args.append('--without-szip')
if '+zfp' in spec:
extra_args.append('--with-zfp=%s' % spec['zfp'].prefix)
+ else:
+ extra_args.append('--without-zfp')
+ if '+sz' in spec:
+ extra_args.append('--with-sz=%s' % spec['sz'].prefix)
+ else:
+ extra_args.append('--without-sz')
+
+ # External I/O libraries
if '+hdf5' in spec:
extra_args.append('--with-phdf5=%s' % spec['hdf5'].prefix)
+ else:
+ extra_args.append('--without-phdf5')
+ if '+netcdf' in spec:
+ extra_args.append('--with-netcdf=%s' % spec['netcdf'].prefix)
+ else:
+ extra_args.append('--without-netcdf')
+
+ # Staging transports
+ if '+flexpath' in spec or '+staging' in spec:
+ extra_args.append('--with-flexpath=%s' % spec['libevpath'].prefix)
+ else:
+ extra_args.append('--without-flexpath')
+ if '+dataspaces' in spec or '+staging' in spec:
+ extra_args.append('--with-dataspaces=%s'
+ % spec['dataspaces'].prefix)
+ else:
+ extra_args.append('--without-dataspaces')
return extra_args
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
new file mode 100644
index 0000000000..c5ce5ac400
--- /dev/null
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -0,0 +1,119 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Adios2(CMakePackage):
+ """Next generation of ADIOS developed in the Exascale Computing Program"""
+
+ homepage = "https://www.olcf.ornl.gov/center-projects/adios/"
+ url = "https://github.com/ornladios/ADIOS2/archive/v2.0.0.tar.gz"
+
+ version('develop', branch='master',
+ git='https://github.com/ornladios/ADIOS2.git')
+
+ version('2.0.0', '019115e5c6ac28bd0f4201f590f5d994')
+
+ variant('shared', default=True,
+ description='Also build shared libraries')
+ variant('mpi', default=True,
+ description='Enable MPI')
+ # transforms (not yet implemented)
+ # variant('bzip2', default=True,
+ # description='Enable BZip2 compression')
+ # variant('zfp', default=True,
+ # description='Enable ZFP compression')
+ # transport engines
+ variant('dataman', default=True,
+ description='Enable the DataMan engine for WAN transports')
+ # currently required by DataMan, optional in the future
+ # variant('zeromq', default=False,
+ # description='Enable ZeroMQ for the DataMan engine')
+ variant('hdf5', default=False,
+ description='Enable the HDF5 engine')
+ variant('adios1', default=False,
+ description='Enable the ADIOS 1.x engine')
+ # language bindings
+ variant('python', default=True,
+ description='Enable the Python >= 2.7 bindings')
+
+ # requires mature C++11 implementations
+ conflicts('%gcc@:4.7')
+ conflicts('%intel@:15')
+ conflicts('%pgi@:14')
+
+ # DataMan needs dlopen
+ conflicts('+dataman', when='~shared')
+
+ depends_on('cmake@3.5.0:', type='build')
+
+ # contained in thirdparty/
+ # depends_on('googletest')
+ # depends_on('pugixml')
+ # depends_on('kwsys')
+ # depends_on('nlohmannjson')
+ # depends_on('pybind11@2.1.1:', when='+python')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('zeromq', when='+dataman')
+
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hdf5+mpi', when='+hdf5+mpi')
+ depends_on('adios', when='+adios1')
+ depends_on('adios+mpi', when='+adios1+mpi')
+
+ depends_on('bzip2', when='+bzip2')
+ depends_on('zfp', when='+zfp')
+
+ extends('python', when='+python')
+ depends_on('python@2.7:', type=('build', 'run'), when='+python')
+ depends_on('py-numpy@1.6.1:', type=('build', 'run'), when='+python')
+ depends_on('py-mpi4py@2.0.0:', type=('build', 'run'), when='+mpi +python')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DADIOS2_BUILD_SHARED_LIBS:BOOL={0}'.format((
+ 'ON' if '+shared' in spec else 'OFF')),
+ '-DADIOS2_BUILD_TESTING=OFF',
+ '-DADIOS2_USE_MPI={0}'.format((
+ 'ON' if '+mpi' in spec else 'OFF')),
+ '-DADIOS2_USE_BZip2={0}'.format((
+ 'ON' if '+bzip2' in spec else 'OFF')),
+ '-DADIOS2_USE_ZFP={0}'.format((
+ 'ON' if '+zfp' in spec else 'OFF')),
+ '-DADIOS2_USE_DataMan={0}'.format((
+ 'ON' if '+dataman' in spec else 'OFF')),
+ '-DADIOS2_USE_ZeroMQ={0}'.format((
+ 'ON' if '+dataman' in spec else 'OFF')),
+ '-DADIOS2_USE_HDF5={0}'.format((
+ 'ON' if '+hdf5' in spec else 'OFF')),
+ '-DADIOS2_USE_ADIOS1={0}'.format((
+ 'ON' if '+adios1' in spec else 'OFF')),
+ '-DADIOS2_USE_Python={0}'.format((
+ 'ON' if '+python' in spec else 'OFF'))
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py
index 5de1a31b87..1f9850b4c8 100644
--- a/var/spack/repos/builtin/packages/adol-c/package.py
+++ b/var/spack/repos/builtin/packages/adol-c/package.py
@@ -34,6 +34,7 @@ class AdolC(AutotoolsPackage):
version('develop', git='https://gitlab.com/adol-c/adol-c.git',
branch='master')
+ version('2.6.3', 'f78f67f70d5874830a1ad1c0f54e54f7')
version('2.6.2', '0f9547584c99c0673e4f81cf64e8d865')
version('2.6.1', '1032b28427d6e399af4610e78c0f087b')
diff --git a/var/spack/repos/builtin/packages/alglib/Makefile b/var/spack/repos/builtin/packages/alglib/Makefile
new file mode 100644
index 0000000000..fbcfdb9542
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alglib/Makefile
@@ -0,0 +1,20 @@
+CC = $(SPACK_CXX)
+CFLAGS = -fPIC -Wall -O2 -g
+LDFLAGS = -shared
+RM = rm -f
+TARGET_LIB = libalglib.so
+
+SRCS = $(wildcard *.cpp)
+OBJS = $(SRCS:.cpp=.o)
+
+%.o: %.cpp
+ $(CC) -c ${CFLAGS} $<
+
+.PHONY: all
+all: $(OBJS)
+ $(CC) ${LDFLAGS} -o ${TARGET_LIB} $^
+
+# do not look for "clean", consider it always as missing
+.phony: clean
+clean:
+ ${RM} *.o
diff --git a/var/spack/repos/builtin/packages/alglib/package.py b/var/spack/repos/builtin/packages/alglib/package.py
new file mode 100644
index 0000000000..d617290e62
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alglib/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+import shutil
+
+
+class Alglib(MakefilePackage):
+ """ALGLIB is a cross-platform numerical analysis and data processing
+ library."""
+
+ homepage = "http://www.alglib.net"
+ url = "http://www.alglib.net/translator/re/alglib-3.11.0.cpp.gpl.tgz"
+
+ version('3.11.0', 'f87bb05349924d486e8809590dee9f80')
+
+ def url_for_version(self, version):
+ return 'http://www.alglib.net/translator/re/alglib-{0}.cpp.gpl.tgz'.format(version.dotted)
+
+ build_directory = 'src'
+
+ def edit(self, spec, prefix):
+ # this package has no build system!
+ make_file_src = join_path(os.path.dirname(self.module.__file__),
+ 'Makefile')
+ make_file = join_path(self.stage.source_path, 'src', 'Makefile')
+ shutil.copy(make_file_src, make_file)
+ filter_file(r'so', dso_suffix, make_file)
+
+ def install(self, spec, prefix):
+ name = 'libalglib.{0}'.format(dso_suffix)
+ with working_dir('src'):
+ mkdirp(prefix.lib)
+ install(name, prefix.lib)
+ mkdirp(prefix.include)
+ headers = glob.glob('*.h')
+ for h in headers:
+ install(h, prefix.include)
diff --git a/var/spack/repos/builtin/packages/alquimia/package.py b/var/spack/repos/builtin/packages/alquimia/package.py
index b8d3f60840..cadea3cb3c 100644
--- a/var/spack/repos/builtin/packages/alquimia/package.py
+++ b/var/spack/repos/builtin/packages/alquimia/package.py
@@ -36,8 +36,6 @@ class Alquimia(CMakePackage):
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
depends_on('mpi')
depends_on('hdf5')
@@ -52,10 +50,6 @@ class Alquimia(CMakePackage):
options = ['-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
'-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
'-DUSE_XSDK_DEFAULTS=YES',
- '-DCMAKE_BUILD_TYPE:STRING=%s' % (
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
- '-DXSDK_ENABLE_DEBUG:STRING=%s' % (
- 'YES' if '+debug' in spec else 'NO'),
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
'ON' if '+shared' in spec else 'OFF'),
'-DTPL_ENABLE_MPI:BOOL=ON',
diff --git a/var/spack/repos/builtin/packages/alsa-lib/package.py b/var/spack/repos/builtin/packages/alsa-lib/package.py
new file mode 100644
index 0000000000..8d92b398e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/alsa-lib/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class AlsaLib(AutotoolsPackage):
+ """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+ functionality to the Linux operating system. alsa-lib contains the user
+ space library that developers compile ALSA applications against."""
+
+ homepage = "https://www.alsa-project.org"
+ url = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.4.1.tar.bz2"
+
+ version('1.1.4.1', '29fa3e69122d3cf3e8f0e01a0cb1d183')
diff --git a/var/spack/repos/builtin/packages/amg2013/package.py b/var/spack/repos/builtin/packages/amg2013/package.py
new file mode 100644
index 0000000000..5e1ef46df8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amg2013/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 0s2111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Amg2013(MakefilePackage):
+ """AMG2013 is a parallel algebraic multigrid solver for linear
+ systems arising from problems on unstructured grids.
+ It has been derived directly from the BoomerAMG solver in the
+ hypre library, a large linear solver library that is being developed
+ in the Center for Applied Scientific Computing (CASC) at LLNL.
+ """
+ tags = ['proxy-app']
+ homepage = "https://codesign.llnl.gov/amg2013.php"
+ url = "https://codesign.llnl.gov/amg2013/amg2013.tgz"
+
+ version('master', '9d918d2a69528b83e6e0aba6ba601fef',
+ url='https://codesign.llnl.gov/amg2013/amg2013.tgz')
+
+ variant('openmp', default=True, description='Build with OpenMP support')
+ variant('assumepartition', default=False, description='Assumed partition (for thousands of processors)')
+
+ depends_on('mpi')
+
+ @property
+ def build_targets(self):
+ targets = []
+
+ include_cflags = ' -DTIMER_USE_MPI '
+ include_lflags = ' -lm '
+
+ if '+assumepartition' in self.spec:
+ include_cflags += ' -DHYPRE_NO_GLOBAL_PARTITION '
+
+ if '+openmp' in self.spec:
+ include_cflags += ' -DHYPRE_USING_OPENMP '
+ include_cflags += self.compiler.openmp_flag
+ include_lflags += ' ' + self.compiler.openmp_flag
+
+ targets.append('INCLUDE_CFLAGS={0}'.format(' '.join(include_cflags)))
+ targets.append('INCLUDE_LFLAGS={0}'.format(' '.join(include_lflags)))
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('test/amg2013', prefix.bin)
+ install_tree('docs', prefix.doc)
+ install('COPYRIGHT', prefix.doc)
+ install('COPYING.LESSER', prefix.doc) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/ampliconnoise/package.py b/var/spack/repos/builtin/packages/ampliconnoise/package.py
new file mode 100644
index 0000000000..7051ae0008
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ampliconnoise/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ampliconnoise(MakefilePackage):
+ """AmpliconNoise is a collection of programs for the removal of noise
+ from 454 sequenced PCR amplicons."""
+
+ homepage = "https://code.google.com/archive/p/ampliconnoise/"
+ url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ampliconnoise/AmpliconNoiseV1.29.tar.gz"
+
+ version('1.29', 'd6723e6f9cc71d7eb6f1a65ba4643aac')
+
+ depends_on('mpi@2:')
+ depends_on('gsl')
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PATH', self.prefix.Scripts)
+ run_env.set('PYRO_LOOKUP_FILE', join_path(self.prefix, 'Data',
+ 'LookUp_E123.dat'))
+ run_env.set('SEQ_LOOKUP_FILE', join_path(self.prefix, 'Data',
+ 'Tran.dat'))
+
+ def install(self, spec, prefix):
+ make('install')
+ install_tree('bin', prefix.bin)
+ install_tree('Data', prefix.Data)
+ install_tree('FastaUnique', prefix.FastaUnique)
+ install_tree('FCluster', prefix.FCluster)
+ install_tree('NDist', prefix.NDist)
+ install_tree('Perseus', prefix.Perseus)
+ install_tree('PerseusD', prefix.PerseusD)
+ install_tree('PyroDist', prefix.PyroDist)
+ install_tree('PyroNoise', prefix.PyroNoise)
+ install_tree('PyroNoiseM', prefix.PyroNoiseM)
+ install_tree('Scripts', prefix.Scripts)
+ install_tree('SeqDist', prefix.SeqDist)
+ install_tree('SeqNoise', prefix.SeqNoise)
+ install_tree('SplitClusterClust', prefix.SplitClusterClust)
+ install_tree('SplitClusterEven', prefix.SplitClusterEven)
+ install_tree('Test', prefix.Test)
+ install_tree('TestFLX', prefix.TestFLX)
+ install_tree('TestTitanium', prefix.TestTitanium)
+ install_tree('TestTitaniumFast', prefix.TestTitaniumFast)
diff --git a/var/spack/repos/builtin/packages/amr-exp-parabolic/package.py b/var/spack/repos/builtin/packages/amr-exp-parabolic/package.py
new file mode 100644
index 0000000000..47e400e18f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/amr-exp-parabolic/package.py
@@ -0,0 +1,95 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class AmrExpParabolic(MakefilePackage):
+ """Simplified block-structured adaptive mesh refinement algorithm
+ in two and three dimensions with subcycling in time.
+ The algorithm solves a linear advection diffusion equation
+ with a simple numerical method. This proxy app is intended to
+ capture the communication pattern of an explicit AMR algorithm
+ but does not represent an accurate characterization of
+ floating point effort or
+ relative costs of communication to computation."""
+
+ homepage = "https://ccse.lbl.gov/ExaCT/index.html"
+ url = "https://ccse.lbl.gov/ExaCT/AMR_Exp_Parabolic.tgz"
+ tags = ['proxy-app']
+
+ version(
+ 'release', '330604d9cc755dad8a2cdfaa7ff8f6a4',
+ url='https://ccse.lbl.gov/ExaCT/AMR_Exp_Parabolic.tgz')
+
+ variant(
+ 'debug', default=False, description='Turn on debugging')
+ variant(
+ 'mpi', default=True, description='Build with MPI support')
+ variant(
+ 'openmp', default=False,
+ description='Build with OpenMP support')
+ variant(
+ 'prof', default=False, description='Use profiler')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('gmake', type='build')
+
+ build_directory = 'MiniApps/AMR_Adv_Diff_F90'
+
+ def edit(self, spec, prefix):
+ def_file = FileFilter('Tools/F_mk/GMakedefs.mak')
+ def_file.filter('tdir = t/.*', 'tdir := t/$(suf)')
+ def_file.filter('hdir = t/.*', 'hdir := t/html')
+ def_file.filter('include $(BOXLIB_HOME)/Tools/F_mk/GMakeMPI.mak', '#')
+
+ if '+mpi' in spec:
+ def_file.filter('FC.*:=.*', 'FC = {0}'.format(spec['mpi'].mpifc))
+ def_file.filter('F90.*:=.*', 'F90 = {0}'.format(spec['mpi'].mpifc))
+ def_file.filter(
+ 'mpi_include_dir =.*',
+ 'mpi_include_dir = {0}'.format(spec['mpi'].prefix.include))
+ def_file.filter(
+ 'mpi_lib_dir =.*',
+ 'mpi_lib_dir = {0}'.format(spec['mpi'].prefix.lib))
+
+ with working_dir(self.build_directory):
+ makefile = FileFilter('GNUmakefile')
+ if '+debug' in spec:
+ makefile.filter('NDEBUG.*:= t', '#')
+ if '~mpi' in spec:
+ makefile.filter('MPI.*:= t', '#')
+ if '+openmp' in spec:
+ makefile.filter('OMP.*:=', 'OMP := t')
+ if '+prof' in spec:
+ makefile.filter('PROF.*:=', 'PROF := t')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ files = glob.glob(join_path(self.build_directory, '*.exe'))
+ for f in files:
+ install(f, prefix.bin)
+ install('README.txt', prefix)
+ install('license.txt', prefix)
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index a13200b3e0..772bbce3a5 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -33,8 +33,9 @@ class Amrex(CMakePackage):
homepage = "https://ccse.lbl.gov/AMReX/index.html"
url = "https://github.com/AMReX-Codes/amrex.git"
- version('develop', git='https://github.com/AMReX-Codes/amrex.git', tag='master')
version('17.06', git='https://github.com/AMReX-Codes/amrex.git', commit='836d3c7')
+ version('master', git='https://github.com/AMReX-Codes/amrex.git', tag='master')
+ version('develop', git='https://github.com/AMReX-Codes/amrex.git', tag='develop')
variant('dims',
default='3',
diff --git a/var/spack/repos/builtin/packages/ant/package.py b/var/spack/repos/builtin/packages/ant/package.py
index b2fb647694..a2ba25f3ac 100644
--- a/var/spack/repos/builtin/packages/ant/package.py
+++ b/var/spack/repos/builtin/packages/ant/package.py
@@ -41,7 +41,7 @@ class Ant(Package):
version('1.9.7', 'a2fd9458c76700b7be51ef12f07d4bb1')
version('1.9.6', '29b7507c9053e301d2b85091f2aec6f0')
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
env['ANT_HOME'] = self.prefix
diff --git a/var/spack/repos/builtin/packages/antlr/gcc.patch b/var/spack/repos/builtin/packages/antlr/gcc.patch
new file mode 100644
index 0000000000..40de6b7861
--- /dev/null
+++ b/var/spack/repos/builtin/packages/antlr/gcc.patch
@@ -0,0 +1,15 @@
+Description: Adds missing includes to fix FTBFS.
+
+Index: antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp
+===================================================================
+--- antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp 2006-11-01 22:37:17.000000000 +0100
++++ antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp 2009-01-15 20:47:53.000000000 +0100
+@@ -17,6 +17,8 @@
+ #else
+ #include <cctype>
+ #endif
++#include <cstdio>
++#include <cstring>
+
+ #if ( _MSC_VER == 1200 )
+ // VC6 seems to need this
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
index e6332d20b3..b2e2b0a6a5 100644
--- a/var/spack/repos/builtin/packages/antlr/package.py
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -32,29 +32,20 @@ class Antlr(AutotoolsPackage):
frameworks. From a grammar, ANTLR generates a parser that can build and
walk parse trees."""
- homepage = "http://www.antlr.org"
- url = "https://github.com/antlr/antlr/tarball/v2.7.7"
+ homepage = "http://www.antlr2.org/"
+ url = "http://www.antlr2.org/download/antlr-2.7.7.tar.gz"
- # Notes from http://nco.sourceforge.net/#bld
- # The first steps to build (i.e., compile, for the most part) NCO from
- # source code are to install the pre-requisites: ANTLR version 2.7.7
- # (like this one not version 3.x or 4.x!) (required for ncap2)... ANTLR
- # binaries from major distributions are pre-built with the source patch
- # necessary to allow NCO to link to ANTLR... The ANTLR source file
- # CharScanner.hpp must include this line: #include <cstring> or else
- # ncap2 will not compile (this tarball is already patched).
- version('2.7.7', '914865e853fe8e1e61a9f23d045cb4ab',
- # Patched version as described above
- url='http://dust.ess.uci.edu/tmp/antlr-2.7.7.tar.gz')
- # Unpatched version
- # url='http://dust.ess.uci.edu/nco/antlr-2.7.7.tar.gz')
+ version('2.7.7', '01cc9a2a454dd33dcd8c856ec89af090')
+
+ # Fixes build with recent versions of GCC
+ patch('gcc.patch')
variant('cxx', default=True, description='Enable ANTLR for C++')
variant('java', default=False, description='Enable ANTLR for Java')
variant('python', default=False, description='Enable ANTLR for Python')
extends('python', when='+python')
- depends_on('jdk', type=('build', 'run'), when='+java')
+ depends_on('java', type=('build', 'run'), when='+java')
def configure_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py
index 55e22342b1..0c04968a67 100644
--- a/var/spack/repos/builtin/packages/apex/package.py
+++ b/var/spack/repos/builtin/packages/apex/package.py
@@ -23,14 +23,13 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-from spack.util.environment import *
-class Apex(Package):
+class Apex(CMakePackage):
homepage = "http://github.com/khuck/xpress-apex"
url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
- version('0.1', '8b95f0c0313da1575960d3ad69f18e75')
+ version('0.1', 'e224a0b9033e23a9697ce2a3c307a0a3')
depends_on("binutils+libiberty")
depends_on("boost@1.54:")
@@ -38,19 +37,14 @@ class Apex(Package):
depends_on("activeharmony@4.5:")
depends_on("ompt-openmp")
- def install(self, spec, prefix):
-
- path = get_path("PATH")
- path.remove(spec["binutils"].prefix.bin)
- path_set("PATH", path)
- with working_dir("build", create=True):
- cmake('-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DUSE_BFD=TRUE',
- '-DBFD_ROOT=%s' % spec['binutils'].prefix,
- '-DUSE_ACTIVEHARMONY=TRUE',
- '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
- '-DUSE_OMPT=TRUE',
- '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
- '..', *std_cmake_args)
- make()
- make("install")
+ def cmake_args(self):
+ spec = self.spec
+ return [
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DUSE_BFD=TRUE',
+ '-DBFD_ROOT=%s' % spec['binutils'].prefix,
+ '-DUSE_ACTIVEHARMONY=TRUE',
+ '-DACTIVEHARMONY_ROOT=%s' % spec['activeharmony'].prefix,
+ '-DUSE_OMPT=TRUE',
+ '-DOMPT_ROOT=%s' % spec['ompt-openmp'].prefix,
+ ]
diff --git a/var/spack/repos/builtin/packages/apr-util/package.py b/var/spack/repos/builtin/packages/apr-util/package.py
index 4b63e41600..6330daa4d7 100644
--- a/var/spack/repos/builtin/packages/apr-util/package.py
+++ b/var/spack/repos/builtin/packages/apr-util/package.py
@@ -25,23 +25,93 @@
from spack import *
-class AprUtil(Package):
+class AprUtil(AutotoolsPackage):
"""Apache Portable Runtime Utility"""
+
homepage = 'https://apr.apache.org/'
- url = 'http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz'
+ url = 'http://archive.apache.org/dist/apr/apr-util-1.6.0.tar.gz'
+
+ version('1.6.0', '3b03dbff60728a4f4c33f5d929e8b35a')
+ version('1.5.4', '866825c04da827c6e5f53daff5569f42')
- version('1.5.4', '866825c04da827c6e5f53daff5569f42')
+ variant('crypto', default=True, description='Enable crypto support')
+ variant('gdbm', default=False, description='Enable GDBM support')
+ variant('pgsql', default=False, description='Enable PostgreSQL support')
+ variant('sqlite', default=False, description='Enable sqlite DBD driver')
+ variant('odbc', default=False, description='Enalbe ODBC support')
depends_on('apr')
depends_on('expat')
+ depends_on('libiconv')
+
+ depends_on('openssl', when='+crypto')
+ depends_on('gdbm', when='+gdbm')
+ depends_on('postgresql', when='+pgsql')
+ depends_on('sqlite', when='+sqlite')
+ depends_on('unixodbc', when='+odbc')
+
+ def configure_args(self):
+ spec = self.spec
+
+ args = [
+ '--with-apr={0}'.format(spec['apr'].prefix),
+ '--with-expat={0}'.format(spec['expat'].prefix),
+ '--with-iconv={0}'.format(spec['libiconv'].prefix),
+ # TODO: Add support for the following database managers
+ '--without-ndbm',
+ '--without-berkeley-db',
+ '--without-mysql',
+ '--without-oracle',
+ ]
+
+ if '+crypto' in spec:
+ args.extend([
+ '--with-crypto',
+ '--with-openssl={0}'.format(spec['openssl'].prefix),
+ ])
+ else:
+ args.append('--without-crypto')
+
+ if '+gdbm' in spec:
+ args.append('--with-gdbm={0}'.format(spec['gdbm'].prefix))
+ else:
+ args.append('--without-gdbm')
+
+ if '+pgsql' in spec:
+ args.append('--with-pgsql={0}'.format(spec['postgresql'].prefix))
+ else:
+ args.append('--without-pgsql')
+
+ if '+sqlite' in spec:
+ if spec.satisfies('^sqlite@3.0:3.999'):
+ args.extend([
+ '--with-sqlite3={0}'.format(spec['sqlite'].prefix),
+ '--without-sqlite2',
+ ])
+ elif spec.satisfies('^sqlite@2.0:2.999'):
+ args.extend([
+ '--with-sqlite2={0}'.format(spec['sqlite'].prefix),
+ '--without-sqlite3',
+ ])
+ else:
+ args.extend([
+ '--without-sqlite2',
+ '--without-sqlite3',
+ ])
+
+ if '+odbc' in spec:
+ args.append('--with-odbc={0}'.format(spec['unixodbc'].prefix))
+ else:
+ args.append('--without-odbc')
- def install(self, spec, prefix):
+ return args
- # configure, build, install:
- options = ['--prefix=%s' % prefix]
- options.append('--with-apr=%s' % spec['apr'].prefix)
- options.append('--with-expat=%s' % spec['expat'].prefix)
+ def check(self):
+ # FIXME: Database driver tests fail, at least on macOS:
+ #
+ # Failed to load driver file apr_dbd_pgsql.so
+ # Failed to load driver file apr_dbd_sqlite3.so
+ # Failed to load driver file apr_dbd_odbc.so
- configure(*options)
- make()
- make('install')
+ # Tests occassionally fail when run in parallel
+ make('check', parallel=False)
diff --git a/var/spack/repos/builtin/packages/apr/package.py b/var/spack/repos/builtin/packages/apr/package.py
index 53a3c1e59b..45b000854e 100644
--- a/var/spack/repos/builtin/packages/apr/package.py
+++ b/var/spack/repos/builtin/packages/apr/package.py
@@ -25,15 +25,11 @@
from spack import *
-class Apr(Package):
+class Apr(AutotoolsPackage):
"""Apache portable runtime."""
- homepage = 'https://apr.apache.org/'
- url = 'http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz'
- version('1.5.2', '98492e965963f852ab29f9e61b2ad700')
+ homepage = 'https://apr.apache.org/'
+ url = 'http://archive.apache.org/dist/apr/apr-1.6.2.tar.gz'
- def install(self, spec, prefix):
- options = ['--prefix=%s' % prefix]
- configure(*options)
- make()
- make('install')
+ version('1.6.2', '8672e78514e3fcef2643127c524bf0f9')
+ version('1.5.2', '98492e965963f852ab29f9e61b2ad700')
diff --git a/var/spack/repos/builtin/packages/archer/package.py b/var/spack/repos/builtin/packages/archer/package.py
index 9c577e6517..f5e4fbf8c1 100644
--- a/var/spack/repos/builtin/packages/archer/package.py
+++ b/var/spack/repos/builtin/packages/archer/package.py
@@ -26,7 +26,7 @@
from spack import *
-class Archer(Package):
+class Archer(CMakePackage):
"""ARCHER, a data race detection tool for large OpenMP applications."""
homepage = "https://github.com/PRUNERS/ARCHER"
@@ -34,23 +34,16 @@ class Archer(Package):
version('1.0.0', '790bfaf00b9f57490eb609ecabfe954a')
- depends_on('cmake', type='build')
+ depends_on('cmake@3.4.3:', type='build')
depends_on('llvm')
- depends_on('ninja', type='build')
+ depends_on('ninja@1.5:', type='build')
depends_on('llvm-openmp-ompt')
- def install(self, spec, prefix):
-
- with working_dir('spack-build', create=True):
- cmake_args = std_cmake_args[:]
- cmake_args.extend([
- '-G', 'Ninja',
- '-DCMAKE_C_COMPILER=clang',
- '-DCMAKE_CXX_COMPILER=clang++',
- '-DOMP_PREFIX:PATH=%s' % spec['llvm-openmp-ompt'].prefix,
- ])
-
- cmake('..', *cmake_args)
- ninja = Executable('ninja')
- ninja()
- ninja('install')
+ generator = 'Ninja'
+
+ def cmake_args(self):
+ return [
+ '-DCMAKE_C_COMPILER=clang',
+ '-DCMAKE_CXX_COMPILER=clang++',
+ '-DOMP_PREFIX:PATH=%s' % self.spec['llvm-openmp-ompt'].prefix,
+ ]
diff --git a/var/spack/repos/builtin/packages/armadillo/package.py b/var/spack/repos/builtin/packages/armadillo/package.py
index 90fc78d8c3..a3c9c2bf3f 100644
--- a/var/spack/repos/builtin/packages/armadillo/package.py
+++ b/var/spack/repos/builtin/packages/armadillo/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Armadillo(Package):
+class Armadillo(CMakePackage):
"""Armadillo is a high quality linear algebra library (matrix maths)
for the C++ language, aiming towards a good balance between speed and
ease of use."""
@@ -40,19 +40,21 @@ class Armadillo(Package):
variant('hdf5', default=False, description='Include HDF5 support')
- depends_on('cmake@2.8:', type='build')
+ depends_on('cmake@2.8.12:', type='build')
depends_on('arpack-ng') # old arpack causes undefined symbols
depends_on('blas')
depends_on('lapack')
depends_on('superlu@5.2:')
depends_on('hdf5', when='+hdf5')
- def install(self, spec, prefix):
+ def cmake_args(self):
+ spec = self.spec
+
arpack = find_libraries('libarpack', root=spec[
'arpack-ng'].prefix.lib, shared=True)
superlu = find_libraries('libsuperlu', root=spec[
'superlu'].prefix, shared=False, recurse=True)
- cmake_args = [
+ return [
# ARPACK support
'-DARPACK_LIBRARY={0}'.format(arpack.joined()),
# BLAS support
@@ -65,9 +67,3 @@ class Armadillo(Package):
# HDF5 support
'-DDETECT_HDF5={0}'.format('ON' if '+hdf5' in spec else 'OFF')
]
-
- cmake_args.extend(std_cmake_args)
- cmake('.', *cmake_args)
-
- make()
- make('install')
diff --git a/var/spack/repos/builtin/packages/arpack/package.py b/var/spack/repos/builtin/packages/arpack/package.py
index 831a379fce..67ab050236 100644
--- a/var/spack/repos/builtin/packages/arpack/package.py
+++ b/var/spack/repos/builtin/packages/arpack/package.py
@@ -60,7 +60,9 @@ class Arpack(Package):
# Be sure to use the Spack compiler wrapper
makefile.filter('^FC.*', 'FC = {0}'.format(os.environ['F77']))
- makefile.filter('^FFLAGS.*', 'FFLAGS = -O2 -g -fPIC')
+ makefile.filter(
+ '^FFLAGS.*', 'FFLAGS = -O2 -g {0}'.format(self.compiler.pic_flag)
+ )
if not which('ranlib'):
makefile.filter('^RANLIB.*', 'RANLIB = touch')
diff --git a/var/spack/repos/builtin/packages/aspa/package.py b/var/spack/repos/builtin/packages/aspa/package.py
new file mode 100644
index 0000000000..863c8a2980
--- /dev/null
+++ b/var/spack/repos/builtin/packages/aspa/package.py
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class Aspa(MakefilePackage):
+ """A fundamental premise in ExMatEx is that scale-bridging performed in
+ heterogeneous MPMD materials science simulations will place important
+ demands upon the exascale ecosystem that need to be identified and
+ quantified.
+ tags = proxy-app
+ """
+ tags = ['proxy-app']
+ homepage = "http://www.exmatex.org/aspa.html"
+ url = "https://github.com/exmatex/ASPA/archive/master.tar.gz"
+
+ version('master', git='https://github.com/exmatex/ASPA.git',
+ description='master')
+ variant('mpi', default=True, description='Build with MPI Support')
+
+ depends_on('lapack')
+ depends_on('blas')
+ depends_on('mpi', when='+mpi')
+ depends_on('hdf5')
+
+ @property
+ def build_targets(self):
+ targets = [
+ '--directory=exec',
+ '--file=Makefile',
+ 'LIBS={0} {1} {2}'.format(self.spec['lapack'].libs.ld_flags,
+ self.spec['blas'].libs.ld_flags,
+ self.spec['hdf5'].libs.ld_flags),
+ 'CXX={0}'.format(self.spec['mpi'].mpicxx)
+ ]
+ return targets
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+ mkdirp(prefix.input)
+ install('exec/aspa', prefix.bin)
+ install('exec/README', prefix.doc)
+ install('exec/aspa.inp', prefix.input)
+ install('exec/kriging_model_centers.txt', prefix.input)
+ install('exec/point_data.txt', prefix.input)
+ install('exec/value_data.txt', prefix.input)
+ for files in glob.glob('doc/*.*'):
+ install(files, prefix.doc) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/astral/astral.sh b/var/spack/repos/builtin/packages/astral/astral.sh
new file mode 100644
index 0000000000..3f530d7f4e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/astral/astral.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+# convenience wrapper for the astral jar file
+java $JAVA_ARGS $JAVA_OPTS -jar astral.jar "$@"
diff --git a/var/spack/repos/builtin/packages/astral/package.py b/var/spack/repos/builtin/packages/astral/package.py
new file mode 100644
index 0000000000..79feeca07a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/astral/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os.path
+
+
+class Astral(Package):
+ """ASTRAL is a tool for estimating an unrooted species tree given a set of
+ unrooted gene trees."""
+
+ homepage = "https://github.com/smirarab/ASTRAL"
+ url = "https://github.com/smirarab/ASTRAL/archive/v4.10.7.tar.gz"
+
+ version('4.10.7', '38c81020570254e3f5c75d6c3c27fc6d')
+
+ depends_on('java', type=('build', 'run'))
+
+ phases = ['build', 'install']
+
+ def build(self, spec, prefix):
+ make = Executable('./make.sh')
+ make()
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install_tree('lib', prefix.tools.lib)
+ jar_file = 'astral.{v}.jar'.format(v=self.version)
+ install(jar_file, prefix.tools)
+
+ script_sh = join_path(os.path.dirname(__file__), "astral.sh")
+ script = prefix.bin.astral
+ install(script_sh, script)
+ set_executable(script)
+
+ java = self.spec['java'].prefix.bin.java
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+ filter_file('^java', java, script, **kwargs)
+ filter_file('astral.jar', join_path(prefix.tools, jar_file),
+ script, **kwargs)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('ASTRAL_HOME', self.prefix.tools)
diff --git a/var/spack/repos/builtin/packages/augustus/package.py b/var/spack/repos/builtin/packages/augustus/package.py
index ccaa2f1e70..8a90de639e 100644
--- a/var/spack/repos/builtin/packages/augustus/package.py
+++ b/var/spack/repos/builtin/packages/augustus/package.py
@@ -32,6 +32,7 @@ class Augustus(MakefilePackage):
homepage = "http://bioinf.uni-greifswald.de/augustus/"
url = "http://bioinf.uni-greifswald.de/augustus/binaries/augustus-3.2.3.tar.gz"
+ version('3.3', '9ebe494df78ebf6a43091cfc8551050c')
version('3.2.3', 'b8c47ea8d0c45aa7bb9a82626c8ff830')
depends_on('bamtools')
diff --git a/var/spack/repos/builtin/packages/automaded/package.py b/var/spack/repos/builtin/packages/automaded/package.py
index 1edeecf245..1d84a4f6f4 100644
--- a/var/spack/repos/builtin/packages/automaded/package.py
+++ b/var/spack/repos/builtin/packages/automaded/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Automaded(Package):
+class Automaded(CMakePackage):
"""AutomaDeD (Automata-based Debugging for Dissimilar parallel
tasks) is a tool for automatic diagnosis of performance and
correctness problems in MPI applications. It creates
@@ -45,9 +45,7 @@ class Automaded(Package):
depends_on('mpi')
depends_on('boost')
depends_on('callpath')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8:', type='build')
- def install(self, spec, prefix):
- cmake("-DSTATE_TRACKER_WITH_CALLPATH=ON", *std_cmake_args)
- make()
- make("install")
+ def cmake_args(self):
+ return ['-DSTATE_TRACKER_WITH_CALLPATH=ON']
diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py
index 17b7992a1b..a9573dbe2b 100644
--- a/var/spack/repos/builtin/packages/bazel/package.py
+++ b/var/spack/repos/builtin/packages/bazel/package.py
@@ -42,7 +42,7 @@ class Bazel(Package):
version('0.2.2b', '75081804f073cbd194da1a07b16cba5f')
version('0.2.2', '644bc4ea7f429d835e74f255dc1054e6')
- depends_on('jdk@8:')
+ depends_on('java@8:')
depends_on('zip')
patch('fix_env_handling.patch')
diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py
index 6a276709ef..6555692fab 100644
--- a/var/spack/repos/builtin/packages/bcftools/package.py
+++ b/var/spack/repos/builtin/packages/bcftools/package.py
@@ -39,6 +39,8 @@ class Bcftools(Package):
depends_on('zlib')
depends_on('bzip2', when="@1.4:")
+ # build fails without xz
+ depends_on('xz', when="@1.4")
def install(self, spec, prefix):
make("prefix=%s" % prefix, "all")
diff --git a/var/spack/repos/builtin/packages/bcl2fastq2/package.py b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
index 1a7fff360c..64060c2b9b 100644
--- a/var/spack/repos/builtin/packages/bcl2fastq2/package.py
+++ b/var/spack/repos/builtin/packages/bcl2fastq2/package.py
@@ -37,8 +37,8 @@ class Bcl2fastq2(Package):
files."""
homepage = "https://support.illumina.com/downloads/bcl2fastq-conversion-software-v2-18.html"
- url = "https://support.illumina.com/content/dam/illumina-support/documents/downloads/software/bcl2fastq/bcl2fastq2-v2-18-0-12-tar.zip"
+ version('2.19.1.403', 'baba7a02767fd868e87cb36781d2be26')
version('2.18.0.12', 'fbe06492117f65609c41be0c27e3215c')
# 2.17.1.14 is no longer distributed. If you have a copy of the
# source tarball, you can drop it into a local mirror w/ the name
@@ -59,11 +59,18 @@ class Bcl2fastq2(Package):
# libexslt bits.
patch('cxxConfigure-cmake.patch')
- root_cmakelists_dir = '../src'
+ root_cmakelists_dir = 'src'
+ # v2.17.1.14 and v2.18.0.12 were available via HTTP.
+ # v2.19.1.403 is only available via ftp.
+ # who knows what the future will hold.
def url_for_version(self, version):
- url = "https://support.illumina.com/content/dam/illumina-support/documents/downloads/software/bcl2fastq/bcl2fastq2-v{0}-tar.zip"
- return url.format(version.dashed)
+ if version.string == '2.19.1.403':
+ return "ftp://webdata2:webdata2@ussd-ftp.illumina.com/downloads/software/bcl2fastq/bcl2fastq2-v2.19.1-tar.zip"
+ else:
+ url = "https://support.illumina.com/content/dam/illumina-support/documents/downloads/software/bcl2fastq/bcl2fastq2-v{0}-tar.zip"
+ # - required to change the version from dots to dashes.
+ return url.format(version.dashed)
# Illumina tucks the source inside a gzipped tarball inside a zip
# file. We let the normal Spack expansion bit unzip the zip file,
diff --git a/var/spack/repos/builtin/packages/bear/package.py b/var/spack/repos/builtin/packages/bear/package.py
index 7078931c59..eed95ebf89 100644
--- a/var/spack/repos/builtin/packages/bear/package.py
+++ b/var/spack/repos/builtin/packages/bear/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Bear(Package):
+class Bear(CMakePackage):
"""Bear is a tool that generates a compilation database for clang tooling
from non-cmake build systems."""
homepage = "https://github.com/rizsotto/Bear"
@@ -34,11 +34,5 @@ class Bear(Package):
version('2.2.0', '87250cc3a9a697e7d1e8972253a35259')
version('2.0.4', 'fd8afb5e8e18f8737ba06f90bd77d011')
- depends_on('cmake', type='build')
- depends_on("python")
-
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
-
- make("all")
- make("install")
+ depends_on('python')
+ depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/beast2/package.py b/var/spack/repos/builtin/packages/beast2/package.py
index ceeb94ab7f..77acaa01f3 100644
--- a/var/spack/repos/builtin/packages/beast2/package.py
+++ b/var/spack/repos/builtin/packages/beast2/package.py
@@ -38,7 +38,7 @@ class Beast2(Package):
version('2.4.6', 'b446f4ab121df9b991f7bb7ec94c8217')
- depends_on('jdk')
+ depends_on('java')
def setup_environment(self, spack_env, run_env):
run_env.set('BEAST', self.prefix)
diff --git a/var/spack/repos/builtin/packages/benchmark/package.py b/var/spack/repos/builtin/packages/benchmark/package.py
index 9e2009750d..3969781112 100644
--- a/var/spack/repos/builtin/packages/benchmark/package.py
+++ b/var/spack/repos/builtin/packages/benchmark/package.py
@@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-
from spack import *
@@ -32,5 +31,28 @@ class Benchmark(CMakePackage):
homepage = "https://github.com/google/benchmark"
url = "https://github.com/google/benchmark/archive/v1.1.0.tar.gz"
+ version('develop', branch='master',
+ git='https://github.com/google/benchmark.git')
+
+ # first properly installed CMake config packages in
+ # 1.2.0 release: https://github.com/google/benchmark/issues/363
+ version('1.2.0', '48d0b090cd7a84af2c4a28c8dc963c74')
version('1.1.0', '66b2a23076cf70739525be0092fc3ae3')
version('1.0.0', '1474ff826f8cd68067258db75a0835b8')
+
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo',
+ 'MinSizeRel', 'Coverage'))
+
+ def patch(self):
+ filter_file(
+ r'add_cxx_compiler_flag..fstrict.aliasing.',
+ r'##### add_cxx_compiler_flag(-fstrict-aliasing)',
+ 'CMakeLists.txt'
+ )
+ filter_file(
+ r'add_cxx_compiler_flag..Werror',
+ r'##### add_cxx_compiler_flag(-Werror',
+ 'CMakeLists.txt'
+ )
diff --git a/var/spack/repos/builtin/packages/binutils/binutilskrell-2.24.patch b/var/spack/repos/builtin/packages/binutils/binutilskrell-2.24.patch
deleted file mode 100644
index f48291a6c9..0000000000
--- a/var/spack/repos/builtin/packages/binutils/binutilskrell-2.24.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- binutils-2.24/libiberty/Makefile.in 2013-11-04 10:33:40.000000000 -0500
-+++ binutils-2.24-fixes/libiberty/Makefile.in 2014-10-17 16:22:31.413655000 -0400
-@@ -66,6 +66,7 @@
- MAKEOVERRIDES =
-
- TARGETLIB = ./libiberty.a
-+TARGETLIBPIC = ./libiberty_pic.a
- TESTLIB = ./testlib.a
-
- LIBOBJS = @LIBOBJS@
-@@ -355,27 +356,27 @@
- # since it will be passed the multilib flags.
- MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
- install_to_libdir: all
-- if test -n "${target_header_dir}"; then \
-- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-- case "${target_header_dir}" in \
-- /*) thd=${target_header_dir};; \
-- *) thd=${includedir}/${target_header_dir};; \
-- esac; \
-- ${mkinstalldirs} $(DESTDIR)$${thd}; \
-- for h in ${INSTALLED_HEADERS}; do \
-- ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-- done; \
-- fi
-+ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n; \
-+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-+ ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n ;$(RANLIB) $(TARGETLIBPIC)n ); \
-+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-+ mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIBPIC); \
-+ ${mkinstalldirs} $(DESTDIR)$${includedir}; \
-+ for h in ${INSTALLED_HEADERS}; do \
-+ ${INSTALL_DATA} $$h $(DESTDIR)$${includedir}; \
-+ done;
- @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
- install_to_tooldir: all
- ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
-+ $(INSTALL_DATA) pic/$(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n
- ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
-+ ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIBPIC)n; $(RANLIB) $(TARGETLIBPIC)n )
- mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
-+ mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIBPIC)
- @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
- # required-list was used when building a shared bfd/opcodes/libiberty
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index abfe33df9c..de1f23520f 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -39,16 +39,11 @@ class Binutils(AutotoolsPackage):
version('2.23.2', '4f8fa651e35ef262edc01d60fb45702e')
version('2.20.1', '2b9dc8f2b7dbd5ec5992c6e29de0b764')
- # Add a patch that creates binutils libiberty_pic.a which is preferred by
- # OpenSpeedShop and cbtf-krell
- variant('krellpatch', default=False,
- description="build with openspeedshop based patch.")
variant('plugins', default=False,
description="enable plugins, needed for gold linker")
variant('gold', default=True, description="build the gold linker")
variant('libiberty', default=False, description='Also install libiberty.')
- patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
patch('cr16.patch')
patch('update_symbol-2.26.patch', when='@2.26')
diff --git a/var/spack/repos/builtin/packages/bml/package.py b/var/spack/repos/builtin/packages/bml/package.py
index 87dc1c9e80..1c91b6fff2 100644
--- a/var/spack/repos/builtin/packages/bml/package.py
+++ b/var/spack/repos/builtin/packages/bml/package.py
@@ -30,20 +30,11 @@ class Bml(CMakePackage):
formats (in dense and sparse) and their associated algorithms for basic
matrix operations."""
- homepage = "https://github.com/qmmd/bml"
- url = "https://github.com/qmmd/bml"
+ homepage = "http://lanl.github.io/bml/"
+ url = "https://github.com/lanl/bml"
- version('develop', git='https://github.com/qmmd/bml', branch='master')
- version('1.1.0', git='https://github.com/qmmd/bml', tag='v1.1.0')
-
- variant('debug', default=False, description='Build debug version')
+ version('develop', git='https://github.com/lanl/bml', branch='master')
+ version('1.1.0', git='https://github.com/lanl/bml', tag='v1.1.0')
depends_on("blas")
depends_on("lapack")
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index cf63b229c0..b3dc0b396b 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -41,6 +41,14 @@ class Boost(Package):
list_url = "http://sourceforge.net/projects/boost/files/boost/"
list_depth = 1
+ version('develop',
+ git='https://github.com/boostorg/boost.git',
+ branch='develop',
+ submodules=True)
+
+ version('1.65.0', '5512d3809801b0a1b9dd58447b70915d',
+ url='https://dl.bintray.com/boostorg/release/1.65.0/source/boost_1_65_0.tar.bz2')
+
# NOTE: 1.64.0 seems fine for *most* applications, but if you need
# +python and +mpi, there seem to be errors with out-of-date
# API calls from mpi/python.
@@ -207,8 +215,21 @@ class Boost(Package):
spack_cxx))
if '+mpi' in spec:
- f.write('using mpi : %s ;\n' %
- join_path(spec['mpi'].prefix.bin, 'mpicxx'))
+
+ # Use the correct mpi compiler. If the compiler options are
+ # empty or undefined, Boost will attempt to figure out the
+ # correct options by running "${mpicxx} -show" or something
+ # similar, but that doesn't work with the Cray compiler
+ # wrappers. Since Boost doesn't use the MPI C++ bindings,
+ # that can be used as a compiler option instead.
+
+ mpi_line = 'using mpi : %s' % spec['mpi'].mpicxx
+
+ if 'platform=cray' in spec:
+ mpi_line += ' : <define>MPICH_SKIP_MPICXX'
+
+ f.write(mpi_line + ' ;\n')
+
if '+python' in spec:
f.write(self.bjam_python_line(spec))
@@ -311,7 +332,6 @@ class Boost(Package):
if not spec.satisfies('@1.43.0:'):
withLibs.remove('random')
if '+graph' in spec and '+mpi' in spec:
- withLibs.remove('graph')
withLibs.append('graph_parallel')
# to make Boost find the user-config.jam
@@ -328,7 +348,11 @@ class Boost(Package):
b2name = './b2' if spec.satisfies('@1.47:') else './bjam'
b2 = Executable(b2name)
- b2_options = ['-j', '%s' % make_jobs]
+ jobs = make_jobs
+ # in 1.59 max jobs became dynamic
+ if jobs > 64 and spec.satisfies('@:1.58'):
+ jobs = 64
+ b2_options = ['-j', '%s' % jobs]
threadingOpts = self.determine_b2_options(spec, b2_options)
diff --git a/var/spack/repos/builtin/packages/bpp-core/package.py b/var/spack/repos/builtin/packages/bpp-core/package.py
index e7cc1abf29..df2c09b3ae 100644
--- a/var/spack/repos/builtin/packages/bpp-core/package.py
+++ b/var/spack/repos/builtin/packages/bpp-core/package.py
@@ -25,7 +25,7 @@
from spack import *
-class BppCore(Package):
+class BppCore(CMakePackage):
"""Bio++ core library."""
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
@@ -33,9 +33,7 @@ class BppCore(Package):
version('2.2.0', '5789ed2ae8687d13664140cd77203477')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.6:', type='build')
- def install(self, spec, prefix):
- cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
- make()
- make('install')
+ def cmake_args(self):
+ return ['-DBUILD_TESTING=FALSE']
diff --git a/var/spack/repos/builtin/packages/bpp-phyl/package.py b/var/spack/repos/builtin/packages/bpp-phyl/package.py
index 4d73d6bd59..1e1a2a393f 100644
--- a/var/spack/repos/builtin/packages/bpp-phyl/package.py
+++ b/var/spack/repos/builtin/packages/bpp-phyl/package.py
@@ -25,7 +25,7 @@
from spack import *
-class BppPhyl(Package):
+class BppPhyl(CMakePackage):
"""Bio++ phylogeny library."""
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
@@ -33,11 +33,9 @@ class BppPhyl(Package):
version('2.2.0', '5c40667ec0bf37e0ecaba321be932770')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.6:', type='build')
depends_on('bpp-core')
depends_on('bpp-seq')
- def install(self, spec, prefix):
- cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
- make()
- make('install')
+ def cmake_args(self):
+ return ['-DBUILD_TESTING=FALSE']
diff --git a/var/spack/repos/builtin/packages/bpp-seq/package.py b/var/spack/repos/builtin/packages/bpp-seq/package.py
index 6e1f06a64b..d89d029d26 100644
--- a/var/spack/repos/builtin/packages/bpp-seq/package.py
+++ b/var/spack/repos/builtin/packages/bpp-seq/package.py
@@ -25,7 +25,7 @@
from spack import *
-class BppSeq(Package):
+class BppSeq(CMakePackage):
"""Bio++ seq library."""
homepage = "http://biopp.univ-montp2.fr/wiki/index.php/Installation"
@@ -33,10 +33,8 @@ class BppSeq(Package):
version('2.2.0', '44adef0ff4d5ca4e69ccf258c9270633')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.6:', type='build')
depends_on('bpp-core')
- def install(self, spec, prefix):
- cmake('-DBUILD_TESTING=FALSE', '.', *std_cmake_args)
- make()
- make('install')
+ def cmake_args(self):
+ return ['-DBUILD_TESTING=FALSE']
diff --git a/var/spack/repos/builtin/packages/bpp-suite/package.py b/var/spack/repos/builtin/packages/bpp-suite/package.py
index 8223c40275..f52f76b822 100644
--- a/var/spack/repos/builtin/packages/bpp-suite/package.py
+++ b/var/spack/repos/builtin/packages/bpp-suite/package.py
@@ -25,7 +25,7 @@
from spack import *
-class BppSuite(Package):
+class BppSuite(CMakePackage):
"""BppSuite is a suite of ready-to-use programs for phylogenetic and
sequence analysis."""
@@ -34,13 +34,8 @@ class BppSuite(Package):
version('2.2.0', 'd8b29ad7ccf5bd3a7beb701350c9e2a4')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.6:', type='build')
depends_on('texinfo', type='build')
depends_on('bpp-core')
depends_on('bpp-seq')
depends_on('bpp-phyl')
-
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
- make()
- make('install')
diff --git a/var/spack/repos/builtin/packages/braker/package.py b/var/spack/repos/builtin/packages/braker/package.py
new file mode 100644
index 0000000000..cfc1f16025
--- /dev/null
+++ b/var/spack/repos/builtin/packages/braker/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Braker(Package):
+ """BRAKER is a pipeline for unsupervised RNA-Seq-based genome annotation
+ that combines the advantages of GeneMark-ET and AUGUSTUS"""
+
+ homepage = "http://exon.gatech.edu/braker1.html"
+ url = "http://bioinf.uni-greifswald.de/augustus/binaries/BRAKER1_v1.11.tar.gz"
+
+ version('1.11', '297efe4cabdd239b710ac2c45d81f6a5')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('augustus')
+ depends_on('genemark-et')
+ depends_on('bamtools')
+ depends_on('samtools')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.lib)
+ install('braker.pl', prefix.bin)
+ install('filterGenemark.pl', prefix.bin)
+ install('filterIntronsFindStrand.pl', prefix.bin)
+ install('helpMod.pm', prefix.lib)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PERL5LIB', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/bsseeker2/package.py b/var/spack/repos/builtin/packages/bsseeker2/package.py
new file mode 100644
index 0000000000..aca1e70b01
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bsseeker2/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bsseeker2(Package):
+ """A versatile aligning pipeline for bisulfite sequencing data."""
+
+ homepage = "http://pellegrini.mcdb.ucla.edu/BS_Seeker2"
+ url = "https://github.com/BSSeeker/BSseeker2/archive/v2.1.2.tar.gz"
+
+ version('2.1.2', '5f7f0ef4071711e56b59c5c16b7f34a7')
+
+ depends_on('python@2.6:2.999', type=('build', 'run'))
+ depends_on('py-pysam', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('Antisense.py', prefix.bin)
+ install_tree('bs_index', prefix.bin.bs_index)
+ install('bs_seeker2-build.py', prefix.bin)
+ install_tree('bs_utils', prefix.bin.bs_utils)
+ install_tree('galaxy', prefix.bin.galaxy)
+ install_tree('bs_align', prefix.bin.bs_align)
+ install('bs_seeker2-align.py', prefix.bin)
+ install('bs_seeker2-call_methylation.py', prefix.bin)
+ install('FilterReads.py', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/bucky/package.py b/var/spack/repos/builtin/packages/bucky/package.py
new file mode 100644
index 0000000000..d74e8784e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bucky/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Bucky(MakefilePackage):
+ """BUCKy is a free program to combine molecular data from multiple loci.
+ BUCKy estimates the dominant history of sampled individuals, and how
+ much of the genome supports each relationship, using Bayesian
+ concordance analysis."""
+
+ homepage = "http://www.stat.wisc.edu/~ane/bucky/index.html"
+ url = "http://dstats.net/download/http://www.stat.wisc.edu/~ane/bucky/v1.4/bucky-1.4.4.tgz"
+
+ version('1.4.4', 'f0c910dd1d411d112637826519943a6d')
+
+ # Compilation requires gcc
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ build_directory = 'src'
+
+ def install(self, spec, prefix):
+ with working_dir('src'):
+ mkdirp(prefix.bin)
+ install('bucky', prefix.bin)
+ install('mbsum', prefix.bin)
+ install_tree('data', prefix.data)
+ install_tree('doc', prefix.doc)
+ install_tree('scripts', prefix.scripts)
diff --git a/var/spack/repos/builtin/packages/busco/package.py b/var/spack/repos/builtin/packages/busco/package.py
new file mode 100644
index 0000000000..ad0f06ca91
--- /dev/null
+++ b/var/spack/repos/builtin/packages/busco/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Busco(PythonPackage):
+ """Assesses genome assembly and annotation completeness with Benchmarking
+ Universal Single-Copy Orthologs"""
+
+ homepage = "http://busco.ezlab.org/"
+ url = "https://gitlab.com/ezlab/busco"
+
+ version('3.0.1', git='https://gitlab.com/ezlab/busco.git', commit='078252e00399550d7b0e8941cd4d986c8e868a83')
+ version('2.0.1', git='https://gitlab.com/ezlab/busco.git', commit='89aa1ab2527f03a87a214ca90a504ad236582a11')
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('blast-plus')
+ depends_on('hmmer')
+ depends_on('augustus')
+
+ def build(self, spec, prefix):
+ if self.spec.satisfies('@2.0.1'):
+ pass
+
+ def install(self, spec, prefix):
+ if self.spec.satisfies('@3.0.1'):
+ with working_dir('scripts'):
+ mkdirp(prefix.bin)
+ install('generate_plot.py', prefix.bin)
+ install('run_BUSCO.py', prefix.bin)
+ install_tree('config', prefix.config)
+ args = self.install_args(spec, prefix)
+ self.setup_py('install', *args)
+ if self.spec.satisfies('@2.0.1'):
+ mkdirp(prefix.bin)
+ install('BUSCO.py', prefix.bin)
+ install('BUSCO_plot.py', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/butter/package.py b/var/spack/repos/builtin/packages/butter/package.py
new file mode 100644
index 0000000000..4bd1607097
--- /dev/null
+++ b/var/spack/repos/builtin/packages/butter/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Butter(Package):
+ """butter: Bowtie UTilizing iTerative placEment of Repetitive small rnas.
+ A wrapper for bowtie to produce small RNA-seq alignments where
+ multimapped small RNAs tend to be placed near regions of confidently
+ high density."""
+
+ homepage = "https://github.com/MikeAxtell/butter"
+ url = "https://github.com/MikeAxtell/butter/archive/v0.3.3.tar.gz"
+
+ version('0.3.3', '806ff3cb7afc1d8b75126404056c629d')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('samtools')
+ depends_on('bowtie')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('butter', prefix.bin)
+ install('bam2wig', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py
index 186f314f1e..636657bf8d 100644
--- a/var/spack/repos/builtin/packages/c-blosc/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc/package.py
@@ -28,7 +28,7 @@ import sys
from spack import *
-class CBlosc(Package):
+class CBlosc(CMakePackage):
"""Blosc, an extremely fast, multi-threaded, meta-compressor library"""
homepage = "http://www.blosc.org"
url = "https://github.com/Blosc/c-blosc/archive/v1.11.1.tar.gz"
@@ -42,15 +42,21 @@ class CBlosc(Package):
variant('avx2', default=True, description='Enable AVX2 support')
- depends_on("cmake", type='build')
- depends_on("snappy")
- depends_on("zlib")
+ depends_on('cmake@2.8.10:', type='build')
+ depends_on('snappy')
+ depends_on('zlib')
- def install(self, spec, prefix):
- avx2 = '-DDEACTIVATE_AVX2=%s' % ('ON' if '~avx2' in spec else 'OFF')
- cmake('.', avx2, *std_cmake_args)
+ def cmake_args(self):
+ args = []
- make()
- make("install")
+ if '+avx2' in self.spec:
+ args.append('-DDEACTIVATE_AVX2=OFF')
+ else:
+ args.append('-DDEACTIVATE_AVX2=ON')
+
+ return args
+
+ @run_after('install')
+ def darwin_fix(self):
if sys.platform == 'darwin':
- fix_darwin_install_name(prefix.lib)
+ fix_darwin_install_name(self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/caffe/package.py b/var/spack/repos/builtin/packages/caffe/package.py
index 4e2ef26dbb..021814c7fd 100644
--- a/var/spack/repos/builtin/packages/caffe/package.py
+++ b/var/spack/repos/builtin/packages/caffe/package.py
@@ -39,7 +39,7 @@ class Caffe(CMakePackage):
version('rc3', '84e39223115753b48312a8bf48c31f59')
version('rc2', 'c331932e34b5e2f5022fcc34c419080f')
- variant('gpu', default=False,
+ variant('cuda', default=False,
description='Builds with support for GPUs via CUDA and cuDNN')
variant('opencv', default=True,
description='Build with OpenCV support')
@@ -54,7 +54,7 @@ class Caffe(CMakePackage):
depends_on('boost')
depends_on('boost +python', when='+python')
- depends_on('cuda', when='+gpu')
+ depends_on('cuda', when='+cuda')
depends_on('blas')
depends_on('protobuf')
depends_on('glog')
@@ -75,8 +75,8 @@ class Caffe(CMakePackage):
spec = self.spec
args = ['-DBLAS={0}'.format('open' if spec['blas'].name == 'openblas'
else spec['blas'].name),
- '-DCPU_ONLY=%s' % ('~gpu' in spec),
- '-DUSE_CUDNN=%s' % ('+gpu' in spec),
+ '-DCPU_ONLY=%s' % ('~cuda' in spec),
+ '-DUSE_CUDNN=%s' % ('+cuda' in spec),
'-DBUILD_python=%s' % ('+python' in spec),
'-DBUILD_python_layer=%s' % ('+python' in spec),
'-DBUILD_matlab=%s' % ('+matlab' in spec),
diff --git a/var/spack/repos/builtin/packages/callpath/package.py b/var/spack/repos/builtin/packages/callpath/package.py
index 9ded62e5c5..bc72bb50bd 100644
--- a/var/spack/repos/builtin/packages/callpath/package.py
+++ b/var/spack/repos/builtin/packages/callpath/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Callpath(Package):
+class Callpath(CMakePackage):
"""Library for representing callpaths consistently in
distributed-memory performance tools."""
@@ -35,18 +35,20 @@ class Callpath(Package):
version('1.0.2', 'b1994d5ee7c7db9d27586fc2dcf8f373')
version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325')
- depends_on("elf", type="link")
- depends_on("libdwarf")
- depends_on("dyninst")
- depends_on("adept-utils")
- depends_on("mpi")
- depends_on('cmake', type='build')
+ depends_on('elf', type='link')
+ depends_on('libdwarf')
+ depends_on('dyninst')
+ depends_on('adept-utils')
+ depends_on('mpi')
+ depends_on('cmake@2.8:', type='build')
- def install(self, spec, prefix):
+ def cmake_args(self):
# TODO: offer options for the walker used.
- cmake_args = std_cmake_args
- if spec.satisfies("^dyninst@9.3.0:"):
- cmake_args.append("-DCMAKE_CXX_FLAGS='-std=c++11 -fpermissive'")
- cmake('.', "-DCALLPATH_WALKER=dyninst", *cmake_args)
- make()
- make("install")
+ args = ["-DCALLPATH_WALKER=dyninst"]
+
+ if self.spec.satisfies("^dyninst@9.3.0:"):
+ std_flag = self.compiler.cxx11_flag
+ args.append("-DCMAKE_CXX_FLAGS='{0} -fpermissive'".format(
+ std_flag))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index e92c5b5b43..36c796e45d 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -26,132 +26,147 @@ from spack import *
import os
-class Cantera(Package):
+class Cantera(SConsPackage):
"""Cantera is a suite of object-oriented software tools for problems
involving chemical kinetics, thermodynamics, and/or transport processes."""
homepage = "http://www.cantera.org/docs/sphinx/html/index.html"
- url = "https://github.com/Cantera/cantera/archive/v2.2.1.tar.gz"
+ url = "https://github.com/Cantera/cantera/archive/v2.3.0.tar.gz"
+ version('2.3.0', 'aebbd8d891cb1623604245398502b72e')
version('2.2.1', '9d1919bdef39ddec54485fc8a741a3aa')
- variant('lapack', default=True,
- description='Build with external BLAS/LAPACK libraries')
- variant('threadsafe', default=True,
- description='Build threadsafe, requires Boost')
- variant('sundials', default=True,
- description='Build with external Sundials')
variant('python', default=False,
description='Build the Cantera Python module')
variant('matlab', default=False,
description='Build the Cantera Matlab toolbox')
# Required dependencies
- depends_on('scons', type='build')
-
- # Recommended dependencies
- depends_on('blas', when='+lapack')
- depends_on('lapack', when='+lapack')
- depends_on('boost', when='+threadsafe')
- depends_on('sundials', when='+sundials') # must be compiled with -fPIC
+ depends_on('fmt@3.0.0:3.0.2', when='@2.3.0:')
+ depends_on('googletest', when='@2.3.0:')
+ depends_on('eigen', when='@2.3.0:')
+ depends_on('boost')
+ depends_on('sundials') # must be compiled with -fPIC
+ depends_on('blas')
+ depends_on('lapack')
# Python module dependencies
extends('python', when='+python')
+ depends_on('py-cython', when='+python', type='build')
depends_on('py-numpy', when='+python', type=('build', 'run'))
depends_on('py-scipy', when='+python', type=('build', 'run'))
- depends_on('py-cython', when='+python', type=('build', 'run'))
depends_on('py-3to2', when='+python', type=('build', 'run'))
# TODO: these "when" specs don't actually work
# depends_on('py-unittest2', when='+python^python@2.6', type=('build', 'run')) # noqa
# depends_on('py-unittest2py3k', when='+python^python@3.1', type=('build', 'run')) # noqa
# Matlab toolbox dependencies
- # TODO: add Matlab package
- # TODO: allow packages to extend multiple other packages
- # extends('matlab', when='+matlab')
+ extends('matlab', when='+matlab')
+
+ def build_args(self, spec, prefix):
+ # Valid args can be found by running `scons help`
- def install(self, spec, prefix):
- # Required options
- options = [
+ # Required args
+ args = [
+ 'build',
'prefix={0}'.format(prefix),
- 'CC={0}'.format(os.environ['CC']),
- 'CXX={0}'.format(os.environ['CXX']),
- 'F77={0}'.format(os.environ['F77']),
- 'FORTRAN={0}'.format(os.environ['FC']),
- 'cc_flags=-fPIC',
+ 'VERBOSE=yes',
+ 'CC={0}'.format(spack_cc),
+ 'CXX={0}'.format(spack_cxx),
+ 'FORTRAN={0}'.format(spack_fc),
+ 'cc_flags={0}'.format(self.compiler.pic_flag),
# Allow Spack environment variables to propagate through to SCons
'env_vars=all'
]
- # BLAS/LAPACK support
- if '+lapack' in spec:
- lapack_blas = spec['lapack'].libs + spec['blas'].libs
- options.extend([
- 'blas_lapack_libs={0}'.format(','.join(lapack_blas.names)),
- 'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib)
+ if spec.satisfies('@:2.2.1'):
+ args.append('F77={0}'.format(spack_f77))
+
+ # fmt support
+ if spec.satisfies('@2.3.0:'):
+ args.append('system_fmt=y')
+
+ # Googletest support
+ if spec.satisfies('@2.3.0:'):
+ args.append('system_googletest=y')
+
+ # Eigen support
+ if spec.satisfies('@2.3.0:'):
+ args.extend([
+ 'system_eigen=y',
+ 'extra_inc_dirs={0}'.format(
+ join_path(spec['eigen'].prefix.include, 'eigen{0}'.format(
+ spec['eigen'].version.up_to(1)))),
])
- # Threadsafe build, requires Boost
- if '+threadsafe' in spec:
- options.extend([
+ # BLAS/LAPACK support
+ lapack_blas = spec['lapack'].libs + spec['blas'].libs
+ args.extend([
+ 'blas_lapack_libs={0}'.format(','.join(lapack_blas.names)),
+ 'blas_lapack_dir={0}'.format(spec['lapack'].prefix.lib)
+ ])
+
+ # Boost support
+ if spec.satisfies('@2.3.0:'):
+ args.append('boost_inc_dir={0}'.format(
+ spec['boost'].prefix.include))
+ else:
+ args.extend([
'build_thread_safe=yes',
'boost_inc_dir={0}'.format(spec['boost'].prefix.include),
- 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib)
+ 'boost_lib_dir={0}'.format(spec['boost'].prefix.lib),
])
- else:
- options.append('build_thread_safe=no')
# Sundials support
- if '+sundials' in spec:
- options.extend([
+ if spec.satisfies('@2.3.0:'):
+ args.append('system_sundials=y')
+ else:
+ args.extend([
'use_sundials=y',
- 'sundials_include={0}'.format(spec['sundials'].prefix.include),
- 'sundials_libdir={0}'.format(spec['sundials'].prefix.lib),
'sundials_license={0}'.format(
- join_path(spec['sundials'].prefix, 'LICENSE'))
+ spec['sundials'].prefix.LICENSE)
])
- else:
- options.append('use_sundials=n')
+
+ args.extend([
+ 'sundials_include={0}'.format(spec['sundials'].prefix.include),
+ 'sundials_libdir={0}'.format(spec['sundials'].prefix.lib),
+ ])
# Python module
if '+python' in spec:
- options.extend([
+ args.extend([
'python_package=full',
'python_cmd={0}'.format(spec['python'].command.path),
- 'python_array_home={0}'.format(spec['py-numpy'].prefix)
])
- if spec['python'].satisfies('@3'):
- options.extend([
+ if spec['python'].satisfies('@3:'):
+ args.extend([
'python3_package=y',
'python3_cmd={0}'.format(spec['python'].command.path),
- 'python3_array_home={0}'.format(spec['py-numpy'].prefix)
])
else:
- options.append('python3_package=n')
+ args.append('python3_package=n')
else:
- options.append('python_package=none')
- options.append('python3_package=n')
+ args.append('python_package=none')
+ args.append('python3_package=n')
# Matlab toolbox
if '+matlab' in spec:
- options.extend([
+ args.extend([
'matlab_toolbox=y',
'matlab_path={0}'.format(spec['matlab'].prefix)
])
else:
- options.append('matlab_toolbox=n')
+ args.append('matlab_toolbox=n')
- scons('build', *options)
+ return args
- if '+python' in spec:
+ def test(self):
+ if '+python' in self.spec:
# Tests will always fail if Python dependencies aren't built
# In addition, 3 of the tests fail when run in parallel
scons('test', parallel=False)
- scons('install')
-
- self.filter_compilers()
-
+ @run_after('install')
def filter_compilers(self):
"""Run after install to tell the Makefile and SConstruct files to use
the compilers that Spack built the package with.
diff --git a/var/spack/repos/builtin/packages/canu/package.py b/var/spack/repos/builtin/packages/canu/package.py
new file mode 100644
index 0000000000..fd6acfec0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/canu/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Canu(MakefilePackage):
+ """A single molecule sequence assembler for genomes large and
+ small."""
+
+ homepage = "http://canu.readthedocs.io/"
+ url = "https://github.com/marbl/canu/archive/v1.5.tar.gz"
+
+ version('1.5', '65df275baa28ecf11b15dfd7343361e3')
+
+ depends_on('gnuplot', type='run')
+ depends_on('jdk', type='run')
+ depends_on('perl', type='run')
+
+ build_directory = 'src'
+
+ def patch(self):
+ # Use our perl, not whatever is in the environment
+ perl = self.spec['perl'].prefix.bin.perl
+ filter_file(r'^#!/usr/bin/env perl',
+ '#!{0}'.format(perl),
+ 'src/pipelines/canu.pl')
+
+ def install(self, spec, prefix):
+ # replicate the Makefile logic here:
+ # https://github.com/marbl/canu/blob/master/src/Makefile#L344
+ uname = which('uname')
+ ostype = uname(output=str).strip()
+ machinetype = uname('-m', output=str).strip()
+ if machinetype == 'x86_64':
+ machinetype = 'amd64'
+ target_dir = '{0}-{1}'.format(ostype, machinetype)
+ bin = join_path(target_dir, 'bin')
+
+ install_tree(bin, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cap3/package.py b/var/spack/repos/builtin/packages/cap3/package.py
new file mode 100644
index 0000000000..8f4a180cbd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cap3/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cap3(Package):
+ """CAP3 is DNA Sequence Assembly Program"""
+
+ homepage = "http://seq.cs.iastate.edu/"
+ url = "http://seq.cs.iastate.edu/CAP3/cap3.linux.x86_64.tar"
+
+ version('2015-02-11', '5393d937978ecc5f18fcb741140e1f02',
+ url='http://seq.cs.iastate.edu/CAP3/cap3.linux.x86_64.tar')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('cap3', prefix.bin)
+ install('formcon', prefix.bin)
+ mkdirp(prefix.doc)
+ install('doc', prefix.doc)
+ install('aceform', prefix.doc)
diff --git a/var/spack/repos/builtin/packages/cares/package.py b/var/spack/repos/builtin/packages/cares/package.py
new file mode 100644
index 0000000000..2c944104fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cares/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cares(CMakePackage):
+ """c-ares: A C library for asynchronous DNS requests"""
+
+ homepage = "https://c-ares.haxx.se"
+ url = "https://github.com/c-ares/c-ares/archive/cares-1_13_0.tar.gz"
+
+ version('develop', branch='master',
+ git='https://github.com/c-ares/c-ares.git')
+
+ version('1.13.0', 'cdb21052a7eb85261da22f83c0654cfd')
+
+ def url_for_version(self, version):
+ url = "https://github.com/c-ares/c-ares/archive/cares-{0}.tar.gz"
+ return url.format(version.underscored)
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
new file mode 100644
index 0000000000..83a44592ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py
@@ -0,0 +1,97 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+##########################################################################
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+##########################################################################
+
+from spack import *
+
+
+class CbtfArgonavisGui(QMakePackage):
+ """CBTF Argo Navis GUI project contains the GUI that views OpenSpeedShop
+ performance information by loading in the Sqlite database files.
+ """
+ homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
+
+ version('0.8.1', branch='master',
+ git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git')
+
+ depends_on("cmake@3.0.2", type='build')
+ depends_on("openspeedshop+cuda gui='qt4'")
+ depends_on('qt@4.8.6:')
+ depends_on("boost@1.50.0:1.59.0")
+ depends_on("cbtf")
+ depends_on("cbtf-krell")
+ depends_on("cbtf-argonavis")
+ depends_on("cuda")
+ depends_on("mrnet@5.0.1:+lwthreads")
+ depends_on("xerces-c@3.1.1:")
+ depends_on("graphviz")
+ depends_on("qtgraph")
+
+ parallel = False
+
+ def setup_environment(self, spack_env, run_env):
+ """Set up the compile and runtime environments for a package."""
+ spack_env.set('BOOSTROOT', self.spec['boost'].prefix)
+ spack_env.set('CBTF_ROOT', self.spec['cbtf'].prefix)
+ spack_env.set('CBTF_KRELL_ROOT', self.spec['cbtf-krell'].prefix)
+ spack_env.set('CBTF_ARGONAVIS_ROOT',
+ self.spec['cbtf-argonavis'].prefix)
+ spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop'].prefix)
+ spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix)
+ spack_env.set('QTGRAPHLIB_ROOT', self.spec['qtgraph'].prefix)
+ spack_env.set('KRELL_ROOT_MRNET', self.spec['mrnet'].prefix)
+ spack_env.set('KRELL_ROOT_XERCES', self.spec['xerces-c'].prefix)
+ spack_env.set('INSTALL_ROOT', self.spec.prefix)
+
+ # The implementor of qtgraph has set up the library and include
+ # paths in a non-conventional way. We reflect that here.
+ run_env.prepend_path(
+ 'LD_LIBRARY_PATH', join_path(
+ self.spec['qtgraph'].prefix.lib64,
+ '{0}'.format(self.spec['qt'].version.up_to(3))))
+ # The openspeedshop libraries are needed to actually load the
+ # performance information into the GUI.
+ run_env.prepend_path(
+ 'LD_LIBRARY_PATH', self.spec['openspeedshop'].prefix.lib64)
+
+ def qmake_args(self):
+ options = ['-o', 'Makefile', 'openss-gui.pro']
+ return options
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
index 9b4439f6b6..a13d79c953 100644
--- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -43,20 +43,19 @@
from spack import *
-class CbtfArgonavis(Package):
+class CbtfArgonavis(CMakePackage):
"""CBTF Argo Navis project contains the CUDA collector and supporting
libraries that was done as a result of a DOE SBIR grant.
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- # Mirror access template example
- # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/cbtf-argonavis-1.6.tar.gz"
- # version('1.6', '0fafa0008478405c2c2319450f174ed4')
-
version('1.8', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-argonavis.git')
+ variant('build_type', default='None', values=('None'),
+ description='CMake build type')
+
depends_on("cmake@3.0.2:", type='build')
depends_on("boost@1.50.0:1.59.0")
depends_on("papi")
@@ -67,73 +66,27 @@ class CbtfArgonavis(Package):
parallel = False
- def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will
- # enable the cbtf-krell built type settings
+ build_directory = 'build_cbtf_argonavis'
+ def cmake_args(self):
+ spec = self.spec
compile_flags = "-O2 -g"
- BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
- # stdcmakeargs
- for word in cmakeOptions[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_CXX_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_C_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
- cmakeOptions.remove(word)
- BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
+ cmake_args = [
'-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
- ])
-
- cmakeOptions.extend(BuildTypeOptions)
-
- def install(self, spec, prefix):
-
- # Look for package installation information in the cbtf and cbtf-krell
- # prefixes
- cmake_prefix_path = join_path(
- spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
-
- with working_dir('CUDA'):
- with working_dir('build', create=True):
-
- cmakeOptions = []
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DCUDA_DIR=%s' % spec['cuda'].prefix,
- '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
- '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
- '-DCUPTI_DIR=%s' % join_path(
- spec['cuda'].prefix + '/extras/CUPTI'),
- '-DCUPTI_ROOT=%s' % join_path(
- spec['cuda'].prefix + '/extras/CUPTI'),
- '-DPAPI_ROOT=%s' % spec['papi'].prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DBoost_DIR=%s' % spec['boost'].prefix,
- '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DBoost_NO_SYSTEM_PATHS=ON'])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build
- # type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DCUDA_DIR=%s' % spec['cuda'].prefix,
+ '-DCUDA_INSTALL_PATH=%s' % spec['cuda'].prefix,
+ '-DCUDA_TOOLKIT_ROOT_DIR=%s' % spec['cuda'].prefix,
+ '-DCUPTI_DIR=%s' % spec['cuda'].prefix.extras.CUPTI,
+ '-DCUPTI_ROOT=%s' % spec['cuda'].prefix.extras.CUPTI,
+ '-DPAPI_ROOT=%s' % spec['papi'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DBoost_DIR=%s' % spec['boost'].prefix,
+ '-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DBoost_NO_SYSTEM_PATHS=ON']
+
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py
index 0114ad4e4a..fce4ae62e2 100644
--- a/var/spack/repos/builtin/packages/cbtf-krell/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -43,7 +43,7 @@
from spack import *
-class CbtfKrell(Package):
+class CbtfKrell(CMakePackage):
"""CBTF Krell project contains the Krell Institute contributions to the
CBTF project. These contributions include many performance data
collectors and support libraries as well as some example tools
@@ -52,10 +52,6 @@ class CbtfKrell(Package):
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- # optional mirror access template
- # url = "file:/home/jeg/cbtf-krell-1.6.tar.gz"
- # version('1.6', 'edeb61cd488f16e7b124f77db9ce762d')
-
version('1.8', branch='master',
git='https://github.com/OpenSpeedShop/cbtf-krell.git')
@@ -72,16 +68,18 @@ class CbtfKrell(Package):
description="Build mpi experiment collector for mpich2 MPI.")
variant('mpich', default=False,
description="Build mpi experiment collector for mpich MPI.")
+ variant('build_type', default='None', values=('None'),
+ description='CMake build type')
# Dependencies for cbtf-krell
depends_on("cmake@3.0.2:", type='build')
# For binutils service
- depends_on("binutils@2.24+krellpatch")
+ depends_on("binutils")
# collectionTool
depends_on("boost@1.50.0:1.59.0")
- depends_on("dyninst@9.2.0")
+ depends_on("dyninst@9.3.2")
depends_on("mrnet@5.0.1:+lwthreads")
depends_on("xerces-c@3.1.1:")
@@ -104,31 +102,7 @@ class CbtfKrell(Package):
parallel = False
- def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will
- # enable the cbtf-krell built type settings
-
- compile_flags = "-O2 -g"
- BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
- # stdcmakeargs
- for word in cmakeOptions[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_CXX_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_C_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
- cmakeOptions.remove(word)
- BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
- ])
-
- cmakeOptions.extend(BuildTypeOptions)
+ build_directory = 'build_cbtf_krell'
def set_mpi_cmakeOptions(self, spec, cmakeOptions):
# Appends to cmakeOptions the options that will enable the appropriate
@@ -157,135 +131,27 @@ class CbtfKrell(Package):
cmakeOptions.extend(MPIOptions)
- def install(self, spec, prefix):
+ def cmake_args(self):
+ spec = self.spec
+
+ compile_flags = "-O2 -g"
# Add in paths for finding package config files that tell us
# where to find these packages
- # cmake_prefix_path = \
- # join_path(spec['cbtf'].prefix) + ':' + \
- # join_path(spec['dyninst'].prefix)
- # '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path
-
- # Build cbtf-krell with cmake
- with working_dir('build_cbtf_krell', create=True):
- cmakeOptions = []
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s' % spec['papi'].prefix,
- '-DBOOST_DIR=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix])
-
- # Add any MPI implementations coming from variant settings
- self.set_mpi_cmakeOptions(spec, cmakeOptions)
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build
- # type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
-
- # if '+cray' in spec:
- # if 'cray' in self.spec.architecture:
- # if '+runtime' in spec:
- # with working_dir('build_cbtf_cray_runtime', create=True):
- # python_vers='%d.%d' % spec['python'].version[:2]
- # cmake .. \
- # -DCMAKE_BUILD_TYPE=Debug \
- # -DTARGET_OS="cray" \
- # -DRUNTIME_ONLY="true" \
- # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
- # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
- # -DCBTF_DIR=${CBTF_ROOT} \
- # -DBOOST_ROOT=${BOOST_INSTALL_PREFIX} \
- # -DXERCESC_DIR=${XERCESC_INSTALL_PREFIX} \
- # -DBINUTILS_DIR=${KRELL_ROOT} \
- # -DLIBMONITOR_DIR=${KRELL_ROOT_COMPUTE} \
- # -DLIBUNWIND_DIR=${KRELL_ROOT_COMPUTE} \
- # -DPAPI_DIR=${PAPI_ROOT} \
- # -DDYNINST_DIR=${DYNINST_CN_ROOT} \
- # -DMRNET_DIR=${MRNET_INSTALL_PREFIX} \
- # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
- # else:
- # with working_dir('build_cbtf_cray_frontend', create=True):
- # python_vers='%d.%d' % spec['python'].version[:2]
- # cmake .. \
- # -DCMAKE_BUILD_TYPE=Debug \
- # -DCMAKE_INSTALL_PREFIX=${CBTF_KRELL_PREFIX} \
- # -DCMAKE_PREFIX_PATH=${CBTF_ROOT} \
- # -DCBTF_DIR=${CBTF_ROOT} \
- # -DRUNTIME_TARGET_OS="cray" \
- # -DCBTF_KRELL_CN_RUNTIME_DIR=${CBTF_KRELL_CN_RUNTIME_ROOT} \
- # -DCBTF_CN_RUNTIME_DIR=${CBTF_CN_RUNTIME_ROOT} \
- # -DLIBMONITOR_CN_RUNTIME_DIR=${LIBMONITOR_CN_ROOT} \
- # -DLIBUNWIND_CN_RUNTIME_DIR=${LIBUNWIND_CN_ROOT} \
- # -DPAPI_CN_RUNTIME_DIR=${PAPI_CN_ROOT} \
- # -DXERCESC_CN_RUNTIME_DIR=/${XERCESC_CN_ROOT} \
- # -DMRNET_CN_RUNTIME_DIR=${MRNET_CN_ROOT} \
- # -DBOOST_CN_RUNTIME_DIR=${BOOST_CN_ROOT} \
- # -DDYNINST_CN_RUNTIME_DIR=${DYNINST_CN_ROOT} \
- # -DBOOST_ROOT=/${KRELL_ROOT} \
- # -DXERCESC_DIR=/${KRELL_ROOT} \
- # -DBINUTILS_DIR=/${KRELL_ROOT} \
- # -DLIBMONITOR_DIR=${KRELL_ROOT} \
- # -DLIBUNWIND_DIR=${KRELL_ROOT} \
- # -DPAPI_DIR=${PAPI_ROOT} \
- # -DDYNINST_DIR=${KRELL_ROOT} \
- # -DMRNET_DIR=${KRELL_ROOT} \
- # -DMPICH2_DIR=/opt/cray/mpt/7.0.1/gni/mpich2-gnu/48
- # fi
-#
-# make("clean")
-# make()
-# make("install")
-#
-# elif '+mic' in spec:
-# if '+runtime' in spec:
-# with working_dir('build_cbtf_mic_runtime', create=True):
-# python_vers='%d.%d' % spec['python'].version[:2]
-# cmake .. \
-#
-# else:
-# with working_dir('build_cbtf_cray_frontend', create=True):
-# python_vers='%d.%d' % spec['python'].version[:2]
-# cmake .. \
-# fi
-#
-# else:
-# # Build cbtf-krell with cmake
-# with working_dir('build_cbtf_krell', create=True):
-# cmake('..',
-# '-DCMAKE_BUILD_TYPE=Debug',
-# '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
-# '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
-# '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
-# '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
-# '-DLIBUNWIND_DIR=%s'% spec['libunwind'].prefix,
-# '-DPAPI_DIR=%s' % spec['papi'].prefix,
-# '-DBOOST_DIR=%s' % spec['boost'].prefix,
-# '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
-# '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
-# '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
-# '-DOPENMPI_DIR=%s' % openmpi_prefix_path,
-# '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
-# *std_cmake_args)
-#
-# make("clean")
-# make()
-# make("install")
-#
-# fi
-#
+ cmake_args = [
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DBINUTILS_DIR=%s' % spec['binutils'].prefix,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s' % spec['papi'].prefix,
+ '-DBOOST_DIR=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DDYNINST_DIR=%s' % spec['dyninst'].prefix,
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix]
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmake_args)
+
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
index a2a258be3a..b56265154c 100644
--- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py
+++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -43,18 +43,17 @@
from spack import *
-class CbtfLanl(Package):
+class CbtfLanl(CMakePackage):
"""CBTF LANL project contains a memory tool and data center type system
command monitoring tool."""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home/"
- # Mirror access template example
- # url = "file:/g/g24/jeg/cbtf-lanl-1.6.tar.gz"
- # version('1.6', 'c3f78f967b0a42c6734ce4be0e602426')
-
version('1.8', branch='master',
git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl')
+ variant('build_type', default='None', values=('None'),
+ description='CMake build type')
+
depends_on("cmake@3.0.2:", type='build')
# Dependencies for cbtf-krell
depends_on("mrnet@5.0.1:+lwthreads")
@@ -64,61 +63,21 @@ class CbtfLanl(Package):
parallel = False
- def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will
- # enable the cbtf-krell built type settings
-
- compile_flags = "-O2 -g"
- BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
- # stdcmakeargs
- for word in cmakeOptions[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_CXX_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_C_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_VERBOSE_MAKEFILE'):
- cmakeOptions.remove(word)
- BuildTypeOptions.extend([
- '-DCMAKE_VERBOSE_MAKEFILE=ON',
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
- ])
-
- cmakeOptions.extend(BuildTypeOptions)
+ build_directory = 'build_cbtf_lanl'
- def install(self, spec, prefix):
+ def cmake_args(self):
- # Add in paths for finding package config files that tell us where to
- # find these packages
- cmake_prefix_path = join_path(
- spec['cbtf'].prefix) + ':' + join_path(spec['cbtf-krell'].prefix)
-
- with working_dir('build', create=True):
- cmakeOptions = []
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DCMAKE_PREFIX_PATH=%s' % cmake_prefix_path,
- '-DCMAKE_MODULE_PATH=%s' % join_path(
- prefix.share, 'KrellInstitute', 'cmake')])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build
- # type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
+ spec = self.spec
+ compile_flags = "-O2 -g"
- make("clean")
- make()
- make("install")
+ cmake_args = [
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')]
+
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py
index a9b141985f..d972544f5f 100644
--- a/var/spack/repos/builtin/packages/cbtf/package.py
+++ b/var/spack/repos/builtin/packages/cbtf/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##########################################################################
-# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
@@ -43,7 +43,7 @@
from spack import *
-class Cbtf(Package):
+class Cbtf(CMakePackage):
"""CBTF project contains the base code for CBTF that supports creating
components, component networks and the support to connect these
components and component networks into sequential and distributed
@@ -52,16 +52,14 @@ class Cbtf(Package):
"""
homepage = "http://sourceforge.net/p/cbtf/wiki/Home"
- # Mirror access template example
- # url = "file:/home/jeg/cbtf-1.6.tar.gz"
- # version('1.6', 'c1ef4e5aa4e470dffb042abdba0b9987')
-
# Use when the git repository is available
version('1.8', branch='master',
git='https://github.com/OpenSpeedShop/cbtf.git')
variant('runtime', default=False,
description="build only the runtime libraries and collectors.")
+ variant('build_type', default='None', values=('None'),
+ description='CMake build type')
depends_on("cmake@3.0.2:", type='build')
depends_on("boost@1.50.0:1.59.0")
@@ -72,82 +70,42 @@ class Cbtf(Package):
parallel = False
- def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the options that will
- # enable the cbtf-krell built type settings
-
- compile_flags = "-O2 -g"
- BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it to be, not the
- # stdcmakeargs
- for word in cmakeOptions[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_CXX_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_C_FLAGS'):
- cmakeOptions.remove(word)
- BuildTypeOptions.extend([
- '-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags
- ])
-
- cmakeOptions.extend(BuildTypeOptions)
-
- def install(self, spec, prefix):
- with working_dir('build', create=True):
-
- # Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
- # in system paths (or other locations outside of BOOST_ROOT
- # or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
- # Defaults to OFF.
+ build_directory = 'build_cbtf'
- if '+runtime' in spec:
- # Install message tag include file for use in Intel MIC
- # cbtf-krell build
- # FIXME
- cmakeOptions = []
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DCMAKE_MODULE_PATH=%s' % join_path(
- prefix.share, 'KrellInstitute', 'cmake')])
+ def cmake_args(self):
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
+ spec = self.spec
- # Adjust the standard cmake arguments to what we want the build
- # type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
+ # Boost_NO_SYSTEM_PATHS Set to TRUE to suppress searching
+ # in system paths (or other locations outside of BOOST_ROOT
+ # or BOOST_INCLUDEDIR). Useful when specifying BOOST_ROOT.
+ # Defaults to OFF.
- # Invoke cmake
- cmake('..', *cmakeOptions)
-
- else:
- cmakeOptions = []
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DBoost_NO_SYSTEM_PATHS=TRUE',
- '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
- '-DBOOST_ROOT=%s' % spec['boost'].prefix,
- '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
- '-DCMAKE_MODULE_PATH=%s' % join_path(
- prefix.share, 'KrellInstitute', 'cmake')])
-
- # Add in the standard cmake arguments
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the standard cmake arguments to what we want the build
- # type, etc to be
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- # Invoke cmake
- cmake('..', *cmakeOptions)
+ compile_flags = "-O2 -g"
- make("clean")
- make()
- make("install")
+ if '+runtime' in spec:
+ # Install message tag include file for use in Intel MIC
+ # cbtf-krell build
+ # FIXME
+ cmake_args = [
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DRUNTIME_ONLY=TRUE',
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')]
+ else:
+ cmake_args = [
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DBoost_NO_SYSTEM_PATHS=TRUE',
+ '-DXERCESC_DIR=%s' % spec['xerces-c'].prefix,
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix,
+ '-DCMAKE_MODULE_PATH=%s' % join_path(
+ prefix.share, 'KrellInstitute', 'cmake')]
+
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/cdbfasta/package.py b/var/spack/repos/builtin/packages/cdbfasta/package.py
new file mode 100644
index 0000000000..9fa0c62442
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cdbfasta/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cdbfasta(MakefilePackage):
+ """Fast indexing and retrieval of fasta records from flat file databases"""
+
+ homepage = "https://github.com/gpertea/cdbfasta"
+ url = "https://github.com/gpertea/cdbfasta"
+
+ version('2017-03-16', git='https://github.com/gpertea/cdbfasta.git', commit='b3e481fe02dfbc767a3842bcb1b687c60376a5e8')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('cdbfasta', prefix.bin)
+ install('cdbyank', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cdhit/package.py b/var/spack/repos/builtin/packages/cdhit/package.py
new file mode 100644
index 0000000000..8651466ef5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cdhit/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cdhit(MakefilePackage):
+ """CD-HIT is a very widely used program for clustering and comparing
+ protein or nucleotide sequences."""
+
+ homepage = "http://cd-hit.org/"
+ url = "https://github.com/weizhongli/cdhit/archive/V4.6.8.tar.gz"
+
+ version('4.6.8', 'bdd73ec0cceab6653aab7b31b57c5a8b')
+
+ variant('openmp', default=True, description='Compile with multi-threading support')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def build(self, spec, prefix):
+ mkdirp(prefix.bin)
+ if '~openmp' in spec:
+ make('openmp=no')
+ else:
+ make()
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('PREFIX', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py
index 898f7ff1b8..162d18892d 100644
--- a/var/spack/repos/builtin/packages/cdo/package.py
+++ b/var/spack/repos/builtin/packages/cdo/package.py
@@ -25,19 +25,18 @@
from spack import *
-class Cdo(Package):
+class Cdo(AutotoolsPackage):
"""CDO is a collection of command line Operators to manipulate and analyse
- Climate and NWP model Data.
+ Climate and NWP model Data.
"""
- homepage = "https://code.zmaw.de/projects/cdo"
- url = "https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz"
- list_url = "https://code.zmaw.de/projects/cdo/files"
+ homepage = 'https://code.mpimet.mpg.de/projects/cdo'
+ url = 'https://code.mpimet.mpg.de/attachments/download/12760/cdo-1.7.2.tar.gz'
+ list_url = 'https://code.mpimet.mpg.de/projects/cdo/files'
- version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31',
- url='https://code.zmaw.de/attachments/download/12760/cdo-1.7.2.tar.gz')
- version('1.6.9', 'bf0997bf20e812f35e10188a930e24e2',
- url='https://code.zmaw.de/attachments/download/10198/cdo-1.6.9.tar.gz')
+ version('1.9.0', '2d88561b3b4a880df0422a62e5027e40')
+ version('1.8.2', '6a2e2f99b7c67ee9a512c40a8d4a7121')
+ version('1.7.2', 'f08e4ce8739a4f2b63fc81a24db3ee31')
variant('szip', default=True, description='Enable szip compression for GRIB1')
variant('hdf5', default=False, description='Enable HDF5 support')
@@ -46,9 +45,10 @@ class Cdo(Package):
variant('grib', default=True, description='Enable GRIB_API support')
variant('libxml2', default=True, description='Enable libxml2 support')
variant('proj', default=True, description='Enable PROJ library for cartographic projections')
- variant('curl', default=True, description='Enable curl support')
+ variant('curl', default=False, description='Enable curl support')
variant('fftw', default=True, description='Enable support for fftw3')
- variant('magics', default=True, description='Enable Magics library support')
+ variant('magics', default=False, description='Enable Magics library support')
+ variant('openmp', default=True, description='Enable OpenMP support')
depends_on('szip', when='+szip')
depends_on('netcdf', when='+netcdf')
@@ -61,62 +61,64 @@ class Cdo(Package):
depends_on('fftw', when='+fftw')
depends_on('magics', when='+magics')
- def install(self, spec, prefix):
- config_args = ["--prefix=" + prefix,
- "--enable-shared",
- "--enable-static"]
+ def configure_args(self):
+ config_args = ['--enable-shared', '--enable-static']
- if '+szip' in spec:
- config_args.append('--with-szlib=' + spec['szip'].prefix)
+ if '+szip' in self.spec:
+ config_args.append('--with-szlib=' + self.spec['szip'].prefix)
else:
config_args.append('--without-szlib')
- if '+hdf5' in spec:
- config_args.append('--with-hdf5=' + spec['hdf5'].prefix)
+ if '+hdf5' in self.spec:
+ config_args.append('--with-hdf5=' + self.spec['hdf5'].prefix)
else:
config_args.append('--without-hdf5')
- if '+netcdf' in spec:
- config_args.append('--with-netcdf=' + spec['netcdf'].prefix)
+ if '+netcdf' in self.spec:
+ config_args.append('--with-netcdf=' + self.spec['netcdf'].prefix)
else:
config_args.append('--without-netcdf')
- if '+udunits2' in spec:
- config_args.append('--with-udunits2=' + spec['udunits2'].prefix)
+ if '+udunits2' in self.spec:
+ config_args.append('--with-udunits2=' +
+ self.spec['udunits2'].prefix)
else:
config_args.append('--without-udunits2')
- if '+grib' in spec:
- config_args.append('--with-grib_api=' + spec['grib-api'].prefix)
+ if '+grib' in self.spec:
+ config_args.append('--with-grib_api=' +
+ self.spec['grib-api'].prefix)
else:
config_args.append('--without-grib_api')
- if '+libxml2' in spec:
- config_args.append('--with-libxml2=' + spec['libxml2'].prefix)
+ if '+libxml2' in self.spec:
+ config_args.append('--with-libxml2=' + self.spec['libxml2'].prefix)
else:
config_args.append('--without-libxml2')
- if '+proj' in spec:
- config_args.append('--with-proj=' + spec['proj'].prefix)
+ if '+proj' in self.spec:
+ config_args.append('--with-proj=' + self.spec['proj'].prefix)
else:
config_args.append('--without-proj')
- if '+curl' in spec:
- config_args.append('--with-curl=' + spec['curl'].prefix)
+ if '+curl' in self.spec:
+ config_args.append('--with-curl=' + self.spec['curl'].prefix)
else:
config_args.append('--without-curl')
- if '+fftw' in spec:
+ if '+fftw' in self.spec:
config_args.append('--with-fftw3')
else:
config_args.append('--without-fftw3')
- if '+magics' in spec:
- config_args.append('--with-magics=' + spec['magics'].prefix)
+ if '+magics' in self.spec:
+ config_args.append('--with-magics=' + self.spec['magics'].prefix)
else:
config_args.append('--without-magics')
- configure(*config_args)
+ if '+openmp' in self.spec:
+ config_args.append('--enable-openmp')
+ else:
+ config_args.append('--disable-openmp')
- make()
- make('install')
+ return config_args
diff --git a/var/spack/repos/builtin/packages/cereal/package.py b/var/spack/repos/builtin/packages/cereal/package.py
index 22da01e789..fc7aba4955 100644
--- a/var/spack/repos/builtin/packages/cereal/package.py
+++ b/var/spack/repos/builtin/packages/cereal/package.py
@@ -23,11 +23,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-import shutil
-class Cereal(Package):
+class Cereal(CMakePackage):
"""cereal is a header-only C++11 serialization library. cereal takes
arbitrary data types and reversibly turns them into different
representations, such as compact binary encodings, XML, or
@@ -54,25 +52,18 @@ class Cereal(Package):
depends_on('cmake@2.6.2:', type='build')
- def install(self, spec, prefix):
+ def patch(self):
# Don't use -Werror
filter_file(r'-Werror', '', 'CMakeLists.txt')
- # configure
+ def cmake_args(self):
# Boost is only used for self-tests, which we are not running (yet?)
- cmake('.',
- '-DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE',
- '-DSKIP_PORTABILITY_TEST=TRUE',
- *std_cmake_args)
-
- # Build
- make()
+ return [
+ '-DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE',
+ '-DSKIP_PORTABILITY_TEST=TRUE',
+ ]
- # Install
- shutil.rmtree(join_path(prefix, 'doc'), ignore_errors=True)
- shutil.rmtree(join_path(prefix, 'include'), ignore_errors=True)
- shutil.rmtree(join_path(prefix, 'lib'), ignore_errors=True)
- shutil.copytree('doc', join_path(prefix, 'doc'), symlinks=True)
- shutil.copytree('include', join_path(prefix, 'include'), symlinks=True)
- # Create empty directory to avoid linker warnings later
- os.mkdir(join_path(prefix, 'lib'))
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ install_tree('doc', prefix.doc)
+ install_tree('include', prefix.include)
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index 235d02ccde..381eb493e5 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Cgal(Package):
+class Cgal(CMakePackage):
"""The Computational Geometry Algorithms Library (CGAL) is a C++ library
that aims to provide easy access to efficient and reliable algorithms in
computational geometry. CGAL is used in various areas needing geometric
@@ -42,8 +42,9 @@ class Cgal(Package):
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
# ---- See "7 CGAL Libraries" at:
# http://doc.cgal.org/latest/Manual/installation.html
@@ -58,6 +59,8 @@ class Cgal(Package):
variant('demos', default=False,
description='Build CGAL demos')
+ depends_on('cmake@2.8.11:', type='build')
+
# Essential Third Party Libraries
depends_on('boost+thread+system')
depends_on('gmp')
@@ -82,18 +85,12 @@ class Cgal(Package):
# depends_on('esbtl')
# depends_on('intel-tbb')
- # Build dependencies
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
+ def cmake_args(self):
# Installation instructions:
# http://doc.cgal.org/latest/Manual/installation.html
+ spec = self.spec
- options = std_cmake_args + [
- # CGAL supports only Release and Debug build type. Any
- # other build type will raise an error at configure time
- '-DCMAKE_BUILD_TYPE:STRING=%s' %
- ('Debug' if '+debug' in spec else 'Release'),
+ return [
'-DBUILD_SHARED_LIBS:BOOL=%s' %
('ON' if '+shared' in spec else 'OFF'),
'-DWITH_CGAL_Core:BOOL=%s' %
@@ -101,9 +98,5 @@ class Cgal(Package):
'-DWITH_CGAL_ImageIO:BOOL=%s' %
('YES' if '+imageio' in spec else 'NO'),
'-DWITH_CGAL_Qt5:BOOL=%s' %
- ('YES' if '+demos' in spec else 'NO')]
-
- with working_dir('spack-build', create=True):
- cmake('..', *options)
- make()
- make('install')
+ ('YES' if '+demos' in spec else 'NO'),
+ ]
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
index 24f932a8d0..e3a4f89ff6 100644
--- a/var/spack/repos/builtin/packages/cgns/package.py
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Cgns(Package):
+class Cgns(CMakePackage):
"""The CFD General Notation System (CGNS) provides a general, portable,
and extensible standard for the storage and retrieval of computational
fluid dynamics (CFD) analysis data."""
@@ -37,11 +37,12 @@ class Cgns(Package):
variant('hdf5', default=True, description='Enable HDF5 interface')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8:', type='build')
depends_on('hdf5', when='+hdf5')
- def install(self, spec, prefix):
- cmake_args = std_cmake_args[:]
+ def cmake_args(self):
+ spec = self.spec
+ cmake_args = []
if self.compiler.f77 and self.compiler.fc:
cmake_args.append('-DCGNS_ENABLE_FORTRAN=ON')
@@ -66,8 +67,4 @@ class Cgns(Package):
else:
cmake_args.append('-DCGNS_ENABLE_HDF5=OFF')
- with working_dir('spack-build', create=True):
- cmake('..', *cmake_args)
-
- make()
- make('install')
+ return cmake_args
diff --git a/var/spack/repos/builtin/packages/check/package.py b/var/spack/repos/builtin/packages/check/package.py
new file mode 100644
index 0000000000..53b03d28cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/check/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Check(AutotoolsPackage):
+ """Check is a unit testing framework for C. It features a simple interface
+ for defining unit tests, putting little in the way of the developer. Tests
+ are run in a separate address space, so both assertion failures and code
+ errors that cause segmentation faults or other signals can be caught. Test
+ results are reportable in the following: Subunit, TAP, XML, and a generic
+ logging format."""
+
+ homepage = "https://libcheck.github.io/check/index.html"
+ url = "https://downloads.sourceforge.net/project/check/check/0.10.0/check-0.10.0.tar.gz"
+
+ version('0.10.0', '53c5e5c77d090e103a17f3ed7fd7d8b8')
diff --git a/var/spack/repos/builtin/packages/chlorop/chlorop.patch b/var/spack/repos/builtin/packages/chlorop/chlorop.patch
new file mode 100644
index 0000000000..6d49dc53d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chlorop/chlorop.patch
@@ -0,0 +1,36 @@
+--- a/chlorop 2006-03-20 06:24:22.000000000 -0600
++++ b/chlorop 2017-07-24 10:51:27.000366706 -0500
+@@ -9,8 +9,6 @@
+ STARTDIR=`pwd`
+
+ ### GENERAL SETTINGS, CUSTOMIZE +++++++++++++++++++++++++++++++++++++++++++++++
+-# Substitute your chosen location for ChloroP software:
+-CHLOROP=/usr/cbs/packages/chlorop/currdist/chlorop-1.1
+
+ # Substitute paste:
+ PASTE=paste
+@@ -43,7 +41,7 @@
+ # other settings:
+ #CHLOROTMPNAME=res`date '+%y%m%d%H%M%S'`.$$
+ CHLOROTMPNAME=res.$$
+-CHLOROTMP=tmp/$CHLOROTMPNAME
++CHLOROTMP=$CHLOROTMP/$CHLOROTMPNAME
+ SCRIPTS=bin
+ SYN=syn
+ ETC=etc
+@@ -80,12 +78,12 @@
+ ### get the infile ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ INFILE=$*
+
+-mkdir $CHLOROP/$CHLOROTMP || { echo Cannot create temporary directory; exit 1; }
++mkdir -p $CHLOROTMP || { echo Cannot create temporary directory; exit 1; }
+
+ ### prepare input file in HOW and fasta format ++++++++++++++++++++++++++++++++
+ $AWK -f $CHLOROP/$SCRIPTS/in2how+fasta.awk -v informat=$INFORMAT \
+- -v howout=$CHLOROP/$CHLOROTMP/infile.how \
+- -v fastaout=$CHLOROP/$CHLOROTMP/infile.fasta $INFILE
++ -v howout=$CHLOROTMP/infile.how \
++ -v fastaout=$CHLOROTMP/infile.fasta $INFILE
+ INFILE=$CHLOROTMP/infile.how
+
+ ### change to working directory +++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/var/spack/repos/builtin/packages/chlorop/package.py b/var/spack/repos/builtin/packages/chlorop/package.py
new file mode 100644
index 0000000000..bd5ceda4f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/chlorop/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import distutils.dir_util
+import os
+
+
+class Chlorop(Package):
+ """Chlorop predicts the presence of chloroplast transit peptides
+ in protein sequences and the location of potential cTP cleavage
+ sites. You will need to obtain the tarball by visiting the
+ URL and completing the form. You can then either run spack
+ install with the tarball in the directory, or add it to a
+ mirror. You will need to set the CHLOROTMP environment variable
+ to the full path of the directory you want chlorop to use as
+ a temporary directory."""
+
+ homepage = "http://www.cbs.dtu.dk/services/ChloroP/"
+ url = "file://{0}/chlorop-1.1.Linux.tar.gz".format(os.getcwd())
+
+ version('1.1', 'eb0ba6b28dfa735163ad5fc70e30139e46e33f6ae27f87666a7167a4ac5f71d9')
+
+ depends_on('awk', type='run')
+ patch('chlorop.patch')
+
+ def install(self, spec, prefix):
+ os.rename('chlorop', 'bin/chlorop')
+ distutils.dir_util.copy_tree(".", prefix)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('CHLOROP', self.prefix)
diff --git a/var/spack/repos/builtin/packages/clamr/package.py b/var/spack/repos/builtin/packages/clamr/package.py
new file mode 100644
index 0000000000..d1eee12d1c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clamr/package.py
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Clamr(CMakePackage):
+ """The CLAMR code is a cell-based adaptive mesh refinement (AMR)
+ mini-app developed as a testbed for hybrid algorithm development
+ using MPI and OpenCL GPU code.
+ """
+
+ homepage = "https://github.com/lanl/CLAMR"
+ url = "https://github.com/lanl/CLAMR.git"
+ tags = ['proxy-app']
+
+ version('master', git='https://github.com/lanl/CLAMR.git')
+
+ variant(
+ 'graphics', default='opengl',
+ values=('opengl', 'mpe', 'none'),
+ description='Build with specified graphics support')
+ variant(
+ 'precision', default='mixed',
+ values=('single', 'mixed', 'full'),
+ description='single, mixed, or full double precision values')
+
+ depends_on('mpi')
+ depends_on('mpe', when='graphics=mpe')
+
+ def cmake_args(self):
+ spec = self.spec
+ cmake_args = []
+ if 'graphics=none' in spec:
+ cmake_args.append('-DGRAPHICS_TYPE=None')
+ elif 'graphics=mpe' in spec:
+ cmake_args.append('-DGRAPHICS_TYPE=MPE')
+ else:
+ cmake_args.append('-DGRAPHICS_TYPE=OpenGL')
+
+ if 'precision=full' in spec:
+ cmake_args.append('-DPRECISION_TYPE=full_precision')
+ elif 'precision=single' in spec:
+ cmake_args.append('-DPRECISION_TYPE=minimum_precision')
+ else:
+ cmake_args.append('-DPRECISION_TYPE=mixed_precision')
+
+ # if MIC, then -DMIC_NATIVE=yes
+ return cmake_args
+
+ def install(self, spec, prefix):
+ install('README', prefix)
+ install('LICENSE', prefix)
+ install_tree('docs', join_path(prefix, 'docs'))
+ install_tree('tests', join_path(prefix, 'tests'))
+ with working_dir(self.build_directory):
+ make('install')
diff --git a/var/spack/repos/builtin/packages/cleaveland4/package.py b/var/spack/repos/builtin/packages/cleaveland4/package.py
new file mode 100644
index 0000000000..505f800ac7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cleaveland4/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cleaveland4(Package):
+ """CleaveLand4: Analysis of degradome data to find sliced miRNA and siRNA
+ targets"""
+
+ homepage = "https://github.com/MikeAxtell/CleaveLand4"
+ url = "https://github.com/MikeAxtell/CleaveLand4/archive/v4.4.tar.gz"
+
+ version('4.4', 'cf62a1de715a612fc8bd5a62364e69db')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('perl-math-cdf', type=('build', 'run'))
+ depends_on('bowtie')
+ depends_on('viennarna')
+ depends_on('r', type=('build', 'run'))
+ depends_on('samtools')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('CleaveLand4.pl', prefix.bin)
+ with working_dir('GSTAr_v1-0'):
+ install('GSTAr.pl', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cleverleaf/package.py b/var/spack/repos/builtin/packages/cleverleaf/package.py
index 6ce9f51111..62907533ac 100644
--- a/var/spack/repos/builtin/packages/cleverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cleverleaf/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Cleverleaf(Package):
+class Cleverleaf(CMakePackage):
"""CleverLeaf is a hydrodynamics mini-app that extends CloverLeaf with
Adaptive Mesh Refinement using the SAMRAI toolkit from Lawrence
Livermore National Laboratory. The primary goal of CleverLeaf is
@@ -40,12 +40,7 @@ class Cleverleaf(Package):
version('develop', git='https://github.com/UK-MAC/CleverLeaf_ref.git',
branch='develop')
- depends_on("samrai@3.8.0:")
- depends_on("hdf5+mpi")
- depends_on("boost")
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake(*std_cmake_args)
- make()
- make("install")
+ depends_on('samrai@3.8.0:')
+ depends_on('hdf5+mpi')
+ depends_on('boost')
+ depends_on('cmake@3.1:', type='build')
diff --git a/var/spack/repos/builtin/packages/clfft/package.py b/var/spack/repos/builtin/packages/clfft/package.py
new file mode 100644
index 0000000000..5a03a3b07f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/clfft/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Clfft(CMakePackage):
+ """a software library containing FFT functions written in OpenCL"""
+
+ homepage = "https://github.com/clMathLibraries/clFFT"
+ url = "https://github.com/clMathLibraries/clFFT/archive/v2.12.2.tar.gz"
+
+ version('2.12.2', '9104d85f9f2f3c58dd8efc0e4b06496f')
+
+ variant('client', default=True,
+ description='build client and callback client')
+
+ depends_on('opencl@1.2:')
+ depends_on('boost@1.33.0:', when='+client')
+
+ root_cmakelists_dir = 'src'
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DBUILD_CLIENT:BOOL={0}'.format((
+ 'ON' if '+client' in spec else 'OFF')),
+ '-DBUILD_CALLBACK_CLIENT:BOOL={0}'.format((
+ 'ON' if '+client' in spec else 'OFF'))
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py
index 4d8fd14f3b..2f4f5b1579 100644
--- a/var/spack/repos/builtin/packages/clhep/package.py
+++ b/var/spack/repos/builtin/packages/clhep/package.py
@@ -50,7 +50,6 @@ class Clhep(CMakePackage):
version('2.2.0.5', '1584e8ce6ebf395821aed377df315c7c')
version('2.2.0.4', '71d2c7c2e39d86a0262e555148de01c1')
- variant('debug', default=False, description="Switch to the debug version of CLHEP.")
variant('cxx11', default=True, description="Compile using c++11 dialect.")
variant('cxx14', default=False, description="Compile using c++14 dialect.")
@@ -63,27 +62,25 @@ class Clhep(CMakePackage):
'%s/%s/CLHEP/CMakeLists.txt'
% (self.stage.path, self.spec.version))
- root_cmakelists_dir = '../CLHEP'
-
- def build_type(self):
- spec = self.spec
-
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'MinSizeRel'
+ root_cmakelists_dir = 'CLHEP'
def cmake_args(self):
spec = self.spec
cmake_args = []
if '+cxx11' in spec:
- env['CXXFLAGS'] = self.compiler.cxx11_flag
+ if 'CXXFLAGS' in env and env['CXXFLAGS']:
+ env['CXXFLAGS'] += ' ' + self.compiler.cxx11_flag
+ else:
+ env['CXXFLAGS'] = self.compiler.cxx11_flag
cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
self.compiler.cxx11_flag)
if '+cxx14' in spec:
- env['CXXFLAGS'] = self.compiler.cxx14_flag
+ if 'CXXFLAGS' in env and env['CXXFLAGS']:
+ env['CXXFLAGS'] += ' ' + self.compiler.cxx14_flag
+ else:
+ env['CXXFLAGS'] = self.compiler.cxx14_flag
cmake_args.append('-DCLHEP_BUILD_CXXSTD=' +
self.compiler.cxx14_flag)
diff --git a/var/spack/repos/builtin/packages/cloverleaf/package.py b/var/spack/repos/builtin/packages/cloverleaf/package.py
new file mode 100644
index 0000000000..bc54ef61ea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cloverleaf/package.py
@@ -0,0 +1,110 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import glob
+
+from spack import *
+
+
+class Cloverleaf(MakefilePackage):
+ """Proxy Application. CloverLeaf is a miniapp that solves the
+ compressible Euler equations on a Cartesian grid,
+ using an explicit, second-order accurate method.
+ """
+
+ homepage = "http://uk-mac.github.io/CloverLeaf"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/CloverLeaf/CloverLeaf-1.1.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.1', '65652b30a64eb237ec844a6fdd4cd518')
+
+ variant('build', default='ref', description='Type of Parallelism Build',
+ values=('cuda', 'mpi_only', 'openacc_cray',
+ 'openmp_only', 'ref', 'serial'))
+
+ depends_on('mpi', when='build=cuda')
+ depends_on('mpi', when='build=mpi_only')
+ depends_on('mpi', when='build=openacc_cray')
+ depends_on('mpi', when='build=ref')
+ depends_on('cuda', when='build=cuda')
+
+ @property
+ def type_of_build(self):
+ build = 'ref'
+
+ if 'build=cuda' in self.spec:
+ build = 'CUDA'
+ elif 'build=mpi_only' in self.spec:
+ build = 'MPI'
+ elif 'build=openacc_cray' in self.spec:
+ build = 'OpenACC_CRAY'
+ elif 'build=openmp_only' in self.spec:
+ build = 'OpenMP'
+ elif 'build=serial' in self.spec:
+ build = 'Serial'
+
+ return build
+
+ @property
+ def build_targets(self):
+ targets = ['--directory=CloverLeaf_{0}'.format(self.type_of_build)]
+
+ if 'mpi' in self.spec:
+ targets.append('MPI_COMPILER={0}'.format(self.spec['mpi'].mpifc))
+ targets.append('C_MPI_COMPILER={0}'.format(self.spec['mpi'].mpicc))
+ else:
+ targets.append('MPI_COMPILER=f90')
+ targets.append('C_MPI_COMPILER=cc')
+
+ if '%gcc' in self.spec:
+ targets.append('COMPILER=GNU')
+ elif '%cce' in self.spec:
+ targets.append('COMPILER=CRAY')
+ elif '%intel' in self.spec:
+ targets.append('COMPILER=INTEL')
+ elif '%pgi' in self.spec:
+ targets.append('COMPILER=PGI')
+ elif '%xl' in self.spec:
+ targets.append('COMPILER=XLF')
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc.tests)
+
+ install('README.md', prefix.doc)
+ install('documentation.txt', prefix.doc)
+
+ install('CloverLeaf_{0}/clover_leaf'.format(self.type_of_build),
+ prefix.bin)
+ install('CloverLeaf_{0}/clover.in'.format(self.type_of_build),
+ prefix.bin)
+
+ for f in glob.glob(
+ 'CloverLeaf_{0}/*.in'.format(self.type_of_build)):
+ install(f, prefix.doc.tests)
diff --git a/var/spack/repos/builtin/packages/cloverleaf3d/package.py b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
new file mode 100644
index 0000000000..5616912255
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
@@ -0,0 +1,93 @@
+#############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import glob
+
+from spack import *
+
+
+class Cloverleaf3d(MakefilePackage):
+ """Proxy Application. CloverLeaf3D is 3D version of the
+ CloverLeaf mini-app. CloverLeaf is a mini-app that solves
+ the compressible Euler equations on a Cartesian grid,
+ using an explicit, second-order accurate method.
+ """
+
+ homepage = "http://uk-mac.github.io/CloverLeaf3D/"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/CloverLeaf3D/CloverLeaf3D-1.0.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.0', '2e86cadd7612487f9da4ddeb1a6de939')
+
+ variant('openacc', default=False, description='Enable OpenACC Support')
+
+ depends_on('mpi')
+
+ @property
+ def type_of_build(self):
+ build = 'ref'
+
+ if '+openacc' in self.spec:
+ build = 'OpenACC'
+
+ return build
+
+ @property
+ def build_targets(self):
+ targets = [
+ 'MPI_COMPILER={0}'.format(self.spec['mpi'].mpifc),
+ 'C_MPI_COMPILER={0}'.format(self.spec['mpi'].mpicc),
+ '--directory=CloverLeaf3D_{0}'.format(self.type_of_build)
+ ]
+
+ if '%gcc' in self.spec:
+ targets.append('COMPILER=GNU')
+ elif '%cce' in self.spec:
+ targets.append('COMPILER=CRAY')
+ elif '%intel' in self.spec:
+ targets.append('COMPILER=INTEL')
+ elif '%pgi' in self.spec:
+ targets.append('COMPILER=PGI')
+ elif '%xl' in self.spec:
+ targets.append('COMPILER=XLF')
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc.samples)
+
+ install('README.md', prefix.doc)
+
+ install('CloverLeaf3D_{0}/clover_leaf'.format(self.type_of_build),
+ prefix.bin)
+ install('CloverLeaf3D_{0}/clover.in'.format(self.type_of_build),
+ prefix.bin)
+
+ for f in glob.glob(
+ 'CloverLeaf3D_{0}/*.in'.format(self.type_of_build)):
+ install(f, prefix.doc.samples)
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index 05ba0e8131..079d214c4a 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -33,6 +33,8 @@ class Cmake(Package):
list_url = 'https://cmake.org/files/'
list_depth = 1
+ version('3.9.0', '180e23b4c9b55915d271b315297f6951')
+ version('3.8.2', 'b5dff61f6a7f1305271ab3f6ae261419')
version('3.8.1', 'e8ef820ddf7a650845252bca846696e7')
version('3.8.0', 'f28cba717ba38ad82a488daed8f45b5b')
version('3.7.2', '79bd7e65cd81ea3aa2619484ad6ff25a')
@@ -62,72 +64,74 @@ class Cmake(Package):
depends_on('bzip2', when='~ownlibs')
depends_on('xz', when='~ownlibs')
depends_on('libarchive', when='~ownlibs')
+ depends_on('libuv@1.0.0:', when='~ownlibs')
+ depends_on('rhash', when='@3.8.0:~ownlibs')
depends_on('qt', when='+qt')
depends_on('python@2.7.11:', when='+doc', type='build')
depends_on('py-sphinx', when='+doc', type='build')
- depends_on("openssl", when='+openssl')
- depends_on("openssl@:1.0.99", when='@:3.6.9+openssl')
+ depends_on('openssl', when='+openssl')
+ depends_on('openssl@:1.0.99', when='@:3.6.9+openssl')
depends_on('ncurses', when='+ncurses')
# Cannot build with Intel, should be fixed in 3.6.2
# https://gitlab.kitware.com/cmake/cmake/issues/16226
patch('intel-c-gnu11.patch', when='@3.6.0:3.6.1')
- def url_for_version(self, version):
- """Handle CMake's version-based custom URLs."""
- return 'https://cmake.org/files/v%s/cmake-%s.tar.gz' % (
- version.up_to(2), version)
+ conflicts('+qt', when='^qt@5.4.0') # qt-5.4.0 has broken CMake modules
- def validate(self, spec):
- """
- Checks if incompatible versions of qt were specified
+ phases = ['bootstrap', 'build', 'install']
- :param spec: spec of the package
- :raises RuntimeError: in case of inconsistencies
- """
-
- if '+qt' in spec and spec.satisfies('^qt@5.4.0'):
- msg = 'qt-5.4.0 has broken CMake modules.'
- raise RuntimeError(msg)
+ def url_for_version(self, version):
+ """Handle CMake's version-based custom URLs."""
+ url = 'https://cmake.org/files/v{0}/cmake-{1}.tar.gz'
+ return url.format(version.up_to(2), version)
- def install(self, spec, prefix):
- # Consistency check
- self.validate(spec)
-
- options = [
- '--prefix={0}'.format(prefix),
- '--parallel={0}'.format(make_jobs)]
- if spec.satisfies("@3.2:"):
- options.append(
- # jsoncpp requires CMake to build
- # use CMake-provided library to avoid circular dependency
- '--no-system-jsoncpp'
- )
+ def bootstrap_args(self):
+ spec = self.spec
+ args = [
+ '--prefix={0}'.format(self.prefix),
+ '--parallel={0}'.format(make_jobs)
+ ]
if '+ownlibs' in spec:
# Build and link to the CMake-provided third-party libraries
- options.append('--no-system-libs')
+ args.append('--no-system-libs')
else:
# Build and link to the Spack-installed third-party libraries
- options.append('--system-libs')
+ args.append('--system-libs')
+
+ if spec.satisfies('@3.2:'):
+ # jsoncpp requires CMake to build
+ # use CMake-provided library to avoid circular dependency
+ args.append('--no-system-jsoncpp')
if '+qt' in spec:
- options.append('--qt-gui')
+ args.append('--qt-gui')
else:
- options.append('--no-qt-gui')
+ args.append('--no-qt-gui')
if '+doc' in spec:
- options.append('--sphinx-html')
- options.append('--sphinx-man')
+ args.append('--sphinx-html')
+ args.append('--sphinx-man')
if '+openssl' in spec:
- options.append('--')
- options.append('-DCMAKE_USE_OPENSSL=ON')
+ args.append('--')
+ args.append('-DCMAKE_USE_OPENSSL=ON')
+
+ return args
+ def bootstrap(self, spec, prefix):
bootstrap = Executable('./bootstrap')
- bootstrap(*options)
+ bootstrap(*self.bootstrap_args())
+ def build(self, spec, prefix):
make()
- if self.run_tests:
- make('test') # some tests fail, takes forever
+
+ @run_after('build')
+ @on_package_attributes(run_tests=True)
+ def test(self):
+ # Some tests fail, takes forever
+ make('test')
+
+ def install(self, spec, prefix):
make('install')
diff --git a/var/spack/repos/builtin/packages/cmocka/package.py b/var/spack/repos/builtin/packages/cmocka/package.py
index b0d9414ac6..944295a036 100644
--- a/var/spack/repos/builtin/packages/cmocka/package.py
+++ b/var/spack/repos/builtin/packages/cmocka/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Cmocka(Package):
+class Cmocka(CMakePackage):
"""Unit-testing framework in pure C"""
homepage = "https://cmocka.org/"
url = "https://cmocka.org/files/1.1/cmocka-1.1.1.tar.xz"
@@ -33,13 +33,7 @@ class Cmocka(Package):
version('1.1.1', '6fbff4e42589566eda558db98b97623e')
version('1.1.0', '59c9aa5735d9387fb591925ec53523ec')
version('1.0.1', 'ed861e501a21a92b2af63e466df2015e')
- parallel = False
-
- depends_on('cmake', type='build')
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
+ depends_on('cmake@2.6.0:', type='build')
- make()
- make("install")
+ parallel = False
diff --git a/var/spack/repos/builtin/packages/cnmem/package.py b/var/spack/repos/builtin/packages/cnmem/package.py
index cdbd0c86d4..fc4df89e09 100644
--- a/var/spack/repos/builtin/packages/cnmem/package.py
+++ b/var/spack/repos/builtin/packages/cnmem/package.py
@@ -25,13 +25,10 @@
from spack import *
-class Cnmem(Package):
+class Cnmem(CMakePackage):
"""CNMem mempool for CUDA devices"""
homepage = "https://github.com/NVIDIA/cnmem"
version('git', git='https://github.com/NVIDIA/cnmem.git', branch="master")
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
- make()
- make('install')
+ depends_on('cmake@2.8.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/cnpy/package.py b/var/spack/repos/builtin/packages/cnpy/package.py
new file mode 100644
index 0000000000..b62df10c2e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cnpy/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cnpy(CMakePackage):
+ """cnpy: library to read/write .npy and .npz files in C/C++."""
+
+ homepage = "https://github.com/rogersce/cnpy"
+ url = "https://github.com/rogersce/cnpy"
+
+ version('master', git='https://github.com/rogersce/cnpy.git', branch="master")
diff --git a/var/spack/repos/builtin/packages/cns-nospec/package.py b/var/spack/repos/builtin/packages/cns-nospec/package.py
new file mode 100644
index 0000000000..30b760ff80
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cns-nospec/package.py
@@ -0,0 +1,109 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class CnsNospec(MakefilePackage):
+ """A simple, explicit, stencil-based test code for integrating
+ the compressible Navier-Stokes equations. The code uses
+ 8th order finite differences in space and a 3rd order,
+ low-storage TVD RK algorithm in time."""
+
+ homepage = "https://ccse.lbl.gov/ExaCT/index.html"
+ url = "https://ccse.lbl.gov/ExaCT/CNS_Nospec.tgz"
+ tags = ['proxy-app']
+
+ version('master', '14ff5be62539d829b30b17281688ee3f')
+
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('debug', default=False, description='Build with debugging')
+ variant('omp', default=False, description='Build with OpenMP support')
+ variant('prof', default=False, description='Build with profiling')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('gmake', type='build')
+
+ build_directory = 'MiniApps/CNS_NoSpec'
+
+ def edit(self, spec, prefix):
+ def_file = FileFilter('Tools/F_mk/GMakedefs.mak')
+ def_file.filter('tdir = t/.*', 'tdir := t/$(suf)')
+ def_file.filter('hdir = t/.*', 'hdir := t/html')
+ def_file.filter('include $(BOXLIB_HOME)/Tools/F_mk/GMakeMPI.mak', '#')
+
+ if '+mpi' in spec:
+ def_file.filter('FC.*:=.*', 'FC = {0}'.format(spec['mpi'].mpifc))
+ def_file.filter('F90.*:=.*', 'F90 = {0}'.format(spec['mpi'].mpifc))
+ def_file.filter(
+ 'mpi_include_dir =.*',
+ 'mpi_include_dir = {0}'.format(spec['mpi'].prefix.include))
+ def_file.filter(
+ 'mpi_lib_dir =.*',
+ 'mpi_lib_dir = {0}'.format(spec['mpi'].prefix.lib))
+
+ with working_dir(self.build_directory):
+ makefile = FileFilter('GNUmakefile')
+ if '+mpi' in spec:
+ makefile.filter('MPI .*', 'MPI := t')
+ if '+debug' in spec:
+ makefile.filter('NDEBUG.*', '#')
+ if '+omp' in spec:
+ makefile.filter('OMP.*', 'OMP := t')
+ if '+prof' in spec:
+ makefile.filter('PROF.*', 'PROF := t')
+
+ if self.compiler.name == 'gcc':
+ makefile.filter('COMP .*', 'COMP = gfortran')
+ if self.compiler.name == 'intel':
+ makefile.filter('COMP .*', 'COMP = Intel')
+ if self.compiler.name == 'pgi':
+ makefile.filter('COMP .*', 'COMP = PGI')
+ if self.compiler.name == 'xl':
+ makefile.filter('COMP .*', 'COMP = IBM')
+ if self.compiler.name == 'cce':
+ makefile.filter('COMP .*', 'COMP = Cray')
+
+ @property
+ def build_targets(self):
+ spec = self.spec
+ if '+mpi' in spec:
+ return ['CC = {0}'.format(spec['mpi'].mpicc),
+ 'CXX = {0}'.format(spec['mpi'].mpicxx)]
+ else:
+ return []
+
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory):
+ gmake()
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ files = glob.glob(join_path(self.build_directory, '*.exe'))
+ for f in files:
+ install(f, prefix.bin)
+ install('README.txt', prefix)
+ install('license.txt', prefix)
+ install(join_path(self.build_directory, 'README'), prefix)
diff --git a/var/spack/repos/builtin/packages/cntk/lock-file.patch b/var/spack/repos/builtin/packages/cntk/lock-file.patch
new file mode 100644
index 0000000000..0e0a7811e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cntk/lock-file.patch
@@ -0,0 +1,20 @@
+diff --git a/Source/Common/CrossProcessMutex.h b/Source/Common/CrossProcessMutex.h
+index 2f3ce70..f0fcd42 100644
+--- a/Source/Common/CrossProcessMutex.h
++++ b/Source/Common/CrossProcessMutex.h
+@@ -127,9 +127,13 @@ class CrossProcessMutex
+
+ public:
+ CrossProcessMutex(const std::string& name)
+- : m_fd(-1),
+- m_fileName("/var/lock/" + name)
++ : m_fd(-1)
+ {
++ const char * const envLockDir = getenv("CNTK_LOCK_DIR");
++ if (envLockDir != NULL)
++ m_fileName = envLockDir + ('/' + name);
++ else
++ m_fileName = "/var/lock/" + name;
+ }
+
+ // Acquires the mutex. If 'wait' is true and mutex is acquired by someone else then
diff --git a/var/spack/repos/builtin/packages/cntk/package.py b/var/spack/repos/builtin/packages/cntk/package.py
index d58165379c..dfc515730b 100644
--- a/var/spack/repos/builtin/packages/cntk/package.py
+++ b/var/spack/repos/builtin/packages/cntk/package.py
@@ -64,6 +64,8 @@ class Cntk(Package):
patch('build.patch')
# Patch to fix BLAS inconsistency between CNTK and KaldiReader
patch('kaldireader-openblas.patch')
+ # Patch to change behaviour of lock file - https://github.com/Microsoft/CNTK/issues/62
+ patch('lock-file.patch')
def install(self, spec, prefix):
args = []
diff --git a/var/spack/repos/builtin/packages/codar-cheetah/package.py b/var/spack/repos/builtin/packages/codar-cheetah/package.py
new file mode 100644
index 0000000000..b70c929ca8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/codar-cheetah/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+
+
+class CodarCheetah(Package):
+ """CODAR Cheetah:
+ The CODAR Experiment Harness for Exascale science applications.
+ """
+
+ homepage = "https://github.com/CODARcode/cheetah"
+ url = "https://github.com/CODARcode/cheetah/archive/v0.1.tar.gz"
+
+ version('0.1', '6918021f74fa7a2f1de26c0bb31a63ef')
+ version('develop', git='https://github.com/CODARcode/cheetah.git',
+ branch='master')
+
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('savanna')
+
+ def install(self, spec, prefix):
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/cohmm/package.py b/var/spack/repos/builtin/packages/cohmm/package.py
new file mode 100644
index 0000000000..2e033c4594
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cohmm/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class Cohmm(MakefilePackage):
+ """An anticipated important use-case for next-generation supercomputing
+ is multiscale modeling, in which continuum equations for large-scale
+ material deformation are augmented with high-fidelity, fine-scale
+ simulations that provide constitutive data on demand.
+ """
+ tags = ['proxy-app']
+
+ homepage = "http://www.exmatex.org/cohmm.html"
+ url = "https://github.com/exmatex/CoHMM/archive/sad.tar.gz"
+
+ version('develop', git='https://github.com/exmatex/CoHMM.git',
+ branch='sad')
+
+ variant('openmp', default=True, description='Build with OpenMP Support')
+ variant('gnuplot', default=True, description='Enable gnu plot Support')
+ depends_on('gnuplot', when='+gnuplot')
+
+ def edit(self, spec, prefix):
+ if '+openmp' in spec:
+ filter_file('DO_OPENMP = O.*', 'DO_OPENMP = ON', 'Makefile')
+ if '+gnuplot' in spec:
+ filter_file('DO_GNUPLOT = O.*', 'DO_GNUPLOT = ON', 'Makefile')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.input)
+ mkdirp(prefix.doc)
+ install('cohmm', prefix.bin)
+ install('README.md', prefix.doc)
+ install('LICENSE.md', prefix.doc)
+ for files in glob.glob('input/*.*'):
+ install(files, prefix.input) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/comd/package.py b/var/spack/repos/builtin/packages/comd/package.py
new file mode 100644
index 0000000000..4a4c1133c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/comd/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Comd(MakefilePackage):
+ """CoMD is a reference implementation of classical molecular dynamics
+ algorithms and workloads as used in materials science. It is created and
+ maintained by The Exascale Co-Design Center for Materials in Extreme
+ Environments (ExMatEx). The code is intended to serve as a vehicle for
+ co-design by allowing others to extend and/or reimplement it as needed to
+ test performance of new architectures, programming models, etc. New
+ versions of CoMD will be released to incorporate the lessons learned from
+ the co-design process."""
+
+ homepage = "http://exmatex.github.io/CoMD/"
+
+ version('master', git='https://github.com/exmatex/CoMD.git',
+ branch='master')
+
+ depends_on('mpi')
+
+ build_directory = 'src-mpi'
+
+ def edit(self, spec, prefix):
+ with working_dir('src-mpi'):
+ filter_file(r'^CC\s*=.*', 'CC = %s' % self.spec['mpi'].mpicc,
+ 'Makefile.vanilla')
+ install('Makefile.vanilla', 'Makefile')
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/corset/package.py b/var/spack/repos/builtin/packages/corset/package.py
new file mode 100644
index 0000000000..b09a062b35
--- /dev/null
+++ b/var/spack/repos/builtin/packages/corset/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Corset(Package):
+ """Corset is a command-line software program to go from a de novo
+ transcriptome assembly to gene-level counts."""
+
+ homepage = "https://github.com/Oshlack/Corset/wiki"
+ url = "https://github.com/Oshlack/Corset/releases/download/version-1.06/corset-1.06-linux64.tar.gz"
+
+ version('1.06', '0a6d0bb1f2d1bdbcb8b47656a7f12f23')
+
+ def url_for_version(self, version):
+ url = 'https://github.com/Oshlack/Corset/releases/download/version-{0}/corset-{0}-linux64.tar.gz'
+ return url.format(version)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('corset', prefix.bin)
+ install('corset_fasta_ID_changer', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cosp2/package.py b/var/spack/repos/builtin/packages/cosp2/package.py
new file mode 100644
index 0000000000..3ed89d5a19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cosp2/package.py
@@ -0,0 +1,74 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import shutil
+
+
+class Cosp2(MakefilePackage):
+ """Proxy Application. CoSP2 represents a sparse linear algebra
+ parallel algorithm for calculating the density matrix in electronic
+ tructure theory. The algorithm is based on a recursive second-order
+ Fermi-Operator expansion method (SP2) and is tailored for density
+ functional based tight-binding calculations of non-metallic systems.
+ """
+
+ tags = ['proxy-app']
+
+ homepage = "http://www.exmatex.org/cosp2.html"
+ url = "https://github.com/exmatex/CoSP2/archive/master.tar.gz"
+
+ version('master', git='https://github.com/exmatex/CoSP2.git',
+ description='master')
+
+ variant('double', default=True,
+ description='Build with double precision.')
+ variant('mpi', default=True, description='Build with MPI Support')
+
+ depends_on('mpi', when='+mpi')
+
+ build_directory = 'src-mpi'
+
+ def edit(self, spec, prefix):
+ cc = spack_cc
+
+ if '+mpi' in spec:
+ cc = spec['mpi'].mpicc
+
+ with working_dir(self.build_directory):
+ makefile = FileFilter('Makefile.vanilla')
+ makefile.filter(r'^CC\s*=.*', 'CC = {0}'.format(cc))
+
+ if '+double' in spec:
+ filter_file('DOUBLE_PRECISION = O.*', 'DOUBLE_PRECISION = OFF',
+ 'Makefile.vanilla')
+ shutil.copy('Makefile.vanilla', 'Makefile')
+
+ def install(self, spec, prefix):
+ install_tree('bin/', prefix.bin)
+ install_tree('examples/', prefix.examples)
+ install_tree('doc/', prefix.doc)
+ install('src-mpi/Doxyfile', prefix.doc)
+ install('README.md', prefix.doc)
+ install('LICENSE.md', prefix.doc) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py
index 6cb378a2f3..b5d96ff480 100644
--- a/var/spack/repos/builtin/packages/cpprestsdk/package.py
+++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py
@@ -38,4 +38,4 @@ class Cpprestsdk(CMakePackage):
depends_on('boost')
- root_cmakelists_dir = '../Release'
+ root_cmakelists_dir = 'Release'
diff --git a/var/spack/repos/builtin/packages/cppzmq/package.py b/var/spack/repos/builtin/packages/cppzmq/package.py
new file mode 100644
index 0000000000..3a51038b50
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cppzmq/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cppzmq(CMakePackage):
+ """C++ binding for 0MQ"""
+
+ homepage = "http://www.zeromq.org"
+ url = "https://github.com/zeromq/cppzmq/archive/v4.2.2.tar.gz"
+
+ version('develop', branch='master',
+ git='https://github.com/zeromq/cppzmq.git')
+
+ version('4.2.2', 'bd809b47296e77fe9f192bd9dafd5cc3')
+
+ depends_on('cmake@3.0.0:', type='build')
+ depends_on('zeromq@4.2.2')
diff --git a/var/spack/repos/builtin/packages/cram/package.py b/var/spack/repos/builtin/packages/cram/package.py
index f0c33ae2c6..25427292cb 100644
--- a/var/spack/repos/builtin/packages/cram/package.py
+++ b/var/spack/repos/builtin/packages/cram/package.py
@@ -25,18 +25,13 @@
from spack import *
-class Cram(Package):
+class Cram(CMakePackage):
"""Cram runs many small MPI jobs inside one large MPI job."""
homepage = "https://github.com/llnl/cram"
url = "http://github.com/llnl/cram/archive/v1.0.1.tar.gz"
version('1.0.1', 'c73711e945cf5dc603e44395f6647f5e')
- extends('python')
- depends_on("mpi")
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake(".", *std_cmake_args)
- make()
- make("install")
+ extends('python@2.7:')
+ depends_on('mpi')
+ depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/csdp/package.py b/var/spack/repos/builtin/packages/csdp/package.py
new file mode 100644
index 0000000000..e459df0054
--- /dev/null
+++ b/var/spack/repos/builtin/packages/csdp/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Csdp(MakefilePackage):
+ """CSDP is a library of routines that implements a predictor corrector
+ variant of the semidefinite programming algorithm of Helmberg, Rendl,
+ Vanderbei, and Wolkowicz"""
+
+ homepage = "https://projects.coin-or.org/Csdp"
+ url = "http://www.coin-or.org/download/source/Csdp/Csdp-6.1.1.tgz"
+
+ version('6.1.1', '8388e8988e337bb5c1291068828de801')
+
+ depends_on('atlas')
+
+ def edit(self, spec, prefix):
+ mkdirp(prefix.bin)
+ makefile = FileFilter('Makefile')
+ makefile.filter('/usr/local/bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py
index b868410587..7460bc799b 100644
--- a/var/spack/repos/builtin/packages/cub/package.py
+++ b/var/spack/repos/builtin/packages/cub/package.py
@@ -32,6 +32,7 @@ class Cub(Package):
homepage = "https://nvlabs.github.com/cub"
url = "https://github.com/NVlabs/cub/archive/1.6.4.zip"
+ version('1.7.1', '028ac43922a4538596338ad5aef0f0c4')
version('1.6.4', '924fc12c0efb17264c3ad2d611ed1c51')
version('1.4.1', '74a36eb84e5b5f0bf54aa3df39f660b2')
diff --git a/var/spack/repos/builtin/packages/cube/package.py b/var/spack/repos/builtin/packages/cube/package.py
index f1533a9bd3..841f737e41 100644
--- a/var/spack/repos/builtin/packages/cube/package.py
+++ b/var/spack/repos/builtin/packages/cube/package.py
@@ -36,9 +36,6 @@ class Cube(AutotoolsPackage):
homepage = "http://www.scalasca.org/software/cube-4.x/download.html"
url = "http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.3.tar.gz"
- # Some versions fail with parallel builds/installs
- parallel = False
-
version('4.3.5', 'e5dce986e3c6381ea3a5fcb66c553adc')
version('4.3.4', '50f73060f55311cb12c5b3cb354d59fa')
version('4.3.3', '07e109248ed8ffc7bdcce614264a2909')
@@ -64,3 +61,6 @@ class Cube(AutotoolsPackage):
configure_args.append('--without-gui')
return configure_args
+
+ def install(self, spec, prefix):
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/cufflinks/package.py b/var/spack/repos/builtin/packages/cufflinks/package.py
new file mode 100644
index 0000000000..c0d331439b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cufflinks/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cufflinks(Package):
+ """Cufflinks assembles transcripts, estimates their abundances, and tests
+ for differential expression and regulation in RNA-Seq samples."""
+
+ homepage = "http://cole-trapnell-lab.github.io/cufflinks"
+ url = "http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz"
+
+ version('2.2.1', '7e693d182dcfda8aeef8523219ea9ea7')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('cuffcompare', prefix.bin)
+ install('cuffdiff', prefix.bin)
+ install('cufflinks', prefix.bin)
+ install('cuffmerge', prefix.bin)
+ install('cuffnorm', prefix.bin)
+ install('cuffquant', prefix.bin)
+ install('gffread', prefix.bin)
+ install('gtf_to_sam', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cups/package.py b/var/spack/repos/builtin/packages/cups/package.py
new file mode 100644
index 0000000000..311e779b8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cups/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Cups(AutotoolsPackage):
+ """CUPS is the standards-based, open source printing system developed by
+ Apple Inc. for macOS and other UNIX-like operating systems. CUPS uses the
+ Internet Printing Protocol (IPP) to support printing to local and network
+ printers. This provides the core CUPS libraries, not a complete CUPS
+ install."""
+
+ homepage = "https://www.cups.org/"
+ url = "https://github.com/apple/cups/releases/download/v2.2.3/cups-2.2.3-source.tar.gz"
+
+ version('2.2.3', '006a8156680a516e43c59034e31df8bf')
+
+ depends_on('gnutls')
+
+ def configure_args(self):
+ args = ['--enable-gnutls', '--with-components=core']
+ return args
diff --git a/var/spack/repos/builtin/packages/dakota/package.py b/var/spack/repos/builtin/packages/dakota/package.py
index fc8f478bf3..ebc303a193 100644
--- a/var/spack/repos/builtin/packages/dakota/package.py
+++ b/var/spack/repos/builtin/packages/dakota/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Dakota(Package):
+class Dakota(CMakePackage):
"""The Dakota toolkit provides a flexible, extensible interface between
analysis codes and iterative systems analysis methods. Dakota
contains algorithms for:
@@ -49,8 +49,6 @@ class Dakota(Package):
version('6.3', '05a58d209fae604af234c894c3f73f6d')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('shared', default=True,
description='Enables the build of shared libraries')
variant('mpi', default=True, description='Activates MPI support')
@@ -61,28 +59,20 @@ class Dakota(Package):
depends_on('python')
depends_on('boost')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8.9:', type='build')
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
+ def cmake_args(self):
+ spec = self.spec
- options.extend([
- '-DCMAKE_BUILD_TYPE:STRING=%s' % (
- 'Debug' if '+debug' in spec else 'Release'),
+ args = [
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
- 'ON' if '+shared' in spec else 'OFF')])
+ 'ON' if '+shared' in spec else 'OFF'),
+ ]
if '+mpi' in spec:
- options.extend([
+ args.extend([
'-DDAKOTA_HAVE_MPI:BOOL=ON',
- '-DMPI_CXX_COMPILER:STRING=%s' % join_path(
- spec['mpi'].prefix.bin, 'mpicxx')])
+ '-DMPI_CXX_COMPILER:STRING=%s' % join_path(spec['mpi'].mpicxx),
+ ])
- build_directory = join_path(self.stage.path, 'spack-build')
- source_directory = self.stage.source_path
-
- with working_dir(build_directory, create=True):
- cmake(source_directory, *options)
- make()
- make("install")
+ return args
diff --git a/var/spack/repos/builtin/packages/daligner/package.py b/var/spack/repos/builtin/packages/daligner/package.py
new file mode 100644
index 0000000000..e6be60264c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/daligner/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Daligner(MakefilePackage):
+ """Daligner: The Dazzler "Overlap" Module."""
+
+ homepage = "https://github.com/thegenemyers/DALIGNER"
+ url = "https://github.com/thegenemyers/DALIGNER/archive/V1.0.tar.gz"
+
+ version('1.0', 'f1b4c396ae062caa4c0e6423ba0725ef')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': True}
+ makefile.filter('cp $(ALL) ~/bin',
+ 'cp $(ALL) {0}'.format(prefix.bin),
+ **kwargs)
+ # He changed the Makefile in commit dae119.
+ # You'll need this instead if/when he cuts a new release
+ # or if you try to build from the tip of master.
+ # makefile.filter('DEST_DIR = .*',
+ # 'DEST_DIR = {0}'.format(prefix.bin))
+ # or pass DEST_DIR in to the make
+
+ @run_before('install')
+ def make_prefix_dot_bin(self):
+ mkdir(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/damselfly/package.py b/var/spack/repos/builtin/packages/damselfly/package.py
index e78bb21f44..05cbee4a4e 100644
--- a/var/spack/repos/builtin/packages/damselfly/package.py
+++ b/var/spack/repos/builtin/packages/damselfly/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Damselfly(Package):
+class Damselfly(CMakePackage):
"""Damselfly is a model-based parallel network simulator."""
homepage = "https://github.com/llnl/damselfly"
url = "https://github.com/llnl/damselfly"
@@ -33,10 +33,4 @@ class Damselfly(Package):
version('1.0', '05cf7e2d8ece4408c0f2abb7ab63fd74c0d62895',
git='https://github.com/llnl/damselfly.git', tag='v1.0')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('-DCMAKE_BUILD_TYPE=release', '..', *std_cmake_args)
- make()
- make('install')
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py
new file mode 100644
index 0000000000..860866f81e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dataspaces/package.py
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+import six
+
+
+def is_string(x):
+ """validate a string"""
+ try:
+ return isinstance(x, six.string_types)
+ except ValueError:
+ return False
+
+
+class Dataspaces(AutotoolsPackage):
+ """an extreme scale data management framework."""
+
+ homepage = "http://www.dataspaces.org"
+ url = "http://personal.cac.rutgers.edu/TASSL/projects/data/downloads/dataspaces-1.6.2.tar.gz"
+
+ version('develop', git='https://github.com/melrom/dataspaces.git',
+ branch='master')
+ version('1.6.2', '73caa4920b6f2c0c6d6cb87640ff04be')
+
+ variant('dimes',
+ default=False,
+ description='enabled DIMES transport mode')
+ variant('cray-drc',
+ default=False,
+ description='using Cray Dynamic Credentials library')
+ variant('gni-cookie',
+ default='0x5420000',
+ description='Cray UGNI communication token',
+ values=is_string)
+ variant('ptag',
+ default='250',
+ description='Cray UGNI protection tag',
+ values=is_string)
+ variant('mpi',
+ default=True,
+ description='Use MPI for collective communication')
+
+ depends_on('m4', type='build')
+ depends_on('automake', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('libtool', type='build')
+ depends_on('mpi', when='+mpi')
+
+ def autoreconf(spec, prefix, self):
+ bash = which('bash')
+ bash('./autogen.sh')
+
+ def configure_args(self):
+ args = []
+ cookie = self.spec.variants['gni-cookie'].value
+ ptag = self.spec.variants['ptag'].value
+ if self.spec.satisfies('+dimes'):
+ args.append('--enable-dimes')
+ if self.spec.satisfies('+cray-drc'):
+ args.append('--enable-drc')
+ else:
+ args.append('--with-gni-cookie=%s' % cookie)
+ args.append('--with-gni-ptag=%s' % ptag)
+ if self.spec.satisfies('+mpi'):
+ args.append('CC=%s' % self.spec['mpi'].mpicc)
+ args.append('FC=%s' % self.spec['mpi'].mpifc)
+ return args
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 51d851b9b1..c4e999afe9 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -32,10 +32,13 @@ class Dealii(CMakePackage):
homepage = "https://www.dealii.org"
url = "https://github.com/dealii/dealii/releases/download/v8.4.1/dealii-8.4.1.tar.gz"
+ maintainers = ['davydden', 'jppelteret']
+
# Don't add RPATHs to this package for the full build DAG.
# only add for immediate deps.
transitive_rpaths = False
+ version('8.5.1', '39b9ebd6ab083d63cfc9044319aaa2ee')
version('8.5.0', 'ef999cc310b007559a6343bf5b1759bc')
version('8.4.2', '84c6bd3f250d3e0681b645d24cb987a7')
version('8.4.1', 'efbaf16f9ad59cfccad62302f36c3c1d')
@@ -48,12 +51,15 @@ class Dealii(CMakePackage):
variant('mpi', default=True, description='Compile with MPI')
variant('arpack', default=True,
description='Compile with Arpack and PArpack (only with MPI)')
+ variant('adol-c', default=False,
+ description='Compile with Adol-c')
variant('doc', default=False,
description='Compile with documentation')
variant('gsl', default=True, description='Compile with GSL')
variant('hdf5', default=True,
description='Compile with HDF5 (only with MPI)')
variant('metis', default=True, description='Compile with Metis')
+ variant('nanoflann', default=False, description='Compile with Nanoflann')
variant('netcdf', default=True,
description='Compile with Netcdf (only with MPI)')
variant('oce', default=True, description='Compile with OCE')
@@ -61,6 +67,8 @@ class Dealii(CMakePackage):
description='Compile with P4est (only with MPI)')
variant('petsc', default=True,
description='Compile with Petsc (only with MPI)')
+ variant('sundials', default=False,
+ description='Compile with Sundials')
variant('slepc', default=True,
description='Compile with Slepc (only with Petsc and MPI)')
variant('trilinos', default=True,
@@ -71,6 +79,9 @@ class Dealii(CMakePackage):
description='Compile with 64 bit indices support')
variant('optflags', default=False,
description='Compile using additional optimization flags')
+ variant('build_type', default='DebugRelease',
+ description='The build type to build',
+ values=('Debug', 'Release', 'DebugRelease'))
# required dependencies, light version
depends_on("blas")
@@ -106,6 +117,7 @@ class Dealii(CMakePackage):
# optional dependencies
depends_on("mpi", when="+mpi")
+ depends_on("adol-c@2.6.4:", when='@9.0:+adol-c')
depends_on("arpack-ng+mpi", when='+arpack+mpi')
depends_on("doxygen+graphviz", when='+doc')
depends_on("graphviz", when='+doc')
@@ -113,8 +125,9 @@ class Dealii(CMakePackage):
depends_on("hdf5+mpi", when='+hdf5+mpi')
# FIXME: concretizer bug. The two lines mimic what comes from PETSc
# but we should not need it
- depends_on("metis@5:+int64", when='+metis+int64')
- depends_on("metis@5:~int64", when='+metis~int64')
+ depends_on("metis@5:+int64+real64", when='+metis+int64')
+ depends_on("metis@5:~int64+real64", when='+metis~int64')
+ depends_on("nanoflann", when="@9.0:+nanoflann")
depends_on("netcdf+mpi", when="+netcdf+mpi")
depends_on("netcdf-cxx", when='+netcdf+mpi')
depends_on("oce", when='+oce')
@@ -126,20 +139,20 @@ class Dealii(CMakePackage):
depends_on("slepc", when='+slepc+petsc+mpi')
depends_on("slepc@:3.6.3", when='@:8.4.1+slepc+petsc+mpi')
depends_on("slepc~arpack", when='+slepc+petsc+mpi+int64')
+ depends_on("sundials", when='@9.0:+sundials')
depends_on("trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado+teuchos", when='+trilinos+mpi~int64')
depends_on("trilinos+amesos+aztec+epetra+ifpack+ml+muelu+sacado+teuchos~hypre", when="+trilinos+mpi+int64")
# check that the combination of variants makes sense
+ conflicts('+nanoflann', when='@:8.5.1')
+ conflicts('+sundials', when='@:8.5.1')
+ conflicts('+adol-c', when='@:8.5.1')
conflicts('+gsl', when='@:8.4.2')
conflicts('+python', when='@:8.4.2')
for p in ['+arpack', '+hdf5', '+netcdf', '+p4est', '+petsc',
'+slepc', '+trilinos']:
conflicts(p, when='~mpi')
- def build_type(self):
- # CMAKE_BUILD_TYPE should be DebugRelease | Debug | Release
- return 'DebugRelease'
-
def cmake_args(self):
spec = self.spec
options = []
@@ -212,7 +225,8 @@ class Dealii(CMakePackage):
# Optional dependencies for which library names are the same as CMake
# variables:
for library in (
- 'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis'):
+ 'gsl', 'hdf5', 'p4est', 'petsc', 'slepc', 'trilinos', 'metis',
+ 'sundials', 'nanoflann'):
if library in spec:
options.extend([
'-D%s_DIR=%s' % (library.upper(), spec[library].prefix),
@@ -223,6 +237,17 @@ class Dealii(CMakePackage):
'-DDEAL_II_WITH_%s:BOOL=OFF' % library.upper()
])
+ # adol-c
+ if '+adol-c' in spec:
+ options.extend([
+ '-DADOLC_DIR=%s' % spec['adol-c'].prefix,
+ '-DDEAL_II_WITH_ADOLC=ON'
+ ])
+ else:
+ options.extend([
+ '-DDEAL_II_WITH_ADOLC=OFF'
+ ])
+
# doxygen
options.extend([
'-DDEAL_II_COMPONENT_DOCUMENTATION=%s' %
diff --git a/var/spack/repos/builtin/packages/dialign-tx/package.py b/var/spack/repos/builtin/packages/dialign-tx/package.py
new file mode 100644
index 0000000000..29a0c800da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dialign-tx/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class DialignTx(MakefilePackage):
+ """DIALIGN-TX: greedy and progressive approaches for segment-based
+ multiple sequence alignment"""
+
+ homepage = "http://dialign-tx.gobics.de/"
+ url = "http://dialign-tx.gobics.de/DIALIGN-TX_1.0.2.tar.gz"
+
+ version('1.0.2', '8ccfb1d91136157324d1e513f184ca29')
+
+ build_directory = 'source'
+
+ conflicts('%gcc@6:')
+
+ def edit(self, spec, prefix):
+ with working_dir(self.build_directory):
+ makefile = FileFilter('Makefile')
+ makefile.filter(' -march=i686 ', ' ')
+ makefile.filter('CC=gcc', 'CC=%s' % spack_cc)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir(self.build_directory):
+ install('dialign-tx', prefix.bin)
+ # t-coffee recognizes as dialign-t
+ install('dialign-tx', join_path(prefix.bin, 'dialign-t'))
diff --git a/var/spack/repos/builtin/packages/discovar/package.py b/var/spack/repos/builtin/packages/discovar/package.py
new file mode 100644
index 0000000000..fcce9263cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/discovar/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Discovar(AutotoolsPackage):
+ """DISCOVAR is a variant caller and small genome assembler."""
+
+ homepage = "https://software.broadinstitute.org/software/discovar/blog/"
+ url = "ftp://ftp.broadinstitute.org/pub/crd/Discovar/latest_source_code/discovar-52488.tar.gz"
+
+ version('52488', 'e72a0b9363e25c99d8e8729c0be98364')
+
+ conflicts('%gcc@6:')
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index 61740fe91a..7817c2a8d8 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Doxygen(Package):
+class Doxygen(CMakePackage):
"""Doxygen is the de facto standard tool for generating documentation
from annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba,
@@ -49,9 +49,3 @@ class Doxygen(Package):
# optional dependencies
depends_on("graphviz", when="+graphviz", type='run')
-
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
-
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py
index 752c01787e..fa6a31a7c0 100644
--- a/var/spack/repos/builtin/packages/dyninst/package.py
+++ b/var/spack/repos/builtin/packages/dyninst/package.py
@@ -33,6 +33,7 @@ class Dyninst(Package):
url = "https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz"
list_url = "http://www.dyninst.org/downloads/dyninst-8.x"
+ version('9.3.2', 'a2bf03b6d1d424853e80d39b13e9c229')
version('9.3.0', 'edde7847dc673ca69bd59412af572450')
version('9.2.0', 'ad023f85e8e57837ed9de073b59d6bab',
url="https://github.com/dyninst/dyninst/archive/v9.2.0.tar.gz")
diff --git a/var/spack/repos/builtin/packages/ea-utils/package.py b/var/spack/repos/builtin/packages/ea-utils/package.py
new file mode 100644
index 0000000000..296b05eaf2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ea-utils/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class EaUtils(MakefilePackage):
+ """Command-line tools for processing biological sequencing data. Barcode
+ demultiplexing, adapter trimming, etc. Primarily written to support an
+ Illumina based pipeline - but should work with any FASTQs."""
+
+ homepage = "http://expressionanalysis.github.io/ea-utils/"
+ url = "https://github.com/ExpressionAnalysis/ea-utils/archive/1.04.807.tar.gz"
+
+ version('1.04.807', '5972b9f712920603b7527f46c0063a09')
+
+ depends_on('subversion')
+ depends_on('zlib')
+ depends_on('gsl')
+ depends_on('bamtools')
+ # perl module required for make check, which is included in the default
+ # target
+ depends_on('perl', type='build')
+
+ build_directory = 'clipper'
+
+ def edit(self, spec, prefix):
+ with working_dir('clipper'):
+ makefile = FileFilter('Makefile')
+ makefile.filter('/usr', prefix)
diff --git a/var/spack/repos/builtin/packages/ebms/package.py b/var/spack/repos/builtin/packages/ebms/package.py
new file mode 100644
index 0000000000..db3970814f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ebms/package.py
@@ -0,0 +1,69 @@
+#############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Ebms(MakefilePackage):
+ """This is a miniapp for the Energy Banding Monte Carlo (EBMC)
+ neutron transportation simulation code. It is adapted from a
+ similar miniapp provided by Andrew Siegel, whose algorithm is
+ described in [1], where only one process in a compute node
+ is used, and the compute nodes are divided into memory nodes
+ and tracking nodes. Memory nodes do not participate in particle
+ tracking. Obviously, there is a lot of resource waste in this design.
+ """
+
+ homepage = "https://github.com/ANL-CESAR/EBMS"
+ url = "https://github.com/ANL-CESAR/EBMS/archive/master.tar.gz"
+
+ version('develop', git='https://github.com/ANL-CESAR/EBMS.git')
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ depends_on('mpi', when='+mpi')
+
+ tags = ['proxy-app']
+
+ @property
+ def build_targets(self):
+
+ targets = []
+
+ cflags = '-g -O3 -std=gnu99'
+
+ if '+mpi' in self.spec:
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+
+ targets.append('CFLAGS={0}'.format(cflags))
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('ebmc-iallgather', prefix.bin)
+ install('ebmc-rget', prefix.bin)
+ install_tree('run', join_path(prefix, 'run'))
+ install_tree('inputs', join_path(prefix, 'inputs'))
diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py
index 137f445c69..40539e19c9 100644
--- a/var/spack/repos/builtin/packages/eccodes/package.py
+++ b/var/spack/repos/builtin/packages/eccodes/package.py
@@ -50,6 +50,9 @@ class Eccodes(CMakePackage):
description="Enable OpenMP threads")
variant('memfs', default=False,
description="Memory based access to definitions/samples")
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'Production'))
depends_on('netcdf', when='+netcdf')
depends_on('openjpeg', when='+jpeg')
diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py
index 0aefe416e3..569af17c61 100644
--- a/var/spack/repos/builtin/packages/eigen/package.py
+++ b/var/spack/repos/builtin/packages/eigen/package.py
@@ -40,9 +40,6 @@ class Eigen(CMakePackage):
version('3.2.8', '64f4aef8012a424c7e079eaf0be71793ab9bc6e0')
version('3.2.7', 'cc1bacbad97558b97da6b77c9644f184')
- variant('debug', default=False,
- description='Builds the library in debug mode')
-
variant('metis', default=True, description='Enables metis backend')
variant('scotch', default=True, description='Enables scotch backend')
variant('fftw', default=True, description='Enables FFTW backend')
@@ -50,6 +47,9 @@ class Eigen(CMakePackage):
description='Enables SuiteSparse support')
variant('mpfr', default=True,
description='Enables support for multi-precisions FP via mpfr')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
# TODO : dependency on googlehash, superlu, adolc missing
depends_on('metis@5:', when='+metis')
@@ -58,9 +58,3 @@ class Eigen(CMakePackage):
depends_on('suite-sparse', when='+suitesparse')
depends_on('mpfr@2.3.0:', when='+mpfr')
depends_on('gmp', when='+mpfr')
-
- def build_type(self):
- if '+debug' in self.spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/elemental/elemental_cublas.patch b/var/spack/repos/builtin/packages/elemental/elemental_cublas.patch
new file mode 100644
index 0000000000..9cf9b6e6b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/elemental/elemental_cublas.patch
@@ -0,0 +1,668 @@
+diff -Naur a/include/El/blas_like/level3.hpp b/include/El/blas_like/level3.hpp
+--- a/include/El/blas_like/level3.hpp 2017-06-08 07:30:43.180249917 -0700
++++ b/include/El/blas_like/level3.hpp 2017-06-08 07:35:27.325434602 -0700
+@@ -31,6 +31,10 @@
+ }
+ using namespace GemmAlgorithmNS;
+
++void GemmUseGPU(int min_M, int min_N, int min_K);
++
++void GemmUseCPU();
++
+ template<typename T>
+ void Gemm
+ ( Orientation orientA, Orientation orientB,
+diff -Naur a/include/El/core/imports/blas.hpp b/include/El/core/imports/blas.hpp
+--- a/include/El/core/imports/blas.hpp 2017-06-08 07:30:43.522016908 -0700
++++ b/include/El/core/imports/blas.hpp 2017-06-08 07:35:06.834030908 -0700
+@@ -916,4 +916,63 @@
+ } // namespace blas
+ } // namespace El
+
++
++#if defined(EL_USE_CUBLAS)
++
++namespace El {
++
++#ifdef EL_USE_64BIT_BLAS_INTS
++typedef long long int BlasInt;
++#else
++typedef int BlasInt;
++#endif
++
++namespace cublas {
++
++// NOTE: templated routines are custom and not wrappers
++
++// Level 3 BLAS
++// ============
++template<typename T>
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const T& alpha,
++ const T* A, BlasInt ALDim,
++ const T* B, BlasInt BLDim,
++ const T& beta,
++ T* C, BlasInt CLDim );
++
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const float& alpha,
++ const float* A, BlasInt ALDim,
++ const float* B, BlasInt BLDim,
++ const float& beta,
++ float* C, BlasInt CLDim );
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const double& alpha,
++ const double* A, BlasInt ALDim,
++ const double* B, BlasInt BLDim,
++ const double& beta,
++ double* C, BlasInt CLDim );
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const scomplex& alpha,
++ const scomplex* A, BlasInt ALDim,
++ const scomplex* B, BlasInt BLDim,
++ const scomplex& beta,
++ scomplex* C, BlasInt CLDim );
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const dcomplex& alpha,
++ const dcomplex* A, BlasInt ALDim,
++ const dcomplex* B, BlasInt BLDim,
++ const dcomplex& beta,
++ dcomplex* C, BlasInt CLDim );
++
++} // namespace cublas
++} // namespace El
++#endif
++
+ #endif // ifndef EL_IMPORTS_BLAS_DECL_HPP
+diff -Naur a/src/blas_like/level3/Gemm.cpp b/src/blas_like/level3/Gemm.cpp
+--- a/src/blas_like/level3/Gemm.cpp 2017-06-08 07:30:44.307096427 -0700
++++ b/src/blas_like/level3/Gemm.cpp 2017-06-08 07:34:23.062863489 -0700
+@@ -16,6 +16,20 @@
+
+ namespace El {
+
++char gemm_cpu_gpu_switch = 'c';
++int min_M = 0, min_N = 0, min_K = 0;
++
++void GemmUseGPU(int _min_M, int _min_N, int _min_K) {
++ gemm_cpu_gpu_switch = 'g';
++ min_M = _min_M;
++ min_N = _min_N;
++ min_K = _min_K;
++}
++
++void GemmUseCPU() {
++ gemm_cpu_gpu_switch = 'c';
++}
++
+ template<typename T>
+ void Gemm
+ ( Orientation orientA, Orientation orientB,
+@@ -59,11 +73,30 @@
+ const Int k = ( orientA == NORMAL ? A.Width() : A.Height() );
+ if( k != 0 )
+ {
++#if defined(EL_USE_CUBLAS)
++ if (gemm_cpu_gpu_switch == 'g' &&
++ m >= min_M &&
++ n >= min_N &&
++ k >= min_K) {
++ cublas::Gemm
++ ( transA, transB, m, n, k,
++ alpha, A.LockedBuffer(), A.LDim(),
++ B.LockedBuffer(), B.LDim(),
++ beta, C.Buffer(), C.LDim() );
++ } else {
++ blas::Gemm
++ ( transA, transB, m, n, k,
++ alpha, A.LockedBuffer(), A.LDim(),
++ B.LockedBuffer(), B.LDim(),
++ beta, C.Buffer(), C.LDim() );
++ }
++#else
+ blas::Gemm
+ ( transA, transB, m, n, k,
+ alpha, A.LockedBuffer(), A.LDim(),
+ B.LockedBuffer(), B.LDim(),
+ beta, C.Buffer(), C.LDim() );
++#endif
+ }
+ else
+ {
+diff -Naur a/src/core/imports/blas/Gemm.hpp b/src/core/imports/blas/Gemm.hpp
+--- a/src/core/imports/blas/Gemm.hpp 2017-06-08 07:30:45.090529967 -0700
++++ b/src/core/imports/blas/Gemm.hpp 2017-06-08 07:34:46.503009958 -0700
+@@ -41,6 +41,12 @@
+
+ } // extern "C"
+
++
++#if defined(EL_USE_CUBLAS)
++#include <cublas.h>
++#include <cub/util_allocator.cuh>
++#endif
++
+ namespace El {
+ namespace blas {
+
+@@ -515,3 +521,515 @@
+
+ } // namespace blas
+ } // namespace El
++
++
++#if EL_USE_CUBLAS
++
++#define USE_CUB 1
++
++namespace El {
++namespace cublas {
++
++#if USE_CUB
++cub::CachingDeviceAllocator g_allocator(true); // Caching allocator for device memory
++#endif
++
++template<typename T>
++void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const T& alpha,
++ const T* A, BlasInt ALDim,
++ const T* B, BlasInt BLDim,
++ const T& beta,
++ T* C, BlasInt CLDim )
++{
++ // put something here
++ printf("integer version \n");
++}
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Int& alpha,
++ const Int* A, BlasInt ALDim,
++ const Int* B, BlasInt BLDim,
++ const Int& beta,
++ Int* C, BlasInt CLDim );
++#ifdef EL_HAVE_QD
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const DoubleDouble& alpha,
++ const DoubleDouble* A, BlasInt ALDim,
++ const DoubleDouble* B, BlasInt BLDim,
++ const DoubleDouble& beta,
++ DoubleDouble* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const QuadDouble& alpha,
++ const QuadDouble* A, BlasInt ALDim,
++ const QuadDouble* B, BlasInt BLDim,
++ const QuadDouble& beta,
++ QuadDouble* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Complex<DoubleDouble>& alpha,
++ const Complex<DoubleDouble>* A, BlasInt ALDim,
++ const Complex<DoubleDouble>* B, BlasInt BLDim,
++ const Complex<DoubleDouble>& beta,
++ Complex<DoubleDouble>* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Complex<QuadDouble>& alpha,
++ const Complex<QuadDouble>* A, BlasInt ALDim,
++ const Complex<QuadDouble>* B, BlasInt BLDim,
++ const Complex<QuadDouble>& beta,
++ Complex<QuadDouble>* C, BlasInt CLDim );
++#endif
++#ifdef EL_HAVE_QUAD
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Quad& alpha,
++ const Quad* A, BlasInt ALDim,
++ const Quad* B, BlasInt BLDim,
++ const Quad& beta,
++ Quad* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Complex<Quad>& alpha,
++ const Complex<Quad>* A, BlasInt ALDim,
++ const Complex<Quad>* B, BlasInt BLDim,
++ const Complex<Quad>& beta,
++ Complex<Quad>* C, BlasInt CLDim );
++#endif
++#ifdef EL_HAVE_MPC
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const BigInt& alpha,
++ const BigInt* A, BlasInt ALDim,
++ const BigInt* B, BlasInt BLDim,
++ const BigInt& beta,
++ BigInt* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const BigFloat& alpha,
++ const BigFloat* A, BlasInt ALDim,
++ const BigFloat* B, BlasInt BLDim,
++ const BigFloat& beta,
++ BigFloat* C, BlasInt CLDim );
++template void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const Complex<BigFloat>& alpha,
++ const Complex<BigFloat>* A, BlasInt ALDim,
++ const Complex<BigFloat>* B, BlasInt BLDim,
++ const Complex<BigFloat>& beta,
++ Complex<BigFloat>* C, BlasInt CLDim );
++#endif
++
++void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const float& alpha,
++ const float* A, BlasInt ALDim,
++ const float* B, BlasInt BLDim,
++ const float& beta,
++ float* C, BlasInt CLDim )
++{
++ EL_DEBUG_CSE
++ EL_DEBUG_ONLY(
++ if( std::toupper(transA) == 'N' )
++ {
++ if( ALDim < Max(m,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",m=",m);
++ }
++ else
++ {
++ if( ALDim < Max(k,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",k=",k);
++ }
++
++ if( std::toupper(transB) == 'N' )
++ {
++ if( BLDim < Max(k,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",k=",k);
++ }
++ else
++ {
++ if( BLDim < Max(n,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",n=",n);
++ }
++
++ if( CLDim < Max(m,1) )
++ LogicError("CLDim was too small: CLDim=",CLDim,",m=",m);
++ )
++ const char fixedTransA = ( std::toupper(transA) == 'C' ? 'T' : transA );
++ const char fixedTransB = ( std::toupper(transB) == 'C' ? 'T' : transB );
++
++ const mpi::Comm comm;
++ const Int commRank = mpi::Rank( comm );
++ if (commRank == 0) {
++ //printf("calling cublas Sgemm: m %d n %d k %d\n", m, n, k);
++ }
++
++ BlasInt rowA, colA, rowB, colB, rowC, colC;
++ // device memory size for A, B and C
++ BlasInt sizeA, sizeB, sizeC;
++ float *devA=NULL, *devB=NULL, *devC=NULL;
++
++ rowA = fixedTransA == 'T' ? k : m;
++ colA = fixedTransA == 'T' ? m : k;
++ rowB = fixedTransB == 'T' ? n : k;
++ colB = fixedTransB == 'T' ? k : n;
++ rowC = m;
++ colC = n;
++ sizeA = rowA * colA;
++ sizeB = rowB * colB;
++ sizeC = rowC * colC;
++
++ cublasStatus stat;
++
++#if USE_CUB
++ CubDebugExit(g_allocator.DeviceAllocate((void**)&devA,
++ sizeof(float) * (sizeA+sizeB+sizeC) ));
++#else
++ stat = cublasAlloc(sizeA+sizeB+sizeC, sizeof(float), (void **) &devA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("Alloc A,B,C error\n"); }
++#endif
++
++ devB = devA + sizeA;
++ devC = devB + sizeB;
++
++ // copy matrix A, B and C to device
++ stat = cublasSetMatrix(rowA, colA, sizeof(float), A, ALDim, devA, rowA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix A error\n"); }
++
++ stat = cublasSetMatrix(rowB, colB, sizeof(float), B, BLDim, devB, rowB);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix B error\n"); }
++
++ if (beta != 0.0)
++ {
++ stat = cublasSetMatrix(rowC, colC, sizeof(float), C, CLDim, devC, rowC);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix C error\n"); }
++ }
++
++ // cublas<t>gemm
++ cublasSgemm
++ ( fixedTransA, fixedTransB, m, n, k,
++ alpha, devA, rowA, devB, rowB, beta, devC, rowC );
++
++ // copy matrix C to host
++ stat = cublasGetMatrix(rowC, colC, sizeof(float), devC, rowC, C, CLDim);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("GetMatrix C error\n"); }
++
++ // free
++#if USE_CUB
++ CubDebugExit(g_allocator.DeviceFree(devA));
++#else
++ cublasFree(devA);
++#endif
++ //printf("CUBLAS float done ...\n");
++}
++
++void Gemm
++( char transA, char transB,
++ BlasInt m, BlasInt n, BlasInt k,
++ const double& alpha,
++ const double* A, BlasInt ALDim,
++ const double* B, BlasInt BLDim,
++ const double& beta,
++ double* C, BlasInt CLDim )
++{
++ EL_DEBUG_CSE
++ EL_DEBUG_ONLY(
++ if( std::toupper(transA) == 'N' )
++ {
++ if( ALDim < Max(m,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",m=",m);
++ }
++ else
++ {
++ if( ALDim < Max(k,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",k=",k);
++ }
++
++ if( std::toupper(transB) == 'N' )
++ {
++ if( BLDim < Max(k,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",k=",k);
++ }
++ else
++ {
++ if( BLDim < Max(n,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",n=",n);
++ }
++
++ if( CLDim < Max(m,1) )
++ LogicError("CLDim was too small: CLDim=",CLDim,",m=",m);
++ )
++ const char fixedTransA = ( std::toupper(transA) == 'C' ? 'T' : transA );
++ const char fixedTransB = ( std::toupper(transB) == 'C' ? 'T' : transB );
++
++ const mpi::Comm comm;
++ const Int commRank = mpi::Rank( comm );
++ if (commRank == 0) {
++ //printf("calling cublas Dgemm: m %d n %d k %d\n", m, n, k);
++ }
++
++ BlasInt rowA, colA, rowB, colB, rowC, colC;
++ // device memory size for A, B and C
++ BlasInt sizeA, sizeB, sizeC;
++ double *devA=NULL, *devB=NULL, *devC=NULL;
++
++ rowA = fixedTransA == 'T' ? k : m;
++ colA = fixedTransA == 'T' ? m : k;
++ rowB = fixedTransB == 'T' ? n : k;
++ colB = fixedTransB == 'T' ? k : n;
++ rowC = m;
++ colC = n;
++ sizeA = rowA * colA;
++ sizeB = rowB * colB;
++ sizeC = rowC * colC;
++
++ cublasStatus stat;
++
++#if USE_CUB
++ CubDebugExit(g_allocator.DeviceAllocate((void**)&devA,
++ sizeof(double) * (sizeA+sizeB+sizeC) ));
++#else
++ stat = cublasAlloc(sizeA+sizeB+sizeC, sizeof(double), (void **) &devA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("Alloc A,B,C error\n"); }
++#endif
++
++ devB = devA + sizeA;
++ devC = devB + sizeB;
++
++ // copy matrix A, B and C to device
++ stat = cublasSetMatrix(rowA, colA, sizeof(double), A, ALDim, devA, rowA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix A error\n"); }
++
++ stat = cublasSetMatrix(rowB, colB, sizeof(double), B, BLDim, devB, rowB);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix B error\n"); }
++
++ if (beta != 0.0)
++ {
++ stat = cublasSetMatrix(rowC, colC, sizeof(double), C, CLDim, devC, rowC);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix C error\n"); }
++ }
++
++ // cublas<t>gemm
++ cublasDgemm
++ ( fixedTransA, fixedTransB, m, n, k,
++ alpha, devA, rowA, devB, rowB, beta, devC, rowC );
++
++ // copy matrix C to host
++ stat = cublasGetMatrix(rowC, colC, sizeof(double), devC, rowC, C, CLDim);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("GetMatrix C error\n"); }
++
++ // free
++#if USE_CUB
++ CubDebugExit(g_allocator.DeviceFree(devA));
++#else
++ cublasFree(devA);
++#endif
++ //printf("CUBLAS double done ...\n");
++}
++
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const scomplex& alpha,
++ const scomplex* A, BlasInt ALDim,
++ const scomplex* B, BlasInt BLDim,
++ const scomplex& beta,
++ scomplex* C, BlasInt CLDim )
++{
++ EL_DEBUG_CSE
++ EL_DEBUG_ONLY(
++ if( std::toupper(transA) == 'N' )
++ {
++ if( ALDim < Max(m,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",m=",m);
++ }
++ else
++ {
++ if( ALDim < Max(k,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",k=",k);
++ }
++
++ if( std::toupper(transB) == 'N' )
++ {
++ if( BLDim < Max(k,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",k=",k);
++ }
++ else
++ {
++ if( BLDim < Max(n,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",n=",n);
++ }
++
++ if( CLDim < Max(m,1) )
++ LogicError("CLDim was too small: CLDim=",CLDim,",m=",m);
++ )
++
++ const char fixedTransA = transA;
++ const char fixedTransB = transB;
++
++ const mpi::Comm comm;
++ const Int commRank = mpi::Rank( comm );
++ if (commRank == 0) {
++ //printf("calling cublas Cgemm: m %d n %d k %d\n", m, n, k);
++ }
++
++ BlasInt rowA, colA, rowB, colB, rowC, colC;
++ // device memory size for A, B and C
++ BlasInt sizeA, sizeB, sizeC;
++ cuComplex *devA=NULL, *devB=NULL, *devC=NULL;
++
++ rowA = fixedTransA == 'T' ? k : m;
++ colA = fixedTransA == 'T' ? m : k;
++ rowB = fixedTransB == 'T' ? n : k;
++ colB = fixedTransB == 'T' ? k : n;
++ rowC = m;
++ colC = n;
++ sizeA = rowA * colA;
++ sizeB = rowB * colB;
++ sizeC = rowC * colC;
++
++ cublasStatus stat;
++ stat = cublasAlloc(sizeA+sizeB+sizeC, sizeof(cuComplex), (void **) &devA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("Alloc A,B,C error\n"); }
++
++ devB = devA + sizeA;
++ devC = devB + sizeB;
++
++ // copy matrix A, B and C to device
++ stat = cublasSetMatrix(rowA, colA, sizeof(cuComplex), A, ALDim, devA, rowA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix A error\n"); }
++
++ stat = cublasSetMatrix(rowB, colB, sizeof(cuComplex), B, BLDim, devB, rowB);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix B error\n"); }
++
++ if (beta.real() != 0.0 || beta.imag() != 0.0)
++ {
++ stat = cublasSetMatrix(rowC, colC, sizeof(cuComplex), C, CLDim, devC, rowC);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix C error\n"); }
++ }
++
++ // cublas<t>gemm
++ cublasCgemm
++ ( fixedTransA, fixedTransB, m, n, k,
++ *((cuComplex*) &alpha), devA, rowA, devB, rowB, *((cuComplex*) &beta), devC, rowC );
++
++ // copy matrix C to host
++ stat = cublasGetMatrix(rowC, colC, sizeof(cuComplex), devC, rowC, C, CLDim);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("GetMatrix C error\n"); }
++
++ // free
++ cublasFree(devA);
++}
++
++void Gemm
++( char transA, char transB, BlasInt m, BlasInt n, BlasInt k,
++ const dcomplex& alpha,
++ const dcomplex* A, BlasInt ALDim,
++ const dcomplex* B, BlasInt BLDim,
++ const dcomplex& beta,
++ dcomplex* C, BlasInt CLDim )
++{
++ EL_DEBUG_CSE
++ EL_DEBUG_ONLY(
++ if( std::toupper(transA) == 'N' )
++ {
++ if( ALDim < Max(m,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",m=",m);
++ }
++ else
++ {
++ if( ALDim < Max(k,1) )
++ LogicError("ALDim was too small: ALDim=",ALDim,",k=",k);
++ }
++
++ if( std::toupper(transB) == 'N' )
++ {
++ if( BLDim < Max(k,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",k=",k);
++ }
++ else
++ {
++ if( BLDim < Max(n,1) )
++ LogicError("BLDim was too small: BLDim=",BLDim,",n=",n);
++ }
++
++ if( CLDim < Max(m,1) )
++ LogicError("CLDim was too small: CLDim=",CLDim,",m=",m);
++ )
++
++ const char fixedTransA = transA;
++ const char fixedTransB = transB;
++
++ const mpi::Comm comm;
++ const Int commRank = mpi::Rank( comm );
++ if (commRank == 0) {
++ //printf("calling cublas Zgemm: m %d n %d k %d\n", m, n, k);
++ }
++
++ BlasInt rowA, colA, rowB, colB, rowC, colC;
++ // device memory size for A, B and C
++ BlasInt sizeA, sizeB, sizeC;
++ cuDoubleComplex *devA=NULL, *devB=NULL, *devC=NULL;
++
++ rowA = fixedTransA == 'T' ? k : m;
++ colA = fixedTransA == 'T' ? m : k;
++ rowB = fixedTransB == 'T' ? n : k;
++ colB = fixedTransB == 'T' ? k : n;
++ rowC = m;
++ colC = n;
++ sizeA = rowA * colA;
++ sizeB = rowB * colB;
++ sizeC = rowC * colC;
++
++ cublasStatus stat;
++ stat = cublasAlloc(sizeA+sizeB+sizeC, sizeof(cuDoubleComplex), (void **) &devA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("Alloc A,B,C error\n"); }
++
++ devB = devA + sizeA;
++ devC = devB + sizeB;
++
++ // copy matrix A, B and C to device
++ stat = cublasSetMatrix(rowA, colA, sizeof(cuDoubleComplex), A, ALDim, devA, rowA);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix A error\n"); }
++
++ stat = cublasSetMatrix(rowB, colB, sizeof(cuDoubleComplex), B, BLDim, devB, rowB);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix B error\n"); }
++
++ if (beta.real() != 0.0 || beta.imag() != 0.0)
++ {
++ stat = cublasSetMatrix(rowC, colC, sizeof(cuDoubleComplex), C, CLDim, devC, rowC);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("SetMatrix C error\n"); }
++ }
++
++ cublasZgemm
++ ( fixedTransA, fixedTransB, m, n, k,
++ *((cuDoubleComplex*) &alpha), devA, rowA, devB, rowB, *((cuDoubleComplex*) &beta),
++ devC, rowC );
++
++ // copy matrix C to host
++ stat = cublasGetMatrix(rowC, colC, sizeof(cuDoubleComplex), devC, rowC, C, CLDim);
++ if (stat != CUBLAS_STATUS_SUCCESS) { RuntimeError("GetMatrix C error\n"); }
++
++ // free
++ cublasFree(devA);
++}
++
++} // namespace cublas
++} // namespace El
++
++#endif
++
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index d86ee985f7..87317bd909 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -33,11 +33,10 @@ class Elemental(CMakePackage):
homepage = "http://libelemental.org"
url = "https://github.com/elemental/Elemental/archive/v0.87.6.tar.gz"
+ version('master', git='https://github.com/elemental/Elemental.git', branch='master')
version('0.87.7', '6c1e7442021c59a36049e37ea69b8075')
version('0.87.6', '9fd29783d45b0a0e27c0df85f548abe9')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('shared', default=True,
description='Enables the build of shared libraries')
variant('hybrid', default=True,
@@ -54,6 +53,8 @@ class Elemental(CMakePackage):
description='Enable quad precision')
variant('int64', default=False,
description='Use 64bit integers')
+ variant('cublas', default=False,
+ description='Enable cuBLAS for local BLAS operations')
# When this variant is set remove the normal dependencies since
# Elemental has to build BLAS and ScaLAPACK internally
variant('int64_blas', default=False,
@@ -61,15 +62,24 @@ class Elemental(CMakePackage):
' Requires local build of BLAS library.')
variant('scalapack', default=False,
description='Build with ScaLAPACK library')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
+ variant('blas', default='openblas', values=('openblas', 'mkl'),
+ description='Enable the use of OpenBlas/MKL')
- # Note that this forces us to use OpenBLAS until #1712 is fixed
+ # Note that #1712 forces us to enumerate the different blas variants
depends_on('blas', when='~openmp_blas ~int64_blas')
# Hack to forward variant to openblas package
# Allow Elemental to build internally when using 8-byte ints
- depends_on('openblas +openmp', when='+openmp_blas ~int64_blas')
+ depends_on('openblas +openmp', when='blas=openblas +openmp_blas ~int64_blas')
+
+ depends_on('intel-mkl', when="blas=mkl ~openmp_blas ~int64_blas")
+ depends_on('intel-mkl +openmp', when='blas=mkl +openmp_blas ~int64_blas')
+ depends_on('intel-mkl@2017.1 +openmp +ilp64', when='blas=mkl +openmp_blas +int64_blas')
# Note that this forces us to use OpenBLAS until #1712 is fixed
- depends_on('lapack', when='~openmp_blas')
+ depends_on('lapack', when='blas=openblas ~openmp_blas')
depends_on('metis')
depends_on('metis +int64', when='+int64')
depends_on('mpi')
@@ -77,6 +87,11 @@ class Elemental(CMakePackage):
depends_on('scalapack', when='+scalapack ~int64_blas')
extends('python', when='+python')
depends_on('python@:2.8', when='+python')
+ depends_on('gmp')
+ depends_on('mpc')
+ depends_on('mpfr')
+
+ patch('elemental_cublas.patch', when='+cublas')
@property
def libs(self):
@@ -85,15 +100,6 @@ class Elemental(CMakePackage):
'libEl', root=self.prefix, shared=shared, recurse=True
)
- def build_type(self):
- """Returns the correct value for the ``CMAKE_BUILD_TYPE`` variable
- :return: value for ``CMAKE_BUILD_TYPE``
- """
- if '+debug' in self.spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
spec = self.spec
@@ -134,8 +140,7 @@ class Elemental(CMakePackage):
math_libs = spec['scalapack'].libs + math_libs
args.extend([
- '-DMATH_LIBS:STRING={0}'.format(math_libs.search_flags),
- '-DMATH_LIBS:STRING={0}'.format(math_libs.link_flags)])
+ '-DMATH_LIBS:STRING={0}'.format(math_libs.ld_flags)])
if '+python' in spec:
args.extend([
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index b49ac4a53b..c7e614cad5 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -35,14 +35,22 @@ class Elfutils(AutotoolsPackage):
homepage = "https://fedorahosted.org/elfutils/"
- url = "https://sourceware.org/elfutils/ftp/0.168/elfutils-0.168.tar.bz2"
+ url = "https://sourceware.org/elfutils/ftp/0.168/elfutils-0.168.tar.bz2"
list_url = "https://sourceware.org/elfutils/ftp"
list_depth = 1
+ version('0.170', '03599aee98c9b726c7a732a2dd0245d5')
version('0.168', '52adfa40758d0d39e5d5c57689bf38d6')
version('0.163', '77ce87f259987d2e54e4d87b86cbee41', preferred=True)
+ depends_on('flex', type='build')
+ depends_on('bison', type='build')
+ depends_on('gettext')
+
provides('elf@1')
def configure_args(self):
- return ['--enable-maintainer-mode']
+ # configure doesn't use LIBS correctly
+ return [
+ 'LDFLAGS=-L%s -lintl' % self.spec['gettext'].prefix.lib,
+ '--enable-maintainer-mode']
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 85d1706b2b..61e957c0c9 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -71,8 +71,8 @@ class Elpa(AutotoolsPackage):
spack_env.set('FC', spec['mpi'].mpifc)
spack_env.set('CXX', spec['mpi'].mpicxx)
- spack_env.set('LDFLAGS', spec['lapack'].libs.search_flags)
- spack_env.set('LIBS', spec['lapack'].libs.link_flags)
+ spack_env.append_flags('LDFLAGS', spec['lapack'].libs.search_flags)
+ spack_env.append_flags('LIBS', spec['lapack'].libs.link_flags)
spack_env.set('SCALAPACK_LDFLAGS', spec['scalapack'].libs.joined())
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/emboss/package.py b/var/spack/repos/builtin/packages/emboss/package.py
new file mode 100644
index 0000000000..d21f86a7b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/emboss/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Emboss(AutotoolsPackage):
+ """EMBOSS is a free Open Source software analysis package specially
+ developed for the needs of the molecular biology (e.g. EMBnet) user
+ community"""
+
+ homepage = "http://emboss.sourceforge.net/"
+ url = "ftp://emboss.open-bio.org/pub/EMBOSS/EMBOSS-6.6.0.tar.gz"
+
+ version('6.6.0', 'cc3fca80cb0618deb10fa0d29fe90e4b')
+
+ depends_on('libxpm')
+ depends_on('libgd')
+ depends_on('postgresql')
diff --git a/var/spack/repos/builtin/packages/espresso/package.py b/var/spack/repos/builtin/packages/espresso/package.py
index b77e14ec76..26cbf8fd88 100644
--- a/var/spack/repos/builtin/packages/espresso/package.py
+++ b/var/spack/repos/builtin/packages/espresso/package.py
@@ -75,8 +75,17 @@ class Espresso(Package):
patch('dspev_drv_elpa.patch', when='@6.1 ^elpa@2016.05.003')
# We can't ask for scalapack or elpa if we don't want MPI
- conflicts('+scalapack', when='~mpi')
- conflicts('+elpa', when='~mpi')
+ conflicts(
+ '+scalapack',
+ when='~mpi',
+ msg='scalapack is a parallel library and needs MPI support'
+ )
+
+ conflicts(
+ '+elpa',
+ when='~mpi',
+ msg='elpa is a parallel library and needs MPI support'
+ )
# Elpa is formally supported by @:5.4.0, but QE configure searches
# for it in the wrong folders (or tries to download it within
diff --git a/var/spack/repos/builtin/packages/espressopp/package.py b/var/spack/repos/builtin/packages/espressopp/package.py
index e71291bec8..f1752b3b5e 100644
--- a/var/spack/repos/builtin/packages/espressopp/package.py
+++ b/var/spack/repos/builtin/packages/espressopp/package.py
@@ -39,7 +39,6 @@ class Espressopp(CMakePackage):
version('1.9.4.1', '0da74a6d4e1bfa6a2a24fca354245a4f')
version('1.9.4', 'f2a27993a83547ad014335006eea74ea')
- variant('debug', default=False, description='Build debug version')
variant('ug', default=False, description='Build user guide')
variant('pdf', default=False, description='Build user guide in pdf format')
variant('dg', default=False, description='Build developer guide')
@@ -60,13 +59,6 @@ class Espressopp(CMakePackage):
depends_on("texlive", when="+pdf", type='build')
depends_on("doxygen", when="+dg", type='build')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
return ['-DEXTERNAL_MPI4PY=ON', '-DEXTERNAL_BOOST=ON']
diff --git a/var/spack/repos/builtin/packages/exabayes/package.py b/var/spack/repos/builtin/packages/exabayes/package.py
new file mode 100644
index 0000000000..85148474a2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/exabayes/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Exabayes(AutotoolsPackage):
+ """ExaBayes is a software package for Bayesian tree inference. It is
+ particularly suitable for large-scale analyses on computer clusters."""
+
+ homepage = "https://sco.h-its.org/exelixis/web/software/exabayes/"
+ url = "https://sco.h-its.org/exelixis/resource/download/software/exabayes-1.5.tar.gz"
+
+ version('1.5', '6a734777b8f8eff0a520306500c8c419')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+
+ depends_on('mpi', when='+mpi')
+
+ # ExaBayes manual states the program succesfully compiles with GCC, version
+ # 4.6 or greater, and Clang, version 3.2 or greater. The build fails when
+ # GCC 7.1.0 is used.
+ conflicts('%gcc@:4.5.4, 7.1.0:')
+ conflicts('%clang@:3.1')
+ conflicts('^intel-mpi', when='+mpi')
+ conflicts('^intel-parallel-studio+mpi', when='+mpi')
+ conflicts('^mvapich2', when='+mpi')
+ conflicts('^spectrum-mpi', when='+mpi')
+
+ def configure_args(self):
+ args = []
+ if '+mpi' in self.spec:
+ args.append('--enable-mpi')
+ else:
+ args.append('--disable-mpi')
+ return args
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index 8f85c2914b..68e8ed4c08 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -23,11 +23,33 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
class Expat(AutotoolsPackage):
"""Expat is an XML parser library written in C."""
+
homepage = "http://expat.sourceforge.net/"
- url = "http://downloads.sourceforge.net/project/expat/expat/2.2.0/expat-2.2.0.tar.bz2"
+ url = "https://sourceforge.net/projects/expat/files/expat/2.2.2/expat-2.2.2.tar.bz2"
+
+ # Version 2.2.2 introduced a requirement for a high quality
+ # entropy source. "Older" linux systems (aka CentOS 7) do not
+ # support get_random so we'll provide a high quality source via
+ # libbsd.
+ # There's no need for it in earlier versions, so 'conflict' if
+ # someone's asking for an older version and also libbsd.
+ # In order to install an older version, you'll need to add
+ # `~libbsd`.
+ variant('libbsd', default=sys.platform != 'darwin',
+ description="Use libbsd (for high quality randomness)")
+ depends_on('libbsd', when="@2.2.1:+libbsd")
+ version('2.2.2', '1ede9a41223c78528b8c5d23e69a2667')
version('2.2.0', '2f47841c829facb346eb6e3fab5212e2')
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+ if '+libbsd' in spec and '@2.2.1:' in spec:
+ args = ['--with-libbsd']
+ return args
diff --git a/var/spack/repos/builtin/packages/falcon/package.py b/var/spack/repos/builtin/packages/falcon/package.py
new file mode 100644
index 0000000000..7532e6e8b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/falcon/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Falcon(PythonPackage):
+ """Falcon: a set of tools for fast aligning long reads for consensus
+ and assembly.
+
+ The Falcon tool kit is a set of simple code collection which I use
+ for studying efficient assembly algorithm for haploid and diploid genomes.
+ It has some back-end code implemented in C for speed and some simple
+ front-end written in Python for convenience."""
+
+ homepage = "https://github.com/PacificBiosciences/FALCON"
+ url = "https://github.com/PacificBiosciences/FALCON.git"
+
+ version('2017-05-30',
+ git='https://github.com/PacificBiosciences/FALCON.git',
+ commit='86cec6157291679095ea6080b0cde6561eccc041')
+
+ depends_on('py-setuptools', type='run')
+ depends_on('py-pypeflow', type='run')
+ depends_on('py-networkx@1.7:1.10', type=['build', 'run'])
+ depends_on('pacbio-dazz-db', type='run')
+ depends_on('pacbio-daligner', type='run')
+ depends_on('pacbio-dextractor', type='run')
+ depends_on('pacbio-damasker', type='run')
diff --git a/var/spack/repos/builtin/packages/fastjar/package.py b/var/spack/repos/builtin/packages/fastjar/package.py
new file mode 100644
index 0000000000..86ad4b2d68
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastjar/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fastjar(AutotoolsPackage):
+ """Fastjar is a version of Sun's 'jar' utility, written entirely in C."""
+
+ homepage = "http://savannah.nongnu.org/projects/fastjar/"
+ url = "http://download.savannah.gnu.org/releases/fastjar/fastjar-0.98.tar.gz"
+
+ version('0.98', 'd2d264d343d4d0e1575832cc1023c3bf')
+
+ depends_on('zlib')
diff --git a/var/spack/repos/builtin/packages/fastphase/package.py b/var/spack/repos/builtin/packages/fastphase/package.py
new file mode 100644
index 0000000000..69ba89022c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fastphase/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fastphase(Package):
+ """Software for haplotype reconstruction, and estimating missing genotypes
+ from population data."""
+
+ homepage = "http://stephenslab.uchicago.edu/software.html"
+ url = "http://scheet.org/code/Linuxfp.tar.gz"
+
+ version('2016-03-30', 'b48731eed9b8d0a5a321f970c5c20d8c')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('fastPHASE', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/fastqc/package.py b/var/spack/repos/builtin/packages/fastqc/package.py
index ae06252fc1..d4abd8aceb 100644
--- a/var/spack/repos/builtin/packages/fastqc/package.py
+++ b/var/spack/repos/builtin/packages/fastqc/package.py
@@ -36,7 +36,7 @@ class Fastqc(Package):
version('0.11.5', '3524f101c0ab0bae77c7595983170a76')
version('0.11.4', '104ff2e0e9aebf5bee1f6b068a059b0d')
- depends_on('jdk', type='run')
+ depends_on('java', type='run')
depends_on('perl') # for fastqc "script", any perl will do
patch('fastqc.patch', level=0)
@@ -58,4 +58,5 @@ class Fastqc(Package):
"""Add <prefix> to the path; the package has a script at the
top level.
"""
- run_env.prepend_path('PATH', join_path(self.spec['jdk'].prefix, 'bin'))
+ run_env.prepend_path('PATH', join_path(self.spec['java'].prefix,
+ 'bin'))
diff --git a/var/spack/repos/builtin/packages/fastx-toolkit/package.py b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
index 7e06ba89ea..4f40ffe64e 100644
--- a/var/spack/repos/builtin/packages/fastx-toolkit/package.py
+++ b/var/spack/repos/builtin/packages/fastx-toolkit/package.py
@@ -35,3 +35,5 @@ class FastxToolkit(AutotoolsPackage):
version('0.0.14', 'bf1993c898626bb147de3d6695c20b40')
depends_on('libgtextutils')
+
+ conflicts('%gcc@7.1.0:')
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
index 34afa0d609..5aa3b17d73 100644
--- a/var/spack/repos/builtin/packages/fenics/package.py
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -55,10 +55,12 @@ class Fenics(CMakePackage):
description='Enables the shared memory support')
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('doc', default=False,
description='Builds the documentation')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo',
+ 'MinSizeRel', 'Developer'))
# not part of spack list for now
# variant('petsc4py', default=True, description='Uses PETSc4py')
@@ -144,11 +146,7 @@ class Fenics(CMakePackage):
return 'ON' if option in self.spec else 'OFF'
def cmake_args(self):
- spec = self.spec
-
return [
- '-DCMAKE_BUILD_TYPE:STRING={0}'.format(
- 'Debug' if '+debug' in spec else 'RelWithDebInfo'),
'-DDOLFIN_ENABLE_DOCS:BOOL={0}'.format(
self.cmake_is_on('+doc')),
'-DBUILD_SHARED_LIBS:BOOL={0}'.format(
diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py
index f2a32fdd70..6a4c0902f6 100644
--- a/var/spack/repos/builtin/packages/ferret/package.py
+++ b/var/spack/repos/builtin/packages/ferret/package.py
@@ -98,7 +98,12 @@ class Ferret(Package):
ln('-sf',
libz_prefix + '/lib',
libz_prefix + '/lib64')
- os.environ['LDFLAGS'] = '-lquadmath'
+
+ if 'LDFLAGS' in env and env['LDFLAGS']:
+ env['LDFLAGS'] += ' ' + '-lquadmath'
+ else:
+ env['LDFLAGS'] = '-lquadmath'
+
with working_dir('FERRET', create=False):
os.environ['LD_X11'] = '-L/usr/lib/X11 -lX11'
os.environ['HOSTTYPE'] = 'x86_64-linux'
diff --git a/var/spack/repos/builtin/packages/ffmpeg/package.py b/var/spack/repos/builtin/packages/ffmpeg/package.py
index 80017f5eb6..9a6f6c18ad 100644
--- a/var/spack/repos/builtin/packages/ffmpeg/package.py
+++ b/var/spack/repos/builtin/packages/ffmpeg/package.py
@@ -37,6 +37,8 @@ class Ffmpeg(AutotoolsPackage):
variant('shared', default=True,
description='build shared libraries')
+ depends_on('yasm@1.2.0:')
+
def configure_args(self):
spec = self.spec
config_args = ['--enable-pic']
diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py
index 82f49e7ca2..19e818028a 100644
--- a/var/spack/repos/builtin/packages/fftw/package.py
+++ b/var/spack/repos/builtin/packages/fftw/package.py
@@ -70,6 +70,11 @@ class Fftw(AutotoolsPackage):
depends_on('autoconf', type='build', when='+pfft_patches')
depends_on('libtool', type='build', when='+pfft_patches')
+ @property
+ def libs(self):
+ result = find_libraries(['libfftw3'], root=self.prefix, recurse=True)
+ return result
+
def autoreconf(self, spec, prefix):
if '+pfft_patches' in spec:
autoreconf = which('autoreconf')
diff --git a/var/spack/repos/builtin/packages/fimpute/package.py b/var/spack/repos/builtin/packages/fimpute/package.py
new file mode 100644
index 0000000000..bc18419923
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fimpute/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fimpute(Package):
+ """FImpute uses an overlapping sliding window approach to efficiently
+ exploit relationships or haplotype similarities between target and
+ reference individuals."""
+
+ homepage = "http://www.aps.uoguelph.ca/~msargol/fimpute/"
+ url = "http://www.aps.uoguelph.ca/~msargol/fimpute/FImpute_Linux.zip"
+
+ version('2014-01', 'df934a25c76dabef7d7afcb5b8058d98')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('FImpute', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/flecsale/package.py b/var/spack/repos/builtin/packages/flecsale/package.py
index b22c553d2a..828ff47d2f 100644
--- a/var/spack/repos/builtin/packages/flecsale/package.py
+++ b/var/spack/repos/builtin/packages/flecsale/package.py
@@ -33,7 +33,6 @@ class Flecsale(CMakePackage):
version('develop', git='https://github.com/laristra/flecsale', branch='master', submodules=True)
- variant('debug', default=False, description='Build debug version')
variant('mpi', default=True,
description='Build on top of mpi conduit for mpi inoperability')
@@ -43,13 +42,6 @@ class Flecsale(CMakePackage):
depends_on("python")
depends_on("openssl")
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = [
'-DENABLE_UNIT_TESTS=ON'
diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py
index 5c0f51b2d1..3b079565cb 100644
--- a/var/spack/repos/builtin/packages/flecsi/package.py
+++ b/var/spack/repos/builtin/packages/flecsi/package.py
@@ -41,7 +41,6 @@ class Flecsi(CMakePackage):
version('develop', git='https://github.com/laristra/flecsi', branch='master', submodules=True)
- variant('debug', default=False, description='Build debug version')
variant('mpi', default=True,
description='Build on top of mpi conduit for mpi inoperability')
@@ -49,13 +48,6 @@ class Flecsi(CMakePackage):
depends_on("legion+shared", when='~mpi')
depends_on("legion+shared+mpi", when='+mpi')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = ['-DENABLE_UNIT_TESTS=ON']
diff --git a/var/spack/repos/builtin/packages/fmt/package.py b/var/spack/repos/builtin/packages/fmt/package.py
new file mode 100644
index 0000000000..eea62f2a6a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fmt/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fmt(CMakePackage):
+ """fmt (formerly cppformat) is an open-source formatting library.
+ It can be used as a safe alternative to printf or as a fast alternative
+ to C++ IOStreams."""
+
+ homepage = "http://fmtlib.net/latest/index.html"
+ url = "https://github.com/fmtlib/fmt/releases/download/4.0.0/fmt-4.0.0.zip"
+
+ version('4.0.0', '605b5abee11b83195191234f4f414cf1')
+ version('3.0.2', 'b190a7b8f2a5e522ee70cf339a53d3b2')
+ version('3.0.1', '14505463b838befe1513b09cae112715')
+ version('3.0.0', 'c099561e70fa194bb03b3fd5de2d3fd0')
+
+ depends_on('cmake@2.8.12:', type='build')
+
+ def cmake_args(self):
+ return [
+ '-DCMAKE_C_FLAGS={0}'.format(self.compiler.pic_flag),
+ '-DCMAKE_CXX_FLAGS={0}'.format(self.compiler.pic_flag),
+ ]
diff --git a/var/spack/repos/builtin/packages/foam-extend/package.py b/var/spack/repos/builtin/packages/foam-extend/package.py
index a6776b182f..9e4a6c4d0b 100644
--- a/var/spack/repos/builtin/packages/foam-extend/package.py
+++ b/var/spack/repos/builtin/packages/foam-extend/package.py
@@ -143,7 +143,6 @@ class FoamExtend(Package):
run_env.set('WM_PROJECT_DIR', self.projectdir)
for d in ['wmake', self.archbin]: # bin already added automatically
run_env.prepend_path('PATH', join_path(self.projectdir, d))
- run_env.set('MPI_BUFFER_SIZE', "20000000")
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
"""Provide location of the OpenFOAM project.
diff --git a/var/spack/repos/builtin/packages/folly/package.py b/var/spack/repos/builtin/packages/folly/package.py
index 13b03de39b..1be879ee80 100644
--- a/var/spack/repos/builtin/packages/folly/package.py
+++ b/var/spack/repos/builtin/packages/folly/package.py
@@ -40,6 +40,11 @@ class Folly(AutotoolsPackage):
url = "https://github.com/facebook/folly/archive/v2017.06.05.00.tar.gz"
version('2017.06.05.00', 'a25e8d646702c3e0c1400f591e485a33')
+ version('2016.11.14.00', '88550acdb4d4b331c0ca9922039c8727')
+ version('2016.11.07.00', '2f605b20ad539bccdbfd361daa92081e')
+ version('2016.10.31.00', 'ab3049302792f8470cef64f3a29eedec')
+ version('2016.10.24.00', '0445efb7c16b5c32dfbb173157e54866')
+ version('2016.10.17.00', 'b7e01934a45c5036fab8fdc70e9eaf4d')
depends_on('m4', type='build')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/freebayes/package.py b/var/spack/repos/builtin/packages/freebayes/package.py
new file mode 100644
index 0000000000..9fb7fd1161
--- /dev/null
+++ b/var/spack/repos/builtin/packages/freebayes/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Freebayes(MakefilePackage):
+ """Bayesian haplotype-based genetic polymorphism discovery and
+ genotyping."""
+
+ homepage = "https://github.com/ekg/freebayes"
+
+ version('1.1.0', git='https://github.com/ekg/freebayes.git',
+ commit='39e5e4bcb801556141f2da36aba1df5c5c60701f',
+ submodules=True)
+
+ depends_on('cmake', type='build')
+ depends_on('zlib')
+
+ parallel = False
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ b = prefix.bin
+ makefile.filter('cp bin/freebayes bin/bamleftalign /usr/local/bin/',
+ 'cp bin/freebayes bin/bamleftalign {0}'.format(b))
+
+ @run_before('install')
+ def make_prefix_dot_bin(self):
+ mkdir(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/fseq/package.py b/var/spack/repos/builtin/packages/fseq/package.py
new file mode 100644
index 0000000000..71f450ec42
--- /dev/null
+++ b/var/spack/repos/builtin/packages/fseq/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Fseq(Package):
+ """F-Seq: A Feature Density Estimator for High-Throughput Sequence Tags"""
+
+ homepage = "http://fureylab.web.unc.edu/software/fseq/"
+ url = "http://fureylab.med.unc.edu/fseq/fseq_1.84.tgz"
+
+ version('1.84', 'f9124ad0f45c60f3a7eb74dde8c945b9')
+
+ depends_on('java', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install_tree('lib', prefix.lib)
+ install('mapviewToBed.pl', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gapcloser/package.py b/var/spack/repos/builtin/packages/gapcloser/package.py
new file mode 100644
index 0000000000..4505234756
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gapcloser/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gapcloser(Package):
+ """The GapCloser is designed to close the gaps emerging during the
+ scaffolding process"""
+
+ homepage = "https://sourceforge.net/projects/soapdenovo2/files/GapCloser/"
+ url = "https://downloads.sourceforge.net/project/soapdenovo2/GapCloser/bin/r6/GapCloser-bin-v1.12-r6.tgz"
+
+ version('1.12-r6', '42b4e4256bdc9f9f31a391a359256209')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('GapCloser', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gapfiller/package.py b/var/spack/repos/builtin/packages/gapfiller/package.py
new file mode 100644
index 0000000000..766c51d42d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gapfiller/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Gapfiller(Package):
+ """GapFiller is a stand-alone program for closing gaps within
+ pre-assembled scaffolds.
+
+ Note: A manual download is required for GapFiller.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/gapfiller"
+
+ version('1.10', '54d5e2ada131a1305a66e41c0d380382')
+
+ def url_for_version(self, version):
+ return "file://{0}/39GapFiller_v{1}_linux-x86_64.tar.gz".format(
+ os.getcwd(), version.dashed)
+
+ depends_on('perl', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ install_tree('bowtie', prefix.bowtie)
+ install_tree('bwa', prefix.bwa)
+ install('GapFiller.pl', prefix)
diff --git a/var/spack/repos/builtin/packages/gaussian/package.py b/var/spack/repos/builtin/packages/gaussian/package.py
new file mode 100644
index 0000000000..d2fcee438f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gaussian/package.py
@@ -0,0 +1,71 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import shutil
+
+
+class Gaussian(Package):
+ """Gaussian is a computer program for computational chemistry"""
+
+ homepage = "http://www.gaussian.com/"
+ url = "file://{0}/g09.tgz".format(os.getcwd())
+
+ version('09', '7d4c95b535e68e48af183920df427e4e')
+
+ def install(self, spec, prefix):
+ shutil.copytree(os.getcwd(), prefix.bin)
+ patch_install_files = ['flc',
+ 'linda8.2/opteron-linux/bin/flc',
+ 'linda8.2/opteron-linux/bin/LindaLauncher',
+ 'linda8.2/opteron-linux/bin/ntsnet',
+ 'linda8.2/opteron-linux/bin/pmbuild',
+ 'linda8.2/opteron-linux/bin/vntsnet',
+ 'ntsnet'
+ ]
+ for filename in patch_install_files:
+ if os.path.isfile(filename):
+ filter_file('/mf/frisch/g09', prefix.bin, join_path(prefix.bin,
+ filename), string='True')
+ patch_install_files = ['linda8.2/opteron-linux/bin/ntsnet',
+ 'linda8.2/opteron-linux/bin/vntsnet',
+ ]
+ for filename in patch_install_files:
+ if os.path.isfile(filename):
+ filter_file('/usr/bin/linda', prefix.bin, join_path(prefix.bin,
+ filename), string='True')
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('g09root', self.prefix)
+ run_env.set('GAUSSIANHOME', self.prefix)
+ run_env.set('GAUSS_EXEDIR', self.prefix.bin)
+ run_env.set('G09_BASIS', join_path(self.prefix.bin, 'basis'))
+ run_env.set('GAUSS_LEXEDIR', join_path(self.prefix.bin,
+ 'linda-exe'))
+ run_env.set('GAUSS_ARCHDIR', join_path(self.prefix.bin, 'arch'))
+ run_env.set('GAUSS_BSDDIR', join_path(self.prefix.bin, 'bsd'))
+ run_env.prepend_path('LD_LIBRARY_PATH', join_path(self.prefix.bin,
+ 'linda8.2/opteron-linux/lib'))
+ run_env.prepend_path('LD_LIBRARY_PATH', self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gblocks/package.py b/var/spack/repos/builtin/packages/gblocks/package.py
new file mode 100644
index 0000000000..a03fc81509
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gblocks/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gblocks(Package):
+ """Gblocks is a computer program written in ANSI C language that eliminates
+ poorly aligned positions and divergent regions of an alignment of DNA or
+ protein sequences"""
+
+ homepage = "http://molevol.cmima.csic.es/castresana/Gblocks.html"
+ url = "http://molevol.cmima.csic.es/castresana/Gblocks/Gblocks_Linux64_0.91b.tar.Z"
+
+ version('0.91b', 'c2c752ae4cbfda0b8bf09e6662585252')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('Gblocks', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index 7fa9b81dde..aef1158971 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -40,7 +40,9 @@ class Gcc(AutotoolsPackage):
list_url = 'http://ftp.gnu.org/gnu/gcc/'
list_depth = 1
+ version('7.2.0', 'ff370482573133a7fcdd96cd2f552292')
version('7.1.0', '6bf56a2bca9dac9dbbf8e8d1036964a8')
+ version('6.4.0', '11ba51a0cfb8471927f387c8895fe232')
version('6.3.0', '677a7623c7ef6ab99881bc4e048debb6')
version('6.2.0', '9768625159663b300ae4de2f4745fcc4')
version('6.1.0', '8fb6cb98b8459f5863328380fbf06bd1')
@@ -68,11 +70,14 @@ class Gcc(AutotoolsPackage):
multi=True,
description='Compilers and runtime libraries to build')
variant('binutils',
- default=sys.platform != 'darwin',
+ default=False,
description='Build via binutils')
variant('piclibs',
default=False,
description='Build PIC versions of libgfortran.a and libstdc++.a')
+ variant('strip',
+ default=False,
+ description='Strip executables to reduce installation size')
# https://gcc.gnu.org/install/prerequisites.html
depends_on('gmp@4.3.2:')
@@ -153,6 +158,15 @@ class Gcc(AutotoolsPackage):
build_directory = 'spack-build'
+ def url_for_version(self, version):
+ url = 'http://ftp.gnu.org/gnu/gcc/gcc-{0}/gcc-{0}.tar.{1}'
+ suffix = 'xz'
+
+ if version < Version('6.4.0') or version == Version('7.1.0'):
+ suffix = 'bz2'
+
+ return url.format(version, suffix)
+
def patch(self):
spec = self.spec
prefix = self.spec.prefix
@@ -237,6 +251,12 @@ class Gcc(AutotoolsPackage):
return []
@property
+ def install_targets(self):
+ if '+strip' in self.spec:
+ return ['install-strip']
+ return ['install']
+
+ @property
def spec_dir(self):
# e.g. lib/gcc/x86_64-unknown-linux-gnu/4.9.2
spec_dir = glob.glob('{0}/gcc/*/*'.format(self.prefix.lib))
diff --git a/var/spack/repos/builtin/packages/gdbm/package.py b/var/spack/repos/builtin/packages/gdbm/package.py
index 488ca4702b..fea4aa4b15 100644
--- a/var/spack/repos/builtin/packages/gdbm/package.py
+++ b/var/spack/repos/builtin/packages/gdbm/package.py
@@ -33,7 +33,7 @@ class Gdbm(AutotoolsPackage):
manipulate a hashed database."""
homepage = "http://www.gnu.org.ua/software/gdbm/gdbm.html"
- url = "ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.13.tar.gz"
+ url = "http://ftp.gnu.org/gnu/gdbm/gdbm-1.13.tar.gz"
version('1.13', '8929dcda2a8de3fd2367bdbf66769376')
version('1.12', '9ce96ff4c99e74295ea19040931c8fb9')
diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py
index cb04d67481..95d3eb9d55 100644
--- a/var/spack/repos/builtin/packages/geant4/package.py
+++ b/var/spack/repos/builtin/packages/geant4/package.py
@@ -41,7 +41,6 @@ class Geant4(CMakePackage):
version('10.01.p03', '4fb4175cc0dabcd517443fbdccd97439')
variant('qt', default=True, description='Enable Qt support')
- variant('debug', default=False, description='Build debug version')
depends_on('cmake@3.5:', type='build')
@@ -54,13 +53,6 @@ class Geant4(CMakePackage):
depends_on("xerces-c")
depends_on("qt@4.8:", when="+qt")
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/gearshifft/package.py b/var/spack/repos/builtin/packages/gearshifft/package.py
new file mode 100644
index 0000000000..b68be4a7db
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gearshifft/package.py
@@ -0,0 +1,74 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Gearshifft(CMakePackage):
+ """Benchmark Suite for Heterogenuous FFT Implementations"""
+
+ homepage = "https://github.com/mpicbg-scicomp/gearshifft"
+ url = "https://github.com/mpicbg-scicomp/gearshifft/archive/v0.2.0.tar.gz"
+
+ version('0.2.1-lw', 'c3208b767b24255b488a83e5d9e517ea')
+
+ variant('cufft', default=True,
+ description='Compile gearshifft_cufft')
+ # variant('clfft', default=True,
+ # description='Compile gearshifft_clfft')
+ variant('fftw', default=True,
+ description='Compile gearshifft_fftw')
+ variant('openmp', default=True,
+ description='use OpenMP parallel fftw libraries')
+ # variant('hcfft', default=True,
+ # description='Not implemented yet')
+
+ # depends_on C++14 compiler, e.g. GCC 5.0+
+ depends_on('cmake@2.8.0:', type='build')
+ depends_on('boost@1.56.0:')
+ depends_on('cuda@8.0:', when='+cufft')
+ # depends_on('opencl@1.2:', when='+clfft')
+ # depends_on('clfft@2.12.0:', when='+clfft')
+ depends_on('fftw@3.3.4:~mpi~openmp', when='+fftw~openmp')
+ depends_on('fftw@3.3.4:~mpi+openmp', when='+fftw+openmp')
+
+ def cmake_args(self):
+ spec = self.spec
+
+ args = [
+ '-DGEARSHIFFT_HCFFT:BOOL=OFF',
+ '-DGEARSHIFFT_FFTW_PTHREADS:BOOL=ON',
+ '-DGEARSHIFFT_CLFFT:BOOL=OFF'
+ ]
+ args.extend([
+ '-DGEARSHIFFT_FFTW:BOOL={0}'.format((
+ 'ON' if '+fftw' in spec else 'OFF')),
+ '-DGEARSHIFFT_FFTW_OPENMP:BOOL={0}'.format((
+ 'ON' if '+openmp' in spec else 'OFF')),
+ '-DGEARSHIFFT_CUFFT:BOOL={0}'.format((
+ 'ON' if '+cufft' in spec else 'OFF'))
+ # '-DGEARSHIFFT_CLFFT:BOOL={0}'.format((
+ # 'ON' if '+clfft' in spec else 'OFF'))
+ ])
+ return args
diff --git a/var/spack/repos/builtin/packages/genemark-et/package.py b/var/spack/repos/builtin/packages/genemark-et/package.py
new file mode 100644
index 0000000000..352f728290
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genemark-et/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+import glob
+
+
+class GenemarkEt(Package):
+ """Gene Prediction in Bacteria, archaea, Metagenomes and
+ Metatranscriptomes."""
+
+ homepage = "http://topaz.gatech.edu/GeneMark"
+
+ version('4.33', '4ab7d7d3277a685dfb49e11bc5b493c3')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ return "file://{0}/gm_et_linux_64.tar.gz".format(os.getcwd())
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir('gmes_petap'):
+ install_tree('lib', prefix.lib)
+ files = glob.iglob('*')
+ for file in files:
+ if os.path.isfile(file):
+ install(file, prefix.bin)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PERL5LIB', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/genometools/package.py b/var/spack/repos/builtin/packages/genometools/package.py
new file mode 100644
index 0000000000..afb45bdd84
--- /dev/null
+++ b/var/spack/repos/builtin/packages/genometools/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#############################################################################
+from spack import *
+
+
+class Genometools(MakefilePackage):
+ """genometools is a free collection of bioinformatics tools (in the realm
+ of genome informatics) combined into a single binary named gt."""
+
+ homepage = "http://genometools.org/"
+ url = "http://genometools.org/pub/genometools-1.5.9.tar.gz"
+
+ version('1.5.9', 'e400d69092f9f13db09b33f9dea39d2e')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('cairo')
+ depends_on('pango')
+
+ # build fails with gcc 7"
+ conflicts('%gcc@7.1.0:')
+
+ def install(self, spec, prefix):
+ make('install', 'prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/gflags/package.py b/var/spack/repos/builtin/packages/gflags/package.py
index 57a01f8c78..b96ee7a706 100644
--- a/var/spack/repos/builtin/packages/gflags/package.py
+++ b/var/spack/repos/builtin/packages/gflags/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Gflags(Package):
+class Gflags(CMakePackage):
"""The gflags package contains a C++ library that implements
commandline flags processing. It includes built-in support for
standard types such as string and the ability to define flags
@@ -37,11 +37,7 @@ class Gflags(Package):
version('2.1.2', 'ac432de923f9de1e9780b5254884599f')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8.12:', type='build')
- def install(self, spec, prefix):
- cmake("-DCMAKE_INSTALL_PREFIX=" + prefix,
- "-DBUILD_SHARED_LIBS=ON")
- make()
- make("test")
- make("install")
+ def cmake_args(self):
+ return ['-DBUILD_SHARED_LIBS=ON']
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index f01cc37d7b..9dc9e460af 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -155,7 +155,7 @@ class Git(AutotoolsPackage):
depends_on('m4', type='build')
def setup_environment(self, spack_env, run_env):
- spack_env.set('LDFLAGS', '-L{0} -lintl'.format(
+ spack_env.append_flags('LDFLAGS', '-L{0} -lintl'.format(
self.spec['gettext'].prefix.lib))
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/glm/package.py b/var/spack/repos/builtin/packages/glm/package.py
index 9825cbdb94..507c9606e3 100644
--- a/var/spack/repos/builtin/packages/glm/package.py
+++ b/var/spack/repos/builtin/packages/glm/package.py
@@ -25,11 +25,9 @@
from spack import *
-class Glm(Package):
+class Glm(CMakePackage):
"""OpenGL Mathematics (GLM) is a header only C++ mathematics library for
- graphics software based on the OpenGL Shading Language (GLSL)
- specification.
-
+ graphics software based on the OpenGL Shading Language (GLSL) specification
"""
homepage = "https://github.com/g-truc/glm"
@@ -37,10 +35,4 @@ class Glm(Package):
version('0.9.7.1', '61af6639cdf652d1cdd7117190afced8')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make("install")
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/gmake/package.py b/var/spack/repos/builtin/packages/gmake/package.py
index 5bb4fdb2aa..0c215a4e82 100644
--- a/var/spack/repos/builtin/packages/gmake/package.py
+++ b/var/spack/repos/builtin/packages/gmake/package.py
@@ -25,18 +25,33 @@
from spack import *
-class Gmake(Package):
- """GNU Make."""
+class Gmake(AutotoolsPackage):
+ """GNU Make is a tool which controls the generation of executables and
+ other non-source files of a program from the program's source files."""
- homepage = "http://gnu.org/gnu/make"
- url = "https://ftp.gnu.org/gnu/make/make-4.0.tar.gz"
+ homepage = "https://www.gnu.org/software/make/"
+ url = "https://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz"
- version('4.0', 'b5e558f981326d9ca1bfdb841640721a')
+ version('4.2.1', '7d0dcb6c474b258aab4d54098f2cf5a7')
+ version('4.0', 'b5e558f981326d9ca1bfdb841640721a')
- def install(self, spec, prefix):
- configure('--prefix={0}'.format(prefix))
+ variant('guile', default=False, description='Support GNU Guile for embedded scripting')
- make()
- make('install')
- with working_dir(prefix.bin):
+ depends_on('guile', when='+guile')
+
+ build_directory = 'spack-build'
+
+ def configure_args(self):
+ args = []
+
+ if '+guile' in self.spec:
+ args.append('--with-guile')
+ else:
+ args.append('--without-guile')
+
+ return args
+
+ @run_after('install')
+ def symlink_gmake(self):
+ with working_dir(self.prefix.bin):
symlink('make', 'gmake')
diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py
index 3c9eff5619..977bf6c3d6 100644
--- a/var/spack/repos/builtin/packages/gmsh/package.py
+++ b/var/spack/repos/builtin/packages/gmsh/package.py
@@ -46,8 +46,6 @@ class Gmsh(CMakePackage):
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds the library in debug mode')
variant('mpi', default=True,
description='Builds MPI support for parser and solver')
variant('fltk', default=False,
@@ -128,9 +126,6 @@ class Gmsh(CMakePackage):
# Builds and installs static library
options.append('-DENABLE_BUILD_LIB:BOOL=ON')
- if '+debug' in spec:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
-
if '+mpi' in spec:
options.append('-DENABLE_MPI:BOOL=ON')
diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py
index 7a35308616..74cdbf348d 100644
--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py
@@ -46,10 +46,12 @@ class GoBootstrap(Package):
# See: https://golang.org/doc/install/source#go14 and
# https://github.com/golang/go/issues/17545 and
# https://github.com/golang/go/issues/16352
+ version('1.4-bootstrap-20170531', 'd2cc61cb9f829b3510ee39c0c5568014',
+ url='https://storage.googleapis.com/golang/go1.4-bootstrap-20170531.tar.gz')
version('1.4-bootstrap-20161024', '76e42c8152e8560ded880a6d1d1f53cb',
url='https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz')
- provides('golang@:1.4-bootstrap-20161024')
+ provides('golang@:1.4-bootstrap-20170531')
depends_on('git', type=('build', 'link', 'run'))
@@ -65,10 +67,6 @@ class GoBootstrap(Package):
r'# \1\2\3',
)
- @when('@1.5.0:') # noqa: F811
- def patch(self):
- pass
-
def install(self, spec, prefix):
env['CGO_ENABLED'] = '0'
bash = which('bash')
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index 9d6ea49dd8..77f6470693 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -56,6 +56,8 @@ class Go(Package):
extendable = True
+ version('1.9', 'da2d44ea384076efec43ee1f8b7d45d2')
+ version('1.8.3', '64e9380e07bba907e26a00cf5fcbe77e')
version('1.8.1', '409dd21e7347dd1ea9efe64a700073cc')
version('1.8', '7743960c968760437b6e39093cfe6f67')
version('1.7.5', '506de2d870409e9003e1440bcfeb3a65')
@@ -105,6 +107,10 @@ class Go(Package):
def setup_environment(self, spack_env, run_env):
spack_env.set('GOROOT_FINAL', self.spec.prefix)
+ # We need to set CC/CXX_FOR_TARGET, otherwise cgo will use the
+ # internal Spack wrappers and fail.
+ spack_env.set('CC_FOR_TARGET', self.compiler.cc)
+ spack_env.set('CXX_FOR_TARGET', self.compiler.cxx)
def setup_dependent_package(self, module, dependent_spec):
"""Called before go modules' install() methods.
diff --git a/var/spack/repos/builtin/packages/gobject-introspection/package.py b/var/spack/repos/builtin/packages/gobject-introspection/package.py
index 44078d059e..26e5da3d56 100644
--- a/var/spack/repos/builtin/packages/gobject-introspection/package.py
+++ b/var/spack/repos/builtin/packages/gobject-introspection/package.py
@@ -46,6 +46,9 @@ class GobjectIntrospection(Package):
depends_on("flex", type="build")
depends_on("pkg-config@0.9.0:", type="build")
+ # GobjectIntrospection does not build with sed from darwin:
+ depends_on('sed', when='platform=darwin', type='build')
+
# This package creates several scripts from
# toosl/g-ir-tool-template.in. In their original form these
# scripts end up with a sbang line like
diff --git a/var/spack/repos/builtin/packages/gradle/package.py b/var/spack/repos/builtin/packages/gradle/package.py
index d39ba5e685..1eef10463e 100644
--- a/var/spack/repos/builtin/packages/gradle/package.py
+++ b/var/spack/repos/builtin/packages/gradle/package.py
@@ -77,7 +77,7 @@ class Gradle(Package):
version('0.8', '73a0ed51b6ec00a7d3a9d242d51aae60')
version('0.7', 'a8417dbbd62f7013002cb55a44f12cc3')
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/graphlib/package.py b/var/spack/repos/builtin/packages/graphlib/package.py
index 0ed50001f6..5d4582c365 100644
--- a/var/spack/repos/builtin/packages/graphlib/package.py
+++ b/var/spack/repos/builtin/packages/graphlib/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Graphlib(Package):
+class Graphlib(CMakePackage):
"""Library to create, manipulate, and export graphs Graphlib."""
homepage = "https://github.com/LLNL/graphlib"
url = "https://github.com/LLNL/graphlib/archive/v2.0.0.tar.gz"
@@ -33,10 +33,4 @@ class Graphlib(Package):
version('2.0.0', '43c6df84f1d38ba5a5dce0ae19371a70')
version('3.0.0', '625d199f97ab1b84cbc8daabcaee5e2a')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake(".", *std_cmake_args)
-
- make()
- make("install")
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/graphmap/package.py b/var/spack/repos/builtin/packages/graphmap/package.py
new file mode 100644
index 0000000000..954fc7622a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/graphmap/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Graphmap(MakefilePackage):
+ """A highly sensitive and accurate mapper for long, error-prone reads"""
+
+ homepage = "https://github.com/isovic/graphmap"
+ url = "https://github.com/isovic/graphmap/archive/v0.3.0.tar.gz"
+
+ version('0.3.0', git='https://github.com/isovic/graphmap.git', commit='eb8c75d68b03be95464318afa69b645a59f8f6b7')
+
+ def edit(self, spec, prefix):
+ mkdirp(prefix.bin)
+ makefile = FileFilter('Makefile')
+ makefile.filter('/usr/bin/graphmap', prefix.bin.graphmap)
+
+ def build(self, spec, prefix):
+ make('modules')
+ make()
diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py
index 9efbc85789..2f39c8ce1f 100644
--- a/var/spack/repos/builtin/packages/graphviz/package.py
+++ b/var/spack/repos/builtin/packages/graphviz/package.py
@@ -104,7 +104,7 @@ class Graphviz(AutotoolsPackage):
depends_on('libtool')
depends_on('pkg-config', type='build')
- depends_on('jdk', when='+java')
+ depends_on('java', when='+java')
depends_on('python@2:2.8', when='+python')
def patch(self):
diff --git a/var/spack/repos/builtin/packages/grib-api/package.py b/var/spack/repos/builtin/packages/grib-api/package.py
index 9597964c94..d3f971d737 100644
--- a/var/spack/repos/builtin/packages/grib-api/package.py
+++ b/var/spack/repos/builtin/packages/grib-api/package.py
@@ -25,7 +25,7 @@
from spack import *
-class GribApi(Package):
+class GribApi(CMakePackage):
"""The ECMWF GRIB API is an application program interface accessible from
C, FORTRAN and Python programs developed for encoding and decoding WMO
FM-92 GRIB edition 1 and edition 2 messages."""
@@ -40,42 +40,41 @@ class GribApi(Package):
variant('netcdf', default=False, description='Enable netcdf encoding/decoding using netcdf library')
variant('jpeg', default=True, description='Enable jpeg 2000 for grib 2 decoding/encoding')
variant('png', default=False, description='Enable png for decoding/encoding')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'Production'))
- depends_on('cmake', type='build')
depends_on('libpng', when='+png')
depends_on('netcdf', when='+netcdf')
depends_on('jasper', when='+jpeg')
+ depends_on('cmake@2.8.11:', type='build')
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
- options.append('-DBUILD_SHARED_LIBS=BOTH')
+ def cmake_args(self):
+ spec = self.spec
+ args = ['-DBUILD_SHARED_LIBS=BOTH']
# We will add python support later.
- options.append('-DENABLE_PYTHON=OFF')
+ args.append('-DENABLE_PYTHON=OFF')
# Disable FORTRAN interface if we don't have it.
if (self.compiler.f77 is None) or (self.compiler.fc is None):
- options.append('-DENABLE_FORTRAN=OFF')
+ args.append('-DENABLE_FORTRAN=OFF')
if '+netcdf' in spec:
- options.append('-DENABLE_NETCDF=ON')
- options.append('-DNETCDF_PATH=%s' % spec['netcdf'].prefix)
+ args.append('-DENABLE_NETCDF=ON')
+ args.append('-DNETCDF_PATH=%s' % spec['netcdf'].prefix)
else:
- options.append('-DENABLE_NETCDF=OFF')
+ args.append('-DENABLE_NETCDF=OFF')
if '+jpeg' in spec:
- options.append('-DENABLE_JPG=ON')
- options.append('-DJASPER_PATH=%s' % spec['jasper'].prefix)
+ args.append('-DENABLE_JPG=ON')
+ args.append('-DJASPER_PATH=%s' % spec['jasper'].prefix)
else:
- options.append('-DENABLE_JPG=OFF')
+ args.append('-DENABLE_JPG=OFF')
if '+png' in spec:
- options.append('-DENABLE_PNG=ON')
+ args.append('-DENABLE_PNG=ON')
else:
- options.append('-DENABLE_PNG=OFF')
+ args.append('-DENABLE_PNG=OFF')
- with working_dir('spack-build', create=True):
- cmake('..', *options)
- make()
- make('install')
+ return args
diff --git a/var/spack/repos/builtin/packages/groff/gropdf.patch b/var/spack/repos/builtin/packages/groff/gropdf.patch
new file mode 100644
index 0000000000..9044c64aa3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/groff/gropdf.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index bc156ce..70c6f85 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -896,6 +896,8 @@ $(GNULIBDIRS): FORCE
+ $(MAKE) ACLOCAL=: AUTOCONF=: AUTOHEADER=: AUTOMAKE=: $(do) ;; \
+ esac
+
++$(SHPROGDIRS): $(PROGDEPDIRS)
++
+ $(OTHERDIRS): $(PROGDEPDIRS) $(CCPROGDIRS) $(CPROGDIRS) $(SHPROGDIRS)
+
+ $(INCDIRS) $(PROGDEPDIRS) $(SHPROGDIRS) $(OTHERDIRS): FORCE
diff --git a/var/spack/repos/builtin/packages/groff/package.py b/var/spack/repos/builtin/packages/groff/package.py
new file mode 100644
index 0000000000..1cef3040e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/groff/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Groff(AutotoolsPackage):
+ """Groff (GNU troff) is a typesetting system that reads
+ plain text mixed with formatting commands and produces
+ formatted output. Output may be PostScript or PDF, html, or
+ ASCII/UTF8 for display at the terminal."""
+
+ homepage = "https://www.gnu.org/software/groff/"
+ url = "http://ftp.gnu.org/gnu/groff/groff-1.22.3.tar.gz"
+
+ # TODO: add html variant, spack doesn't have netpbm and its too
+ # complicated for me to find out at this point in time.
+ # See brew scripts for groff for guidance:
+ # https://github.com/Homebrew/homebrew-core/blob/master/Formula/groff.rb
+ # Seems troublesome...netpbm requires groff?
+ variant('pdf', default=True, description='Build the `gropdf` executable.')
+
+ depends_on('gawk', type='build')
+ depends_on('gmake', type='build')
+ depends_on('sed', type='build')
+ depends_on('ghostscript', when='+pdf')
+
+ version('1.22.3', 'cc825fa64bc7306a885f2fb2268d3ec5')
+
+ # https://savannah.gnu.org/bugs/index.php?43581
+ # TODO: figure out why this patch does not actually work for parallel
+ # builds reliably.
+ # patch('gropdf.patch')
+ parallel = False
+
+ def configure_args(self):
+ args = [
+ "--without-x"
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index 97fd569d1f..ae17193139 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -48,12 +48,15 @@ class Gromacs(CMakePackage):
variant('mpi', default=True, description='Activate MPI support')
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False, description='Enables debug mode')
variant(
'double', default=False,
description='Produces a double precision version of the executables')
variant('plumed', default=False, description='Enable PLUMED support')
variant('cuda', default=False, description='Enable CUDA support')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel',
+ 'Reference', 'RelWithAssert', 'Profile'))
depends_on('mpi', when='+mpi')
depends_on('plumed+mpi', when='+plumed+mpi')
@@ -79,11 +82,6 @@ class Gromacs(CMakePackage):
if '~shared' in self.spec:
options.append('-DBUILD_SHARED_LIBS:BOOL=OFF')
- if '+debug' in self.spec:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
- else:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Release')
-
if '+cuda' in self.spec:
options.append('-DGMX_GPU:BOOL=ON')
options.append('-DCUDA_TOOLKIT_ROOT_DIR:STRING=' +
diff --git a/var/spack/repos/builtin/packages/gtkorvo-atl/package.py b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
new file mode 100644
index 0000000000..2dc96ca1f1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gtkorvo-atl/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GtkorvoAtl(CMakePackage):
+ """Libatl provides a library for the creation and manipulation of
+ lists of name/value pairs using an efficient binary representation.
+ """
+
+ homepage = "https://github.com/GTkorvo/atl"
+ url = "https://github.com/GTkorvo/atl/archive/v2.1.tar.gz"
+
+ version('develop', git='https://github.com/GTkorvo/atl.git',
+ branch='master')
+ version('2.1', 'b2324ff041bccba127330a0e1b241978')
+
+ depends_on('gtkorvo-cercs-env')
+
+ def cmake_args(self):
+ args = ["-DENABLE_TESTING=0", "-DENABLE_BUILD_STATIC=STATIC"]
+ return args
diff --git a/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
new file mode 100644
index 0000000000..1287c1f91d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gtkorvo-cercs-env/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GtkorvoCercsEnv(CMakePackage):
+ """A utility library used by some GTkorvo packages.
+ """
+
+ homepage = "https://github.com/GTkorvo/cercs_env"
+ url = "https://github.com/GTkorvo/cercs_env/archive/v1.0.tar.gz"
+
+ version('develop', git='https://github.com/GTkorvo/cercs_env.git',
+ branch='master')
+ version('1.0', '08f0532d0c2f7bc9b53dfa7a1c40ea4d')
+
+ def cmake_args(self):
+ args = ["-DENABLE_TESTING=0", "-DENABLE_SHARED_STATIC=STATIC"]
+ return args
diff --git a/var/spack/repos/builtin/packages/gtkorvo-dill/package.py b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
new file mode 100644
index 0000000000..f32539e43e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gtkorvo-dill/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GtkorvoDill(CMakePackage):
+ """DILL provides instruction-level code generation,
+ register allocation and simple optimizations for generating
+ executable code directly into memory regions for immediate use.
+ """
+
+ homepage = "https://github.com/GTkorvo/dill"
+ url = "https://github.com/GTkorvo/dill/archive/v2.1.tar.gz"
+
+ version('develop', git='https://github.com/GTkorvo/dill.git',
+ branch='master')
+ version('2.1', '14c835e79b66c9acd2beee01d56e6200')
+
+ def cmake_args(self):
+ args = ["-DENABLE_TESTING=0", "-DBUILD_SHARED_STATIC=STATIC"]
+ return args
diff --git a/var/spack/repos/builtin/packages/gtkorvo-enet/package.py b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
new file mode 100644
index 0000000000..5c63a5ab23
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gtkorvo-enet/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class GtkorvoEnet(AutotoolsPackage):
+ """ENet reliable UDP networking library.
+ This is a downstream branch of lsalzman's ENet.
+ This version has expanded the client ID to handle more clients.
+ The original is at http://github.com/lsalzman/enet.
+ """
+
+ homepage = "http://www.github.com/GTkorvo/enet"
+ url = "https://github.com/GTkorvo/enet/archive/v1.3.13.tar.gz"
+
+ version('1.3.13', '3490f924a4d421e4832e45850e6ec142')
diff --git a/var/spack/repos/builtin/packages/h5z-zfp/package.py b/var/spack/repos/builtin/packages/h5z-zfp/package.py
index 0063c2fd37..ddb03c64e0 100644
--- a/var/spack/repos/builtin/packages/h5z-zfp/package.py
+++ b/var/spack/repos/builtin/packages/h5z-zfp/package.py
@@ -38,8 +38,7 @@ class H5zZfp(MakefilePackage):
variant('fortran', default=True, description='Enable Fortran support')
depends_on('hdf5')
-# depends_on('zfp bsws=8')
- depends_on('zfp')
+ depends_on('zfp bsws=8')
@property
def make_defs(self):
diff --git a/var/spack/repos/builtin/packages/hadoop/package.py b/var/spack/repos/builtin/packages/hadoop/package.py
index 4981a0bb58..3aa632b9df 100644
--- a/var/spack/repos/builtin/packages/hadoop/package.py
+++ b/var/spack/repos/builtin/packages/hadoop/package.py
@@ -36,7 +36,7 @@ class Hadoop(Package):
version('2.6.4', '37019f13d7dcd819727be158440b9442')
- depends_on('jdk', type='run')
+ depends_on('java', type='run')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/hapcut2/package.py b/var/spack/repos/builtin/packages/hapcut2/package.py
new file mode 100644
index 0000000000..1e91d1d541
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hapcut2/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hapcut2(MakefilePackage):
+ """HapCUT2 is a maximum-likelihood-based tool for assembling haplotypes
+ from DNA sequence reads, designed to 'just work' with excellent speed
+ and accuracy."""
+
+ homepage = "https://github.com/vibansal/HapCUT2"
+ url = "https://github.com/vibansal/HapCUT2"
+
+ version('2017-07-10', git='https://github.com/vibansal/HapCUT2.git',
+ commit='2966b94c2c2f97813b757d4999b7a6471df1160e', submodules=True)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir('build'):
+ install('extractFOSMID', prefix.bin)
+ install('extractHAIRS', prefix.bin)
+ install('HAPCUT2', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/haploview/haploview.sh b/var/spack/repos/builtin/packages/haploview/haploview.sh
new file mode 100644
index 0000000000..0f6c60139c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/haploview/haploview.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+# convenience wrapper for the haploview.jar file
+java $JAVA_ARGS $JAVA_OPTS -jar haploview.jar "$@"
diff --git a/var/spack/repos/builtin/packages/haploview/package.py b/var/spack/repos/builtin/packages/haploview/package.py
new file mode 100644
index 0000000000..9ffe6898b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/haploview/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os.path
+
+
+class Haploview(Package):
+ """Haploview is designed to simplify and expedite the process of haplotype
+ analysis."""
+
+ homepage = "http://www.broadinstitute.org/haploview/haploview"
+ url = "https://downloads.sourceforge.net/project/haploview/release/Haploview4.1.jar"
+
+ version('4.1', 'f7aa4accda5fad1be74c9c1969c6ee7d', expand=False)
+
+ depends_on('java', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ jar_file = 'Haploview{v}.jar'.format(v=self.version)
+ install(jar_file, prefix.bin)
+
+ script_sh = join_path(os.path.dirname(__file__), "haploview.sh")
+ script = prefix.bin.haploview
+ install(script_sh, script)
+ set_executable(script)
+
+ java = self.spec['java'].prefix.bin.java
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+ filter_file('^java', java, script, **kwargs)
+ filter_file('haploview.jar', join_path(prefix.bin, jar_file),
+ script, **kwargs)
diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 3944f91124..87309ed65e 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -25,15 +25,16 @@
from spack import *
-class Hdf(Package):
+class Hdf(AutotoolsPackage):
"""HDF4 (also known as HDF) is a library and multi-object
file format for storing and managing data between machines."""
- homepage = "https://www.hdfgroup.org/products/hdf4/"
- url = "https://www.hdfgroup.org/ftp/HDF/releases/HDF4.2.11/src/hdf-4.2.11.tar.gz"
- list_url = "https://www.hdfgroup.org/ftp/HDF/releases/"
- list_depth = 3
+ homepage = "https://support.hdfgroup.org/products/hdf4/"
+ url = "https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.13/src/hdf-4.2.13.tar.gz"
+ list_url = "https://support.hdfgroup.org/ftp/HDF/releases"
+ list_depth = 2
+ version('4.2.13', 'a6aa950b3fce5162b96496d8ea0b82bf')
version('4.2.12', '79fd1454c899c05e34a3da0456ab0c1c')
version('4.2.11', '063f9928f3a19cc21367b71c3b8bbf19')
@@ -46,10 +47,11 @@ class Hdf(Package):
depends_on('bison', type='build')
depends_on('flex', type='build')
- def install(self, spec, prefix):
+ def configure_args(self):
+ spec = self.spec
+
config_args = [
- 'CFLAGS=-fPIC',
- '--prefix={0}'.format(prefix),
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
'--with-jpeg={0}'.format(spec['jpeg'].prefix),
'--with-zlib={0}'.format(spec['zlib'].prefix),
'--disable-netcdf', # must be disabled to build NetCDF with HDF4
@@ -65,11 +67,4 @@ class Hdf(Package):
else:
config_args.append('--without-szlib')
- configure(*config_args)
-
- make()
-
- if self.run_tests:
- make('check')
-
- make('install')
+ return config_args
diff --git a/var/spack/repos/builtin/packages/hdf5-blosc/package.py b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
index 95d37cc02f..f8b1c5e363 100644
--- a/var/spack/repos/builtin/packages/hdf5-blosc/package.py
+++ b/var/spack/repos/builtin/packages/hdf5-blosc/package.py
@@ -22,7 +22,6 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from __future__ import print_function
import os
import shutil
import sys
diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 782b7c32cf..cf8f00d797 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -32,19 +32,16 @@ class Hdf5(AutotoolsPackage):
flexible and efficient I/O and for high volume and complex data.
"""
- homepage = "http://www.hdfgroup.org/HDF5/"
- url = "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.gz"
- list_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
+ homepage = "https://support.hdfgroup.org/HDF5/"
+ url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/hdf5-1.10.1.tar.gz"
+ list_url = "https://support.hdfgroup.org/ftp/HDF5/releases"
list_depth = 3
version('1.10.1', '43a2f9466702fb1db31df98ae6677f15')
version('1.10.0-patch1', '9180ff0ef8dc2ef3f61bd37a7404f295')
version('1.10.0', 'bdc935337ee8282579cd6bc4270ad199')
- version('1.8.18', 'dd2148b740713ca0295442ec683d7b1c',
- # The link for the latest version differs from the links for
- # the previous releases. Do not forget to remove this once
- # the version 1.8.18 is not the latest one for the 1.8.* branch.
- url='http://hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.18.tar.gz')
+ version('1.8.19', '7f568e2464d4ab0a74d16b23956d900b')
+ version('1.8.18', 'dd2148b740713ca0295442ec683d7b1c')
version('1.8.17', '7d572f8f3b798a628b8245af0391a0ca')
version('1.8.16', 'b8ed9a36ae142317f88b0c7ef4b9c618')
version('1.8.15', '03cccb5b33dbe975fdcd8ae9dc021f24')
@@ -77,6 +74,10 @@ class Hdf5(AutotoolsPackage):
conflicts('+threadsafe', when='+cxx')
conflicts('+threadsafe', when='+fortran')
+ def url_for_version(self, version):
+ url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-{0}/hdf5-{1}/src/hdf5-{1}.tar.gz"
+ return url.format(version.up_to(2), version)
+
@property
def libs(self):
"""HDF5 can be queried for the following parameters:
@@ -279,26 +280,3 @@ HDF5 version {version} {version}
print('-' * 80)
raise RuntimeError("HDF5 install check failed")
shutil.rmtree(checkdir)
-
- def url_for_version(self, version):
- # If we have a specific URL for this version, return it.
- version_urls = self.version_urls()
- if version in version_urls:
- return version_urls[version]
-
- base_url = "http://www.hdfgroup.org/ftp/HDF5/releases"
-
- if version == Version("1.2.2"):
- return "{0}/hdf5-{1}.tar.gz".format(base_url, version)
- elif version < Version("1.6.6"):
- return "{0}/hdf5-{1}/hdf5-{2}.tar.gz".format(
- base_url, version.up_to(2), version)
- elif version < Version("1.7"):
- return "{0}/hdf5-{1}/hdf5-{2}/src/hdf5-{2}.tar.gz".format(
- base_url, version.up_to(2), version)
- elif version < Version("1.10"):
- return "{0}/hdf5-{1}/src/hdf5-{1}.tar.gz".format(
- base_url, version)
- else:
- return "{0}/hdf5-{1}/hdf5-{2}/src/hdf5-{2}.tar.gz".format(
- base_url, version.up_to(2), version)
diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py
index dfad9adb48..711daa88f8 100644
--- a/var/spack/repos/builtin/packages/hepmc/package.py
+++ b/var/spack/repos/builtin/packages/hepmc/package.py
@@ -26,7 +26,7 @@
from spack import *
-class Hepmc(Package):
+class Hepmc(CMakePackage):
"""The HepMC package is an object oriented, C++ event record for
High Energy Physics Monte Carlo generators and simulation."""
@@ -39,17 +39,10 @@ class Hepmc(Package):
version('2.06.06', '102e5503537a3ecd6ea6f466aa5bc4ae')
version('2.06.05', '2a4a2a945adf26474b8bdccf4f881d9c')
- depends_on("cmake", type='build')
+ depends_on('cmake@2.6:', type='build')
- def install(self, spec, prefix):
- build_directory = join_path(self.stage.path, 'spack-build')
- source_directory = self.stage.source_path
- options = [source_directory]
- options.append('-Dmomentum:STRING=GEV')
- options.append('-Dlength:STRING=MM')
- options.extend(std_cmake_args)
-
- with working_dir(build_directory, create=True):
- cmake(*options)
- make()
- make('install')
+ def cmake_args(self):
+ return [
+ '-Dmomentum:STRING=GEV',
+ '-Dlength:STRING=MM',
+ ]
diff --git a/var/spack/repos/builtin/packages/hpccg/package.py b/var/spack/repos/builtin/packages/hpccg/package.py
new file mode 100644
index 0000000000..7e9514ce0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpccg/package.py
@@ -0,0 +1,77 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Hpccg(MakefilePackage):
+ """Proxy Application. Intended to be the 'best approximation
+ to an unstructured implicit finite element or finite volume
+ application in 800 lines or fewer.'
+ """
+
+ homepage = "https://mantevo.org/about/applications/"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/HPCCG/HPCCG-1.0.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.0', '2e99da1a89de5ef0844da5e6ffbf39dc')
+
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('openmp', default=True, description='Build with OpenMP support')
+
+ # Optional dependencies
+ depends_on('mpi', when='+mpi')
+
+ @property
+ def build_targets(self):
+ targets = []
+
+ if '+mpi' in self.spec:
+ targets.append('CXX={0}'.format(self.spec['mpi'].mpicxx))
+ targets.append('LINKER={0}'.format(self.spec['mpi'].mpicxx))
+ targets.append('USE_MPI=-DUSING_MPI')
+ else:
+ targets.append('CXX=c++')
+ targets.append('LINKER=c++')
+
+ if '+openmp' in self.spec:
+ targets.append('USE_OMP=-DUSING_OMP')
+ targets.append('OMP_FLAGS={0}'.format(self.compiler.openmp_flag))
+
+ # Remove Compiler Specific Optimization Flags
+ if '%gcc' not in self.spec:
+ targets.append('CPP_OPT_FLAGS=')
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('test_HPCCG', prefix.bin)
+ install('README', prefix.doc)
+ install('weakScalingRunScript', prefix.bin)
+ install('strongScalingRunScript', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py
new file mode 100644
index 0000000000..58644db11e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpx/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2017, Los Alamos National Security, LLC
+# Produced at the Los Alamos National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Hpx(CMakePackage):
+ """C++ runtime system for parallel and distributed applications."""
+
+ homepage = "http://stellar.cct.lsu.edu/tag/hpx/"
+ url = "http://stellar.cct.lsu.edu/files/hpx_1.0.0.tar.gz"
+
+ version('1.0.0', '4983e7c6402417ec794d40343e36e417')
+
+ depends_on('boost@1.55.0:')
+ depends_on('hwloc@1.6:')
+
+ def cmake_args(self):
+ args = ['-DHPX_BUILD_EXAMPLES=OFF', '-DHPX_MALLOC=system']
+ return args
diff --git a/var/spack/repos/builtin/packages/hybpiper/package.py b/var/spack/repos/builtin/packages/hybpiper/package.py
new file mode 100644
index 0000000000..a9e49cef90
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hybpiper/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+import os
+
+
+class Hybpiper(Package):
+ """HybPiper was designed for targeted sequence capture, in which DNA
+ sequencing libraries are enriched for gene regions of interest,
+ especially for phylogenetics. HybPiper is a suite of Python scripts
+ that wrap and connect bioinformatics tools in order to extract target
+ sequences from high-throughput DNA sequencing reads"""
+
+ homepage = "https://github.com/mossmatters/HybPiper"
+ url = "https://github.com/mossmatters/HybPiper/archive/v1.2.0.tar.gz"
+
+ version('1.2.0', '0ad78e9ca5e3f23ae0eb6236b07e1780')
+
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('py-biopython', type=('build', 'run'))
+ depends_on('exonerate')
+ depends_on('blast-plus')
+ depends_on('spades')
+ depends_on('parallel')
+ depends_on('bwa')
+ depends_on('samtools')
+
+ def setup_envionment(self, spack_env, run_env):
+ run_env.set('HYBPIPER_HOME', prefix)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ files = glob.iglob("*.py")
+ for file in files:
+ if os.path.isfile(file):
+ install(file, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/icedtea/package.py b/var/spack/repos/builtin/packages/icedtea/package.py
new file mode 100644
index 0000000000..7fd096cc77
--- /dev/null
+++ b/var/spack/repos/builtin/packages/icedtea/package.py
@@ -0,0 +1,181 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Icedtea(AutotoolsPackage):
+ """The IcedTea project provides a harness to build the source code from
+ http://openjdk.java.net using Free Software build tools and adds a number
+ of key features to the upstream OpenJDK codebase. IcedTea requires an
+ existing IcedTea or OpenJDK install to build."""
+
+ homepage = "http://icedtea.classpath.org/wiki/Main_Page"
+ url = "http://icedtea.wildebeest.org/download/source/icedtea-3.4.0.tar.gz"
+
+ version('3.4.0', 'eba66765b92794495e16b83f23640872')
+
+ provides('java@8', when='@3.4.0:3.99.99')
+ variant('X', default=False, description="Build with GUI support.")
+ variant('shenandoah', default=False,
+ description="Build with the shenandoah gc. Only for version 3+")
+
+ depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('gmake', type='build')
+ depends_on('cups')
+ depends_on('jdk', type='build')
+ # X11 deps required for building even when headless
+ depends_on('libx11', when='~X', type='build')
+ depends_on('xproto', when='~X', type='build')
+ depends_on('libxext', when='~X', type='build')
+ depends_on('libxtst', when='~X', type='build')
+ depends_on('libxi', when='~X', type='build')
+ depends_on('libxt', when='~X', type='build')
+ depends_on('libxinerama', when='~X', type='build')
+ depends_on('libxrender', when='~X', type='build')
+ depends_on('libxcomposite', when='~X', type='build')
+ depends_on('libxau', when='~X', type='build')
+ depends_on('libxdmcp', when='~X', type='build')
+ depends_on('gtkplus+X', when='~X', type='build')
+
+ depends_on('libx11', when='+X')
+ depends_on('xproto', when='+X')
+ depends_on('libxext', when='+X')
+ depends_on('libxtst', when='+X')
+ depends_on('libxi', when='+X')
+ depends_on('libxt', when='+X')
+ depends_on('libxinerama', when='+X')
+ depends_on('libxrender', when='+X')
+ depends_on('libxcomposite', when='+X')
+ depends_on('libxau', when='+X')
+ depends_on('libxdmcp', when='+X')
+ depends_on('gtkplus+X', when='+X')
+
+ depends_on('freetype@2:')
+ depends_on('wget', type='build')
+ depends_on('giflib')
+ depends_on('libpng')
+ depends_on('jpeg')
+ depends_on('lcms')
+ depends_on('zlib')
+ depends_on('alsa-lib')
+
+ force_autoreconf = True
+
+ resource(name='corba', placement='corba_src',
+ sha512=('f0579608ab1342df231c4542dab1c40e648cda8e9780ea584fd476'
+ '79b07c93508cbfa85f0406d8aa8b9d528fc5bd99c9d41469568fbec'
+ '41a6456a13d914ac71c'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/corba.tar.xz',
+ when='@3.4.0')
+ resource(name='hotspot', placement='hotspot_src',
+ sha512=('29bc953d283f0a0a464fa150e2c4d71b0adaa29da67246843d230f3'
+ '70b5a20227fb40ef6a7e3b93f10b0cdec18b0cd2bbbceeaea3c9db4'
+ 'd64c158cc23babbad2'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/hotspot.tar.xz',
+ when='@3.4.0')
+ resource(name='jaxp', placement='jaxp_src',
+ sha512=('ef3ed47815e6d15f40c5947fee1058c252ac673f70b6bf7c30505fa'
+ 'a12fa5cbab8168d816abe7791dc88acec457744883db4c0af23fb21'
+ '66bbb709e870685bcd'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxp.tar.xz',
+ when='@3.4.0')
+ resource(name='jaxws', placement='jaxws_src',
+ sha512=('867cac2919e715190596ae4f73fa42c6cba839ba48ae940adcef20a'
+ 'bfb23ffeeaa2501c4aedc214b3595bc4e2a4eea9fa7e7cac62a3420'
+ 'a11fb30a1f7edc9254'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jaxws.tar.xz',
+ when='@3.4.0')
+ resource(name='jdk', placement='jdk_src',
+ sha512=('180d7b4435e465d68ed0b420b42dddc598c872075e225b8885ae183'
+ '3fa4ab5034ce5083c4dfba516a21b2d472321b37a01ba92793e17c7'
+ '8e9fddb1e254f12065'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/jdk.tar.xz',
+ when='@3.4.0')
+ resource(name='langtools', placement='langtools_src',
+ sha512=('0663f40b07de88cd7939557bf7fdb92077d7ca2132e369caefa82db'
+ '887261ea02102864d33ec0fef3b2c80dd366d25dbc1a95144139498'
+ 'be581dfabe913e4312'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/langtools.tar.xz',
+ when='@3.4.0')
+ resource(name='openjdk', placement='openjdk_src',
+ sha512=('f3cca223bd39c0202dd1a65a38ca17024b6cb5c82d833946ec1b7d2'
+ '8d205833b4dd2dadde505a1c2384e3b28ff0d21a4f175e064b8ac82'
+ 'aa8a07508e53cdc722'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/openjdk.tar.xz',
+ when='@3.4.0')
+ resource(name='nashorn', placement='nashorn_src',
+ sha512=('79b5095bab447d1911696bc1e328fb72c08764c0139cab14a28c0f6'
+ 'c2e49a2d96bb06fbbb85523b2586672cb0f13709c3158823d5ac3f3'
+ 'fe3f0f88402d3cb246'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/nashorn.tar.xz',
+ when='@3.4.0')
+ resource(name='shenandoah', placement='shenandoah_src',
+ sha512=('0f085e87c63679314ef322b3f4b854792d46539d5530dd75a7fd45b'
+ '8b6d663f58469be2808ea5fb4bf31f6c5369cb78f28e1599f748e19'
+ '31ba7040136306eb20'),
+ url='http://icedtea.wildebeest.org/download/drops/icedtea8/3.4.0/shenandoah.tar.xz',
+ when='@3.4.0')
+
+ def configure_args(self):
+ os.environ['POTENTIAL_CXX'] = os.environ['CXX']
+ os.environ['POTENTIAL_CC'] = os.environ['CC']
+ os.environ['WGET'] = self.spec['wget'].command.path
+ args = []
+ if '~X' in self.spec:
+ args.append('--enable-headless')
+ if '+shenandoah' in self.spec:
+ args.append('--with-hotspot-build=shenandoah')
+ args.append('--with-hotspot-src-zip=' + self.stage[9].archive_file)
+ args.append('--with-hotspot-checksum=no')
+ else:
+ args.append('--with-hotspot-src-zip=' + self.stage[2].archive_file)
+ args.append('--with-hotspot-checksum=no')
+ args += [
+ '--with-corba-src-zip=' + self.stage[1].archive_file,
+ '--with-cobra-checksum=no',
+ '--with-jaxp-src-zip=' + self.stage[3].archive_file,
+ '--with-jaxp-checksum=no',
+ '--with-jaxws-src-zip=' + self.stage[4].archive_file,
+ '--with-jaxws-checksum=no',
+ '--with-jdk-src-zip=' + self.stage[5].archive_file,
+ '--with-jdk-checksum=no',
+ '--with-langtools-src-zip=' + self.stage[6].archive_file,
+ '--with-langtools-checksum=no',
+ '--with-openjdk-src-zip=' + self.stage[7].archive_file,
+ '--with-openjdk-checksum=no',
+ '--with-nashorn-src-zip=' + self.stage[8].archive_file,
+ '--with-nashorn-checksum=no', '--disable-maintainer-mode'
+ '--disable-downloading', '--disable-system-pcsc',
+ '--disable-system-sctp', '--disable-system-kerberos',
+ '--with-jdk-home=' + self.spec['jdk'].prefix
+ ]
+ return args
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('JAVA_HOME', self.spec.prefix)
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ spack_env.set('JAVA_HOME', self.prefix)
diff --git a/var/spack/repos/builtin/packages/icet/package.py b/var/spack/repos/builtin/packages/icet/package.py
index 126375c6c2..b2ff89ac69 100644
--- a/var/spack/repos/builtin/packages/icet/package.py
+++ b/var/spack/repos/builtin/packages/icet/package.py
@@ -40,3 +40,7 @@ class Icet(CMakePackage):
def cmake_args(self):
return ['-DICET_USE_OPENGL:BOOL=OFF']
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ """Work-around for ill-placed CMake modules"""
+ spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/idba/package.py b/var/spack/repos/builtin/packages/idba/package.py
new file mode 100644
index 0000000000..25a3e029aa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/idba/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Idba(AutotoolsPackage):
+ """IDBA is a practical iterative De Bruijn Graph De Novo Assembler for
+ sequence assembly in bioinfomatics."""
+
+ homepage = "http://i.cs.hku.hk/~alse/hkubrg/projects/idba/"
+ url = "https://github.com/loneknightpy/idba/archive/1.1.3.tar.gz"
+
+ version('1.1.3', '303d9b4af7a7498b56ac9698028b4e15')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
diff --git a/var/spack/repos/builtin/packages/igraph/package.py b/var/spack/repos/builtin/packages/igraph/package.py
new file mode 100644
index 0000000000..030ef1f604
--- /dev/null
+++ b/var/spack/repos/builtin/packages/igraph/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Igraph(AutotoolsPackage):
+ """igraph is a library for creating and manipulating graphs."""
+
+ homepage = "http://igraph.org/"
+ url = "https://github.com/igraph/igraph/releases/download/0.7.1/igraph-0.7.1.tar.gz"
+
+ version('0.7.1', '4f6e7c16b45fce8ed423516a9786e4e8')
+
+ depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/impute2/package.py b/var/spack/repos/builtin/packages/impute2/package.py
new file mode 100644
index 0000000000..b4b0cb20d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/impute2/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Impute2(Package):
+ """IMPUTE2 is a genotype imputation and haplotype phasing program based on
+ ideas from Howie et al. 2009."""
+
+ homepage = "https://mathgen.stats.ox.ac.uk/impute/impute_v2.html#home"
+ url = "https://mathgen.stats.ox.ac.uk/impute/impute_v2.3.2_x86_64_dynamic.tgz"
+
+ version('2.3.2', '0e1bafb8f63eb5cf9ae02ab761af58aa')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('impute2', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/infernal/package.py b/var/spack/repos/builtin/packages/infernal/package.py
new file mode 100644
index 0000000000..8719d0a227
--- /dev/null
+++ b/var/spack/repos/builtin/packages/infernal/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Infernal(AutotoolsPackage):
+ """Infernal (INFERence of RNA ALignment) is for searching DNA sequence
+ databases for RNA structure and sequence similarities. It is an
+ implementation of a special case of profile stochastic context-free
+ grammars called covariance models (CMs)."""
+
+ homepage = "http://eddylab.org/infernal/"
+ url = "http://eddylab.org/infernal/infernal-1.1.2.tar.gz"
+
+ version('1.1.2', 'a73e6bbab0c4b79af2cc4c0aabb8accc')
+
+ variant('mpi', default=False, description='Enable MPI parallel support')
+
+ depends_on('mpi', when='+mpi')
+
+ def configure_args(self):
+ args = []
+ if '+mpi' in self.spec:
+ args.append('--enable-mpi')
+ else:
+ args.append('--disable-mpi')
+ return args
diff --git a/var/spack/repos/builtin/packages/intel-daal/package.py b/var/spack/repos/builtin/packages/intel-daal/package.py
index 7fb6371e7e..1713218ad3 100644
--- a/var/spack/repos/builtin/packages/intel-daal/package.py
+++ b/var/spack/repos/builtin/packages/intel-daal/package.py
@@ -22,18 +22,14 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
import os
-from spack.pkg.builtin.intel import IntelInstaller
-
+from spack import *
+from spack.environment import EnvironmentModifications
-class IntelDaal(IntelInstaller):
- """Intel Data Analytics Acceleration Library.
- Note: You will have to add the download file to a
- mirror so that Spack can find it. For instructions on how to set up a
- mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+class IntelDaal(IntelPackage):
+ """Intel Data Analytics Acceleration Library."""
homepage = "https://software.intel.com/en-us/daal"
@@ -52,11 +48,35 @@ class IntelDaal(IntelInstaller):
provides('daal')
- def install(self, spec, prefix):
+ @property
+ def license_required(self):
+ # The Intel libraries are provided without requiring a license as of
+ # version 2017.2. Trying to specify the license will fail. See:
+ # https://software.intel.com/en-us/articles/free-ipsxe-tools-and-libraries
+ if self.version >= Version('2017.2'):
+ return False
+ else:
+ return True
+
+ def setup_environment(self, spack_env, run_env):
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
- self.intel_prefix = os.path.join(prefix, "pkg")
- IntelInstaller.install(self, spec, prefix)
+ $ source daal/bin/daalvars.sh intel64
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ daalvars = os.path.join(self.prefix.daal.bin, 'daalvars.sh')
- daal_dir = os.path.join(self.intel_prefix, "daal")
- for f in os.listdir(daal_dir):
- os.symlink(os.path.join(daal_dir, f), os.path.join(self.prefix, f))
+ if os.path.isfile(daalvars):
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ daalvars, 'intel64'))
diff --git a/var/spack/repos/builtin/packages/intel-ipp/package.py b/var/spack/repos/builtin/packages/intel-ipp/package.py
index c9cfa609c8..4ca20a9906 100644
--- a/var/spack/repos/builtin/packages/intel-ipp/package.py
+++ b/var/spack/repos/builtin/packages/intel-ipp/package.py
@@ -22,18 +22,14 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
import os
-from spack.pkg.builtin.intel import IntelInstaller
-
+from spack import *
+from spack.environment import EnvironmentModifications
-class IntelIpp(IntelInstaller):
- """Intel Integrated Performance Primitives.
- Note: You will have to add the download file to a
- mirror so that Spack can find it. For instructions on how to set up a
- mirror, see http://spack.readthedocs.io/en/latest/mirrors.html"""
+class IntelIpp(IntelPackage):
+ """Intel Integrated Performance Primitives."""
homepage = "https://software.intel.com/en-us/intel-ipp"
@@ -50,11 +46,35 @@ class IntelIpp(IntelInstaller):
provides('ipp')
- def install(self, spec, prefix):
+ @property
+ def license_required(self):
+ # The Intel libraries are provided without requiring a license as of
+ # version 2017.2. Trying to specify the license will fail. See:
+ # https://software.intel.com/en-us/articles/free-ipsxe-tools-and-libraries
+ if self.version >= Version('2017.2'):
+ return False
+ else:
+ return True
+
+ def setup_environment(self, spack_env, run_env):
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
- self.intel_prefix = os.path.join(prefix, "pkg")
- IntelInstaller.install(self, spec, prefix)
+ $ source ipp/bin/ippvars.sh intel64
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ ippvars = os.path.join(self.prefix.ipp.bin, 'ippvars.sh')
- ipp_dir = os.path.join(self.intel_prefix, "ipp")
- for f in os.listdir(ipp_dir):
- os.symlink(os.path.join(ipp_dir, f), os.path.join(self.prefix, f))
+ if os.path.isfile(ippvars):
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ ippvars, 'intel64'))
diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py
index 4eaf50dea5..1cc3c00af2 100644
--- a/var/spack/repos/builtin/packages/intel-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-mkl/package.py
@@ -22,13 +22,13 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
import os
-from spack.pkg.builtin.intel import IntelInstaller
+from spack import *
+from spack.environment import EnvironmentModifications
-class IntelMkl(IntelInstaller):
+class IntelMkl(IntelPackage):
"""Intel Math Kernel Library."""
homepage = "https://software.intel.com/en-us/intel-mkl"
@@ -50,13 +50,22 @@ class IntelMkl(IntelInstaller):
variant('ilp64', default=False, description='64 bit integers')
variant('openmp', default=False, description='OpenMP multithreading layer')
- # virtual dependency
provides('blas')
provides('lapack')
provides('scalapack')
provides('mkl')
@property
+ def license_required(self):
+ # The Intel libraries are provided without requiring a license as of
+ # version 2017.2. Trying to specify the license will fail. See:
+ # https://software.intel.com/en-us/articles/free-ipsxe-tools-and-libraries
+ if self.version >= Version('2017.2'):
+ return False
+ else:
+ return True
+
+ @property
def blas_libs(self):
spec = self.spec
prefix = self.prefix
@@ -69,15 +78,27 @@ class IntelMkl(IntelInstaller):
mkl_threading = ['libmkl_sequential']
+ omp_libs = LibraryList([])
+
if '+openmp' in spec:
if '%intel' in spec:
- mkl_threading = ['libmkl_intel_thread', 'libiomp5']
- else:
+ mkl_threading = ['libmkl_intel_thread']
+ omp_threading = ['libiomp5']
+
+ omp_root = prefix.compilers_and_libraries.linux.lib.intel64
+ omp_libs = find_libraries(
+ omp_threading, root=omp_root, shared=shared)
+ elif '%gcc' in spec:
mkl_threading = ['libmkl_gnu_thread']
+ gcc = Executable(self.compiler.cc)
+ libgomp = gcc('--print-file-name', 'libgomp.{0}'.format(
+ dso_suffix), output=str)
+ omp_libs = LibraryList(libgomp)
+
# TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
- mkl_root = join_path(prefix.lib, 'intel64')
+ mkl_root = prefix.compilers_and_libraries.linux.mkl.lib.intel64
mkl_libs = find_libraries(
mkl_integer + ['libmkl_core'] + mkl_threading,
@@ -91,7 +112,7 @@ class IntelMkl(IntelInstaller):
shared=shared
)
- return mkl_libs + system_libs
+ return mkl_libs + omp_libs + system_libs
@property
def lapack_libs(self):
@@ -120,30 +141,46 @@ class IntelMkl(IntelInstaller):
elif '^intel-mpi' in root:
libnames.append('libmkl_blacs_intelmpi')
else:
- raise InstallError("No MPI found for scalapack")
+ raise InstallError('No MPI found for scalapack')
- shared = True if '+shared' in self.spec else False
integer = 'ilp64' if '+ilp64' in self.spec else 'lp64'
+ mkl_root = self.prefix.compilers_and_libraries.linux.mkl.lib.intel64
+ shared = True if '+shared' in self.spec else False
+
libs = find_libraries(
['{0}_{1}'.format(l, integer) for l in libnames],
- root=join_path(self.prefix.lib, 'intel64'),
+ root=mkl_root,
shared=shared
)
- return libs
-
- def install(self, spec, prefix):
- self.intel_prefix = os.path.join(prefix, "pkg")
- IntelInstaller.install(self, spec, prefix)
- mkl_dir = os.path.join(self.intel_prefix, "mkl")
- for f in os.listdir(mkl_dir):
- os.symlink(os.path.join(mkl_dir, f), os.path.join(self.prefix, f))
+ return libs
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up MKLROOT for everyone using MKL package
+ mkl_root = self.prefix.compilers_and_libraries.linux.mkl.lib.intel64
+
spack_env.set('MKLROOT', self.prefix)
- spack_env.append_path('SPACK_COMPILER_EXTRA_RPATHS',
- join_path(self.prefix.lib, 'intel64'))
+ spack_env.append_path('SPACK_COMPILER_EXTRA_RPATHS', mkl_root)
def setup_environment(self, spack_env, run_env):
- run_env.set('MKLROOT', self.prefix)
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
+
+ $ source mkl/bin/mklvars.sh intel64
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ mklvars = os.path.join(self.prefix.mkl.bin, 'mklvars.sh')
+
+ if os.path.isfile(mklvars):
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ mklvars, 'intel64'))
diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py
index d0167552b0..b9aaf12c1c 100644
--- a/var/spack/repos/builtin/packages/intel-mpi/package.py
+++ b/var/spack/repos/builtin/packages/intel-mpi/package.py
@@ -22,30 +22,41 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
import os
-from spack.pkg.builtin.intel import IntelInstaller
+from spack import *
+from spack.environment import EnvironmentModifications
-class IntelMpi(IntelInstaller):
+class IntelMpi(IntelPackage):
"""Intel MPI"""
homepage = "https://software.intel.com/en-us/intel-mpi-library"
- version('2017.3', '721ecd5f6afa385e038777e5b5361dfb',
+ version('2017.3.196', '721ecd5f6afa385e038777e5b5361dfb',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11595/l_mpi_2017.3.196.tgz')
- version('2017.2', 'b6c2e62c3fb9b1558ede72ccf72cf1d6',
+ version('2017.2.174', 'b6c2e62c3fb9b1558ede72ccf72cf1d6',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11334/l_mpi_2017.2.174.tgz')
- version('2017.1', 'd5e941ac2bcf7c5576f85f6bcfee4c18',
+ version('2017.1.132', 'd5e941ac2bcf7c5576f85f6bcfee4c18',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11014/l_mpi_2017.1.132.tgz')
- version('5.1.3', '4316e78533a932081b1a86368e890800',
+ version('5.1.3.223', '4316e78533a932081b1a86368e890800',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9278/l_mpi_p_5.1.3.223.tgz')
provides('mpi')
@property
+ def license_required(self):
+ # The Intel libraries are provided without requiring a license as of
+ # version 2017.2. Trying to specify the license will fail. See:
+ # https://software.intel.com/en-us/articles/free-ipsxe-tools-and-libraries
+ if self.version >= Version('2017.2'):
+ return False
+ else:
+ return True
+
+ @property
def mpi_libs(self):
+ mpi_root = self.prefix.compilers_and_libraries.linux.mpi.lib64
query_parameters = self.spec.last_query.extra_parameters
libraries = ['libmpifort', 'libmpi']
@@ -53,19 +64,15 @@ class IntelMpi(IntelInstaller):
libraries = ['libmpicxx'] + libraries
return find_libraries(
- libraries, root=self.prefix.lib64, shared=True, recurse=True
+ libraries, root=mpi_root, shared=True, recurse=True
)
@property
def mpi_headers(self):
# recurse from self.prefix will find too many things for all the
# supported sub-architectures like 'mic'
- return find_headers(
- 'mpi', root=self.prefix.include64, recurse=False)
-
- def install(self, spec, prefix):
- self.intel_prefix = prefix
- IntelInstaller.install(self, spec, prefix)
+ mpi_root = self.prefix.compilers_and_libraries.linux.mpi.include64
+ return find_headers('mpi', root=mpi_root, recurse=False)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.set('I_MPI_CC', spack_cc)
@@ -75,15 +82,52 @@ class IntelMpi(IntelInstaller):
spack_env.set('I_MPI_FC', spack_fc)
def setup_dependent_package(self, module, dep_spec):
- # Check for presence of bin64 or bin directory
- if os.path.isdir(self.prefix.bin):
- bindir = self.prefix.bin
- elif os.path.isdir(self.prefix.bin64):
- bindir = self.prefix.bin64
+ # Intel comes with 2 different flavors of MPI wrappers:
+ #
+ # * mpiicc, mpiicpc, and mpifort are hardcoded to wrap around
+ # the Intel compilers.
+ # * mpicc, mpicxx, mpif90, and mpif77 allow you to set which
+ # compilers to wrap using I_MPI_CC and friends. By default,
+ # wraps around the GCC compilers.
+ #
+ # In theory, these should be equivalent as long as I_MPI_CC
+ # and friends are set to point to the Intel compilers, but in
+ # practice, mpicc fails to compile some applications while
+ # mpiicc works.
+ bindir = self.prefix.compilers_and_libraries.linux.mpi.intel64.bin
+
+ if self.compiler.name == 'intel':
+ self.spec.mpicc = bindir.mpiicc
+ self.spec.mpicxx = bindir.mpiicpc
+ self.spec.mpifc = bindir.mpiifort
+ self.spec.mpif77 = bindir.mpiifort
else:
- raise RuntimeError('No suitable bindir found')
+ self.spec.mpicc = bindir.mpicc
+ self.spec.mpicxx = bindir.mpicxx
+ self.spec.mpifc = bindir.mpif90
+ self.spec.mpif77 = bindir.mpif77
+
+ def setup_environment(self, spack_env, run_env):
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
+
+ $ source compilers_and_libraries/linux/mpi/intel64/bin/mpivars.sh
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ mpivars = os.path.join(
+ self.prefix.compilers_and_libraries.linux.mpi.intel64.bin,
+ 'mpivars.sh')
- self.spec.mpicc = join_path(bindir, 'mpicc')
- self.spec.mpicxx = join_path(bindir, 'mpicxx')
- self.spec.mpifc = join_path(bindir, 'mpif90')
- self.spec.mpif77 = join_path(bindir, 'mpif77')
+ if os.path.isfile(mpivars):
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ mpivars))
diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
index 531b29b986..12a3f15f26 100644
--- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
+++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py
@@ -22,30 +22,29 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
+import glob
import os
-import re
-from spack.pkg.builtin.intel import IntelInstaller, filter_pick, \
- get_all_components
+from spack import *
+from spack.environment import EnvironmentModifications
-class IntelParallelStudio(IntelInstaller):
+class IntelParallelStudio(IntelPackage):
"""Intel Parallel Studio."""
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
version('professional.2017.4', '27398416078e1e4005afced3e9a6df7e',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11537/parallel_studio_xe_2017_update4.tgz')
- version('cluster.2017.4', '27398416078e1e4005afced3e9a6df7e',
+ version('cluster.2017.4', '27398416078e1e4005afced3e9a6df7e',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11537/parallel_studio_xe_2017_update4.tgz')
- version('composer.2017.4', 'd03d351809e182c481dc65e07376d9a2',
+ version('composer.2017.4', 'd03d351809e182c481dc65e07376d9a2',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
version('professional.2017.3', '691874735458d3e88fe0bcca4438b2a9',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11460/parallel_studio_xe_2017_update3.tgz')
- version('cluster.2017.3', '691874735458d3e88fe0bcca4438b2a9',
+ version('cluster.2017.3', '691874735458d3e88fe0bcca4438b2a9',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11460/parallel_studio_xe_2017_update3.tgz')
- version('composer.2017.3', '52344df122c17ddff3687f84ceb21623',
+ version('composer.2017.3', '52344df122c17ddff3687f84ceb21623',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
version('professional.2017.2', '70e54b33d940a1609ff1d35d3c56e3b3',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11298/parallel_studio_xe_2017_update2.tgz')
@@ -90,34 +89,64 @@ class IntelParallelStudio(IntelInstaller):
version('composer.2015.6', 'da9f8600c18d43d58fba0488844f79c9',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8432/l_compxe_2015.6.233.tgz')
- variant('rpath', default=True, description="Add rpath to .cfg files")
+ # Generic Variants
+ variant('rpath', default=True,
+ description='Add rpath to .cfg files')
variant('newdtags', default=False,
- description="Allow use of --enable-new-dtags in MPI wrappers")
- variant('all', default=False,
- description="Install all files with the requested edition")
- variant('mpi', default=True,
- description="Install the Intel MPI library and ITAC tool")
- variant('mkl', default=True, description="Install the Intel MKL library")
- variant('daal',
- default=True, description="Install the Intel DAAL libraries")
- variant('ipp', default=True, description="Install the Intel IPP libraries")
- variant('tools', default=True, description="Install the Intel Advisor, "
- "VTune Amplifier, and Inspector tools")
-
- variant('shared', default=True, description='Builds shared library')
- variant('ilp64', default=False, description='64 bit integers')
- variant('openmp', default=False, description='OpenMP multithreading layer')
-
- provides('mpi', when='@cluster.0:cluster.9999+mpi')
- provides('mkl', when='+mkl')
+ description='Allow use of --enable-new-dtags in MPI wrappers')
+ variant('shared', default=True,
+ description='Builds shared library')
+ variant('ilp64', default=False,
+ description='64 bit integers')
+ variant('openmp', default=False,
+ description='OpenMP multithreading layer')
+
+ # Components available in all editions
+ variant('daal', default=True,
+ description='Install the Intel DAAL libraries')
+ variant('gdb', default=False,
+ description='Install the Intel Debugger for Heterogeneous Compute')
+ variant('ipp', default=True,
+ description='Install the Intel IPP libraries')
+ variant('mkl', default=True,
+ description='Install the Intel MKL library')
+ variant('mpi', default=True,
+ description='Install the Intel MPI library')
+ variant('tbb', default=True,
+ description='Install the Intel TBB libraries')
+
+ # Components only available in the Professional and Cluster Editions
+ variant('advisor', default=False,
+ description='Install the Intel Advisor')
+ variant('clck', default=False,
+ description='Install the Intel Cluster Checker')
+ variant('inspector', default=False,
+ description='Install the Intel Inspector')
+ variant('itac', default=False,
+ description='Install the Intel Trace Analyzer and Collector')
+ variant('vtune', default=False,
+ description='Install the Intel VTune Amplifier XE')
+
provides('daal', when='+daal')
+
provides('ipp', when='+ipp')
- # virtual dependency
- provides('blas', when='+mkl')
- provides('lapack', when='+mkl')
+ provides('mkl', when='+mkl')
+ provides('blas', when='+mkl')
+ provides('lapack', when='+mkl')
provides('scalapack', when='+mkl')
+ provides('mpi', when='+mpi')
+
+ provides('tbb', when='+tbb')
+
+ # The following components are not available in the Composer Edition
+ conflicts('+advisor', when='@composer.0:composer.9999')
+ conflicts('+clck', when='@composer.0:composer.9999')
+ conflicts('+inspector', when='@composer.0:composer.9999')
+ conflicts('+itac', when='@composer.0:composer.9999')
+ conflicts('+vtune', when='@composer.0:composer.9999')
+
@property
def blas_libs(self):
spec = self.spec
@@ -131,15 +160,27 @@ class IntelParallelStudio(IntelInstaller):
mkl_threading = ['libmkl_sequential']
+ omp_libs = LibraryList([])
+
if '+openmp' in spec:
if '%intel' in spec:
- mkl_threading = ['libmkl_intel_thread', 'libiomp5']
- else:
+ mkl_threading = ['libmkl_intel_thread']
+ omp_threading = ['libiomp5']
+
+ omp_root = prefix.compilers_and_libraries.linux.lib.intel64
+ omp_libs = find_libraries(
+ omp_threading, root=omp_root, shared=shared)
+ elif '%gcc' in spec:
mkl_threading = ['libmkl_gnu_thread']
+ gcc = Executable(self.compiler.cc)
+ omp_libs = gcc('--print-file-name', 'libgomp.{0}'.format(
+ dso_suffix), output=str)
+ omp_libs = LibraryList(omp_libs)
+
# TODO: TBB threading: ['libmkl_tbb_thread', 'libtbb', 'libstdc++']
- mkl_root = join_path(prefix, 'mkl', 'lib', 'intel64')
+ mkl_root = prefix.compilers_and_libraries.linux.mkl.lib.intel64
mkl_libs = find_libraries(
mkl_integer + ['libmkl_core'] + mkl_threading,
@@ -153,7 +194,7 @@ class IntelParallelStudio(IntelInstaller):
shared=shared
)
- return mkl_libs + system_libs
+ return mkl_libs + omp_libs + system_libs
@property
def lapack_libs(self):
@@ -176,109 +217,182 @@ class IntelParallelStudio(IntelInstaller):
# elif self.spec.satisfies('^intel-parallel-studio'):
# libnames.append('libmkl_blacs_intelmpi')
else:
- raise InstallError("No MPI found for scalapack")
+ raise InstallError('No MPI found for scalapack')
- shared = True if '+shared' in self.spec else False
integer = 'ilp64' if '+ilp64' in self.spec else 'lp64'
+ mkl_root = self.prefix.compilers_and_libraries.linux.mkl.lib.intel64
+ shared = True if '+shared' in self.spec else False
+
libs = find_libraries(
['{0}_{1}'.format(l, integer) for l in libnames],
- root=join_path(self.prefix, 'mkl', 'lib', 'intel64'),
+ root=mkl_root,
shared=shared
)
return libs
- def install(self, spec, prefix):
- base_components = "ALL" # when in doubt, install everything
- mpi_components = ""
- mkl_components = ""
- daal_components = ""
- ipp_components = ""
-
- if not spec.satisfies('+all'):
- all_components = get_all_components()
- regex = '(comp|openmp|intel-tbb|icc|ifort|psxe)'
- base_components = \
- filter_pick(all_components, re.compile(regex).search)
- regex = '(icsxe|imb|mpi|itac|intel-ta|intel-tc|clck)'
- mpi_components = \
- filter_pick(all_components, re.compile(regex).search)
- mkl_components = \
- filter_pick(all_components, re.compile('(mkl)').search)
- daal_components = \
- filter_pick(all_components, re.compile('(daal)').search)
- ipp_components = \
- filter_pick(all_components, re.compile('(ipp)').search)
- regex = '(gdb|vtune|inspector|advisor)'
- tool_components = \
- filter_pick(all_components, re.compile(regex).search)
- components = base_components
-
- if not spec.satisfies('+all'):
- if spec.satisfies('+mpi'):
- components += mpi_components
- if spec.satisfies('+mkl'):
- components += mkl_components
- if spec.satisfies('+daal'):
- components += daal_components
- if spec.satisfies('+ipp'):
- components += ipp_components
- if spec.satisfies('+tools') and (spec.satisfies('@cluster') or
- spec.satisfies('@professional')):
- components += tool_components
-
- if spec.satisfies('+all'):
- self.intel_components = 'ALL'
- else:
- self.intel_components = ';'.join(components)
- IntelInstaller.install(self, spec, prefix)
-
- absbindir = os.path.dirname(
- os.path.realpath(os.path.join(self.prefix.bin, "icc")))
- abslibdir = os.path.dirname(
- os.path.realpath(os.path.join(
- self.prefix.lib, "intel64", "libimf.a")))
-
- os.symlink(self.global_license_file, os.path.join(absbindir,
- "license.lic"))
- if spec.satisfies('+tools') and (spec.satisfies('@cluster') or
- spec.satisfies('@professional')):
- inspector_dir = "inspector_xe/licenses"
- advisor_dir = "advisor_xe/licenses"
- vtune_amplifier_dir = "vtune_amplifier_xe/licenses"
-
- year = int(str(self.version).split('.')[1])
+ @property
+ def mpi_libs(self):
+ mpi_root = self.prefix.compilers_and_libraries.linux.mpi.lib64
+ query_parameters = self.spec.last_query.extra_parameters
+ libraries = ['libmpifort', 'libmpi']
+
+ if 'cxx' in query_parameters:
+ libraries = ['libmpicxx'] + libraries
+
+ return find_libraries(
+ libraries, root=mpi_root, shared=True, recurse=True
+ )
+
+ @property
+ def mpi_headers(self):
+ # recurse from self.prefix will find too many things for all the
+ # supported sub-architectures like 'mic'
+ mpi_root = self.prefix.compilers_and_libraries.linux.mpi.include64
+ return find_headers('mpi', root=mpi_root, recurse=False)
+
+ @property
+ def components(self):
+ spec = self.spec
+ edition = self.version[0]
+
+ # Intel(R) Compilers
+ components = [
+ # Common files
+ 'intel-comp-',
+ 'intel-openmp',
+
+ # C/C++
+ 'intel-icc',
+
+ # Fortran
+ 'intel-ifort',
+
+ # Parallel Studio Documentation and Licensing Files
+ 'intel-psxe',
+ ]
+
+ # Intel(R) Parallel Studio XE Suite Files and Documentation
+ if edition == 'cluster':
+ components.append('intel-icsxe')
+ elif edition == 'professional':
+ components.extend(['intel-ips', 'intel-ipsc', 'intel-ipsf'])
+ elif edition == 'composer':
+ components.extend([
+ 'intel-compxe', 'intel-ccompxe', 'intel-fcompxe'
+ ])
+
+ # Intel(R) Data Analytics Acceleration Library
+ if '+daal' in spec:
+ components.append('intel-daal')
+
+ # Intel(R) Debugger for Heterogeneous Compute
+ if '+gdb' in spec:
+ components.append('intel-gdb')
+
+ # Intel(R) Integrated Performance Primitives
+ if '+ipp' in spec:
+ components.extend(['intel-ipp', 'intel-crypto-ipp'])
+
+ # Intel(R) Math Kernel Library
+ if '+mkl' in spec:
+ components.append('intel-mkl')
+
+ # Intel(R) MPI Library
+ if '+mpi' in spec:
+ components.extend(['intel-mpi', 'intel-mpirt', 'intel-imb'])
+
+ # Intel(R) Threading Building Blocks
+ if '+tbb' in spec:
+ components.append('intel-tbb')
+
+ # Intel(R) Advisor
+ if '+advisor' in spec:
+ components.append('intel-advisor')
+
+ # Intel(R) Cluster Checker
+ if '+clck' in spec:
+ components.append('intel_clck')
+
+ # Intel(R) Inspector
+ if '+inspector' in spec:
+ components.append('intel-inspector')
+
+ # Intel(R) Trace Analyzer and Collector
+ if '+itac' in spec:
+ components.extend(['intel-itac', 'intel-ta', 'intel-tc'])
+
+ # Intel(R) VTune(TM) Amplifier XE
+ if '+vtune' in spec:
+ components.append('intel-vtune-amplifier-xe')
+
+ return components
+
+ @property
+ def bin_dir(self):
+ """The relative path to the bin directory with symlinks resolved."""
+
+ bin_path = os.path.join(self.prefix.bin, 'icc')
+ absolute_path = os.path.realpath(bin_path) # resolve symlinks
+ relative_path = os.path.relpath(absolute_path, self.prefix)
+ return os.path.dirname(relative_path)
+
+ @property
+ def lib_dir(self):
+ """The relative path to the lib directory with symlinks resolved."""
+
+ lib_path = os.path.join(self.prefix.lib, 'intel64', 'libimf.a')
+ absolute_path = os.path.realpath(lib_path) # resolve symlinks
+ relative_path = os.path.relpath(absolute_path, self.prefix)
+ return os.path.dirname(relative_path)
+
+ @property
+ def license_files(self):
+ spec = self.spec
+ year = self.version[1]
+
+ directories = [
+ 'Licenses',
+ self.bin_dir
+ ]
+
+ if '+advisor' in spec:
+ advisor_dir = 'advisor_xe/licenses'
+
+ if year >= 2017:
+ advisor_dir = 'advisor/licenses'
+
+ directories.append(advisor_dir)
+
+ if '+inspector' in spec:
+ inspector_dir = 'inspector_xe/licenses'
+
if year >= 2017:
- inspector_dir = "inspector/licenses"
- advisor_dir = "advisor/licenses"
-
- os.mkdir(os.path.join(self.prefix, inspector_dir))
- os.symlink(self.global_license_file, os.path.join(
- self.prefix, inspector_dir, "license.lic"))
- os.mkdir(os.path.join(self.prefix, advisor_dir))
- os.symlink(self.global_license_file, os.path.join(
- self.prefix, advisor_dir, "license.lic"))
- os.mkdir(os.path.join(self.prefix, vtune_amplifier_dir))
- os.symlink(self.global_license_file, os.path.join(
- self.prefix, vtune_amplifier_dir, "license.lic"))
-
- if (spec.satisfies('+all') or spec.satisfies('+mpi')) and \
- spec.satisfies('@cluster'):
- for ifile in os.listdir(os.path.join(self.prefix, "itac")):
- if os.path.isdir(os.path.join(self.prefix, "itac", ifile)):
- os.symlink(self.global_license_file,
- os.path.join(self.prefix, "itac", ifile,
- "license.lic"))
- if os.path.isdir(os.path.join(self.prefix, "itac",
- ifile, "intel64")):
- os.symlink(self.global_license_file,
- os.path.join(self.prefix, "itac",
- ifile, "intel64",
- "license.lic"))
- if spec.satisfies('~newdtags'):
- wrappers = ["mpif77", "mpif77", "mpif90", "mpif90",
- "mpigcc", "mpigcc", "mpigxx", "mpigxx",
- "mpiicc", "mpiicc", "mpiicpc", "mpiicpc",
- "mpiifort", "mpiifort"]
+ inspector_dir = 'inspector/licenses'
+
+ directories.append(inspector_dir)
+
+ if '+itac' in spec:
+ itac_dir = 'itac_{0}'.format(year)
+
+ directories.append(itac_dir)
+
+ if '+vtune' in spec:
+ vtune_dir = 'vtune_amplifier_xe/licenses'
+
+ directories.append(vtune_dir)
+
+ return [os.path.join(dir, 'license.lic') for dir in directories]
+
+ @run_after('install')
+ def filter_compiler_wrappers(self):
+ spec = self.spec
+
+ if '+mpi' in spec:
+ if '~newdtags' in spec:
+ wrappers = [
+ 'mpif77', 'mpif90', 'mpigcc', 'mpigxx',
+ 'mpiicc', 'mpiicpc', 'mpiifort'
+ ]
wrapper_paths = []
for root, dirs, files in os.walk(spec.prefix):
for name in files:
@@ -286,153 +400,95 @@ class IntelParallelStudio(IntelInstaller):
wrapper_paths.append(os.path.join(spec.prefix,
root, name))
for wrapper in wrapper_paths:
- filter_file(r'-Xlinker --enable-new-dtags', r' ',
- wrapper)
+ filter_file('-Xlinker --enable-new-dtags', ' ',
+ wrapper, string=True)
- if spec.satisfies('+rpath'):
- for compiler_command in ["icc", "icpc", "ifort"]:
- cfgfilename = os.path.join(absbindir, "%s.cfg" %
- compiler_command)
- with open(cfgfilename, "w") as f:
- f.write('-Xlinker -rpath -Xlinker %s\n' % abslibdir)
+ @run_after('install')
+ def rpath_configuration(self):
+ spec = self.spec
- os.symlink(os.path.join(self.prefix.man, "common", "man1"),
- os.path.join(self.prefix.man, "man1"))
+ if '+rpath' in spec:
+ lib_dir = os.path.join(self.prefix, self.lib_dir)
+ for compiler in ['icc', 'icpc', 'ifort']:
+ cfgfilename = os.path.join(
+ self.prefix, self.bin_dir, '{0}.cfg'.format(compiler))
+ with open(cfgfilename, 'w') as f:
+ f.write('-Xlinker -rpath -Xlinker {0}\n'.format(lib_dir))
- def setup_environment(self, spack_env, run_env):
- # TODO: Determine variables needed for the professional edition.
-
- major_ver = self.version[1]
-
- # Remove paths that were guessed but are incorrect for this package.
- run_env.remove_path('LIBRARY_PATH',
- join_path(self.prefix, 'lib'))
- run_env.remove_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib'))
- run_env.remove_path('CPATH',
- join_path(self.prefix, 'include'))
-
- # Add the default set of variables
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'intel64'))
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'intel64'))
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib',
- 'intel64', 'gcc4.4'))
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib',
- 'intel64', 'gcc4.4'))
- run_env.prepend_path('CPATH',
- join_path(self.prefix, 'tbb', 'include'))
- run_env.prepend_path('MIC_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'mic'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'mic'))
- run_env.prepend_path('MIC_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib', 'mic'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib', 'mic'))
-
- if self.spec.satisfies('+all'):
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix,
- 'debugger_{0}'.format(major_ver),
- 'libipt', 'intel64', 'lib'))
- run_env.set('GDBSERVER_MIC',
- join_path(self.prefix,
- 'debugger_{0}'.format(major_ver), 'gdb',
- 'targets', 'mic', 'bin', 'gdbserver'))
- run_env.set('GDB_CROSS',
- join_path(self.prefix,
- 'debugger_{0}'.format(major_ver),
- 'gdb', 'intel64_mic', 'bin', 'gdb-mic'))
- run_env.set('MPM_LAUNCHER',
- join_path(self.prefix,
- 'debugger_{0}'.format(major_ver), 'mpm',
- 'mic',
- 'bin', 'start_mpm.sh'))
- run_env.set('INTEL_PYTHONHOME',
- join_path(self.prefix,
- 'debugger_{0}'.format(major_ver), 'python',
- 'intel64'))
-
- if (self.spec.satisfies('+all') or self.spec.satisfies('+mpi')):
- # Only I_MPI_ROOT is set here because setting the various PATH
- # variables will potentially be in conflict with other MPI
- # environment modules. The I_MPI_ROOT environment variable can be
- # used as a base to set necessary PATH variables for using Intel
- # MPI. It is also possible to set the variables in the modules.yaml
- # file if Intel MPI is the dominant, or only, MPI on a system.
- run_env.set('I_MPI_ROOT', join_path(self.prefix, 'impi'))
-
- if self.spec.satisfies('+all') or self.spec.satisfies('+mkl'):
- spack_env.set('MKLROOT', join_path(self.prefix, 'mkl'))
-
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'mkl', 'lib',
- 'intel64'))
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'mkl', 'lib',
- 'intel64'))
- run_env.prepend_path('CPATH',
- join_path(self.prefix, 'mkl', 'include'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'mkl', 'lib', 'mic'))
- run_env.set('MKLROOT', join_path(self.prefix, 'mkl'))
-
- if self.spec.satisfies('+all') or self.spec.satisfies('+daal'):
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'daal', 'lib',
- 'intel64_lin'))
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'daal', 'lib',
- 'intel64_lin'))
- run_env.prepend_path('CPATH',
- join_path(self.prefix, 'daal', 'include'))
- run_env.prepend_path('CLASSPATH',
- join_path(self.prefix, 'daal', 'lib',
- 'daal.jar'))
- run_env.set('DAALROOT', join_path(self.prefix, 'daal'))
-
- if self.spec.satisfies('+all') or self.spec.satisfies('+ipp'):
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'ipp', 'lib',
- 'intel64'))
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'ipp', 'lib',
- 'intel64'))
- run_env.prepend_path('CPATH',
- join_path(self.prefix, 'ipp', 'include'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'ipp', 'lib', 'mic'))
- run_env.set('IPPROOT', join_path(self.prefix, 'ipp'))
-
- if self.spec.satisfies('+all') or self.spec.satisfies('+tools'):
- run_env.prepend_path('PATH',
- join_path(self.prefix, 'vtune_amplifier_xe',
- 'bin64'))
- run_env.prepend_path('VTUNE_AMPLIFIER_XE_{0}_DIR'.format(
- major_ver),
- join_path(self.prefix, 'vtune_amplifier_xe'))
+ @run_after('install')
+ def fix_psxevars(self):
+ """Newer versions of Intel Parallel Studio have a bug in the
+ ``psxevars.sh`` script."""
+
+ bindir = glob.glob(join_path(
+ self.prefix, 'parallel_studio*', 'bin'))[0]
+
+ filter_file('^SCRIPTPATH=.*', 'SCRIPTPATH={0}'.format(self.prefix),
+ os.path.join(bindir, 'psxevars.sh'),
+ os.path.join(bindir, 'psxevars.csh'))
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
- spack_env.set('I_MPI_CC', spack_cc)
- spack_env.set('I_MPI_CXX', spack_cxx)
- spack_env.set('I_MPI_F77', spack_fc)
- spack_env.set('I_MPI_F90', spack_f77)
- spack_env.set('I_MPI_FC', spack_fc)
+ if '+mpi' in self.spec:
+ spack_env.set('I_MPI_CC', spack_cc)
+ spack_env.set('I_MPI_CXX', spack_cxx)
+ spack_env.set('I_MPI_F77', spack_fc)
+ spack_env.set('I_MPI_F90', spack_f77)
+ spack_env.set('I_MPI_FC', spack_fc)
+
+ # set up MKLROOT for everyone using MKL package
+ if '+mkl' in self.spec:
+ mkl_root = self.prefix.compilers_and_libraries.linux.mkl.lib.intel64 # noqa
+
+ spack_env.set('MKLROOT', self.prefix)
+ spack_env.append_path('SPACK_COMPILER_EXTRA_RPATHS', mkl_root)
def setup_dependent_package(self, module, dep_spec):
- # Check for presence of bin64 or bin directory
- if os.path.isdir(self.prefix.bin):
- bindir = self.prefix.bin
- elif os.path.isdir(self.prefix.bin64):
- bindir = self.prefix.bin64
- else:
- raise RuntimeError('No suitable bindir found')
+ if '+mpi' in self.spec:
+ # Intel comes with 2 different flavors of MPI wrappers:
+ #
+ # * mpiicc, mpiicpc, and mpifort are hardcoded to wrap around
+ # the Intel compilers.
+ # * mpicc, mpicxx, mpif90, and mpif77 allow you to set which
+ # compilers to wrap using I_MPI_CC and friends. By default,
+ # wraps around the GCC compilers.
+ #
+ # In theory, these should be equivalent as long as I_MPI_CC
+ # and friends are set to point to the Intel compilers, but in
+ # practice, mpicc fails to compile some applications while
+ # mpiicc works.
+ bindir = self.prefix.compilers_and_libraries.linux.mpi.intel64.bin
+
+ if self.compiler.name == 'intel':
+ self.spec.mpicc = bindir.mpiicc
+ self.spec.mpicxx = bindir.mpiicpc
+ self.spec.mpifc = bindir.mpiifort
+ self.spec.mpif77 = bindir.mpiifort
+ else:
+ self.spec.mpicc = bindir.mpicc
+ self.spec.mpicxx = bindir.mpicxx
+ self.spec.mpifc = bindir.mpif90
+ self.spec.mpif77 = bindir.mpif77
- self.spec.mpicc = join_path(bindir, 'mpicc')
- self.spec.mpicxx = join_path(bindir, 'mpic++')
- self.spec.mpifc = join_path(bindir, 'mpif90')
- self.spec.mpif77 = join_path(bindir, 'mpif77')
+ def setup_environment(self, spack_env, run_env):
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
+
+ $ source parallel_studio_xe_2017/bin/psxevars.sh intel64
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ psxevars = glob.glob(join_path(
+ self.prefix, 'parallel_studio*', 'bin', 'psxevars.sh'))
+
+ if psxevars:
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ psxevars[0], 'intel64'))
diff --git a/var/spack/repos/builtin/packages/tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py
index a23ac23983..6d5c2bbbb0 100644
--- a/var/spack/repos/builtin/packages/tbb/package.py
+++ b/var/spack/repos/builtin/packages/intel-tbb/package.py
@@ -26,7 +26,7 @@ from spack import *
import glob
-class Tbb(Package):
+class IntelTbb(Package):
"""Widely used C++ template library for task parallelism.
Intel Threading Building Blocks (Intel TBB) lets you easily write parallel
C++ programs that take full advantage of multicore performance, that are
@@ -47,6 +47,8 @@ class Tbb(Package):
version('4.4.3', '80707e277f69d9b20eeebdd7a5f5331137868ce1',
url='https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb44_20160128oss_src_0.tgz')
+ provides('tbb')
+
def coerce_to_spack(self, tbb_build_subdir):
for compiler in ["icc", "gcc", "clang"]:
fs = glob.glob(join_path(tbb_build_subdir,
diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py
index 70c8453d49..8024a5ebea 100644
--- a/var/spack/repos/builtin/packages/intel/package.py
+++ b/var/spack/repos/builtin/packages/intel/package.py
@@ -22,102 +22,13 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-from spack import *
import os
-import re
-
-
-def filter_pick(input_list, regex_filter):
- """Returns the items in input_list that are found in the regex_filter"""
- return [l for l in input_list for m in (regex_filter(l),) if m]
-
-
-def unfilter_pick(input_list, regex_filter):
- """Returns the items in input_list that are not found in the
- regex_filter"""
- return [l for l in input_list for m in (regex_filter(l),) if not m]
-
-
-def get_all_components():
- """Returns a list of all the components associated with the downloaded
- Intel package"""
- all_components = []
- with open("pset/mediaconfig.xml", "r") as f:
- lines = f.readlines()
- for line in lines:
- if line.find('<Abbr>') != -1:
- component = line[line.find('<Abbr>') + 6:line.find('</Abbr>')]
- all_components.append(component)
- return all_components
-
-class IntelInstaller(Package):
- """Base package containing common methods for installing Intel software"""
-
- homepage = "https://software.intel.com/en-us"
- intel_components = "ALL"
- license_comment = '#'
- license_files = ['Licenses/license.lic']
- license_vars = ['INTEL_LICENSE_FILE']
- license_url = \
- 'https://software.intel.com/en-us/articles/intel-license-manager-faq'
+from spack import *
+from spack.environment import EnvironmentModifications
- @property
- def license_required(self):
- # The Intel libraries are provided without requiring a license as of
- # version 2017.2. Trying to specify the license will fail. See
- # https://software.intel.com/en-us/articles/free-mkl
- if (self.spec.satisfies("intel-mkl@2017.2:") or
- self.spec.satisfies("intel-daal@2017.2:") or
- self.spec.satisfies("intel-mpi@2017.2:") or
- self.spec.satisfies("intel-ipp@2017.2:")):
- return False
- return True
- @property
- def global_license_file(self):
- """Returns the path where a global license file should be stored."""
- if not self.license_files:
- return
- return join_path(self.global_license_dir, "intel",
- os.path.basename(self.license_files[0]))
-
- def install(self, spec, prefix):
-
- if not hasattr(self, "intel_prefix"):
- self.intel_prefix = self.prefix
-
- silent_config_filename = 'silent.cfg'
- with open(silent_config_filename, 'w') as f:
- f.write("""
-ACCEPT_EULA=accept
-PSET_MODE=install
-CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes
-PSET_INSTALL_DIR=%s
-NONRPM_DB_DIR=%s
-CONTINUE_WITH_OPTIONAL_ERROR=yes
-COMPONENTS=%s
-""" % (self.intel_prefix, self.intel_prefix, self.intel_components))
-
- # The Intel libraries are provided without requiring a license as of
- # version 2017.2. Trying to specify the license will fail. See
- # https://software.intel.com/en-us/articles/free-mkl
- if not (spec.satisfies("intel-mkl@2017.2:") or
- spec.satisfies("intel-daal@2017.2:") or
- spec.satisfies("intel-mpi@2017.2:") or
- spec.satisfies("intel-ipp@2017.2:")):
- with open(silent_config_filename, 'a') as f:
- f.write("""
-ACTIVATION_LICENSE_FILE=%s
-ACTIVATION_TYPE=license_file
-PHONEHOME_SEND_USAGE_DATA=no
-""" % (self.global_license_file))
-
- install_script = Executable("./install.sh")
- install_script('--silent', silent_config_filename)
-
-
-class Intel(IntelInstaller):
+class Intel(IntelPackage):
"""Intel Compilers."""
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
@@ -126,77 +37,72 @@ class Intel(IntelInstaller):
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
version('17.0.3', '52344df122c17ddff3687f84ceb21623',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
- version('17.0.2', '2891ab1ece43eb61b6ab892f07c47f01',
+ version('17.0.2', '2891ab1ece43eb61b6ab892f07c47f01',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz')
- version('17.0.1', '1f31976931ed8ec424ac7c3ef56f5e85',
+ version('17.0.1', '1f31976931ed8ec424ac7c3ef56f5e85',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz')
- version('17.0.0', 'b67da0065a17a05f110ed1d15c3c6312',
+ version('17.0.0', 'b67da0065a17a05f110ed1d15c3c6312',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9656/parallel_studio_xe_2017_composer_edition.tgz')
- version('16.0.4', '2bc9bfc9be9c1968a6e42efb4378f40e',
+ version('16.0.4', '2bc9bfc9be9c1968a6e42efb4378f40e',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz')
- version('16.0.3', '3208eeabee951fc27579177b593cefe9',
+ version('16.0.3', '3208eeabee951fc27579177b593cefe9',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz')
- version('16.0.2', '1133fb831312eb519f7da897fec223fa',
+ version('16.0.2', '1133fb831312eb519f7da897fec223fa',
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz')
- variant('rpath', default=True, description="Add rpath to .cfg files")
+ variant('rpath', default=True, description='Add rpath to .cfg files')
- def install(self, spec, prefix):
- components = []
- all_components = get_all_components()
- regex = '(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)'
- components = filter_pick(all_components, re.compile(regex).search)
+ components = [
+ # Common files
+ 'intel-comp-',
+ 'intel-openmp',
- self.intel_components = ';'.join(components)
- IntelInstaller.install(self, spec, prefix)
+ # C/C++
+ 'intel-icc',
- absbindir = os.path.split(os.path.realpath(os.path.join(
- self.prefix.bin, "icc")))[0]
- abslibdir = os.path.split(os.path.realpath(os.path.join(
- self.prefix.lib, "intel64", "libimf.a")))[0]
+ # Fortran
+ 'intel-ifort',
+ ]
- # symlink or copy?
- os.symlink(self.global_license_file,
- os.path.join(absbindir, "license.lic"))
-
- if spec.satisfies('+rpath'):
- for compiler_command in ["icc", "icpc", "ifort"]:
- cfgfilename = os.path.join(absbindir, "%s.cfg" %
- compiler_command)
- with open(cfgfilename, "w") as f:
- f.write('-Xlinker -rpath -Xlinker %s\n' % abslibdir)
-
- os.symlink(os.path.join(self.prefix.man, "common", "man1"),
- os.path.join(self.prefix.man, "man1"))
+ @property
+ def license_files(self):
+ return [
+ 'Licenses/license.lic',
+ join_path('compilers_and_libraries', 'linux', 'bin',
+ 'intel64', 'license.lic')
+ ]
+
+ @run_after('install')
+ def rpath_configuration(self):
+ if '+rpath' in self.spec:
+ bin_dir = join_path(self.prefix, 'compilers_and_libraries',
+ 'linux', 'bin', 'intel64')
+ lib_dir = join_path(self.prefix, 'compilers_and_libraries',
+ 'linux', 'compiler', 'lib', 'intel64_lin')
+ for compiler in ['icc', 'icpc', 'ifort']:
+ cfgfilename = join_path(bin_dir, '{0}.cfg'.format(compiler))
+ with open(cfgfilename, 'w') as f:
+ f.write('-Xlinker -rpath -Xlinker {0}\n'.format(lib_dir))
def setup_environment(self, spack_env, run_env):
-
- # Remove paths that were guessed but are incorrect for this package.
- run_env.remove_path('LIBRARY_PATH',
- join_path(self.prefix, 'lib'))
- run_env.remove_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib'))
- run_env.remove_path('CPATH',
- join_path(self.prefix, 'include'))
-
- # Add the default set of variables
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'intel64'))
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'intel64'))
- run_env.prepend_path('LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib',
- 'intel64', 'gcc4.4'))
- run_env.prepend_path('LD_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib',
- 'intel64', 'gcc4.4'))
- run_env.prepend_path('CPATH',
- join_path(self.prefix, 'tbb', 'include'))
- run_env.prepend_path('MIC_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'mic'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'lib', 'mic'))
- run_env.prepend_path('MIC_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib', 'mic'))
- run_env.prepend_path('MIC_LD_LIBRARY_PATH',
- join_path(self.prefix, 'tbb', 'lib', 'mic'))
+ """Adds environment variables to the generated module file.
+
+ These environment variables come from running:
+
+ .. code-block:: console
+
+ $ source bin/compilervars.sh intel64
+ """
+ # NOTE: Spack runs setup_environment twice, once pre-build to set up
+ # the build environment, and once post-installation to determine
+ # the environment variables needed at run-time to add to the module
+ # file. The script we need to source is only present post-installation,
+ # so check for its existence before sourcing.
+ # TODO: At some point we should split setup_environment into
+ # setup_build_environment and setup_run_environment to get around
+ # this problem.
+ compilervars = os.path.join(self.prefix.bin, 'compilervars.sh')
+
+ if os.path.isfile(compilervars):
+ run_env.extend(EnvironmentModifications.from_sourcing_file(
+ compilervars, 'intel64'))
diff --git a/var/spack/repos/builtin/packages/isaac-server/jpeg.patch b/var/spack/repos/builtin/packages/isaac-server/jpeg.patch
new file mode 100644
index 0000000000..ee0a74e769
--- /dev/null
+++ b/var/spack/repos/builtin/packages/isaac-server/jpeg.patch
@@ -0,0 +1,34 @@
+diff --git a/server/src/Broker.cpp b/server/src/Broker.cpp
+index 03d60f4..aab449f 100644
+--- a/server/src/Broker.cpp
++++ b/server/src/Broker.cpp
+@@ -108,14 +108,14 @@ MetaDataClient* Broker::addDataClient()
+ }
+ boolean isaac_jpeg_fill_input_buffer(j_decompress_ptr cinfo)
+ {
+- return true;
++ return TRUE;
+ }
+ void isaac_jpeg_skip_input_data(j_decompress_ptr cinfo,long num_bytes)
+ {
+ }
+ boolean isaac_jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired)
+ {
+- return true;
++ return TRUE;
+ }
+ void isaac_jpeg_term_source(j_decompress_ptr cinfo)
+ {
+diff --git a/server/src/URIImageConnector.cpp b/server/src/URIImageConnector.cpp
+index 0b11800..e843aa4 100644
+--- a/server/src/URIImageConnector.cpp
++++ b/server/src/URIImageConnector.cpp
+@@ -40,7 +40,7 @@ void isaac_init_destination(j_compress_ptr cinfo)
+ }
+ boolean isaac_jpeg_empty_output_buffer(j_compress_ptr cinfo)
+ {
+- return true;
++ return TRUE;
+ }
+ void isaac_jpeg_term_destination(j_compress_ptr cinfo)
+ {
diff --git a/var/spack/repos/builtin/packages/isaac-server/package.py b/var/spack/repos/builtin/packages/isaac-server/package.py
index 75e80959ac..38d96c406e 100644
--- a/var/spack/repos/builtin/packages/isaac-server/package.py
+++ b/var/spack/repos/builtin/packages/isaac-server/package.py
@@ -31,22 +31,24 @@ class IsaacServer(CMakePackage):
homepage = "http://computationalradiationphysics.github.io/isaac/"
url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz"
- @property
- def root_cmakelists_dir(self):
- return join_path(self.stage.source_path, 'server')
-
version('develop', branch='dev',
git='https://github.com/ComputationalRadiationPhysics/isaac.git')
version('master', branch='master',
git='https://github.com/ComputationalRadiationPhysics/isaac.git')
+ version('1.3.1', '7fe075f9af68d05355eaba0e224f20ca')
version('1.3.0', 'c8a794da9bb998ef0e75449bfece1a12')
# variant('gstreamer', default=False, description= \
# 'Support for RTP streams, e.g. to Twitch or Youtube')
depends_on('cmake@3.3:', type='build')
- depends_on('libjpeg-turbo', type='link')
+ depends_on('jpeg', type='link')
depends_on('jansson', type='link')
depends_on('boost@1.56:', type='link')
- depends_on('libwebsockets', type='link')
+ depends_on('libwebsockets@2.1.1:', type='link')
# depends_on('gstreamer@1.0', when='+gstreamer')
+
+ # Until the pull request is merged: https://github.com/ComputationalRadiationPhysics/isaac/pull/70
+ patch('jpeg.patch')
+
+ root_cmakelists_dir = 'server'
diff --git a/var/spack/repos/builtin/packages/isaac/package.py b/var/spack/repos/builtin/packages/isaac/package.py
index e54e00630b..77069e47f4 100644
--- a/var/spack/repos/builtin/packages/isaac/package.py
+++ b/var/spack/repos/builtin/packages/isaac/package.py
@@ -31,14 +31,11 @@ class Isaac(CMakePackage):
homepage = "http://computationalradiationphysics.github.io/isaac/"
url = "https://github.com/ComputationalRadiationPhysics/isaac/archive/v1.3.0.tar.gz"
- @property
- def root_cmakelists_dir(self):
- return join_path(self.stage.source_path, 'lib')
-
version('develop', branch='dev',
git='https://github.com/ComputationalRadiationPhysics/isaac.git')
version('master', branch='master',
git='https://github.com/ComputationalRadiationPhysics/isaac.git')
+ version('1.3.1', '7fe075f9af68d05355eaba0e224f20ca')
version('1.3.0', 'c8a794da9bb998ef0e75449bfece1a12')
variant('cuda', default=True,
@@ -47,10 +44,12 @@ class Isaac(CMakePackage):
# description='Generate kernels via Alpaka, for CPUs or GPUs')
depends_on('cmake@3.3:', type='build')
- depends_on('libjpeg-turbo', type='link')
+ depends_on('jpeg', type='link')
depends_on('jansson', type='link')
depends_on('boost@1.56:', type='link')
depends_on('cuda@7.0:', type='link', when='+cuda')
# depends_on('alpaka', when='+alpaka')
depends_on('icet', type='link')
depends_on('mpi', type='link')
+
+ root_cmakelists_dir = 'lib'
diff --git a/var/spack/repos/builtin/packages/itsx/package.py b/var/spack/repos/builtin/packages/itsx/package.py
new file mode 100644
index 0000000000..41b0d9a6a2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/itsx/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Itsx(Package):
+ """Improved software detection and extraction of ITS1 and ITS2 from
+ ribosomal ITS sequences of fungi and other eukaryotes for use in
+ environmental sequencing"""
+
+ homepage = "http://microbiology.se/software/itsx/"
+ url = "http://microbiology.se/sw/ITSx_1.0.11.tar.gz"
+
+ version('1.0.11', '1bff12f1d5742f19be6ca585e9bf81fa')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('hmmer')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('ITSx', prefix.bin)
+ install_tree('ITSx_db', prefix.bin.ITSx_db)
diff --git a/var/spack/repos/builtin/packages/jasper/package.py b/var/spack/repos/builtin/packages/jasper/package.py
index ed188ca922..bf7bf91995 100644
--- a/var/spack/repos/builtin/packages/jasper/package.py
+++ b/var/spack/repos/builtin/packages/jasper/package.py
@@ -38,7 +38,7 @@ class Jasper(AutotoolsPackage):
variant('debug', default=False,
description='Builds debug versions of the libraries')
- depends_on('libjpeg-turbo')
+ depends_on('jpeg')
# Fixes a bug (still in upstream as of v.1.900.1) where an assertion fails
# when certain JPEG-2000 files with an alpha channel are processed
diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py
index a018529bae..65dad76ce2 100644
--- a/var/spack/repos/builtin/packages/jdk/package.py
+++ b/var/spack/repos/builtin/packages/jdk/package.py
@@ -48,6 +48,8 @@ class Jdk(Package):
# For instructions on how to find the magic URL, see:
# https://gist.github.com/P7h/9741922
# https://linuxconfig.org/how-to-install-java-se-development-kit-on-debian-linux
+ version('8u141-b15', '8cf4c4e00744bfafc023d770cb65328c', curl_options=curl_options,
+ url='http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz')
version('8u131-b11', '75b2cb2249710d822a60f83e28860053', curl_options=curl_options,
url='http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz')
version('8u92-b14', '65a1cc17ea362453a6e0eb4f13be76e4', curl_options=curl_options)
@@ -58,6 +60,9 @@ class Jdk(Package):
# away you go.
version('7u80-b0', '6152f8a7561acf795ca4701daa10a965')
+ provides('java@8', when='@8u0:8u999')
+ provides('java@7', when='@7u0:7u999')
+
def url_for_version(self, version):
url = "http://download.oracle.com/otn-pub/java/jdk/{0}/jdk-{1}-linux-x64.tar.gz"
version = str(version)
diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py
index 3529515d3f..f07e07f866 100644
--- a/var/spack/repos/builtin/packages/jmol/package.py
+++ b/var/spack/repos/builtin/packages/jmol/package.py
@@ -35,7 +35,7 @@ class Jmol(Package):
version('14.8.0', '3c9f4004b9e617ea3ea0b78ab32397ea')
- depends_on('jdk', type='run')
+ depends_on('java', type='run')
def install(self, spec, prefix):
copy_tree('jmol-{0}'.format(self.version), prefix)
diff --git a/var/spack/repos/builtin/packages/jsoncpp/package.py b/var/spack/repos/builtin/packages/jsoncpp/package.py
index d21b948264..1889bffc1e 100644
--- a/var/spack/repos/builtin/packages/jsoncpp/package.py
+++ b/var/spack/repos/builtin/packages/jsoncpp/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Jsoncpp(Package):
+class Jsoncpp(CMakePackage):
"""JsonCpp is a C++ library that allows manipulating JSON values,
including serialization and deserialization to and from strings.
It can also preserve existing comment in unserialization/serialization
@@ -36,14 +36,14 @@ class Jsoncpp(Package):
version('1.7.3', 'aff6bfb5b81d9a28785429faa45839c5')
- depends_on('cmake', type='build')
- # depends_on('python', type='test')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo',
+ 'MinSizeRel', 'Coverage'))
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', '-DBUILD_SHARED_LIBS=ON', *std_cmake_args)
+ depends_on('cmake@3.1:', type='build')
+ # TODO: Add a 'test' deptype
+ # depends_on('python', type='test')
- make()
- if self.run_tests:
- make('test') # Python needed to run tests
- make('install')
+ def cmake_args(self):
+ return ['-DBUILD_SHARED_LIBS=ON']
diff --git a/var/spack/repos/builtin/packages/kahip/package.py b/var/spack/repos/builtin/packages/kahip/package.py
index 2bc127a4c2..b02e6de8f4 100644
--- a/var/spack/repos/builtin/packages/kahip/package.py
+++ b/var/spack/repos/builtin/packages/kahip/package.py
@@ -29,7 +29,7 @@ import os
import re
-class Kahip(Package):
+class Kahip(SConsPackage):
"""KaHIP - Karlsruhe High Quality Partitioning - is a family of graph
partitioning programs. It includes KaFFPa (Karlsruhe Fast Flow
Partitioner), which is a multilevel graph partitioning algorithm,
@@ -46,17 +46,25 @@ class Kahip(Package):
url = 'http://algo2.iti.kit.edu/schulz/software_releases/KaHIP_2.00.tar.gz'
version('develop', git='https://github.com/schulzchristian/KaHIP.git')
- version('2.00', '9daeda32f43c90570ed436d5d93c8a872b1a14d8')
+ version('2.00', '0a66b0a604ad72cfb7e3dce00e2c9fdfac82b855')
depends_on('argtable')
depends_on('mpi') # Note: upstream package only tested on openmpi
- depends_on('scons', type='build')
- phases = ['build', 'install']
+ conflicts('%clang')
- #
- # - End of definitions / setup -
- #
+ def patch(self):
+ """Internal compile.sh scripts hardcode number of cores to build with.
+ Filter these out so Spack can control it."""
+
+ files = [
+ 'compile.sh',
+ 'parallel/modified_kahip/compile.sh',
+ 'parallel/parallel_src/compile.sh',
+ ]
+
+ for f in files:
+ filter_file('NCORES=.*', 'NCORES={0}'.format(make_jobs), f)
def build(self, spec, prefix):
"""Build using the KaHIP compile.sh script. Uses scons internally."""
diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py
new file mode 100644
index 0000000000..c0f70aa1c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kallisto/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Kallisto(CMakePackage):
+ """kallisto is a program for quantifying abundances of transcripts from
+ RNA-Seq data."""
+
+ homepage = "http://pachterlab.github.io/kallisto"
+ url = "https://github.com/pachterlab/kallisto/archive/v0.43.1.tar.gz"
+
+ version('0.43.1', '54fc9b70ca44e4633f02c962cbc59737')
+
+ depends_on('zlib')
+ depends_on('hdf5')
+ depends_on('mpich')
diff --git a/var/spack/repos/builtin/packages/kealib/package.py b/var/spack/repos/builtin/packages/kealib/package.py
index b417c6be78..296090ef28 100644
--- a/var/spack/repos/builtin/packages/kealib/package.py
+++ b/var/spack/repos/builtin/packages/kealib/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Kealib(Package):
+class Kealib(CMakePackage):
"""An HDF5 Based Raster File Format
KEALib provides an implementation of the GDAL data model.
@@ -46,16 +46,13 @@ class Kealib(Package):
version('1.4.5', '112e9c42d980b2d2987a3c15d0833a5d')
- depends_on("hdf5")
+ depends_on('hdf5')
+ depends_on('cmake@2.8.10:', type='build')
- def install(self, spec, prefix):
- with working_dir('trunk', create=False):
- cmake_args = []
- cmake_args.append("-DCMAKE_INSTALL_PREFIX=%s" % prefix)
- cmake_args.append("-DHDF5_INCLUDE_DIR=%s" %
- spec['hdf5'].prefix.include)
- cmake_args.append("-DHDF5_LIB_PATH=%s" % spec['hdf5'].prefix.lib)
- cmake('.', *cmake_args)
+ root_cmakelists_dir = 'trunk'
- make()
- make("install")
+ def cmake_args(self):
+ return [
+ '-DHDF5_INCLUDE_DIR=%s' % self.spec['hdf5'].prefix.include,
+ '-DHDF5_LIB_PATH=%s' % self.spec['hdf5'].prefix.lib,
+ ]
diff --git a/var/spack/repos/builtin/packages/kentutils/package.py b/var/spack/repos/builtin/packages/kentutils/package.py
new file mode 100644
index 0000000000..65d46f563d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/kentutils/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Kentutils(MakefilePackage):
+ """Jim Kent command line bioinformatic utilities"""
+
+ homepage = "https://github.com/ENCODE-DCC/kentUtils"
+ url = "https://github.com/ENCODE-DCC/kentUtils"
+
+ version('302.1', git='https://github.com/ENCODE-DCC/kentUtils.git', commit='d8376c5d52a161f2267346ed3dc94b5dce74c2f9')
+
+ depends_on('libpng')
+ depends_on('openssl')
+
+ # Actually depends on mysql, but mariadb works for now until mysql is
+ # available
+ depends_on('mariadb')
+
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/kripke/package.py b/var/spack/repos/builtin/packages/kripke/package.py
index 1be19448a9..e8b63476da 100644
--- a/var/spack/repos/builtin/packages/kripke/package.py
+++ b/var/spack/repos/builtin/packages/kripke/package.py
@@ -25,33 +25,33 @@
from spack import *
-class Kripke(Package):
+class Kripke(CMakePackage):
"""Kripke is a simple, scalable, 3D Sn deterministic particle
transport proxy/mini app.
"""
homepage = "https://codesign.llnl.gov/kripke.php"
url = "https://codesign.llnl.gov/downloads/kripke-openmp-1.1.tar.gz"
+ tags = ['proxy-app']
version('1.1', '7fe6f2b26ed983a6ce5495ab701f85bf')
variant('mpi', default=True, description='Build with MPI.')
variant('openmp', default=True, description='Build with OpenMP enabled.')
- depends_on('mpi', when="+mpi")
+ depends_on('mpi', when='+mpi')
+ depends_on('cmake@3.0:', type='build')
+
+ def cmake_args(self):
+ def enabled(variant):
+ return (1 if variant in self.spec else 0)
+
+ return [
+ '-DENABLE_OPENMP=%d' % enabled('+openmp'),
+ '-DENABLE_MPI=%d' % enabled('+mpi'),
+ ]
def install(self, spec, prefix):
- with working_dir('build', create=True):
- def enabled(variant):
- return (1 if variant in spec else 0)
-
- cmake('-DCMAKE_INSTALL_PREFIX:PATH=.',
- '-DENABLE_OPENMP=%d' % enabled('+openmp'),
- '-DENABLE_MPI=%d' % enabled('+mpi'),
- '..',
- *std_cmake_args)
- make()
-
- # Kripke does not provide install target, so we have to copy
- # things into place.
- mkdirp(prefix.bin)
- install('kripke', prefix.bin)
+ # Kripke does not provide install target, so we have to copy
+ # things into place.
+ mkdirp(prefix.bin)
+ install('spack-build/kripke', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index c1909451d1..b66712d02e 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -74,7 +74,7 @@ class Lammps(MakefilePackage):
config.append('CCFLAGS = -fopenmp')
config.append('LINKFLAGS = -fopenmp $(OPTFLAGS)')
- config.append('SHFLAGS = -fPIC')
+ config.append('SHFLAGS = {0}'.format(self.compiler.pic_flag))
config.append('DEPFLAGS = -M')
config.append('LINK = c++')
@@ -202,5 +202,5 @@ class Lammps(MakefilePackage):
install('liblammps_{0}.{1}'.format(self.target_name,
dso_suffix), prefix.lib)
- # TODO: install the necessary headers
- mkdirp(prefix.include)
+ mkdirp(prefix.include.lammps)
+ install('library.h', prefix.include.lammps)
diff --git a/var/spack/repos/builtin/packages/last/package.py b/var/spack/repos/builtin/packages/last/package.py
new file mode 100644
index 0000000000..49d561f89b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/last/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Last(MakefilePackage):
+ """LAST finds similar regions between sequences, and aligns them. It is
+ designed for comparing large datasets to each other (e.g. vertebrate
+ genomes and/or large numbers of DNA reads)."""
+
+ homepage = "http://last.cbrc.jp/"
+ url = "http://last.cbrc.jp/last-869.zip"
+
+ version('869', '12dced14418fb924a1b0604593274973')
+
+ def install(self, spec, prefix):
+ make('install', 'prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index b79f9244c9..9b0e249314 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -36,48 +36,53 @@ class Lbann(CMakePackage):
version('develop', git='https://github.com/LLNL/lbann.git', branch="develop")
version('0.91', '83b0ec9cd0b7625d41dfb06d2abd4134')
- variant('debug', default=False, description='Builds a debug version of the libraries')
variant('gpu', default=False, description='Builds with support for GPUs via CUDA and cuDNN')
variant('opencv', default=True, description='Builds with support for image processing routines with OpenCV')
variant('seq_init', default=False, description='Force serial initialization of weight matrices.')
+ variant('dtype', default=4, description='Size (bits) of floating point representation for weights')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
- depends_on('elemental +openmp_blas +scalapack +shared +int64')
- depends_on('elemental +openmp_blas +scalapack +shared +int64 +debug', when='+debug')
+ depends_on('elemental +openmp_blas +shared +int64')
+ depends_on('elemental +openmp_blas +shared +int64 build_type=Debug',
+ when=('build_type=Debug'))
depends_on('cuda', when='+gpu')
depends_on('mpi')
- depends_on('opencv@3.2.0', when='+opencv')
+ depends_on('hwloc')
+ depends_on('opencv@3.2.0: +openmp +core +highgui +imgproc +jpeg +png +tiff +zlib', when='+opencv')
depends_on('protobuf@3.0.2:')
-
- def build_type(self):
- if '+debug' in self.spec:
- return 'Debug'
- else:
- return 'Release'
+ depends_on('cnpy')
def cmake_args(self):
spec = self.spec
# Environment variables
CPPFLAGS = []
CPPFLAGS.append('-DLBANN_SET_EL_RNG')
- if '~seq_init' in spec:
- CPPFLAGS.append('-DLBANN_PARALLEL_RANDOM_MATRICES')
+
+ CPPFLAGS.append('-DLBANN_DATATYPE={0}'.format(
+ int(spec.variants['dtype'].value)))
args = [
'-DCMAKE_INSTALL_MESSAGE=LAZY',
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
'-DWITH_CUDA:BOOL=%s' % ('+gpu' in spec),
'-DWITH_CUDNN:BOOL=%s' % ('+gpu' in spec),
+ '-DELEMENTAL_USE_CUBLAS:BOOL=%s' % (
+ '+cublas' in spec['elemental']),
'-DWITH_TBINF=OFF',
'-DWITH_VTUNE=OFF',
- '-DElemental_DIR={0}'.format(self.spec['elemental'].prefix),
+ '-DElemental_DIR={0}'.format(spec['elemental'].prefix),
+ '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
'-DELEMENTAL_MATH_LIBS={0}'.format(
- self.spec['elemental'].libs),
+ spec['elemental'].libs),
+ '-DSEQ_INIT:BOOL=%s' % ('+seq_init' in spec),
'-DVERBOSE=0',
'-DLBANN_HOME=.',
'-DLBANN_VER=spack']
- if '+opencv' in self.spec:
+ if '+opencv' in spec:
args.extend(['-DOpenCV_DIR:STRING={0}'.format(
- self.spec['opencv'].prefix)])
+ spec['opencv'].prefix)])
return args
diff --git a/var/spack/repos/builtin/packages/lcals/package.py b/var/spack/repos/builtin/packages/lcals/package.py
new file mode 100644
index 0000000000..c34907472a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lcals/package.py
@@ -0,0 +1,122 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+import platform
+
+
+class Lcals(MakefilePackage):
+ """LCALS ("Livermore Compiler Analysis Loop Suite") is a collection of loop
+ kernels based, in part, on historical "Livermore Loops" benchmarks
+ (See the 1986 technical report: "The Livermore Fortran Kernels:
+ A Computer Test of the Numerical Performance Range",
+ by Frank H. McMahon, UCRL-53745.). The suite contains facilities to
+ generate timing statistics and reports."""
+
+ homepage = "https://codesign.llnl.gov/LCALS-downloads/"
+ url = "https://codesign.llnl.gov/LCALS-downloads/lcals-v1.0.2.tgz"
+
+ tags = ['proxy-app']
+
+ version('1.0.2', '40c65a88f1df1436a2f72b7d3c986a21')
+
+ variant(
+ 'microarch',
+ description='Micro arch: SSE, AVX, MIC.',
+ default='sse',
+ values=('sse', 'avx', 'MIC'),
+ )
+
+ @property
+ def build_targets(self):
+
+ targets = []
+
+ cxxflags = '-std=c++0x '
+ cxx_compile = ''
+
+ microarch = self.spec.variants['microarch'].value
+
+ arch = platform.machine()
+
+ if microarch == 'MIC':
+ arch = 'MIC'
+ elif arch == 'x86_64' or arch == 'x86_32':
+ arch = 'x86'
+ elif arch != 'bgq':
+ raise InstallError('unknown architecture.')
+
+ if self.compiler.name == 'intel':
+ if arch == 'MIC':
+ cxxflags += '-DLCALS_PLATFORM_X86_SSE -DLCALS_COMPILER_ICC '
+ cxx_compile += '-g -O3 -mmic -vec-report3 '
+ ' -inline-max-total-size=10000 -inline-forceinline -ansi-alias'
+ elif microarch == 'sse' and arch == 'x86':
+ cxxflags += '-DLCALS_PLATFORM_X86_SSE -DLCALS_COMPILER_ICC '
+ cxx_compile += '-O3 -msse4.1 -inline-max-total-size=10000'
+ ' -inline-forceinline -ansi-alias -std=c++0x '
+ elif microarch == 'avx' and arch == 'x86':
+ cxxflags += '-DLCALS_PLATFORM_X86_AVX -DLCALS_COMPILER_ICC '
+ cxx_compile += '-O3 -mavx -inline-max-total-size=10000'
+ ' -inline-forceinline -ansi-alias -std=c++0x'
+ cxxflags += self.compiler.openmp_flag
+ elif self.compiler.name == 'gcc':
+ if arch == 'MIC' or (microarch == 'sse' and arch == 'x86'):
+ cxxflags += '-DLCALS_PLATFORM_X86_SSE -DLCALS_COMPILER_GNU '
+ cxx_compile += '-Ofast -msse4.1 -finline-functions'
+ ' -finline-limit=10000 -std=c++11 '
+ elif microarch == 'avx' and arch == 'x86':
+ cxxflags += '-DLCALS_PLATFORM_X86_AVX -DLCALS_COMPILER_GNU '
+ cxx_compile += '-Ofast -mavx -finline-functions'
+ ' -finline-limit=10000 -std=c++11'
+ elif arch == 'bgq':
+ cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_GNU '
+ cxx_compile += '-O3 -finline-functions -finline-limit=10000'
+ ' -std=c++0x'
+ cxxflags += self.compiler.openmp_flag
+ elif self.compiler.name == 'xl' and arch == 'bgp':
+ if self.compiler.version == Version('9') and arch == 'bgp':
+ cxxflags += '-DLCALS_PLATFORM_BGP -DLCALS_COMPILER_XLC9 '
+ cxx_compile += 'O3 -qarch=450d -qtune=450 -qalias=allp -qhot'
+ ' -qsmp=omp '
+ elif self.compiler.version == Version('12') and arch == 'bgq':
+ cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_XLC12 '
+ cxx_compile += '-O3 -qarch=qp -qhot=novector -qsimd=auto'
+ ' -qlanglvl=extended0x -qnostrict -qinline=10000 -qsmp=omp '
+ elif self.compiler.name == 'clang':
+ if arch == 'bgq':
+ cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_CLANG '
+ cxx_compile += '-O3 -finline-functions -ffast-math -std=c++0x'
+
+ targets.append('LCALS_ARCH=')
+ cxx_compile += ' ' + cxxflags
+ targets.append('CXX_COMPILE={0} {1}'.format(spack_cxx, cxx_compile))
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('lcals.exe', prefix.bin)
+ install('lcalsversioninfo.txt', prefix)
diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py
index 79a1ee533d..3bcd37e306 100644
--- a/var/spack/repos/builtin/packages/legion/package.py
+++ b/var/spack/repos/builtin/packages/legion/package.py
@@ -46,7 +46,6 @@ class Legion(CMakePackage):
version('develop', git='https://github.com/StanfordLegion/legion', branch='master')
version('17.02.0', '31ac3004e2fb0996764362d2b6f6844a')
- variant('debug', default=False, description='Build debug version')
variant('mpi', default=True,
description='Build on top of mpi conduit for mpi inoperability')
variant('shared', default=True, description='Build shared libraries')
@@ -55,13 +54,6 @@ class Legion(CMakePackage):
depends_on("gasnet", when='~mpi')
depends_on("gasnet+mpi", when='+mpi')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = [
'-DLegion_USE_GASNet=ON',
diff --git a/var/spack/repos/builtin/packages/libaec/package.py b/var/spack/repos/builtin/packages/libaec/package.py
new file mode 100644
index 0000000000..87bca8d54a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libaec/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libaec(CMakePackage):
+ """Libaec provides fast lossless compression of 1 up to 32 bit wide signed
+ or unsigned integers (samples). It implements Golomb-Rice compression
+ method under the BSD license and includes a free drop-in replacement for
+ the SZIP library.
+ """
+
+ homepage = 'https://gitlab.dkrz.de/k202009/libaec'
+ url = 'https://gitlab.dkrz.de/k202009/libaec/uploads/631e85bcf877c2dcaca9b2e6d6526339/libaec-1.0.0.tar.gz'
+ list_url = 'https://gitlab.dkrz.de/k202009/libaec/tags'
+
+ provides('szip')
+
+ version('1.0.1', 'cdf70e2b8f9153ee644710bb441f9e1e')
+ version('1.0.0', 'a848b4e397ed210313183a5e92592e42')
diff --git a/var/spack/repos/builtin/packages/libbeagle/package.py b/var/spack/repos/builtin/packages/libbeagle/package.py
new file mode 100644
index 0000000000..f459c5f738
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libbeagle/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libbeagle(AutotoolsPackage):
+ """Beagle performs genotype calling, genotype phasing, imputation of
+ ungenotyped markers, and identity-by-descent segment detection."""
+
+ homepage = "https://github.com/beagle-dev/beagle-lib"
+ url = "https://github.com/beagle-dev/beagle-lib/archive/beagle_release_2_1_2.tar.gz"
+
+ version('2.1.2', '1107614e86f652f8ee45c1c92f2af3d4')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('subversion', type='build')
+ depends_on('pkg-config', type='build')
+
+ def url_for_version(self, version):
+ url = "https://github.com/beagle-dev/beagle-lib/archive/beagle_release_{0}.tar.gz"
+ return url.format(version.underscored)
diff --git a/var/spack/repos/builtin/packages/libbsd/cdefs.h.patch b/var/spack/repos/builtin/packages/libbsd/cdefs.h.patch
new file mode 100644
index 0000000000..acd3843a06
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libbsd/cdefs.h.patch
@@ -0,0 +1,15 @@
+--- a/nclude/bsd/sys/cdefs.h.orig 2017-08-04 16:34:56.404995800 -0700
++++ b/include/bsd/sys/cdefs.h 2017-08-04 16:35:19.345043883 -0700
+@@ -25,10 +25,10 @@
+ */
+
+ #ifndef __has_include
+-#define __has_include 1
++#define __has_include(X) 1
+ #endif
+ #ifndef __has_include_next
+-#define __has_include_next 1
++#define __has_include_next(X) 1
+ #endif
+
+ #ifdef LIBBSD_OVERLAY
diff --git a/var/spack/repos/builtin/packages/libbsd/package.py b/var/spack/repos/builtin/packages/libbsd/package.py
new file mode 100644
index 0000000000..1f0edc090b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libbsd/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libbsd(AutotoolsPackage):
+ """This library provides useful functions commonly found on BSD
+ systems, and lacking on others like GNU systems, thus making it easier
+ to port projects with strong BSD origins, without needing to embed the
+ same code over and over again on each project.
+ """
+
+ homepage = "https://libbsd.freedesktop.org/wiki/"
+ url = "https://libbsd.freedesktop.org/releases/libbsd-0.8.6.tar.xz"
+
+ version('0.8.6', '4ab7bec639af17d0aacb50222b479110')
+
+ patch('cdefs.h.patch', when='%gcc@:4')
diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py
index 00422b4417..b0715e2dba 100644
--- a/var/spack/repos/builtin/packages/libdrm/package.py
+++ b/var/spack/repos/builtin/packages/libdrm/package.py
@@ -27,13 +27,13 @@ import sys
class Libdrm(Package):
- """A userspace library for accessing the DRM, direct
- rendering manager, on Linux, BSD and other operating
- systems that support the ioctl interface."""
+ """A userspace library for accessing the DRM, direct rendering manager,
+ on Linux, BSD and other systems supporting the ioctl interface."""
homepage = "http://dri.freedesktop.org/libdrm/"
url = "http://dri.freedesktop.org/libdrm/libdrm-2.4.59.tar.gz"
+ version('2.4.81', 'dc575dd661a082390e9f1366ca5734b0')
version('2.4.75', '743c16109d91a2539dfc9cc56130d695')
version('2.4.70', 'a8c275bce5f3d71a5ca25e8fb60df084')
version('2.4.59', '105ac7af1afcd742d402ca7b4eb168b6')
diff --git a/var/spack/repos/builtin/packages/libemos/package.py b/var/spack/repos/builtin/packages/libemos/package.py
index 371a8437b7..b8840e526d 100644
--- a/var/spack/repos/builtin/packages/libemos/package.py
+++ b/var/spack/repos/builtin/packages/libemos/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Libemos(Package):
+class Libemos(CMakePackage):
"""The Interpolation library (EMOSLIB) includes Interpolation software and
BUFR & CREX encoding/decoding routines."""
@@ -37,27 +37,27 @@ class Libemos(Package):
variant('eccodes', default=False,
description="Use eccodes instead of grib-api for GRIB decoding")
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'Production'))
- depends_on('cmake', type='build')
depends_on('eccodes', when='+eccodes')
depends_on('grib-api', when='~eccodes')
depends_on('fftw+float+double')
+ depends_on('cmake@2.8.11:', type='build')
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
+ def cmake_args(self):
+ spec = self.spec
+ args = []
if spec.satisfies('+eccodes'):
- options.append('-DENABLE_ECCODES=ON')
- options.append('-DECCODES_PATH=%s' % spec['eccodes'].prefix)
+ args.append('-DENABLE_ECCODES=ON')
+ args.append('-DECCODES_PATH=%s' % spec['eccodes'].prefix)
else:
- options.append('-DENABLE_ECCODES=OFF')
- options.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
+ args.append('-DENABLE_ECCODES=OFF')
+ args.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
# To support long pathnames that spack generates
- options.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none')
+ args.append('-DCMAKE_Fortran_FLAGS=-ffree-line-length-none')
- with working_dir('spack-build', create=True):
- cmake('..', *options)
- make()
- make('install')
+ return args
diff --git a/var/spack/repos/builtin/packages/libevpath/package.py b/var/spack/repos/builtin/packages/libevpath/package.py
new file mode 100644
index 0000000000..40ed3eeb99
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libevpath/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libevpath(CMakePackage):
+ """EVpath is an event transport middleware layer designed to allow
+ for the easy implementation of overlay networks, with
+ active data processing, routing and management at all points
+ in the overlay. EVPath is designed for high performance systems.
+ """
+
+ homepage = "https://github.com/GTkorvo/evpath"
+ url = "https://github.com/GTkorvo/evpath/archive/v4.1.1.tar.gz"
+
+ version('develop', git='https://github.com/GTkorvo/evpath.git',
+ branch='master')
+ version('4.2.1', 'f928dc0dee41668afc91634c7051ce1a')
+ version('4.1.2', '1a187f55431c991ae7040e3ff041d75c')
+ version('4.1.1', '65a8db820f396ff2926e3d31908d123d')
+
+ depends_on('libffs')
+
+ def cmake_args(self):
+ args = ["-DENABLE_TESTING=0", "-DTARGET_CNL=1",
+ "-DBUILD_SHARED_STATIC=STATIC"]
+ return args
diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py
new file mode 100644
index 0000000000..b90e2fa262
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libfabric/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libfabric(AutotoolsPackage):
+ """The Open Fabrics Interfaces (OFI) is a framework focused on exporting
+ fabric communication services to applications."""
+
+ homepage = "https://libfabric.org/"
+ url = "https://github.com/ofiwg/libfabric/releases/download/v1.5.0/libfabric-1.5.0.tar.gz"
+
+ version('1.5.0', 'fda3e9b31ebe184f5157288d059672d6')
+
+ fabrics = ('psm',
+ 'psm2',
+ 'sockets',
+ 'verbs',
+ 'usnic',
+ 'mxm',
+ 'gni',
+ 'xpmem',
+ 'udp',
+ 'rxm',
+ 'rxd')
+
+ variant(
+ 'fabrics',
+ default='sockets',
+ description='A list of enabled fabrics',
+ values=fabrics,
+ multi=True
+ )
+
+ def configure_args(self):
+ args = []
+
+ args.extend(['--enable-%s=%s' %
+ (f, 'yes' if 'fabrics=%s' % f in self.spec else 'no')
+ for f in self.fabrics])
+
+ return args
diff --git a/var/spack/repos/builtin/packages/libffs/package.py b/var/spack/repos/builtin/packages/libffs/package.py
new file mode 100644
index 0000000000..9513e146bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libffs/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libffs(CMakePackage):
+ """FFS is a middleware library for data communication,
+ including representation, processing and marshaling
+ that preserves the performance of traditional approaches
+ while relaxing the requirement of a priori knowledge
+ and providing complex run-time flexibility.
+ """
+
+ homepage = "http://www.cc.gatech.edu/systems/projects/FFS"
+ url = "https://github.com/GTkorvo/ffs/archive/v1.1.tar.gz"
+
+ version('develop', git='https://github.com/GTkorvo/ffs.git',
+ branch='master')
+ version('1.1.1', 'aa1c8ad5cf35e8cf76735e3a60891509')
+ version('1.1', '561c6b3abc53e12b3c01192e8ef2ffbc')
+
+ depends_on('gtkorvo-atl')
+ depends_on('gtkorvo-dill')
+ depends_on('gtkorvo-cercs-env')
+
+ def cmake_args(self):
+ args = ["-DENABLE_TESTING=0", "-DTARGET_CNL=1",
+ "-DBUILD_SHARED_STATIC=STATIC"]
+ return args
diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py
index 3853d2c57f..34600e742a 100644
--- a/var/spack/repos/builtin/packages/libint/package.py
+++ b/var/spack/repos/builtin/packages/libint/package.py
@@ -61,19 +61,32 @@ class Libint(AutotoolsPackage):
aclocal('-I', 'lib/autoconf')
autoconf()
+ @property
+ def optflags(self):
+ flags = '-O2'
+
+ # Optimizations for the Intel compiler, suggested by CP2K
+ if '%intel' in self.spec:
+ # -xSSE2 will make it usable on old architecture
+ flags += ' -xSSE2 -xAVX -axCORE-AVX2 -ipo'
+
+ return flags
+
+ def setup_environment(self, build_env, run_env):
+ # Set optimization flags
+ build_env.set('CFLAGS', self.optflags)
+ build_env.set('CXXFLAGS', self.optflags)
+
+ # Change AR to xiar if we compile with Intel and we
+ # find the executable
+ if '%intel' in self.spec and which('xiar'):
+ build_env.set('AR', 'xiar')
+
def configure_args(self):
config_args = ['--enable-shared']
- # Optimizations for the Intel compiler, suggested by CP2K
- optflags = '-O2'
- if self.compiler.name == 'intel':
- optflags += ' -xAVX -axCORE-AVX2 -ipo'
- if which('xiar'):
- env['AR'] = 'xiar'
-
- env['CFLAGS'] = optflags
- env['CXXFLAGS'] = optflags
+ optflags = self.optflags
# Optimization flag names have changed in libint 2
if self.version < Version('2.0.0'):
diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
index 3573390b7d..e0eca52a41 100644
--- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py
@@ -37,6 +37,8 @@ class LibjpegTurbo(AutotoolsPackage):
version('1.5.0', '3fc5d9b6a8bce96161659ae7a9939257')
version('1.3.1', '2c3a68129dac443a72815ff5bb374b05')
+ provides('jpeg')
+
# Can use either of these. But in the current version of the package
# only nasm is used. In order to use yasm an environmental variable
# NASM must be set.
diff --git a/var/spack/repos/builtin/packages/jpeg/package.py b/var/spack/repos/builtin/packages/libjpeg/package.py
index babb6e5f82..9829b30547 100644
--- a/var/spack/repos/builtin/packages/jpeg/package.py
+++ b/var/spack/repos/builtin/packages/libjpeg/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Jpeg(AutotoolsPackage):
+class Libjpeg(AutotoolsPackage):
"""libjpeg is a widely used free library with functions for handling the
JPEG image data format. It implements a JPEG codec (encoding and decoding)
alongside various utilities for handling JPEG data."""
@@ -35,3 +35,5 @@ class Jpeg(AutotoolsPackage):
version('9b', '6a9996ce116ec5c52b4870dbcd6d3ddb')
version('9a', '3353992aecaee1805ef4109aadd433e7')
+
+ provides('jpeg')
diff --git a/var/spack/repos/builtin/packages/libpipeline/package.py b/var/spack/repos/builtin/packages/libpipeline/package.py
new file mode 100644
index 0000000000..2d51755633
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libpipeline/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libpipeline(AutotoolsPackage):
+ """libpipeline is a C library for manipulating pipelines of subprocesses
+ in a flexible and convenient way."""
+
+ homepage = "http://libpipeline.nongnu.org/"
+ url = "http://git.savannah.nongnu.org/cgit/libpipeline.git/snapshot/libpipeline-1.4.2.tar.gz"
+
+ version('1.4.2', '30cec7bcd6fee723adea6a54389f3da2')
+
+ depends_on('pkg-config', type='build')
+ # TODO: Add a 'test' deptype
+ # See https://github.com/LLNL/spack/issues/1279
+ # depends_on('check', type='test')
diff --git a/var/spack/repos/builtin/packages/libsplash/package.py b/var/spack/repos/builtin/packages/libsplash/package.py
index 2a0d2dfb09..c2d8bc1881 100644
--- a/var/spack/repos/builtin/packages/libsplash/package.py
+++ b/var/spack/repos/builtin/packages/libsplash/package.py
@@ -37,7 +37,7 @@ class Libsplash(CMakePackage):
homepage = "https://github.com/ComputationalRadiationPhysics/libSplash"
url = "https://github.com/ComputationalRadiationPhysics/libSplash/archive/v1.4.0.tar.gz"
- version('dev', branch='dev',
+ version('develop', branch='dev',
git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
version('master', branch='master',
git='https://github.com/ComputationalRadiationPhysics/libSplash.git')
diff --git a/var/spack/repos/builtin/packages/libsvm/package.py b/var/spack/repos/builtin/packages/libsvm/package.py
new file mode 100644
index 0000000000..3a52d4f3ef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libsvm/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libsvm(MakefilePackage):
+ """Libsvm is a simple, easy-to-use, and efficient software for SVM
+ classification and regression."""
+
+ homepage = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/"
+ url = "https://github.com/cjlin1/libsvm/archive/v322.tar.gz"
+
+ version('322', 'd9617d29efad013573f63ca9a517f490')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.lib)
+ install('svm-predict', prefix.bin)
+ install('svm-scale', prefix.bin)
+ install('svm-train', prefix.bin)
+ install('svm.o', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/szip/package.py b/var/spack/repos/builtin/packages/libszip/package.py
index 176006e70f..838b81b63b 100644
--- a/var/spack/repos/builtin/packages/szip/package.py
+++ b/var/spack/repos/builtin/packages/libszip/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Szip(AutotoolsPackage):
+class Libszip(AutotoolsPackage):
"""Szip is an implementation of the extended-Rice lossless
compression algorithm.
@@ -33,13 +33,20 @@ class Szip(AutotoolsPackage):
provided with HDF software products.
"""
- homepage = "https://www.hdfgroup.org/doc_resource/SZIP/"
- url = "http://www.hdfgroup.org/ftp/lib-external/szip/2.1/src/szip-2.1.tar.gz"
+ homepage = "https://support.hdfgroup.org/doc_resource/SZIP/"
+ url = "https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz"
+ list_url = "https://support.hdfgroup.org/ftp/lib-external/szip"
+ list_depth = 2
- version('2.1', '902f831bcefb69c6b635374424acbead')
+ provides('szip')
+
+ version('2.1.1', 'dd579cf0f26d44afd10a0ad7291fc282')
+ version('2.1', '902f831bcefb69c6b635374424acbead')
def configure_args(self):
- return ['--enable-production',
- '--enable-shared',
- '--enable-static',
- '--enable-encoding']
+ return [
+ '--enable-production',
+ '--enable-shared',
+ '--enable-static',
+ '--enable-encoding',
+ ]
diff --git a/var/spack/repos/builtin/packages/libwebsockets/package.py b/var/spack/repos/builtin/packages/libwebsockets/package.py
index d74ff72273..b840c9d0f0 100644
--- a/var/spack/repos/builtin/packages/libwebsockets/package.py
+++ b/var/spack/repos/builtin/packages/libwebsockets/package.py
@@ -31,6 +31,8 @@ class Libwebsockets(CMakePackage):
homepage = "https://github.com/warmcat/libwebsockets"
url = "https://github.com/warmcat/libwebsockets/archive/v2.1.0.tar.gz"
+ version('2.2.1', '1f641cde2ab3687db3d553f68fe0f620')
+ version('2.1.1', '674684ffb90d4a0bcf7a075eb7b90192')
version('2.1.0', '4df3be57dee43aeebd54a3ed56568f50')
version('2.0.3', 'a025156d606d90579e65d53ccd062a94')
version('1.7.9', '7b3692ead5ae00fd0e1d56c080170f07')
diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py
index f018bacfa3..e2fe25c455 100644
--- a/var/spack/repos/builtin/packages/libxc/package.py
+++ b/var/spack/repos/builtin/packages/libxc/package.py
@@ -71,8 +71,15 @@ class Libxc(Package):
if which('xiar'):
env['AR'] = 'xiar'
- env['CFLAGS'] = optflags
- env['FCFLAGS'] = optflags
+ if 'CFLAGS' in env and env['CFLAGS']:
+ env['CFLAGS'] += ' ' + optflags
+ else:
+ env['CFLAGS'] = optflags
+
+ if 'FCFLAGS' in env and env['FCFLAGS']:
+ env['FCFLAGS'] += ' ' + optflags
+ else:
+ env['FCFLAGS'] = optflags
configure('--prefix={0}'.format(prefix),
'--enable-shared')
diff --git a/var/spack/repos/builtin/packages/libxpm/package.py b/var/spack/repos/builtin/packages/libxpm/package.py
index 09d0b0ec61..40234b1b2d 100644
--- a/var/spack/repos/builtin/packages/libxpm/package.py
+++ b/var/spack/repos/builtin/packages/libxpm/package.py
@@ -46,5 +46,5 @@ class Libxpm(AutotoolsPackage):
depends_on('util-macros', type='build')
def setup_environment(self, spack_env, run_env):
- spack_env.set('LDFLAGS', '-L{0} -lintl'.format(
+ spack_env.append_flags('LDFLAGS', '-L{0} -lintl'.format(
self.spec['gettext'].prefix.lib))
diff --git a/var/spack/repos/builtin/packages/libxslt/package.py b/var/spack/repos/builtin/packages/libxslt/package.py
index 53c0438508..a87ae7ffee 100644
--- a/var/spack/repos/builtin/packages/libxslt/package.py
+++ b/var/spack/repos/builtin/packages/libxslt/package.py
@@ -43,6 +43,7 @@ class Libxslt(AutotoolsPackage):
variant('crypto', default=True,
description='Build libexslt with crypto support')
+ depends_on("libiconv")
depends_on("libxml2")
depends_on("xz")
depends_on("zlib")
diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py
new file mode 100644
index 0000000000..1ad98ebaa0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libyogrt/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Libyogrt(AutotoolsPackage):
+ """Your One Get Remaining Time Library."""
+
+ homepage = "https://github.com/LLNL/libyogrt"
+ url = "https://github.com/LLNL/libyogrt/archive/1.20-6.tar.gz"
+
+ version('1.20-6', '478f27512842cc5f2b74a0c22b851f60')
+ version('1.20-5', 'd0fa6526fcd1f56ddb3d93f602ec72f7')
+ version('1.20-4', '092bea10de22c505ce92aa07001decbb')
+ version('1.20-3', 'd0507717009a5f8e2009e3b63594738f')
+ version('1.20-2', '780bda03268324f6b5f72631fff6e6cb')
diff --git a/var/spack/repos/builtin/packages/llvm-lld/package.py b/var/spack/repos/builtin/packages/llvm-lld/package.py
index 4624451e69..5619f1132d 100644
--- a/var/spack/repos/builtin/packages/llvm-lld/package.py
+++ b/var/spack/repos/builtin/packages/llvm-lld/package.py
@@ -25,25 +25,24 @@
from spack import *
-class LlvmLld(Package):
+class LlvmLld(CMakePackage):
"""lld - The LLVM Linker
lld is a new set of modular code for creating linker tools."""
homepage = "http://lld.llvm.org"
url = "http://llvm.org/releases/3.4/lld-3.4.src.tar.gz"
- depends_on('llvm')
-
version('3.4', '3b6a17e58c8416c869c14dd37682f78e')
- depends_on('cmake', type='build')
+ depends_on('llvm')
+ depends_on('cmake@2.8:', type='build')
- def install(self, spec, prefix):
- env['CXXFLAGS'] = self.compiler.cxx11_flag
+ def cmake_args(self):
+ if 'CXXFLAGS' in env and env['CXXFLAGS']:
+ env['CXXFLAGS'] += ' ' + self.compiler.cxx11_flag
+ else:
+ env['CXXFLAGS'] = self.compiler.cxx11_flag
- with working_dir('spack-build', create=True):
- cmake('..',
- '-DLLD_PATH_TO_LLVM_BUILD=%s' % spec['llvm'].prefix,
- '-DLLVM_MAIN_SRC_DIR=%s' % spec['llvm'].prefix,
- *std_cmake_args)
- make()
- make("install")
+ return [
+ '-DLLD_PATH_TO_LLVM_BUILD=%s' % self.spec['llvm'].prefix,
+ '-DLLVM_MAIN_SRC_DIR=%s' % self.spec['llvm'].prefix,
+ ]
diff --git a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
index 3479b08bc5..edbd9f04e1 100644
--- a/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
+++ b/var/spack/repos/builtin/packages/llvm-openmp-ompt/package.py
@@ -26,7 +26,7 @@
from spack import *
-class LlvmOpenmpOmpt(Package):
+class LlvmOpenmpOmpt(CMakePackage):
"""The OpenMP subproject provides an OpenMP runtime for use with the
OpenMP implementation in Clang. This branch includes experimental
changes for OMPT, the OpenMP Tools interface"""
@@ -42,25 +42,17 @@ class LlvmOpenmpOmpt(Package):
git='https://github.com/OpenMPToolsInterface/LLVM-openmp.git',
commit='982a08bcf3df9fb5afc04ac3bada47f19cc4e3d3')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8:', type='build')
depends_on('llvm')
- depends_on('ninja', type='build')
-
- def install(self, spec, prefix):
-
- with working_dir('spack-build', create=True):
- cmake_args = std_cmake_args[:]
- cmake_args.extend([
- '-G', 'Ninja',
- '-DCMAKE_C_COMPILER=clang',
- '-DCMAKE_CXX_COMPILER=clang++',
- '-DCMAKE_BUILD_TYPE=Release',
- '-DLIBOMP_OMPT_SUPPORT=on',
- '-DLIBOMP_OMPT_BLAME=on',
- '-DLIBOMP_OMPT_TRACE=on'
- ])
-
- cmake('..', *cmake_args)
- ninja = Executable('ninja')
- ninja()
- ninja('install')
+ depends_on('ninja@1.5:', type='build')
+
+ generator = 'Ninja'
+
+ def cmake_args(self):
+ return [
+ '-DCMAKE_C_COMPILER=clang',
+ '-DCMAKE_CXX_COMPILER=clang++',
+ '-DLIBOMP_OMPT_SUPPORT=on',
+ '-DLIBOMP_OMPT_BLAME=on',
+ '-DLIBOMP_OMPT_TRACE=on'
+ ]
diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index 1f88d94882..64e50f0cfb 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -43,10 +43,10 @@ class Llvm(CMakePackage):
version('3.0', 'a8e5f5f1c1adebae7b4a654c376a6005',
url='http://llvm.org/releases/3.0/llvm-3.0.tar.gz')
- variant('debug', default=False,
- description="Build a debug version of LLVM, this increases "
- "binary size by an order of magnitude, make sure you have "
- "20-30gb of space available to build this")
+ # NOTE: The debug version of LLVM is an order of magnitude larger than
+ # the release version, and may take up 20-30 GB of space. If you want
+ # to save space, build with `build_type=Release`.
+
variant('clang', default=True,
description="Build the LLVM C/C++/Objective-C compiler frontend")
variant('lldb', default=True, description="Build the LLVM debugger")
@@ -325,13 +325,7 @@ class Llvm(CMakePackage):
conflicts('+lldb', when='~clang')
def setup_environment(self, spack_env, run_env):
- spack_env.set('CXXFLAGS', self.compiler.cxx11_flag)
-
- def build_type(self):
- if '+debug' in self.spec:
- return 'RelWithDebInfo'
- else:
- return 'Release'
+ spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag)
def cmake_args(self):
spec = self.spec
diff --git a/var/spack/repos/builtin/packages/lmdb/package.py b/var/spack/repos/builtin/packages/lmdb/package.py
index 5a0aef35a4..aae962db15 100644
--- a/var/spack/repos/builtin/packages/lmdb/package.py
+++ b/var/spack/repos/builtin/packages/lmdb/package.py
@@ -22,42 +22,40 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
-import os
from spack import *
-class Lmdb(Package):
- """Read-only mirror of official repo on openldap.org. Issues and
- pull requests here are ignored. Use OpenLDAP ITS for issues.
- http://www.openldap.org/software/repo.html"""
+class Lmdb(MakefilePackage):
+ """Symas LMDB is an extraordinarily fast, memory-efficient database we
+ developed for the Symas OpenLDAP Project. With memory-mapped files, it
+ has the read performance of a pure in-memory database while retaining
+ the persistence of standard disk-based databases."""
- homepage = "http://www.openldap.org/software/repo.html"
- url = "https://github.com/LMDB/lmdb/archive/LMDB_0.9.16.tar.gz"
+ homepage = "https://lmdb.tech/"
+ url = "https://github.com/LMDB/lmdb/archive/LMDB_0.9.21.tar.gz"
+ version('0.9.21', '41a4f7b63212a00e53fabd8159008201')
version('0.9.16', '0de89730b8f3f5711c2b3a4ba517b648')
- def install(self, spec, prefix):
- os.chdir('libraries/liblmdb')
-
- make()
-
- mkdirp(prefix.bin)
- mkdirp(prefix + '/man/man1')
- mkdirp(prefix.lib)
- mkdirp(prefix.include)
-
- bins = ['mdb_stat', 'mdb_copy', 'mdb_dump', 'mdb_load']
- for f in bins:
- install(f, prefix.bin)
-
- mans = ['mdb_stat.1', 'mdb_copy.1', 'mdb_dump.1', 'mdb_load.1']
- for f in mans:
- install(f, prefix + '/man/man1')
-
- libs = ['liblmdb.a', 'liblmdb.so']
- for f in libs:
- install(f, prefix.lib)
-
- includes = ['lmdb.h']
- for f in includes:
- install(f, prefix.include)
+ build_directory = 'libraries/liblmdb'
+
+ @property
+ def install_targets(self):
+ return ['prefix={0}'.format(self.prefix), 'install']
+
+ @run_after('install')
+ def install_pkgconfig(self):
+ mkdirp(self.prefix.lib.pkgconfig)
+
+ with open(join_path(self.prefix.lib.pkgconfig, 'lmdb.pc'), 'w') as f:
+ f.write('prefix={0}\n'.format(self.prefix))
+ f.write('exec_prefix=${prefix}\n')
+ f.write('libdir={0}\n'.format(self.prefix.lib))
+ f.write('includedir={0}\n'.format(self.prefix.include))
+ f.write('\n')
+ f.write('Name: LMDB\n')
+ f.write('Description: Symas LMDB is an extraordinarily fast, '
+ 'memory-efficient database.\n')
+ f.write('Version: {0}\n'.format(self.spec.version))
+ f.write('Cflags: -I${includedir}\n')
+ f.write('Libs: -L${libdir} -llmdb\n')
diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py
index 0680e1a3b5..ecb2a8b543 100644
--- a/var/spack/repos/builtin/packages/lua/package.py
+++ b/var/spack/repos/builtin/packages/lua/package.py
@@ -145,11 +145,11 @@ class Lua(Package):
@property
def lua_lib_dir(self):
- return os.path.join('lib', 'lua', self.version.up_to(2))
+ return os.path.join('lib', 'lua', str(self.version.up_to(2)))
@property
def lua_share_dir(self):
- return os.path.join('share', 'lua', self.version.up_to(2))
+ return os.path.join('share', 'lua', str(self.version.up_to(2)))
def setup_dependent_package(self, module, dependent_spec):
"""
diff --git a/var/spack/repos/builtin/packages/lulesh/package.py b/var/spack/repos/builtin/packages/lulesh/package.py
index 6a07976377..2dd4a4edd2 100644
--- a/var/spack/repos/builtin/packages/lulesh/package.py
+++ b/var/spack/repos/builtin/packages/lulesh/package.py
@@ -23,33 +23,62 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class Lulesh(Package):
- """Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics (LULESH)
+class Lulesh(MakefilePackage):
+ """LULESH is a highly simplified application, hard-coded to only
+ style typical in scientific C or C++ based applications. Hard
+ code to only solve a Sedov blast problem with analytic answer
"""
-
+ tags = ['proxy-app']
homepage = "https://codesign.llnl.gov/lulesh.php"
url = "https://codesign.llnl.gov/lulesh/lulesh2.0.3.tgz"
- version("2.0.3", "336644a8750f71c7c6b9d2960976e7aa")
+ version('2.0.3', '336644a8750f71c7c6b9d2960976e7aa')
- patch("remove_defaults.patch")
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('openmp', default=True, description='Build with OpenMP support')
+ variant('visual', default=False,
+ description='Build with Visualization support (Silo, hdf5)')
- variant('mpip', default=False)
+ depends_on('mpi', when='+mpi')
+ depends_on('silo', when='+visual')
+ depends_on('hdf5', when='+visual')
- depends_on("mpi", type="build")
- depends_on("mpip", when="+mpip")
+ @property
+ def build_targets(self):
+ targets = []
+ cxxflag = ' -g -O3 -I. '
+ ldflags = ' -g -O3 '
+ if '~mpi' in self.spec:
+ targets.append('CXX = {0} {1}'.format(spack_cxx, ' -DUSE_MPI=0 '))
+ else:
+ targets.append(
+ 'CXX = {0} {1}'.format(self.spec['mpi'].mpicxx,
+ ' -DUSE_MPI=1'))
+ targets.append(
+ 'MPI_INC = {0}'.format(self.spec['mpi'].prefix.include))
+ targets.append('MPI_LIB = {0}'.format(self.spec['mpi'].prefix.lib))
+ if '+visual' in self.spec:
+ targets.append(
+ 'SILO_INCDIR = {0}'.format(self.spec['silo'].prefix.include))
+ targets.append(
+ 'SILO_LIBDIR = {0}'.format(self.spec['silo'].prefix.lib))
+ cxxflag = ' -g -DVIZ_MESH -I${SILO_INCDIR} '
+ ldflags = ' -g -L${SILO_LIBDIR} -Wl,-rpath -Wl, '
+ ldflags += '${SILO_LIBDIR} -lsiloh5 -lhdf5 '
- def install(self, spec, prefix):
- if '+mpip' in spec:
- os.environ["LDFLAGS"] = " -lmpiP -ldwarf -lelf"
+ if '+openmp' in self.spec:
+ cxxflag += self.compiler.openmp_flag
+ ldflags += self.compiler.openmp_flag
- if os.uname()[4] == "x86_64":
- os.environ["LDFLAGS"] += " -lunwind"
+ targets.append('CXXFLAGS = {0}'.format(cxxflag))
+ targets.append('LDFLAGS = {0}'.format(ldflags))
+ return targets
- os.environ["CXX"] = spec['mpi'].mpicxx + " -DUSE_MPI=1"
- os.environ["PREFIX"] = prefix
- make()
- make("install")
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('lulesh{0}'.format(self.version.up_to(2)), prefix.bin)
+ mkdirp(prefix.doc)
+ install('README', prefix.doc)
+ install('TODO', prefix.doc) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch b/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch
deleted file mode 100644
index 36cce25ba1..0000000000
--- a/var/spack/repos/builtin/packages/lulesh/remove_defaults.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -1,17 +1,9 @@
- #default build suggestion of MPI + OPENMP with gcc on Livermore machines you might have to change the compiler name
-
--SHELL = /bin/sh
- .SUFFIXES: .cc .o
-
- LULESH_EXEC = lulesh2.0
-
--MPI_INC = /opt/local/include/openmpi
--MPI_LIB = /opt/local/lib
--
--SERCXX = g++ -DUSE_MPI=0
--MPICXX = mpig++ -DUSE_MPI=1
--CXX = $(MPICXX)
--
- SOURCES2.0 = \
- lulesh.cc \
- lulesh-comm.cc \
-@@ -20,28 +12,6 @@
- lulesh-init.cc
- OBJECTS2.0 = $(SOURCES2.0:.cc=.o)
-
--#Default build suggestions with OpenMP for g++
--CXXFLAGS = -g -O3 -fopenmp -I. -Wall
--LDFLAGS = -g -O3 -fopenmp
--
--#Below are reasonable default flags for a serial build
--#CXXFLAGS = -g -O3 -I. -Wall
--#LDFLAGS = -g -O3
--
--#common places you might find silo on the Livermore machines.
--#SILO_INCDIR = /opt/local/include
--#SILO_LIBDIR = /opt/local/lib
--#SILO_INCDIR = ./silo/4.9/1.8.10.1/include
--#SILO_LIBDIR = ./silo/4.9/1.8.10.1/lib
--
--#If you do not have silo and visit you can get them at:
--#silo: https://wci.llnl.gov/codes/silo/downloads.html
--#visit: https://wci.llnl.gov/codes/visit/download.html
--
--#below is and example of how to make with silo, hdf5 to get vizulization by default all this is turned off. All paths are Livermore specific.
--#CXXFLAGS = -g -DVIZ_MESH -I${SILO_INCDIR} -Wall -Wno-pragmas
--#LDFLAGS = -g -L${SILO_LIBDIR} -Wl,-rpath -Wl,${SILO_LIBDIR} -lsiloh5 -lhdf5
--
- .cc.o: lulesh.h
- @echo "Building $<"
- $(CXX) -c $(CXXFLAGS) -o $@ $<
-@@ -56,6 +26,7 @@
- /bin/rm -f *.o *~ $(OBJECTS) $(LULESH_EXEC)
- /bin/rm -rf *.dSYM
-
--tar: clean
-- cd .. ; tar cvf lulesh-2.0.tar LULESH-2.0 ; mv lulesh-2.0.tar LULESH-2.0
--
-+install: lulesh2.0
-+ @echo "Installing"
-+ mkdir -p $(PREFIX)/bin
-+ install --mode=755 lulesh2.0 $(PREFIX)/bin/
diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py
index c01828d720..550e306712 100644
--- a/var/spack/repos/builtin/packages/m4/package.py
+++ b/var/spack/repos/builtin/packages/m4/package.py
@@ -48,6 +48,9 @@ class M4(AutotoolsPackage):
spec = self.spec
args = ['--enable-c++']
+ if spec.satisfies('%clang') and not spec.satisfies('platform=darwin'):
+ args.append('CFLAGS=-rtlib=compiler-rt')
+
if '+sigsegv' in spec:
args.append('--with-libsigsegv-prefix={0}'.format(
spec['libsigsegv'].prefix))
diff --git a/var/spack/repos/builtin/packages/mad-numdiff/package.py b/var/spack/repos/builtin/packages/mad-numdiff/package.py
index 4d0c9c1ef7..574ddf2be3 100644
--- a/var/spack/repos/builtin/packages/mad-numdiff/package.py
+++ b/var/spack/repos/builtin/packages/mad-numdiff/package.py
@@ -34,12 +34,3 @@ class MadNumdiff(CMakePackage):
version('develop', git='https://github.com/quinoacomputing/ndiff', branch='master')
version('20150724', '7723c0f2499aea8fd960377c5bed28d8')
-
- variant('debug', default=False, description='Build debug version')
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py
index d69dedf3ea..426695a3dd 100644
--- a/var/spack/repos/builtin/packages/magics/package.py
+++ b/var/spack/repos/builtin/packages/magics/package.py
@@ -26,7 +26,7 @@ from spack import *
import glob
-class Magics(Package):
+class Magics(CMakePackage):
"""Magics is the latest generation of the ECMWF's Meteorological plotting
software MAGICS. Although completely redesigned in C++, it is intended
to be as backwards-compatible as possible with the Fortran interface."""
@@ -52,8 +52,11 @@ class Magics(Package):
variant('metview', default=False, description='Enable metview support')
variant('qt', default=False, description='Enable metview support with qt')
variant('eccodes', default=False, description='Use eccodes instead of grib-api')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo', 'Production'))
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8.11:', type='build')
depends_on('pkg-config', type='build')
# Currently python is only necessary to run
@@ -80,53 +83,51 @@ class Magics(Package):
for pyfile in glob.glob('*/*.py'):
filter_file('#!/usr/bin/python', '#!/usr/bin/env python', pyfile)
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
- options.append('-DENABLE_ODB=OFF')
- options.append('-DENABLE_PYTHON=OFF')
- options.append('-DBOOST_ROOT=%s' % spec['boost'].prefix)
- options.append('-DPROJ4_PATH=%s' % spec['proj'].prefix)
- options.append('-DENABLE_TESTS=OFF')
+ def cmake_args(self):
+ spec = self.spec
+ args = [
+ '-DENABLE_ODB=OFF',
+ '-DENABLE_PYTHON=OFF',
+ '-DBOOST_ROOT=%s' % spec['boost'].prefix,
+ '-DPROJ4_PATH=%s' % spec['proj'].prefix,
+ '-DENABLE_TESTS=OFF',
+ ]
if '+bufr' in spec:
- options.append('-DENABLE_BUFR=ON')
- options.append('-DLIBEMOS_PATH=%s' % spec['libemos'].prefix)
+ args.append('-DENABLE_BUFR=ON')
+ args.append('-DLIBEMOS_PATH=%s' % spec['libemos'].prefix)
else:
- options.append('-DENABLE_BUFR=OFF')
+ args.append('-DENABLE_BUFR=OFF')
if '+netcdf' in spec:
- options.append('-DENABLE_NETCDF=ON')
- options.append('-DNETCDF_PATH=%s' % spec['netcdf-cxx'].prefix)
+ args.append('-DENABLE_NETCDF=ON')
+ args.append('-DNETCDF_PATH=%s' % spec['netcdf-cxx'].prefix)
else:
- options.append('-DENABLE_NETCDF=OFF')
+ args.append('-DENABLE_NETCDF=OFF')
if '+cairo' in spec:
- options.append('-DENABLE_CAIRO=ON')
+ args.append('-DENABLE_CAIRO=ON')
else:
- options.append('-DENABLE_CAIRO=OFF')
+ args.append('-DENABLE_CAIRO=OFF')
if '+metview' in spec:
if '+qt' in spec:
- options.append('-DENABLE_METVIEW=ON')
- if spec['qt'].version.up_to(1) == '5':
- options.append('-DENABLE_QT5=ON')
+ args.append('-DENABLE_METVIEW=ON')
+ if spec['qt'].version[0] == 5:
+ args.append('-DENABLE_QT5=ON')
else:
- options.append('-DENABLE_METVIEW_NO_QT=ON')
+ args.append('-DENABLE_METVIEW_NO_QT=ON')
else:
- options.append('-DENABLE_METVIEW=OFF')
+ args.append('-DENABLE_METVIEW=OFF')
if '+eccodes' in spec:
- options.append('-DENABLE_ECCODES=ON')
- options.append('-DECCODES_PATH=%s' % spec['eccodes'].prefix)
+ args.append('-DENABLE_ECCODES=ON')
+ args.append('-DECCODES_PATH=%s' % spec['eccodes'].prefix)
else:
- options.append('-DENABLE_ECCODES=OFF')
- options.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
+ args.append('-DENABLE_ECCODES=OFF')
+ args.append('-DGRIB_API_PATH=%s' % spec['grib-api'].prefix)
if (self.compiler.f77 is None) or (self.compiler.fc is None):
- options.append('-DENABLE_FORTRAN=OFF')
+ args.append('-DENABLE_FORTRAN=OFF')
- with working_dir('spack-build', create=True):
- cmake('..', *options)
- make()
- make('install')
+ return args
diff --git a/var/spack/repos/builtin/packages/mallocmc/package.py b/var/spack/repos/builtin/packages/mallocmc/package.py
index 3134a3c1e6..333aea2034 100644
--- a/var/spack/repos/builtin/packages/mallocmc/package.py
+++ b/var/spack/repos/builtin/packages/mallocmc/package.py
@@ -40,7 +40,7 @@ class Mallocmc(CMakePackage):
homepage = "https://github.com/ComputationalRadiationPhysics/mallocMC"
url = "https://github.com/ComputationalRadiationPhysics/mallocMC/archive/2.2.0crp.tar.gz"
- version('dev', branch='dev',
+ version('develop', branch='dev',
git='https://github.com/ComputationalRadiationPhysics/mallocMC.git')
version('master', branch='master',
git='https://github.com/ComputationalRadiationPhysics/mallocMC.git')
diff --git a/var/spack/repos/builtin/packages/man-db/package.py b/var/spack/repos/builtin/packages/man-db/package.py
new file mode 100644
index 0000000000..9c038d03e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/man-db/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class ManDb(AutotoolsPackage):
+ """man-db is an implementation of the standard Unix
+ documentation system accessed using the man command. It uses
+ a Berkeley DB database in place of the traditional
+ flat-text whatis databases."""
+
+ homepage = "http://www.nongnu.org/man-db/"
+ url = "http://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz"
+
+ version('2.7.6.1', '312761baade811db2b956af3432c285e')
+
+ depends_on('autoconf')
+ depends_on('automake')
+ depends_on('gettext')
+ depends_on('libpipeline')
+ depends_on('flex')
+ depends_on('groff', type=('build', 'link', 'run'))
+
+ # TODO: add gzip support via a new package.
+ # man pages are typically compressed, include all available
+ # compression libraries
+ depends_on('bzip2', type=('build', 'link', 'run'))
+ depends_on('lzma', type=('build', 'link', 'run'))
+ depends_on('xz', type=('build', 'link', 'run'))
+
+ def configure_args(self):
+ args = [
+ '--disable-setuid',
+ # defaults to a location that needs root privs to write in
+ '--with-systemdtmpfilesdir={0}/tmp'.format(self.prefix)
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py
index 6374fdb8d3..78332a05b4 100644
--- a/var/spack/repos/builtin/packages/mariadb/package.py
+++ b/var/spack/repos/builtin/packages/mariadb/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Mariadb(Package):
+class Mariadb(CMakePackage):
"""MariaDB turns data into structured information in a wide array of
applications, ranging from banking to websites. It is an enhanced, drop-in
replacement for MySQL. MariaDB is used because it is fast, scalable and
@@ -45,18 +45,10 @@ class Mariadb(Package):
'operations in the mariadb client library.')
depends_on('boost')
- depends_on('cmake')
+ depends_on('cmake@2.6:', type='build')
depends_on('jemalloc')
depends_on('libaio')
depends_on('libedit')
depends_on('libevent', when='+nonblocking')
depends_on('ncurses')
depends_on('zlib')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
-
- cmake('..', *std_cmake_args)
-
- make()
- make('install')
diff --git a/var/spack/repos/builtin/packages/matlab/package.py b/var/spack/repos/builtin/packages/matlab/package.py
index 4d2b91546e..fbd272393e 100644
--- a/var/spack/repos/builtin/packages/matlab/package.py
+++ b/var/spack/repos/builtin/packages/matlab/package.py
@@ -66,6 +66,8 @@ class Matlab(Package):
license_vars = ['LM_LICENSE_FILE']
license_url = 'https://www.mathworks.com/help/install/index.html'
+ extendable = True
+
def url_for_version(self, version):
return "file://{0}/matlab_{1}_glnxa64.zip".format(os.getcwd(), version)
diff --git a/var/spack/repos/builtin/packages/maven/package.py b/var/spack/repos/builtin/packages/maven/package.py
index 347f05a764..550ce467e2 100644
--- a/var/spack/repos/builtin/packages/maven/package.py
+++ b/var/spack/repos/builtin/packages/maven/package.py
@@ -34,7 +34,7 @@ class Maven(Package):
version('3.3.9', '516923b3955b6035ba6b0a5b031fbd8b')
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
# install pre-built distribution
diff --git a/var/spack/repos/builtin/packages/maverick/package.py b/var/spack/repos/builtin/packages/maverick/package.py
new file mode 100644
index 0000000000..b480e5fc48
--- /dev/null
+++ b/var/spack/repos/builtin/packages/maverick/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Maverick(MakefilePackage):
+ """MavericK is a program for inferring population structure on the basis
+ of genetic information."""
+
+ homepage = "https://github.com/bobverity/MavericK"
+ url = "https://github.com/bobverity/MavericK/archive/v1.0.4.tar.gz"
+
+ version('1.0.4', '0c17c9a73fd0ac0aef17339173ddedc2')
+
+ conflicts('%gcc@:6.0')
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('MavericK', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py
index b93b82abd0..09820321de 100644
--- a/var/spack/repos/builtin/packages/mbedtls/package.py
+++ b/var/spack/repos/builtin/packages/mbedtls/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Mbedtls(Package):
+class Mbedtls(CMakePackage):
"""mbed TLS (formerly known as PolarSSL) makes it trivially easy for
developers to include cryptographic and SSL/TLS capabilities in
their (embedded) products, facilitating this functionality with a
@@ -42,10 +42,9 @@ class Mbedtls(Package):
version('2.1.3', '7eb4cf1dfa68578a2c8dbd0b6fa752dd')
version('1.3.16', '4144d7320c691f721aeb9e67a1bc38e0')
- depends_on('cmake', type='build')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release', 'Coverage', 'ASan', 'ASanDbg',
+ 'MemSan', 'MemSanDbg', 'Check', 'CheckFull'))
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
-
- make()
- make("install")
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/mcl/package.py b/var/spack/repos/builtin/packages/mcl/package.py
new file mode 100644
index 0000000000..af3116313e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mcl/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mcl(AutotoolsPackage):
+ """The MCL algorithm is short for the Markov Cluster Algorithm, a fast
+ and scalable unsupervised cluster algorithm for graphs (also known
+ as networks) based on simulation of (stochastic) flow in graphs."""
+
+ homepage = "https://www.micans.org/mcl/index.html"
+ url = "https://www.micans.org/mcl/src/mcl-14-137.tar.gz"
+
+ version('14-137', 'bc8740456cf51019d0a9ac5eba665bb5')
diff --git a/var/spack/repos/builtin/packages/mesa-glu/package.py b/var/spack/repos/builtin/packages/mesa-glu/package.py
index cb2f12ad43..54ad8992ec 100644
--- a/var/spack/repos/builtin/packages/mesa-glu/package.py
+++ b/var/spack/repos/builtin/packages/mesa-glu/package.py
@@ -30,7 +30,7 @@ class MesaGlu(AutotoolsPackage):
"""This package provides the Mesa OpenGL Utility library."""
homepage = "https://www.mesa3d.org"
- url = "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.0.tar.gz"
+ url = "https://www.mesa3d.org/archive/glu/glu-9.0.0.tar.gz"
version('9.0.0', 'bbc57d4fe3bd3fb095bdbef6fcb977c4')
diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py
index 22439c46d3..de36acbb73 100644
--- a/var/spack/repos/builtin/packages/mesa/package.py
+++ b/var/spack/repos/builtin/packages/mesa/package.py
@@ -26,36 +26,87 @@ from spack import *
class Mesa(AutotoolsPackage):
- """Mesa is an open-source implementation of the OpenGL
- specification - a system for rendering interactive 3D graphics."""
+ """Mesa is an open-source implementation of the OpenGL specification
+ - a system for rendering interactive 3D graphics."""
homepage = "http://www.mesa3d.org"
- url = "http://ftp.iij.ad.jp/pub/X11/x.org/pub/mesa/12.0.3/mesa-12.0.3.tar.gz"
+ url = "https://mesa.freedesktop.org/archive/13.0.6/mesa-13.0.6.tar.xz"
+ list_url = "https://mesa.freedesktop.org/archive"
+ list_depth = 2
- version('12.0.3', '60c5f9897ddc38b46f8144c7366e84ad')
+ version('17.1.3', '1946a93d543bc219427e2bebe2ac4752')
+ version('13.0.6', '1e5a769bc6cfd839cf3febcb179c27cc')
+ version('12.0.6', '1a3d4fea0656c208db59289e4ed33b3f')
+ version('12.0.3', '1113699c714042d8c4df4766be8c57d8')
+
+ variant('swrender', default=False,
+ description="Build with (gallium) software rendering.")
+
+ variant('llvm', default=False,
+ description="Use llvm for rendering pipes.")
# General dependencies
depends_on('python@2.6.4:')
depends_on('py-mako@0.3.4:', type=('build', 'run'))
depends_on('flex@2.5.35:', type='build')
depends_on('bison@2.4.1:', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
+
+ # Off-screen with llvmpipe
+ # Note: there must be a better way of selecting the preferred llvm
+ depends_on('llvm+link_dylib', when='+llvm')
# For DRI and hardware acceleration
depends_on('libpthread-stubs')
depends_on('libdrm')
depends_on('openssl')
depends_on('libxcb@1.9.3:')
- depends_on('libxshmfence@1.1:')
- depends_on('libx11')
- depends_on('libxext')
- depends_on('libxdamage')
+ depends_on('libxshmfence@1.1:', when='~swrender')
+ depends_on('libx11', when='~swrender')
+ depends_on('libxext', when='~swrender')
+ depends_on('libxdamage', when='~swrender')
depends_on('libxfixes')
+ # depends_on('expat', when='~swrender')
+ depends_on('libelf', when='+llvm~swrender')
- depends_on('glproto@1.4.14:', type='build')
- depends_on('dri2proto@2.6:', type='build')
- depends_on('dri3proto@1.0:', type='build')
- depends_on('presentproto@1.0:', type='build')
- depends_on('pkg-config@0.9.0:', type='build')
+ depends_on('glproto@1.4.14:', type='build', when='~swrender')
+ depends_on('dri2proto@2.6:', type='build', when='~swrender')
+ depends_on('dri3proto@1.0:', type='build', when='~swrender')
+ depends_on('presentproto@1.0:', type='build', when='~swrender')
# TODO: Add package for systemd, provides libudev
# Using the system package manager to install systemd didn't work for me
+
+ def configure_args(self):
+ spec = self.spec
+ args = []
+ drivers = []
+ if '+swrender' in spec:
+ drivers = ['swrast']
+ # Needs +llvm, but also C++14? -> drivers.append('swr')
+ args.extend([
+ '--disable-dri',
+ '--disable-egl',
+ '--disable-gbm',
+ '--disable-gles1',
+ '--disable-glx',
+ '--disable-xvmc',
+ '--enable-texture-float',
+ '--enable-gallium-osmesa',
+ ])
+
+ if '+llvm' in spec:
+ if self.spec.version < Version('17'):
+ args.append('--enable-gallium-llvm')
+ else:
+ args.append('--enable-llvm')
+ if '+link_dylib' in self.spec['llvm']:
+ args.append('--enable-llvm-shared-libs')
+ else:
+ args.append('--disable-llvm-shared-libs')
+ args.append('--with-llvm-prefix=%s' % spec['llvm'].prefix)
+
+ if drivers:
+ args.append('--with-gallium-drivers=' + ','.join(drivers))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py
index 2f450951e3..43feace931 100644
--- a/var/spack/repos/builtin/packages/metis/package.py
+++ b/var/spack/repos/builtin/packages/metis/package.py
@@ -91,7 +91,7 @@ class Metis(Package):
raise InstallError('METIS@:4 does not support the following '
'variants: gdb, int64, real64.')
- options = ['COPTIONS=-fPIC']
+ options = ['COPTIONS={0}'.format(self.compiler.pic_flag)]
if '+debug' in spec:
options.append('OPTFLAGS=-g -O0')
make(*options)
@@ -119,7 +119,7 @@ class Metis(Package):
install(sharefile, prefix.share)
if '+shared' in spec:
- shared_flags = ['-fPIC', '-shared']
+ shared_flags = [self.compiler.pic_flag, '-shared']
if sys.platform == 'darwin':
shared_suffix = 'dylib'
shared_flags.extend(['-Wl,-all_load', 'libmetis.a'])
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index 2848d77887..ffd3233a9f 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import re
class Mfem(Package):
@@ -62,132 +63,194 @@ class Mfem(Package):
'841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
url='http://goo.gl/xrScXn', extension='.tar.gz')
- variant('metis', default=False, description='Activate support for metis')
- variant('hypre', default=False, description='Activate support for hypre')
- variant('suite-sparse', default=False,
- description='Activate support for SuiteSparse')
- variant('mpi', default=True, description='Activate support for MPI')
+ variant('mpi', default=True,
+ description='Enable MPI parallelism')
+ variant('hypre', default=True,
+ description='Required for MPI parallelism')
+ variant('openmp', default=False,
+ description='Enable OpenMP parallelism')
+ variant('threadsafe', default=False,
+ description=('Enable thread safe features.'
+ ' Required for OpenMP.'
+ ' May cause minor performance issues.'))
variant('superlu-dist', default=False,
- description='Activate support for SuperLU_Dist')
- variant('lapack', default=False, description='Activate support for LAPACK')
- variant('debug', default=False, description='Build debug version')
- variant('netcdf', default=False, description='Activate NetCDF support')
+ description='Enable MPI parallel, sparse direct solvers')
+ variant('suite-sparse', default=False,
+ description='Enable serial, sparse direct solvers')
+ variant('petsc', default=False,
+ description='Enable PETSc solvers, preconditioners, etc..')
+ variant('sundials', default=False,
+ description='Enable Sundials time integrators')
+ variant('mpfr', default=False,
+ description='Enable precise, 1D quadrature rules')
+ variant('lapack', default=False,
+ description='Use external blas/lapack routines')
+ variant('debug', default=False,
+ description='Build debug instead of optimized version')
+ variant('netcdf', default=False,
+ description='Enable Cubit/Genesis reader')
+ variant('gzstream', default=True,
+ description='Support zip\'d streams for I/O')
+ variant('examples', default=False,
+ description='Build and install examples')
+ variant('miniapps', default=False,
+ description='Build and install miniapps')
+
+ conflicts('+mpi', when='~hypre')
+ conflicts('+suite-sparse', when='~lapack')
+ conflicts('+superlu-dist', when='@:3.1')
+ conflicts('+netcdf', when='@:3.1')
depends_on('blas', when='+lapack')
+ depends_on('blas', when='+suite-sparse')
depends_on('lapack', when='+lapack')
+ depends_on('lapack', when='+suite-sparse')
depends_on('mpi', when='+mpi')
- depends_on('metis', when='+mpi')
- depends_on('hypre', when='+mpi')
-
- depends_on('hypre', when='+hypre')
-
- depends_on('metis@4:', when='+metis')
-
- depends_on('suite-sparse', when='+suite-sparse')
- depends_on('blas', when='+suite-sparse')
- depends_on('lapack', when='+suite-sparse')
+ depends_on('metis')
+ depends_on('parmetis', when='+superlu-dist')
+ depends_on('metis@5:', when='+superlu-dist')
depends_on('metis@5:', when='+suite-sparse ^suite-sparse@4.5:')
- depends_on('cmake', when='^metis@5:', type='build')
+ depends_on('hypre~internal-superlu', when='+mpi')
+ depends_on('hypre@develop~internal-superlu', when='+petsc +hypre')
+ depends_on('sundials@2.7:+hypre', when='+sundials')
+ depends_on('suite-sparse', when='+suite-sparse')
depends_on('superlu-dist', when='@3.2: +superlu-dist')
+ depends_on('petsc@develop', when='+petsc')
+ depends_on('mpfr', when='+mpfr')
+ depends_on('cmake', when='^metis@5:', type='build')
depends_on('netcdf', when='@3.2: +netcdf')
depends_on('zlib', when='@3.2: +netcdf')
depends_on('hdf5', when='@3.2: +netcdf')
+ depends_on('libunwind', when='+debug')
+ depends_on('zlib', when='+gzstream')
patch('mfem_ppc_build.patch', when='@3.2:3.3 arch=ppc64le')
def check_variants(self, spec):
- if '+mpi' in spec and ('+hypre' not in spec or '+metis' not in spec):
- raise InstallError('mfem+mpi must be built with +hypre ' +
- 'and +metis!')
- if '+suite-sparse' in spec and ('+metis' not in spec or
- '+lapack' not in spec):
- raise InstallError('mfem+suite-sparse must be built with ' +
- '+metis and +lapack!')
if 'metis@5:' in spec and '%clang' in spec and (
'^cmake %gcc' not in spec):
raise InstallError('To work around CMake bug with clang, must ' +
'build mfem with mfem[+variants] %clang ' +
'^cmake %gcc to force CMake to build with gcc')
- if '@:3.1' in spec and '+superlu-dist' in spec:
- raise InstallError('MFEM does not support SuperLU_DIST for ' +
- 'versions 3.1 and earlier')
- if '@:3.1' in spec and '+netcdf' in spec:
- raise InstallError('MFEM does not support NetCDF for versions' +
- '3.1 and earlier')
return
+ #
+ # Note: Although MFEM does support CMake configuration, MFEM
+ # development team indicates that vanilla GNU Make is the
+ # preferred mode of configuration of MFEM and the mode most
+ # likely to be up to date in supporting *all* of MFEM's
+ # configuration options. So, don't use CMake
+ #
def install(self, spec, prefix):
self.check_variants(spec)
- options = ['PREFIX=%s' % prefix]
-
- if '+lapack' in spec:
- lapack_lib = (spec['lapack'].libs + spec['blas'].libs).ld_flags # NOQA: ignore=E501
- options.extend([
- 'MFEM_USE_LAPACK=YES',
- 'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include,
- 'LAPACK_LIB=%s' % lapack_lib])
+ def yes_no(varstr):
+ return 'YES' if varstr in self.spec else 'NO'
+
+ metis5_str = 'NO'
+ if '+superlu-dist' in spec or \
+ spec.satisfies('+suite-sparse ^suite-sparse@4.5:') or \
+ spec['metis'].satisfies('@5:'):
+ metis5_str = 'YES'
+
+ threadsafe_str = 'NO'
+ if '+openmp' in spec or '+threadsafe' in spec:
+ threadsafe_str = 'YES'
+
+ options = [
+ 'PREFIX=%s' % prefix,
+ 'MFEM_USE_MEMALLOC=YES',
+ 'MFEM_DEBUG=%s' % yes_no('+debug'),
+ 'MFEM_USE_LIBUNWIND=%s' % yes_no('+debug'),
+ 'MFEM_USE_GZSTREAM=%s' % yes_no('+gzstream'),
+ 'MFEM_USE_METIS_5=%s' % metis5_str,
+ 'MFEM_THREAD_SAFE=%s' % threadsafe_str,
+ 'MFEM_USE_MPI=%s' % yes_no('+mpi'),
+ 'MFEM_USE_LAPACK=%s' % yes_no('+lapack'),
+ 'MFEM_USE_SUPERLU=%s' % yes_no('+superlu-dist'),
+ 'MFEM_USE_SUITESPARSE=%s' % yes_no('+suite-sparse'),
+ 'MFEM_USE_SUNDIALS=%s' % yes_no('+sundials'),
+ 'MFEM_USE_PETSC=%s' % yes_no('+petsc'),
+ 'MFEM_USE_NETCDF=%s' % yes_no('+netcdf'),
+ 'MFEM_USE_MPFR=%s' % yes_no('+mpfr'),
+ 'MFEM_USE_OPENMP=%s' % yes_no('+openmp')]
if '+hypre' in spec:
- options.extend([
+ options += [
'HYPRE_DIR=%s' % spec['hypre'].prefix,
'HYPRE_OPT=-I%s' % spec['hypre'].prefix.include,
- 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib +
- ' -lHYPRE'])
+ 'HYPRE_LIB=-L%s' % spec['hypre'].prefix.lib + ' -lHYPRE']
- if 'parmetis' in spec:
- metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib
- metis_str = 'MFEM_USE_METIS_5=YES'
- options.extend([metis_str,
- 'METIS_DIR=%s' % spec['parmetis'].prefix,
- 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include,
- 'METIS_LIB=%s' % metis_lib])
- elif 'metis' in spec:
- metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib
- if spec['metis'].satisfies('@5:'):
- metis_str = 'MFEM_USE_METIS_5=YES'
- else:
- metis_str = 'MFEM_USE_METIS_5=NO'
- options.extend([
- metis_str,
- 'METIS_DIR=%s' % spec['metis'].prefix,
- 'METIS_OPT=-I%s' % spec['metis'].prefix.include,
- 'METIS_LIB=%s' % metis_lib])
-
- if 'mpi' in spec:
- options.extend(['MFEM_USE_MPI=YES'])
+ if '+lapack' in spec:
+ lapack_lib = (spec['lapack'].libs + spec['blas'].libs).ld_flags # NOQA: ignore=E501
+ options += [
+ 'LAPACK_OPT=-I%s' % spec['lapack'].prefix.include,
+ 'LAPACK_LIB=%s' % lapack_lib]
if '+superlu-dist' in spec:
+ metis_lib = '-L%s -lparmetis -lmetis' % spec['parmetis'].prefix.lib
+ options += [
+ 'METIS_DIR=%s' % spec['parmetis'].prefix,
+ 'METIS_OPT=-I%s' % spec['parmetis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib]
superlu_lib = '-L%s' % spec['superlu-dist'].prefix.lib
superlu_lib += ' -lsuperlu_dist'
- sl_inc = 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include
- options.extend(['MFEM_USE_SUPERLU=YES',
- 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix,
- sl_inc,
- 'SUPERLU_LIB=%s' % superlu_lib])
+ options += [
+ 'SUPERLU_DIR=%s' % spec['superlu-dist'].prefix,
+ 'SUPERLU_OPT=-I%s' % spec['superlu-dist'].prefix.include,
+ 'SUPERLU_LIB=%s' % superlu_lib]
+ else:
+ metis_lib = '-L%s -lmetis' % spec['metis'].prefix.lib
+ options += [
+ 'METIS_DIR=%s' % spec['metis'].prefix,
+ 'METIS_OPT=-I%s' % spec['metis'].prefix.include,
+ 'METIS_LIB=%s' % metis_lib]
if '+suite-sparse' in spec:
ssp = spec['suite-sparse'].prefix
ss_lib = '-L%s' % ssp.lib
-
if '@3.2:' in spec:
ss_lib += ' -lklu -lbtf'
-
ss_lib += (' -lumfpack -lcholmod -lcolamd' +
' -lamd -lcamd -lccolamd -lsuitesparseconfig')
-
no_rt = spec.satisfies('platform=darwin')
if not no_rt:
ss_lib += ' -lrt'
ss_lib += (' ' + metis_lib + ' ' + lapack_lib)
-
- options.extend(['MFEM_USE_SUITESPARSE=YES',
- 'SUITESPARSE_DIR=%s' % ssp,
- 'SUITESPARSE_OPT=-I%s' % ssp.include,
- 'SUITESPARSE_LIB=%s' % ss_lib])
+ options += [
+ 'SUITESPARSE_DIR=%s' % ssp,
+ 'SUITESPARSE_OPT=-I%s' % ssp.include,
+ 'SUITESPARSE_LIB=%s' % ss_lib]
+
+ if '+sundials' in spec:
+ sundials_libs = (
+ '-lsundials_arkode -lsundials_cvode'
+ ' -lsundials_nvecserial -lsundials_kinsol')
+ if '+mpi' in spec:
+ sundials_libs += (
+ ' -lsundials_nvecparhyp -lsundials_nvecparallel')
+ options += [
+ 'SUNDIALS_DIR=%s' % spec['sundials'].prefix,
+ 'SUNDIALS_OPT=-I%s' % spec['sundials'].prefix.include,
+ 'SUNDIALS_LIB=-L%s %s' % (spec['sundials'].prefix.lib,
+ sundials_libs)]
+
+ if '+petsc' in spec:
+ f = open('%s/lib/pkgconfig/PETSc.pc' % spec['petsc'].prefix, 'r')
+ for line in f:
+ if re.search('^\s*Cflags: ', line):
+ petsc_opts = re.sub('^\s*Cflags: (.*)', '\\1', line)
+ elif re.search('^\s*Libs.*: ', line):
+ petsc_libs = re.sub('^\s*Libs.*: (.*)', '\\1', line)
+ f.close()
+ options += [
+ 'PETSC_DIR=%s' % spec['petsc'].prefix,
+ 'PETSC_OPT=%s' % petsc_opts,
+ 'PETSC_LIB=-L%s -lpetsc %s' %
+ (spec['petsc'].prefix.lib, petsc_libs)]
if '+netcdf' in spec:
np = spec['netcdf'].prefix
@@ -196,28 +259,31 @@ class Mfem(Package):
nlib = '-L%s -lnetcdf ' % np.lib
nlib += '-L%s -lhdf5_hl -lhdf5 ' % h5p.lib
nlib += '-L%s -lz' % zp.lib
- options.extend(['MFEM_USE_NETCDF=YES',
- 'NETCDF_DIR=%s' % np,
- 'HDF5_DIR=%s' % h5p,
- 'ZLIB_DIR=%s' % zp,
- 'NETCDF_OPT=-I%s' % np.include,
- 'NETCDF_LIB=%s' % nlib])
+ options += [
+ 'NETCDF_DIR=%s' % np,
+ 'HDF5_DIR=%s' % h5p,
+ 'ZLIB_DIR=%s' % zp,
+ 'NETCDF_OPT=-I%s' % np.include,
+ 'NETCDF_LIB=%s' % nlib]
- if '+debug' in spec:
- options.extend(['MFEM_DEBUG=YES'])
+ if '+mpfr' in spec:
+ options += ['MPFR_LIB=-L%s -lmpfr' % spec['mpfr'].prefix.lib]
+
+ if '+openmp' in spec:
+ options += ['OPENMP_OPT = %s' % self.compiler.openmp_flag]
make('config', *options)
- make('all')
-
- # Run a small test before installation
- args = ['-m', join_path('data', 'star.mesh'), '--no-visualization']
- if '+mpi' in spec:
- Executable(join_path(spec['mpi'].prefix.bin,
- 'mpirun'))('-np',
- '4',
- join_path('examples', 'ex1p'),
- *args)
- else:
- Executable(join_path('examples', 'ex1'))(*args)
+ make('lib')
+
+ if self.run_tests:
+ make('check')
make('install')
+
+ if '+examples' in spec:
+ make('examples')
+ install_tree('examples', join_path(prefix, 'examples'))
+
+ if '+miniapps' in spec:
+ make('miniapps')
+ install_tree('miniapps', join_path(prefix, 'miniapps'))
diff --git a/var/spack/repos/builtin/packages/microbiomeutil/package.py b/var/spack/repos/builtin/packages/microbiomeutil/package.py
new file mode 100644
index 0000000000..7be7a4ac0d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/microbiomeutil/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Microbiomeutil(MakefilePackage):
+ """Microbiome analysis utilities"""
+
+ homepage = "http://microbiomeutil.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/microbiomeutil/microbiomeutil-r20110519.tgz"
+
+ version('20110519', '11eaac4b0468c05297ba88ec27bd4b56')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('blast-plus')
+ depends_on('cdbfasta')
+
+ def install(self, spec, prefix):
+ install_tree('ChimeraSlayer', prefix.ChimeraSlayer)
+ install_tree('NAST-iEr', join_path(prefix, 'NAST-iEr'))
+ install_tree('TreeChopper', prefix.TreeChopper)
+ install_tree('WigeoN', prefix.WigeoN)
+ install_tree('docs', prefix.docs)
+ install_tree('RESOURCES', prefix.resources)
+ install_tree('AmosCmp16Spipeline', prefix.AmosCmp16Spipeline)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PATH', self.prefix.ChimeraSlayer)
+ run_env.prepend_path('PATH', join_path(self.prefix, 'NAST-iEr'))
+ run_env.prepend_path('PATH', self.prefix.TreeChopper)
+ run_env.prepend_path('PATH', self.prefix.WigeoN)
diff --git a/var/spack/repos/builtin/packages/miniaero/package.py b/var/spack/repos/builtin/packages/miniaero/package.py
new file mode 100644
index 0000000000..471ecb9d0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/miniaero/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Miniaero(MakefilePackage):
+ """Proxy Application. MiniAero is a mini-application for the evaulation
+ of programming models and hardware for next generation platforms.
+ """
+
+ homepage = "http://mantevo.org"
+ url = "https://github.com/Mantevo/miniAero.git"
+
+ tags = ['proxy-app']
+
+ version('2016-11-11', git='https://github.com/Mantevo/miniAero.git',
+ commit='f46d135479a5be19ec5d146ccaf0e581aeff4596')
+
+ depends_on('kokkos')
+
+ @property
+ def build_targets(self):
+ targets = [
+ '--directory=kokkos',
+ 'CXX=c++',
+ 'KOKKOS_PATH={0}'.format(self.spec['kokkos'].prefix)
+ ]
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('kokkos/miniAero.host', prefix.bin)
+ install('kokkos/README', prefix.doc)
+ install('kokkos/tests/3D_Sod_Serial/miniaero.inp', prefix.bin)
+ install_tree('kokkos/tests', prefix.doc.tests)
diff --git a/var/spack/repos/builtin/packages/miniamr/package.py b/var/spack/repos/builtin/packages/miniamr/package.py
new file mode 100644
index 0000000000..7dc138ed44
--- /dev/null
+++ b/var/spack/repos/builtin/packages/miniamr/package.py
@@ -0,0 +1,70 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Miniamr(MakefilePackage):
+ """Proxy Application. 3D stencil calculation with
+ Adaptive Mesh Refinement (AMR)
+ """
+
+ homepage = "https://mantevo.org"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniAMR/miniAMR_1.0_all.tgz"
+
+ tags = ['proxy-app']
+
+ version('1.0', '812e5aaaab99689a4e9381a3bbd718a6')
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ depends_on('mpi', when="+mpi")
+
+ @property
+ def build_targets(self):
+ targets = []
+ if '+mpi' in self.spec:
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+ targets.append('LDLIBS=-lm')
+ targets.append('--file=Makefile.mpi')
+ targets.append('--directory=miniAMR_ref')
+ else:
+ targets.append('--file=Makefile.serial')
+ targets.append('--directory=miniAMR_serial')
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual installation
+ mkdir(prefix.bin)
+ mkdir(prefix.doc)
+
+ if '+mpi' in spec:
+ install('miniAMR_ref/miniAMR.x', prefix.bin)
+ else:
+ install('miniAMR_serial/miniAMR.x', prefix.bin)
+
+ # Install Support Documents
+ install('miniAMR_ref/README', prefix.doc)
diff --git a/var/spack/repos/builtin/packages/minife/package.py b/var/spack/repos/builtin/packages/minife/package.py
new file mode 100644
index 0000000000..ced755d112
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minife/package.py
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import tarfile
+
+from spack import *
+
+
+class Minife(MakefilePackage):
+ """Proxy Application. MiniFE is an proxy application
+ for unstructured implicit finite element codes.
+ """
+
+ homepage = "https://mantevo.org/"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniFE/miniFE-2.0.1.tgz"
+
+ tags = ['proxy-app']
+
+ version('2.0.1', '3113d7c8fc01495d08552672b0dbd015')
+
+ variant('build', default='ref', description='Type of Parallelism',
+ values=('ref', 'openmp_ref', 'qthreads', 'kokkos'))
+
+ depends_on('mpi')
+ depends_on('qthreads', when='build=qthreads')
+
+ @property
+ def build_version(self):
+ return self.version.up_to(2)
+
+ @property
+ def build_targets(self):
+ targets = [
+ '--directory=miniFE-{0}_{1}/src'.format(
+ self.build_version, self.spec.variants['build'].value),
+ 'CXX={0}'.format(self.spec['mpi'].mpicxx),
+ 'CC={0}'.format(self.spec['mpi'].mpicc)
+ ]
+
+ return targets
+
+ def edit(self, spec, prefix):
+ inner_tar = tarfile.open(name='miniFE-{0}_{1}.tgz'.format(
+ self.build_version,
+ self.spec.variants['build'].value))
+ inner_tar.extractall()
+
+ makefile = FileFilter('miniFE-{0}_{1}/src/Makefile'.format(
+ self.build_version,
+ self.spec.variants['build'].value))
+
+ makefile.filter('-fopenmp', self.compiler.openmp_flag, string=True)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('miniFE-{0}_{1}/src/miniFE.x'.format(
+ self.build_version, self.spec.variants['build'].value),
+ prefix.bin)
diff --git a/var/spack/repos/builtin/packages/minighost/package.py b/var/spack/repos/builtin/packages/minighost/package.py
new file mode 100644
index 0000000000..59b0b33dc4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minighost/package.py
@@ -0,0 +1,96 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import tarfile
+
+from spack import *
+
+
+class Minighost(MakefilePackage):
+ """Proxy Application. A Finite Difference proxy
+ application which implements a difference stencil
+ across a homogenous three dimensional domain.
+ """
+
+ homepage = "http://mantevo.org"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniGhost/miniGhost_1.0.1.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.0.1', '2a4ac4383e9be00f87b6067c3cfe6463')
+
+ variant('mpi', default=True, description='Enable MPI Support')
+
+ depends_on('mpi', when='+mpi')
+
+ parallel = False
+
+ @property
+ def build_targets(self):
+ targets = ['--directory=miniGhost_ref']
+
+ if '+mpi' in self.spec:
+ targets.append('PROTOCOL=-D_MG_MPI')
+ targets.append('FC={0}'.format(self.spec['mpi'].mpif77))
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+ targets.append(
+ 'LIBS=-lm -lgfortran -lmpi_usempi -lmpi_mpifh -lmpi')
+ else:
+ targets.append('PROTOCOL=-D_MG_SERIAL')
+ targets.append('FC=f77')
+ targets.append('CC=cc')
+ targets.append('LIBS=-lm -lgfortran')
+
+ if '%gcc' in self.spec:
+ targets.append('COMPILER_SUITE=gnu')
+ elif '%cce' in self.spec:
+ targets.append('COMPILER_SUITE=cray')
+ elif '%intel' in self.spec:
+ targets.append('COMPILER_SUITE=intel')
+ elif '%pgi' in self.spec:
+ targets.append('COMPILER_SUITE=pgi')
+
+ return targets
+
+ def edit(self, spec, prefix):
+ inner_tar = tarfile.open(
+ 'miniGhost_ref_{0}.tar.gz'.format(self.version.up_to(3)))
+ inner_tar.extractall()
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('miniGhost_ref/miniGhost.x', prefix.bin)
+ install('miniGhost_ref/default-settings.h', prefix.bin)
+
+ if '+mpi' in spec:
+ install('miniGhost_ref/runtest.mpi', prefix.bin)
+ install('miniGhost_ref/runtest.mpi.ds', prefix.bin)
+ else:
+ install('miniGhost_ref/runtest.serial', prefix.bin)
+
+ install('README', prefix.doc)
diff --git a/var/spack/repos/builtin/packages/minigmg/package.py b/var/spack/repos/builtin/packages/minigmg/package.py
new file mode 100644
index 0000000000..799fb1ee6f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minigmg/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class Minigmg(Package):
+ """miniGMG is a compact benchmark for understanding the performance
+ challenges associated with geometric multigrid solvers
+ found in applications built from AMR MG frameworks
+ like CHOMBO or BoxLib when running
+ on modern multi- and manycore-based supercomputers.
+ It includes both productive reference examples as well as
+ highly-optimized implementations for CPUs and GPUs.
+ It is sufficiently general that it has been used to evaluate
+ a broad range of research topics including PGAS programming models
+ and algorithmic tradeoffs inherit in multigrid. miniGMG was developed
+ under the CACHE Joint Math-CS Institute.
+
+ Note, miniGMG code has been supersceded by HPGMG. """
+
+ homepage = "http://crd.lbl.gov/departments/computer-science/PAR/research/previous-projects/miniGMG/"
+ url = "http://crd.lbl.gov/assets/Uploads/FTG/Projects/miniGMG/miniGMG.tar.gz"
+
+ version('master', '975a2a118403fc0024b5e04cef280e95')
+
+ depends_on('mpi')
+
+ phases = ['build', 'install']
+
+ def build(self, spec, prefix):
+ cc = Executable(spec['mpi'].mpicc)
+ cc('-O3', self.compiler.openmp_flag, 'miniGMG.c',
+ 'mg.c', 'box.c', 'solver.c', 'operators.ompif.c', 'timer.x86.c',
+ '-D__MPI', '-D__COLLABORATIVE_THREADING=6',
+ '-D__TEST_MG_CONVERGENCE', '-D__PRINT_NORM', '-D__USE_BICGSTAB',
+ '-o', 'run.miniGMG', '-lm')
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('run.miniGMG', prefix.bin)
+ mkdir(prefix.jobs)
+ files = glob.glob('job*')
+ for f in files:
+ install(f, prefix.jobs)
diff --git a/var/spack/repos/builtin/packages/minimd/package.py b/var/spack/repos/builtin/packages/minimd/package.py
new file mode 100644
index 0000000000..a8d72e7015
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minimd/package.py
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import glob
+import tarfile
+
+from spack import *
+
+
+class Minimd(MakefilePackage):
+ """Proxy Application. A simple proxy for the force computations
+ in a typical molecular dynamics applications.
+ """
+
+ homepage = "http://mantevo.org"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniMD/miniMD_1.2.tgz"
+
+ tags = ['proxy-app']
+
+ version('1.2', '893ef1ca5062e32b43a8d11bcfe1a056')
+
+ depends_on('mpi')
+
+ build_directory = 'miniMD_ref'
+
+ @property
+ def build_targets(self):
+ targets = [
+ 'LINK={0}'.format(self.spec['mpi'].mpicxx),
+ 'CC={0}'.format(self.spec['mpi'].mpicxx),
+ 'CCFLAGS={0} -DMPICH_IGNORE_CXX_SEEK -DNOCHUNK'.format(
+ self.compiler.openmp_flag),
+ 'EXE=miniMD_mpi',
+ 'openmpi'
+ ]
+
+ return targets
+
+ def edit(self, spec, prefix):
+ inner_tar = tarfile.open(name='miniMD_{0}_ref.tgz'.format(
+ self.version.up_to(2)))
+ inner_tar.extractall()
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('miniMD_ref/miniMD_mpi', prefix.bin)
+ install('miniMD_ref/in.lj.miniMD', prefix.bin)
+ install('miniMD_ref/README', prefix.doc)
+
+ for f in glob.glob('miniMD_ref/in.*'):
+ install(f, prefix.doc)
diff --git a/var/spack/repos/builtin/packages/minismac2d/package.py b/var/spack/repos/builtin/packages/minismac2d/package.py
new file mode 100644
index 0000000000..b519128b19
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minismac2d/package.py
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Minismac2d(MakefilePackage):
+ """Proxy Application. Solves the finite-differenced 2D incompressible
+ Navier-Stokes equations with Spalart-Allmaras one-equation
+ turbulence model on a structured body conforming grid.
+ """
+
+ homepage = "http://mantevo.org"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniSMAC2D/miniSMAC2D-2.0.tgz"
+
+ tags = ['proxy-app']
+
+ version('2.0', '1bb1a52cea21bc9162bf7a71a6ddf37d')
+
+ depends_on('mpi')
+
+ parallel = False
+
+ @property
+ def build_targets(self):
+ targets = [
+ 'CPP=cpp',
+ 'FC={0}'.format(self.spec['mpi'].mpifc),
+ 'LD={0}'.format(self.spec['mpi'].mpifc),
+ 'MPIDIR=-I{0}/include'.format(self.spec['mpi'].prefix),
+ 'CPPFLAGS=-P -traditional -DD_PRECISION',
+ 'FFLAGS=-O3 -c -g -DD_PRECISION',
+ 'LDFLAGS=-O3',
+ '--file=Makefile_mpi_only'
+ ]
+
+ return targets
+
+ def edit(self, spec, prefix):
+ # Editing input file to point to installed data files
+ param_file = FileFilter('smac2d.in')
+ param_file.filter('bcmain_directory=.*', "bcmain_directory='.'")
+ param_file.filter('bcmain_filename=.*',
+ "bcmain_filename='bcmain.dat_original_119x31'")
+ param_file.filter('xygrid_directory=.*', "xygrid_directory='.'")
+ param_file.filter('xygrid_filename=.*',
+ "xygrid_filename='xy.dat_original_119x31'")
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('smac2d_mpi_only', prefix.bin)
+ install('bcmain.dat_original_119x31', prefix.bin)
+ install('xy.dat_original_119x31', prefix.bin)
+ install('smac2d.in', prefix.bin)
+ install('README.txt', prefix.doc)
diff --git a/var/spack/repos/builtin/packages/minixyce/package.py b/var/spack/repos/builtin/packages/minixyce/package.py
new file mode 100644
index 0000000000..46d160d2da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minixyce/package.py
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Minixyce(MakefilePackage):
+ """Proxy Application. A portable proxy of some of the key
+ capabilities in the electrical modeling Xyce.
+ """
+
+ homepage = "https://mantevo.org"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/MiniXyce/miniXyce_1.0.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.0', '6fc0e5a561af0b8ff581d9f704194133')
+
+ variant('mpi', default=True, description='Build with MPI Support')
+
+ depends_on('mpi', when='+mpi')
+
+ @property
+ def build_targets(self):
+ targets = []
+
+ if '+mpi' in self.spec:
+ targets.append('CXX={0}'.format(self.spec['mpi'].mpicxx))
+ targets.append('LINKER={0}'.format(self.spec['mpi'].mpicxx))
+ targets.append('USE_MPI=-DHAVE_MPI -DMPICH_IGNORE_CXX_SEEK')
+ else:
+ targets.append('CXX=c++')
+ targets.append('LINKER=c++')
+ targets.append('USE_MPI=')
+
+ # Remove Compiler Specific Optimization Flags
+ if '%gcc' not in self.spec:
+ targets.append('CPP_OPT_FLAGS=')
+
+ return targets
+
+ def build(self, spec, prefix):
+ with working_dir('miniXyce_ref'):
+ # Call Script Targets First to Generate Needed Files
+ make('generate_info')
+ make('common_files')
+ make(*self.build_targets)
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('miniXyce_ref/miniXyce.x', prefix.bin)
+ install('miniXyce_ref/default_params.txt', prefix.bin)
+ install('README', prefix.doc)
+
+ install_tree('miniXyce_ref/tests/', prefix.doc.tests)
diff --git a/var/spack/repos/builtin/packages/mitofates/package.py b/var/spack/repos/builtin/packages/mitofates/package.py
new file mode 100644
index 0000000000..0ca4ae58f2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mitofates/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mitofates(Package):
+ """MitoFates predicts mitochondrial presequence, a cleavable localization
+ signal located in N-terminal, and its cleaved position."""
+
+ homepage = "http://mitf.cbrc.jp/MitoFates/cgi-bin/top.cgi"
+ url = "http://mitf.cbrc.jp/MitoFates/program/MitoFates_1.2.tar.gz"
+
+ version('1.2', 'aaac42a8e8c7318a4abde9df3a4b72d1')
+
+ depends_on('libsvm')
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install('MitoFates.pl', prefix)
diff --git a/var/spack/repos/builtin/packages/mitos/package.py b/var/spack/repos/builtin/packages/mitos/package.py
index 0e87f7c376..2c2177f968 100644
--- a/var/spack/repos/builtin/packages/mitos/package.py
+++ b/var/spack/repos/builtin/packages/mitos/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Mitos(Package):
+class Mitos(CMakePackage):
"""Mitos is a library and a tool for collecting sampled memory
performance data to view with MemAxes"""
@@ -40,10 +40,4 @@ class Mitos(Package):
depends_on('dyninst@8.2.1:')
depends_on('hwloc')
depends_on('mpi')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make("install")
+ depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/moab/package.py b/var/spack/repos/builtin/packages/moab/package.py
index 4798f842f0..1bf81b34ea 100644
--- a/var/spack/repos/builtin/packages/moab/package.py
+++ b/var/spack/repos/builtin/packages/moab/package.py
@@ -49,7 +49,7 @@ class Moab(AutotoolsPackage):
description='Required to enable the hdf5 (default I/O) format')
variant('netcdf', default=False,
description='Required to enable the ExodusII reader/writer.')
- variant('pnetcdf', default=False,
+ variant('pnetcdf', default=False,
description='Enable pnetcdf (AKA parallel-netcdf) support')
variant('netcdf', default=False,
description='Required to enable the ExodusII reader/writer.')
@@ -57,7 +57,7 @@ class Moab(AutotoolsPackage):
variant('cgm', default=False, description='Enable common geometric module')
variant('metis', default=True, description='Enable metis link')
variant('parmetis', default=True, description='Enable parmetis link')
- variant('irel', default=False, description='Enable irel interface')
+ variant('irel', default=False, description='Enable irel interface')
variant('fbigeom', default=False, description='Enable fbigeom interface')
variant('coupler', default=True, description='Enable mbcoupler tool')
@@ -79,6 +79,7 @@ class Moab(AutotoolsPackage):
# depends_on('cgns', when='+cgns')
# depends_on('vtk', when='+vtk')
+ depends_on('blas')
depends_on('mpi', when='+mpi')
depends_on('hdf5', when='+hdf5')
depends_on('hdf5+mpi', when='+hdf5+mpi')
diff --git a/var/spack/repos/builtin/packages/molcas/install_driver.patch b/var/spack/repos/builtin/packages/molcas/install_driver.patch
new file mode 100644
index 0000000000..717e776aee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/molcas/install_driver.patch
@@ -0,0 +1,114 @@
+--- molcas82/sbin/install_driver.sh 2017-02-14 04:35:06.000000000 -0600
++++ molcas82/sbin/install_driver.sh 2017-08-04 15:08:17.872417692 -0500
+@@ -1,110 +1,3 @@
+ #!/bin/sh
+
+-echo `pwd` > $HOME/.Molcas/molcas 2> /dev/null
+-
+-# current driver version
+-if [ -z "$1" ] ; then
+- driver_file="sbin/molcas.driver"
+-else
+- driver_file="$1"
+-fi
+-current_version=`sed -e 's/.*Molcas driver shell script version // ; tx ; d ; :x s/\.//' $driver_file`
+-
+-MOLCASDRIVER=""
+-
+-# check location of driver script in your PATH
+-installed=0
+-
+-orig_IFS=$IFS
+-IFS=':'
+-for x in $PATH; do
+- if [ -f "$x/molcas" ]; then
+- l=`sed -e 's/.*Molcas driver shell script version // ; tx ; d ; :x s/\.//' "$x/molcas"`
+- if [ "$l" -lt "$current_version" ]; then
+- echo "*** Warning! An old version of the molcas driver script was found at: $x"
+- rm -f "$x/molcas" > /dev/null 2>&1
+- if [ "$?" != 0 ]; then
+- echo "*** $x/molcas is read only!"
+- echo "*** You have to remove this file manually"
+- echo ""
+- else
+- echo " and removed..."
+- MOLCASDRIVER="$x"
+- fi
+- else
+- echo "Molcas driver has been found at: $x"
+- MOLCASDRIVER="$x"
+- installed=1
+- fi
+- break
+- fi
+-done
+-
+-# latest version already installed, exit
+-if [ $installed = 1 ] ; then
+- exit 0
+-fi
+-
+-# try to find proper location for molcas driver
+-if [ -z "$MOLCASDRIVER" ]; then
+- # no existing version found, use default PATH
+- if [ -z "$PATH" ]; then
+- E_PATH="$HOME/bin"
+- else
+- E_PATH="$HOME/bin:$PATH"
+- fi
+-else
+- # a previous version was found, create it there
+- E_PATH="$MOLCASDRIVER"
+-fi
+-
+-# find first writable directory
+-dir_found=0
+-for x in $E_PATH ; do
+- if [ "$x" = "." ] ; then continue ; fi
+- # detect if directory is writable (-w would not work, since it does not handle mount permissions)
+- cp "$driver_file" "$x/this_is_not_molcas" > /dev/null 2>&1
+- if [ "$?" = 0 ] ; then
+- rm -f "$x/this_is_not_molcas" > /dev/null 2>&1
+- MOLCASDRIVER="$x"
+- dir_found=1
+- break
+- fi
+-done
+-
+-# create a default molcas driver
+-if [ $dir_found = 0 ] ; then
+- echo "*** Warning! Could not find a proper directory to install the molcas driver"
+- echo ""
+- echo "*** Check that there is a directory in your PATH with write access"
+- echo "*** (for example $HOME/bin) and restart the installation"
+- echo ""
+- echo "*** You have to put the molcas driver in any directory in your PATH"
+-else
+- echo "molcas driver will be installed in $MOLCASDRIVER"
+- echo "Is this OK?"
+- while true; do
+- read answer
+- case "${answer}_" in
+- [Yy]*|_ )
+- cp "$driver_file" "$MOLCASDRIVER/molcas"
+- chmod +x "$MOLCASDRIVER/molcas"
+- # check again the driver was installed
+- l=`sed -e 's/.*Molcas driver shell script version // ; tx ; d ; :x s/\.//' "$x/molcas"`
+- if [ "$l" -eq "$current_version" -a -x "$MOLCASDRIVER/molcas" ] ; then
+- echo "Driver installation successful"
+- else
+- echo "*** Driver installation failed!"
+- echo ""
+- echo "*** You have to put the molcas driver in any directory in your PATH"
+- fi
+- break ;;
+- [Nn]* )
+- echo "*** Driver installation canceled!"
+- echo ""
+- echo "*** You have to put the molcas driver in any directory in your PATH"
+- break ;;
+- * ) echo "Please answer yes or no"
+- esac
+- done
+-fi
++echo `Driver Will be in the sbin folder`
diff --git a/var/spack/repos/builtin/packages/molcas/package.py b/var/spack/repos/builtin/packages/molcas/package.py
new file mode 100644
index 0000000000..c5d92b9c50
--- /dev/null
+++ b/var/spack/repos/builtin/packages/molcas/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Molcas(CMakePackage):
+ """Molcas is an ab initio quantum chemistry software package
+ developed by scientists to be used by scientists.
+ Please set the path to licence file with the following command
+ export MOLCAS_LICENSE=/path/to/molcas/license/"""
+
+ homepage = "http://www.molcas.org/"
+ url = "file://{0}/molcas8.2.tar.gz".format(os.getcwd())
+
+ version('8.2', '25b5fb8e1338b458a3eaea0b3d3b5e58')
+
+ # Licensing
+ license_required = True
+ license_vars = ['MOLCAS_LICENSE']
+
+ depends_on('openmpi')
+ depends_on('openblas')
+ depends_on('hdf5')
+
+ patch('install_driver.patch')
diff --git a/var/spack/repos/builtin/packages/mothur/package.py b/var/spack/repos/builtin/packages/mothur/package.py
new file mode 100644
index 0000000000..0caf0bc1f9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mothur/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mothur(MakefilePackage):
+ """This project seeks to develop a single piece of open-source, expandable
+ software to fill the bioinformatics needs of the microbial ecology
+ community."""
+
+ homepage = "https://github.com/mothur/mothur"
+ url = "https://github.com/mothur/mothur/archive/v1.39.5.tar.gz"
+
+ version('1.39.5', '1f826ea4420e6822fc0db002c5940b92')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('boost')
+ depends_on('readline')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ makefile.filter('BOOST_LIBRARY_DIR=\"\\\"Enter_your_boost_library_path'
+ '_here\\\"\"', 'BOOST_LIBRARY_DIR=%s' %
+ self.spec['boost'].prefix.lib)
+ makefile.filter('BOOST_INCLUDE_DIR=\"\\\"Enter_your_boost_include_path'
+ '_here\\\"\"', 'BOOST_INCLUDE_DIR=%s' %
+ self.spec['boost'].prefix.include)
+ makefile.filter('MOTHUR_FILES=\"\\\"Enter_your_default_path_'
+ 'here\\\"\"', 'MOTHUR_FILES=%s' % prefix)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('mothur', prefix.bin)
+ install('uchime', prefix.bin)
+ install_tree('source', prefix.include)
diff --git a/var/spack/repos/builtin/packages/mpest/package.py b/var/spack/repos/builtin/packages/mpest/package.py
new file mode 100644
index 0000000000..a00eb37bb8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpest/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mpest(MakefilePackage):
+ """MP-EST estimates species trees from a set of gene trees by maximizing
+ a pseudo-likelihood function."""
+
+ homepage = "http://faculty.franklin.uga.edu/lliu/content/mp-est"
+ url = "https://faculty.franklin.uga.edu/lliu/sites/faculty.franklin.uga.edu.lliu/files/mpest_1.5.zip"
+
+ version('1.5', 'f176d5301aa26567918664e5e30027d1')
+
+ @property
+ def build_directory(self):
+ return join_path('mpest_{0}'.format(self.version), 'src')
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ mkdirp(prefix.bin)
+ install('mpest', prefix.bin)
+
+ def setup_environment(self, spack_env, run_env):
+ if self.spec.satisfies('platform=darwin'):
+ spack_env.set('ARCHITECTURE', 'mac')
+ else:
+ spack_env.set('ARCHITECTURE', 'unix')
diff --git a/var/spack/repos/builtin/packages/mpiblast/mpiBLAST-1.6.0-patch-110806 b/var/spack/repos/builtin/packages/mpiblast/mpiBLAST-1.6.0-patch-110806
new file mode 100644
index 0000000000..05de8ed074
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpiblast/mpiBLAST-1.6.0-patch-110806
@@ -0,0 +1,182 @@
+diff -rwu mpiblast-1.6.0/ncbi/corelib/ncbienv.c mpiblast-1.6.0-patched/ncbi/corelib/ncbienv.c
+--- mpiblast-1.6.0/ncbi/corelib/ncbienv.c 2009-11-22 01:17:48.000000000 -0500
++++ mpiblast-1.6.0-patched/ncbi/corelib/ncbienv.c 2011-08-06 17:10:08.000000000 -0400
+@@ -1932,7 +1932,7 @@
+ static char **targv = NULL;
+
+
+-#if defined(WIN_MAC)
++#if defined(WIN_MAC) || defined(OS_UNIX_DARWIN)
+ static FSSpec apFileSpec;
+ static Str255 apName;
+ static Handle apParam;
+@@ -2047,7 +2047,7 @@
+ }
+ }
+ #endif /* defined(OS_UNIX_DARWIN) */
+-#endif /* defined(WIN_MAC) */
++#endif /* defined(WIN_MAC) || defined(OS_UNIX_DARWIN) */
+
+
+ #if defined(OS_MSWIN) || defined(OS_VMS)
+diff -rwu mpiblast-1.6.0/ncbi/make/makedis.csh mpiblast-1.6.0-patched/ncbi/make/makedis.csh
+--- mpiblast-1.6.0/ncbi/make/makedis.csh 2010-06-28 21:04:36.000000000 -0400
++++ mpiblast-1.6.0-patched/ncbi/make/makedis.csh 2011-08-06 17:06:42.000000000 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/csh -f
+ #
+-# $Id: makedis.csh 148594 2008-12-30 15:11:36Z ucko $
++# $Id: makedis.csh 179886 2010-01-04 17:28:02Z ucko $
+ #
+ ## PUBLIC DOMAIN NOTICE
+ # National Center for Biotechnology Information
+@@ -54,7 +54,7 @@
+ endif
+
+ ls -l $tar_file
+- tar xvf $tar_file
++ tar xf $tar_file
+ else
+ # make sure that ncbi/build directory exists
+ if ( ! -d "ncbi/build" ) then
+@@ -74,6 +74,7 @@
+ set HAVE_MAC=0
+ #we will try to build OpenGL version of vibrant
+ set HAVE_OGL=1
++set MPBL_HAVE_MAC=0
+
+ switch ($os)
+ case SunOS:
+@@ -164,7 +165,7 @@
+ gcc -v
+ switch (`uname -m`)
+ case "ia64":
+- if (-e `which ecc`) then
++ if (-e `which icc`) then
+ set platform=linux_ecc
+ else
+ set platform=linux
+@@ -253,7 +254,11 @@
+ endif
+ endif
+ set HAVE_MOTIF=0
+- set HAVE_MAC=1
++#MPIBLAST <<<
++# set HAVE_MAC=1
++ set MPBL_HAVE_MAC=1
++ set HAVE_MAC=0
++#MPIBLAST
+ breaksw
+ case NetBSD:
+ set platform=netbsd
+@@ -319,6 +324,7 @@
+ goto BADPLATFORM
+ endif
+
++
+ set noglob
+ # take the file $NCBI_DOT_MK and convert it to be suitable for csh eval:
+ # (1) remove comments at the beginning of the lines
+@@ -328,6 +334,7 @@
+ eval `sed -e 's/^ *#.*//g' -e 's/\$(\([a-zA-Z_]*\))/\${\1}/g' -e 's/ *= */=/g' -e 's/^\([^=]*\)=\(.*\)$/setenv \1 "\2";/' < $NCBI_DOT_MK`
+ unset noglob
+
++
+ # disable assert() unless ENABLE_ASSERT is set
+ if ("$?ENABLE_ASSERT" == 0) then
+ set NCBI_OPTFLAG="-DNDEBUG $NCBI_OPTFLAG"
+@@ -441,13 +448,23 @@
+ set NET_VIB=(VIB=\"blastcl3 taxblast idfetch bl2seq asn2gb tbl2asn gene2xml $NONVIBWWWBLAST \")
+ endif
+
++# MPIBLAST <<<<<
++if ("$MPBL_HAVE_MAC" == 1) then
++set CMD='make $MFLG \
++ CFLAGS1=\"-I/Developer/Headers/FlatCarbon $NCBI_OPTFLAG $NCBI_CFLAGS1 $OGL_INCLUDE $PNG_INCLUDE\" \
++ LDFLAGS1=\"$NCBI_LDFLAGS1\" OTHERLIBS=\"$NCBI_OTHERLIBS\" \
++ SHELL=\"$NCBI_MAKE_SHELL\" LCL=\"$NCBI_DEFAULT_LCL\" \
++ RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\" $ALL_VIB all'
++else
+ set CMD='make $MFLG \
+ CFLAGS1=\"$NCBI_OPTFLAG $NCBI_CFLAGS1 $OGL_INCLUDE $PNG_INCLUDE\" \
+ LDFLAGS1=\"$NCBI_LDFLAGS1\" OTHERLIBS=\"$NCBI_OTHERLIBS\" \
+ SHELL=\"$NCBI_MAKE_SHELL\" LCL=\"$NCBI_DEFAULT_LCL\" \
+ RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\" $ALL_VIB all'
++endif
+ eval echo $CMD
+ eval echo $CMD | sh
++# MPIBLAST >>>>>
+
+ set make_stat = $status
+
+@@ -463,12 +480,18 @@
+ endif
+
+ # MPIBLAST <<<<<
+-
++if ("$MPBL_HAVE_MAC" == 1) then
+ set CMD='make $MFLG -f makempiblast.unx CFLAGS1=\"$NCBI_OPTFLAG $NCBI_CFLAGS1\" \
+ LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" \
+ LCL=\"$NCBI_DEFAULT_LCL\" RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\"'
++else
++set CMD='make $MFLG -f makempiblast.unx CFLAGS1=\"$NCBI_OPTFLAG $NCBI_CFLAGS1\" \
++ LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" \
++ LCL=\"$NCBI_DEFAULT_LCL\" RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\"'
++endif
+ eval echo $CMD
+ eval echo $CMD | sh
++if ($status != 0) exit $status
+
+ if( "$platform" == "bluegenel" || "$platform" == "bluegenep" ) then
+ exit 0
+@@ -476,7 +499,7 @@
+ # MPIBLAST >>>>>
+
+ set CMD='make $MFLG -f makedemo.unx CFLAGS1=\"$NCBI_OPTFLAG $NCBI_CFLAGS1\" \
+- LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" \
++ LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" OTHERLIBS=\"$NCBI_OTHERLIBS\" \
+ LCL=\"$NCBI_DEFAULT_LCL\" RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\" $DEMO_VIB'
+ eval echo $CMD
+ eval echo $CMD | sh
+@@ -495,7 +518,7 @@
+
+
+ set CMD='make $MFLG -f makedemo.unx CFLAGS1=\"$NCBI_OPTFLAG $NCBI_CFLAGS1\" \
+- LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" \
++ LDFLAGS1=\"$NCBI_LDFLAGS1\" SHELL=\"$NCBI_MAKE_SHELL\" OTHERLIBS=\"$NCBI_OTHERLIBS\" \
+ LCL=\"$NCBI_DEFAULT_LCL\" RAN=\"$NCBI_RANLIB\" AR=\"$NCBI_AR\" CC=\"$NCBI_CC\" \
+ THREAD_OBJ=$NCBI_THREAD_OBJ THREAD_OTHERLIBS=\"$NCBI_MT_OTHERLIBS\" \
+ $DEMO_VIB $mtapps'
+diff -rwu mpiblast-1.6.0/src/Makefile.am mpiblast-1.6.0-patched/src/Makefile.am
+--- mpiblast-1.6.0/src/Makefile.am 2009-11-22 01:17:48.000000000 -0500
++++ mpiblast-1.6.0-patched/src/Makefile.am 2011-08-06 17:06:42.000000000 -0400
+@@ -2,7 +2,7 @@
+ -D_LARGEFILE64_SOURCE -DMPIBLAST_PIO \
+ -I$(top_srcdir)/include/ -I@CONFIG_NCBIDIR@/include/ $(MPE_INCS) \
+ -I@CONFIG_NCBIDIR@/corelib/
+-AM_CXXFLAGS = -DMPICH_IGNORE_CXX_SEEK -DINSTALL_PREFIX="\"@prefix@\"" \
++AM_CXXFLAGS = -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX -DINSTALL_PREFIX="\"@prefix@\"" \
+ @COMPILE_FLAGS@ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
+ -I$(top_srcdir)/include/ -I@CONFIG_NCBIDIR@/include/ $(MPE_INCS) \
+ -I@CONFIG_NCBIDIR@/corelib/
+@@ -31,7 +31,7 @@
+ @CONFIG_NCBIDIR@/build/blast_hooks.o -lmyncbitool -lblastcompadj -lmyncbiobj \
+ -lmyncbi -L. -L@CONFIG_NCBIDIR@/lib/ $(MPE_LIBS) -lm @LINK_FLAGS@
+ mpiblast_DEPENDENCIES = @GETOPT_LONG_SYSTEM@
+-mpiblast_CPPFLAGS = -DUSING_MPI -DMPICH_IGNORE_CXX_SEEK
++mpiblast_CPPFLAGS = -DUSING_MPI -DMPICH_IGNORE_CXX_SEEK -DOMPI_SKIP_MPICXX
+
+ mpiformatdb_SOURCES = mpiformatdb.cpp mpiblast_config.cpp mpiblast_config.hpp \
+ file_util.cpp file_util.hpp mpiblast_util.cpp mpiblast_util.hpp \
+diff -rwu mpiblast-1.6.0/src/pio_intercept.h mpiblast-1.6.0-patched/src/pio_intercept.h
+--- mpiblast-1.6.0/src/pio_intercept.h 2009-11-22 01:17:48.000000000 -0500
++++ mpiblast-1.6.0-patched/src/pio_intercept.h 2011-08-06 17:06:42.000000000 -0400
+@@ -60,7 +60,7 @@
+ #include <txalign.h>
+
+ /* marcros are duplicated in ncbi files to avoid header file conflict */
+-#define CHECK_NULPTR(x) if(x==NULL) fprintf(stderr, "%s, line%d: cannot allocate enough memory\n", __FILE__, __LINE__);
++#define CHECK_NULPTR(x) if(x==NULL) { perror("Cannot allocate enough memory:"); exit(-1); }
+
+ #ifndef NO_MPI
+ typedef struct _output_record {
diff --git a/var/spack/repos/builtin/packages/mpiblast/package.py b/var/spack/repos/builtin/packages/mpiblast/package.py
new file mode 100644
index 0000000000..c5e283dbcf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpiblast/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mpiblast(AutotoolsPackage):
+ """mpiBLAST is a freely available, open-source, parallel implementation of
+ NCBI BLAST"""
+
+ homepage = "http://www.mpiblast.org/"
+ url = "http://www.mpiblast.org/downloads/files/mpiBLAST-1.6.0.tgz"
+
+ version('1.6.0', '707105ccd56825db776b50bfd81cecd5')
+
+ patch('mpiBLAST-1.6.0-patch-110806')
+
+ depends_on('mpi')
+
+ def configure_args(self):
+ args = ['--with-mpi=%s' % self.spec['mpi'].prefix]
+ return args
+
+ def build(self, spec, prefix):
+ make('ncbi')
+ make()
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('ac_cv_path_CC', self.spec['mpi'].mpicc)
+ spack_env.set('ac_cv_path_CXX', self.spec['mpi'].mpicxx)
diff --git a/var/spack/repos/builtin/packages/mpich/mpich32_clang.patch b/var/spack/repos/builtin/packages/mpich/mpich32_clang.patch
new file mode 100644
index 0000000000..01243072f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpich/mpich32_clang.patch
@@ -0,0 +1,13 @@
+diff --git a/src/include/mpiimpl.h b/src/include/mpiimpl.h
+index e705e5d..3bfcbee 100644
+--- a/src/include/mpiimpl.h
++++ b/src/include/mpiimpl.h
+@@ -1528,7 +1528,7 @@ typedef struct MPID_Request {
+ #ifdef MPID_DEV_REQUEST_DECL
+ MPID_DEV_REQUEST_DECL
+ #endif
+-} MPID_Request ATTRIBUTE((__aligned__(32)));
++} ATTRIBUTE((__aligned__(32))) MPID_Request;
+
+ extern MPIU_Object_alloc_t MPID_Request_mem;
+ /* Preallocated request objects */
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index f61a160d98..0663ce2b7b 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -51,6 +51,11 @@ class Mpich(AutotoolsPackage):
provides('mpi@:3.0', when='@3:')
provides('mpi@:1.3', when='@1:')
+ # fix MPI_Barrier segmentation fault
+ # see https://lists.mpich.org/pipermail/discuss/2016-May/004764.html
+ # and https://lists.mpich.org/pipermail/discuss/2016-June/004768.html
+ patch('mpich32_clang.patch', when='@3.2%clang')
+
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# On Cray, the regular compiler wrappers *are* the MPI wrappers.
if 'platform=cray' in self.spec:
diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py
index 03ec613e0b..21b600f99b 100644
--- a/var/spack/repos/builtin/packages/mpifileutils/package.py
+++ b/var/spack/repos/builtin/packages/mpifileutils/package.py
@@ -38,6 +38,7 @@ class Mpifileutils(AutotoolsPackage):
homepage = "https://github.com/hpc/mpifileutils"
url = "https://github.com/hpc/mpifileutils/releases/download/v0.6/mpifileutils-0.6.tar.gz"
+ version('0.7', 'c081f7f72c4521dddccdcf9e087c5a2b')
version('0.6', '620bcc4966907481f1b1a965b28fc9bf')
depends_on('mpi')
@@ -52,10 +53,11 @@ class Mpifileutils(AutotoolsPackage):
variant('lustre', default=False,
description="Enable optimizations and features for Lustre")
- # install experimental tools
- # (coming with v0.7)
- # variant('experimental', default=False,
- # description="Install experimental tools")
+ variant('experimental', default=False,
+ description="Install experimental tools")
+
+ # --enable-experimental fails with v0.6 and earlier
+ conflicts('+experimental', when='@:0.6')
def configure_args(self):
args = []
@@ -65,11 +67,11 @@ class Mpifileutils(AutotoolsPackage):
else:
args.append('--disable-lustre')
- # coming with v0.7
- # if '+experimental' in self.spec:
- # args.append('--enable-experimental')
- # else:
- # args.append('--disable-experimental')
+ if self.spec.satisfies('@0.7:'):
+ if '+experimental' in self.spec:
+ args.append('--enable-experimental')
+ else:
+ args.append('--disable-experimental')
return args
diff --git a/var/spack/repos/builtin/packages/mpip/package.py b/var/spack/repos/builtin/packages/mpip/package.py
index f75df37278..4bc4b01ef0 100644
--- a/var/spack/repos/builtin/packages/mpip/package.py
+++ b/var/spack/repos/builtin/packages/mpip/package.py
@@ -33,10 +33,14 @@ class Mpip(AutotoolsPackage):
version("3.4.1", "1168adc83777ac31d6ebd385823aabbd")
- depends_on("libelf", type="build")
- depends_on("libdwarf", type="build")
- depends_on('libunwind', when=os.uname()[4] == "x86_64", type="build")
- depends_on("mpi", type="build")
+ depends_on("libelf")
+ depends_on("libdwarf")
+ depends_on('libunwind', when=os.uname()[4] == "x86_64")
+ depends_on("mpi")
def configure_args(self):
- return ['--without-f77']
+ config_args = ['--without-f77']
+ config_args.append("--with-cc=%s" % self.spec['mpi'].mpicc)
+ config_args.append("--with-cxx=%s" % self.spec['mpi'].mpicxx)
+
+ return config_args
diff --git a/var/spack/repos/builtin/packages/mpix-launch-swift/package.py b/var/spack/repos/builtin/packages/mpix-launch-swift/package.py
new file mode 100644
index 0000000000..72e93b7992
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mpix-launch-swift/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+
+
+class MpixLaunchSwift(Package):
+ """Library that allows a child MPI application to be launched
+ inside a subset of processes in a parent MPI application.
+ """
+
+ homepage = "https://bitbucket.org/kshitijvmehta/mpix_launch_swift"
+ url = "https://kshitijvmehta@bitbucket.org/kshitijvmehta/mpix_launch_swift.git"
+
+ version('develop', git='https://kshitijvmehta@bitbucket.org/kshitijvmehta/mpix_launch_swift.git',
+ branch='envs')
+
+ depends_on('stc')
+ depends_on('tcl')
+ depends_on('mpi')
+ depends_on('swig', type='build')
+
+ def install(self, spec, prefix):
+ make()
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/mrbayes/package.py b/var/spack/repos/builtin/packages/mrbayes/package.py
new file mode 100644
index 0000000000..05038b6931
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mrbayes/package.py
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Mrbayes(AutotoolsPackage):
+ """MrBayes is a program for Bayesian inference and model choice across a
+ wide range of phylogenetic and evolutionary models. MrBayes uses Markov
+ chain Monte Carlo (MCMC) methods to estimate the posterior distribution
+ of model parameters."""
+
+ homepage = "http://mrbayes.sourceforge.net"
+ url = "https://downloads.sourceforge.net/project/mrbayes/mrbayes/3.2.6/mrbayes-3.2.6.tar.gz"
+
+ version('3.2.6', '95f9822f24be47b976bf87540b55d1fe')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+ variant('beagle', default=True, description='Enable BEAGLE library for speed benefits')
+ variant('sse', default=True, description='Enable SSE in order to substantially speed up execution')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('libbeagle', when='+beagle')
+ depends_on('mpi', when='+mpi')
+
+ configure_directory = 'src'
+
+ def configure_args(self):
+ args = []
+ if '~beagle' in self.spec:
+ args.append('--with-beagle=no')
+ else:
+ args.append('--with-beagle=%s' % self.spec['libbeagle'].prefix)
+ if '~sse' in self.spec:
+ args.append('--enable-sse=no')
+ else:
+ args.append('--enable-sse=yes')
+ if '~mpi' in self.spec:
+ args.append('--enable-mpi=no')
+ else:
+ args.append('--enable-mpi=yes')
+ return args
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir('src'):
+ install('mb', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/msgpack-c/package.py b/var/spack/repos/builtin/packages/msgpack-c/package.py
index 5771fba86d..a22fd0e312 100644
--- a/var/spack/repos/builtin/packages/msgpack-c/package.py
+++ b/var/spack/repos/builtin/packages/msgpack-c/package.py
@@ -25,17 +25,11 @@
from spack import *
-class MsgpackC(Package):
+class MsgpackC(CMakePackage):
"""A small, fast binary interchange format convertible to/from JSON"""
homepage = "http://www.msgpack.org"
url = "https://github.com/msgpack/msgpack-c/archive/cpp-1.4.1.tar.gz"
version('1.4.1', 'e2fd3a7419b9bc49e5017fdbefab87e0')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake('.', *std_cmake_args)
-
- make()
- make("install")
+ depends_on('cmake@2.8.12:', type='build')
diff --git a/var/spack/repos/builtin/packages/muscle/package.py b/var/spack/repos/builtin/packages/muscle/package.py
index c8237826a2..3aac5fb5bb 100644
--- a/var/spack/repos/builtin/packages/muscle/package.py
+++ b/var/spack/repos/builtin/packages/muscle/package.py
@@ -35,6 +35,11 @@ class Muscle(MakefilePackage):
version('3.8.1551', '1b7c9661f275a82d3cf708f923736bf8')
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ makefile.filter('-static', '')
+ makefile.filter('-funroll-loops', '')
+
def install(self, spec, prefix):
mkdirp(prefix.bin)
install('muscle', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/muse/package.py b/var/spack/repos/builtin/packages/muse/package.py
new file mode 100644
index 0000000000..54dcdf9d15
--- /dev/null
+++ b/var/spack/repos/builtin/packages/muse/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Muse(MakefilePackage):
+ """Somatic point mutation caller."""
+
+ homepage = "http://bioinformatics.mdanderson.org/main/MuSE"
+ url = "https://github.com/danielfan/MuSE/archive/v1.0-rc.tar.gz"
+
+ version('1.0-rc', 'c63fdb48c041f6f9545879f1a7e4da58')
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('MuSE', prefix.bin.MuSE)
diff --git a/var/spack/repos/builtin/packages/muster/package.py b/var/spack/repos/builtin/packages/muster/package.py
index bcc68ade27..4f61938a80 100644
--- a/var/spack/repos/builtin/packages/muster/package.py
+++ b/var/spack/repos/builtin/packages/muster/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Muster(Package):
+class Muster(CMakePackage):
"""The Muster library provides implementations of sequential and
parallel K-Medoids clustering algorithms. It is intended as a
general framework for parallel cluster analysis, particularly
@@ -38,11 +38,6 @@ class Muster(Package):
version('1.0.1', 'd709787db7e080447afb6571ac17723c')
version('1.0', '2eec6979a4a36d3a65a792d12969be16')
- depends_on("boost")
- depends_on("mpi")
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- cmake(".", *std_cmake_args)
- make()
- make("install")
+ depends_on('boost')
+ depends_on('mpi')
+ depends_on('cmake@2.8:', type='build')
diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py
index 7a3d8f1e02..675731146e 100644
--- a/var/spack/repos/builtin/packages/mvapich2/package.py
+++ b/var/spack/repos/builtin/packages/mvapich2/package.py
@@ -59,6 +59,9 @@ class Mvapich2(AutotoolsPackage):
variant('debug', default=False,
description='Enable debug info and error messages at run-time')
+ variant('cuda', default=False,
+ description='Enable CUDA extension')
+
# Accepted values are:
# single - No threads (MPI_THREAD_SINGLE)
# funneled - Only the main thread calls MPI (MPI_THREAD_FUNNELED)
@@ -100,9 +103,9 @@ class Mvapich2(AutotoolsPackage):
)
)
- # FIXME : CUDA support is missing
- depends_on('bison')
+ depends_on('bison', type='build')
depends_on('libpciaccess', when=(sys.platform != 'darwin'))
+ depends_on('cuda', when='+cuda')
def url_for_version(self, version):
base_url = "http://mvapich.cse.ohio-state.edu/download"
@@ -217,6 +220,14 @@ class Mvapich2(AutotoolsPackage):
else:
args.append('--enable-fast=all')
+ if '+cuda' in self.spec:
+ args.extend([
+ '--enable-cuda',
+ '--with-cuda={0}'.format(spec['cuda'].prefix)
+ ])
+ else:
+ args.append('--disable-cuda')
+
args.extend(self.process_manager_options)
args.extend(self.network_options)
return args
@@ -235,6 +246,7 @@ class Mvapich2(AutotoolsPackage):
mpicxx = join_path(bin, 'mpicxx')
mpif77 = join_path(bin, 'mpif77')
mpif90 = join_path(bin, 'mpif90')
+ mpifort = join_path(bin, 'mpifort')
# Substitute Spack compile wrappers for the real
# underlying compiler
@@ -243,8 +255,9 @@ class Mvapich2(AutotoolsPackage):
filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
+ filter_file(env['FC'], self.compiler.fc, mpifort, **kwargs)
# Remove this linking flag if present
# (it turns RPATH into RUNPATH)
- for wrapper in (mpicc, mpicxx, mpif77, mpif90):
+ for wrapper in (mpicc, mpicxx, mpif77, mpif90, mpifort):
filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
diff --git a/var/spack/repos/builtin/packages/mxml/package.py b/var/spack/repos/builtin/packages/mxml/package.py
index e8b87e52c1..da5ef6437b 100644
--- a/var/spack/repos/builtin/packages/mxml/package.py
+++ b/var/spack/repos/builtin/packages/mxml/package.py
@@ -50,7 +50,7 @@ class Mxml(AutotoolsPackage):
def configure_args(self):
return [
# ADIOS build with -fPIC, so we need it too (avoid linkage issue)
- 'CFLAGS=-fPIC',
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
# Default is non-shared, but avoid any future surprises
'--disable-shared',
]
diff --git a/var/spack/repos/builtin/packages/nalu/package.py b/var/spack/repos/builtin/packages/nalu/package.py
index fc6d79e9ea..3836c7a17f 100644
--- a/var/spack/repos/builtin/packages/nalu/package.py
+++ b/var/spack/repos/builtin/packages/nalu/package.py
@@ -38,19 +38,10 @@ class Nalu(CMakePackage):
version('master',
git='https://github.com/NaluCFD/Nalu.git', branch='master')
- variant('debug', default=False,
- description='Builds a debug version')
-
# Currently Nalu only builds static libraries; To be fixed soon
- depends_on('yaml-cpp+fpic~shared')
+ depends_on('yaml-cpp+pic~shared')
depends_on('trilinos~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf@master')
- def build_type(self):
- if '+debug' in self.spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
spec = self.spec
options = []
diff --git a/var/spack/repos/builtin/packages/nanoflann/package.py b/var/spack/repos/builtin/packages/nanoflann/package.py
new file mode 100644
index 0000000000..da0ec728b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nanoflann/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nanoflann(CMakePackage):
+ """a C++ header-only library for Nearest Neighbor (NN) search wih KD-trees.
+ """
+
+ homepage = "https://github.com/jlblancoc/nanoflann"
+ url = "https://github.com/jlblancoc/nanoflann/archive/v1.2.3.tar.gz"
+
+ version('1.2.3', '92a0f44a631c41aa06f9716c51dcdb11')
+
+ def cmake_args(self):
+ args = ['-DBUILD_SHARED_LIBS=ON']
+ return args
diff --git a/var/spack/repos/builtin/packages/nco/NUL-0-NULL.patch b/var/spack/repos/builtin/packages/nco/NUL-0-NULL.patch
new file mode 100644
index 0000000000..b1d17c0ecc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nco/NUL-0-NULL.patch
@@ -0,0 +1,51 @@
+From fec59e92795bfac5779d09cd5d96f10cd1c3e6af Mon Sep 17 00:00:00 2001
+From: Charlie Zender <zender@uci.edu>
+Date: Thu, 1 Jun 2017 20:18:02 -0700
+Subject: [PATCH] Patch for NUL = '\0' != NULL errors in ncap2 supplied by
+ Manfred Schwarb
+
+---
+ src/nco++/fmc_all_cls.cc | 8 ++++----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/src/nco++/fmc_all_cls.cc b/src/nco++/fmc_all_cls.cc
+index 3cccc17..79e3240 100644
+--- a/src/nco++/fmc_all_cls.cc
++++ b/src/nco++/fmc_all_cls.cc
+@@ -4796,14 +4796,14 @@ var_sct *vlist_cls::push_fnd(bool &is_mtd, std::vector<RefAST> &vtr_args, fmc_cl
+ {
+ case PATOI:
+ {
+- char *pend='\0';
++ char *pend=NULL;
+ nco_int iout;
+ iout=0;
+
+ // allows whites space prefix & suffix
+ iout=(nco_int)std::strtol(buffer,&pend,10);
+
+- if( pend !=buffer && (*pend=='\0'|| *pend==' ') )
++ if(pend != buffer && (*pend == '\0'|| *pend == ' '))
+ ierr=0;
+ else
+ ierr=errno;
+@@ -4817,14 +4817,14 @@ var_sct *vlist_cls::push_fnd(bool &is_mtd, std::vector<RefAST> &vtr_args, fmc_cl
+
+ case PATOL:
+ {
+- char *pend='\0';
++ char *pend=NULL;
+ nco_int64 lout;
+ lout=0;
+
+ // allows whites space prefix & suffix
+ lout=(nco_int64)std::strtoll(buffer,&pend,10);
+
+- if( pend !=buffer && (*pend=='\0'|| *pend==' ') )
++ if( pend !=buffer && (*pend == '\0' || *pend == ' '))
+ ierr=0;
+ else
+ ierr=errno;
+--
+2.7.4
+
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
index 9a96685d54..85af71cbdf 100644
--- a/var/spack/repos/builtin/packages/nco/package.py
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -41,6 +41,9 @@ class Nco(AutotoolsPackage):
version('4.6.1', 'ef43cc989229c2790a9094bd84728fd8')
version('4.5.5', '9f1f1cb149ad6407c5a03c20122223ce')
+ # https://github.com/nco/nco/issues/43
+ patch('NUL-0-NULL.patch')
+
variant('doc', default=False, description='Build/install NCO TexInfo-based documentation')
# See "Compilation Requirements" at:
diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py
index a9a33421a1..253f438b47 100644
--- a/var/spack/repos/builtin/packages/ncview/package.py
+++ b/var/spack/repos/builtin/packages/ncview/package.py
@@ -28,7 +28,7 @@ from spack import *
class Ncview(AutotoolsPackage):
"""Simple viewer for NetCDF files."""
homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html"
- url = "https://fossies.org/linux/misc/ncview-2.1.7.tar.gz"
+ url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz"
version('2.1.7', 'debd6ca61410aac3514e53122ab2ba07')
diff --git a/var/spack/repos/builtin/packages/nekbone/package.py b/var/spack/repos/builtin/packages/nekbone/package.py
new file mode 100644
index 0000000000..22d07661e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nekbone/package.py
@@ -0,0 +1,60 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Nekbone(Package):
+ """NEK5000 emulation software called NEKbone. Nekbone captures the basic
+ structure and user interface of the extensive Nek5000 software.
+ Nek5000 is a high order, incompressible Navier-Stokes solver based on
+ the spectral element method."""
+
+ homepage = "https://github.com/ANL-CESAR/"
+ url = "https://github.com/ANL-CESAR/nekbone.git"
+
+ tags = ['proxy-app']
+
+ version('develop', git='https://github.com/ANL-CESAR/nekbone.git')
+
+ depends_on('mpi')
+
+ def install(self, spec, prefix):
+
+ working_dirs = ['example1', 'example2', 'example3', 'nek_comm',
+ 'nek_delay', 'nek_mgrid']
+ mkdir(prefix.bin)
+
+ for wdir in working_dirs:
+ with working_dir('test/' + wdir):
+ makenec = FileFilter('makenek')
+ makenec.filter('CC.*', 'CC=' + self.spec['mpi'].mpicc)
+ makenec.filter('FF77.*', 'FF77=' + self.spec['mpi'].mpif77)
+ makenek = Executable('./makenek')
+ path = join_path(prefix.bin, wdir)
+ makenek('ex1', '../../src')
+ mkdir(path)
+ install('nekbone', path)
+ install('nekpmpi', path)
diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py
index 262036d771..90dd4dd5d7 100644
--- a/var/spack/repos/builtin/packages/netcdf/package.py
+++ b/var/spack/repos/builtin/packages/netcdf/package.py
@@ -133,7 +133,7 @@ class Netcdf(AutotoolsPackage):
config_args.append('--disable-shared')
# We don't have shared libraries but we still want it to be
# possible to use this library in shared builds
- CFLAGS.append('-fPIC')
+ CFLAGS.append(self.compiler.pic_flag)
if '+dap' in spec:
config_args.append('--enable-dap')
diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
index d6419b744e..6c6114f011 100644
--- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py
+++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py
@@ -46,9 +46,9 @@ class NetlibScalapack(CMakePackage):
description='Build the shared library version'
)
variant(
- 'fpic',
+ 'pic',
default=False,
- description='Build with -fpic compiler option'
+ description='Build position independent code'
)
provides('scalapack')
@@ -87,10 +87,10 @@ class NetlibScalapack(CMakePackage):
'-DBLAS_LIBRARIES=%s' % (blas.joined(';'))
])
- if '+fpic' in spec:
+ if '+pic' in spec:
options.extend([
- "-DCMAKE_C_FLAGS=-fPIC",
- "-DCMAKE_Fortran_FLAGS=-fPIC"
+ "-DCMAKE_C_FLAGS=%s" % self.compiler.pic_flag,
+ "-DCMAKE_Fortran_FLAGS=%s" % self.compiler.pic_flag
])
return options
diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py
index a44df66b07..2917447a36 100644
--- a/var/spack/repos/builtin/packages/nextflow/package.py
+++ b/var/spack/repos/builtin/packages/nextflow/package.py
@@ -31,6 +31,8 @@ class Nextflow(Package):
homepage = "http://www.nextflow.io"
url = "https://github.com/nextflow-io/nextflow/releases/download/v0.24.1/nextflow"
+ version('0.25.6', '29d739b6caf8ceb5aa9997310ee8d0e7',
+ expand=False)
version('0.24.1', '80ec8c4fe8e766e0bdd1371a50410d1d',
expand=False)
version('0.23.3', '71fb69275b6788af1c6f1165f40d362e',
@@ -40,7 +42,7 @@ class Nextflow(Package):
version('0.17.3', '5df00105fb1ce6fd0ba019ae735d9617',
expand=False)
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/ninja-fortran/package.py b/var/spack/repos/builtin/packages/ninja-fortran/package.py
index 9b733cee6c..349b60bae9 100644
--- a/var/spack/repos/builtin/packages/ninja-fortran/package.py
+++ b/var/spack/repos/builtin/packages/ninja-fortran/package.py
@@ -23,27 +23,45 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
class NinjaFortran(Package):
- """ A Fortran capable fork of ninja """
+ """A Fortran capable fork of ninja."""
+
homepage = "https://github.com/Kitware/ninja"
- url = "https://github.com/Kitware/ninja/archive/v1.7.2.gcc0ea.kitware.dyndep-1.tar.gz"
+ url = "https://github.com/Kitware/ninja/archive/v1.7.2.gaad58.kitware.dyndep-1.tar.gz"
+
+ # Each version is a fork off of a specific commit of ninja
+ # Hashes don't sort properly, so manually set newest version
+ version('1.7.2.gaad58', 'eb51b042b9dbaf8ecd79a6fb24de1320', preferred=True)
+ version('1.7.2.gcc0ea', '3982f508c415c0abaca34cb5e92e711a')
+ version('1.7.1.g7ca7f', '187a8d15c1e20e5e9b00c5c3f227ca8a')
- version('1.7.2', '3982f508c415c0abaca34cb5e92e711a')
+ depends_on('python', type=('build', 'run'))
- extends('python')
+ phases = ['configure', 'install']
def url_for_version(self, version):
- url = 'https://github.com/Kitware/ninja/archive/v{0}.gcc0ea.kitware.dyndep-1.tar.gz'
+ url = 'https://github.com/Kitware/ninja/archive/v{0}.kitware.dyndep-1.tar.gz'
return url.format(version)
- def install(self, spec, prefix):
+ def configure(self, spec, prefix):
python('configure.py', '--bootstrap')
+ @run_after('configure')
+ @on_package_attributes(run_tests=True)
+ def test(self):
+ ninja = Executable('./ninja')
+ ninja('-j{0}'.format(make_jobs), 'ninja_test')
+ ninja_test = Executable('./ninja_test')
+ ninja_test()
+
+ def install(self, spec, prefix):
mkdir(prefix.bin)
install('ninja', prefix.bin)
- install_tree('misc', join_path(prefix, 'misc'))
+ install_tree('misc', prefix.misc)
+
+ # Some distros like Fedora install a 'ninja-build' executable
+ # instead of 'ninja'. Install both for uniformity.
with working_dir(prefix.bin):
- os.symlink('ninja', 'ninja-build')
+ symlink('ninja', 'ninja-build')
diff --git a/var/spack/repos/builtin/packages/ninja/package.py b/var/spack/repos/builtin/packages/ninja/package.py
index 28aa36c465..7a53ae684c 100644
--- a/var/spack/repos/builtin/packages/ninja/package.py
+++ b/var/spack/repos/builtin/packages/ninja/package.py
@@ -23,23 +23,41 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
class Ninja(Package):
- """ A small, fast Make alternative """
- homepage = "https://martine.github.io/ninja/"
- url = "https://github.com/martine/ninja/archive/v1.6.0.tar.gz"
+ """Ninja is a small build system with a focus on speed. It differs from
+ other build systems in two major respects: it is designed to have its input
+ files generated by a higher-level build system, and it is designed to run
+ builds as fast as possible."""
+ homepage = "https://ninja-build.org/"
+ url = "https://github.com/ninja-build/ninja/archive/v1.7.2.tar.gz"
+
+ version('1.7.2', '7b482218757acbaeac4d4d54a3cd94e1')
version('1.6.0', '254133059f2da79d8727f654d7198f43')
- extends('python')
+ depends_on('python', type=('build', 'run'))
- def install(self, spec, prefix):
+ phases = ['configure', 'install']
+
+ def configure(self, spec, prefix):
python('configure.py', '--bootstrap')
+ @run_after('configure')
+ @on_package_attributes(run_tests=True)
+ def test(self):
+ ninja = Executable('./ninja')
+ ninja('-j{0}'.format(make_jobs), 'ninja_test')
+ ninja_test = Executable('./ninja_test')
+ ninja_test()
+
+ def install(self, spec, prefix):
mkdir(prefix.bin)
install('ninja', prefix.bin)
- install_tree('misc', join_path(prefix, 'misc'))
+ install_tree('misc', prefix.misc)
+
+ # Some distros like Fedora install a 'ninja-build' executable
+ # instead of 'ninja'. Install both for uniformity.
with working_dir(prefix.bin):
- os.symlink('ninja', 'ninja-build')
+ symlink('ninja', 'ninja-build')
diff --git a/var/spack/repos/builtin/packages/nut/package.py b/var/spack/repos/builtin/packages/nut/package.py
new file mode 100644
index 0000000000..561e52f1a5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nut/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Nut(CMakePackage):
+ """NuT is Monte Carlo code for neutrino transport and
+ is a C++ analog to the Haskell McPhD code.
+ NuT is principally aimed at exploring on-node parallelism
+ and performance issues."""
+
+ homepage = "https://github.com/lanl/NuT"
+ url = "https://github.com/lanl/NuT.git"
+ tags = ['proxy-app']
+
+ version(
+ 'serial', git='https://github.com/lanl/NuT.git',
+ branch='master')
+ version(
+ 'openmp', git='https://github.com/lanl/NuT.git',
+ branch='openmp')
+
+ depends_on('random123')
+
+ # serial must be built with clang
+ conflicts('%gcc', when='@serial')
+ conflicts('%intel', when='@serial')
+ conflicts('%pgi', when='@serial')
+ conflicts('%xl', when='@serial')
+ conflicts('%nag', when='@serial')
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('RANDOM123_DIR', self.spec['random123'].prefix)
+
+ build_targets = ['VERBOSE=on']
+
+ def install(self, spec, prefix):
+ install('README.md', prefix)
+ mkdirp(prefix.bin)
+ install('spack-build/test/nut_unittests', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py
index f18be0186f..29896172b1 100644
--- a/var/spack/repos/builtin/packages/octave/package.py
+++ b/var/spack/repos/builtin/packages/octave/package.py
@@ -93,7 +93,7 @@ class Octave(AutotoolsPackage):
depends_on('gnuplot', when='+gnuplot')
depends_on('image-magick', when='+magick')
depends_on('hdf5', when='+hdf5')
- depends_on('jdk', when='+jdk') # TODO: requires Java 6 ?
+ depends_on('java', when='+jdk') # TODO: requires Java 6 ?
depends_on('llvm', when='+llvm')
# depends_on('opengl', when='+opengl') # TODO: add package
depends_on('qhull', when='+qhull')
@@ -186,9 +186,9 @@ class Octave(AutotoolsPackage):
if '+jdk' in spec:
config_args.extend([
- "--with-java-homedir=%s" % spec['jdk'].prefix,
- "--with-java-includedir=%s" % spec['jdk'].prefix.include,
- "--with-java-libdir=%s" % spec['jdk'].prefix.lib
+ "--with-java-homedir=%s" % spec['java'].prefix,
+ "--with-java-includedir=%s" % spec['java'].prefix.include,
+ "--with-java-libdir=%s" % spec['java'].prefix.lib
])
else:
config_args.append("--disable-java")
diff --git a/var/spack/repos/builtin/packages/of-adios-write/package.py b/var/spack/repos/builtin/packages/of-adios-write/package.py
new file mode 100644
index 0000000000..cd25fbe654
--- /dev/null
+++ b/var/spack/repos/builtin/packages/of-adios-write/package.py
@@ -0,0 +1,136 @@
+##############################################################################
+# Copyright (c) 2017 Mark Olesen, OpenCFD Ltd.
+#
+# This file was authored by Mark Olesen <mark.olesen@esi-group.com>
+# and is released as part of spack under the LGPL license.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for the LLNL notice and LGPL.
+#
+# License
+# -------
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Legal Notice
+# ------------
+# OPENFOAM is a trademark owned by OpenCFD Ltd
+# (producer and distributor of the OpenFOAM software via www.openfoam.com).
+# The trademark information must remain visible and unadulterated in this
+# file and via the "spack info" and comply with the term set by
+# http://openfoam.com/legal/trademark-policy.php
+#
+# This file is not part of OpenFOAM, nor does it constitute a component of an
+# OpenFOAM distribution.
+#
+##############################################################################
+from spack import *
+from spack.environment import *
+import llnl.util.tty as tty
+
+import os
+from spack.pkg.builtin.openfoam_com import *
+
+
+class OfAdiosWrite(Package):
+ """adios-write supplies additional libraries and function objects
+ for reading/writing OpenFOAM data with ADIOS.
+ This offering is part of the community repository supported by OpenCFD Ltd,
+ producer and distributor of the OpenFOAM software via www.openfoam.com,
+ and owner of the OPENFOAM trademark.
+ OpenCFD Ltd has been developing and releasing OpenFOAM since its debut
+ in 2004.
+ """
+
+ # Currently only via git, but with some branches corresponding to main
+ # OpenFOAM releases.
+ homepage = "https://develop.openfoam.com/Community/feature-adiosWrite/"
+ gitrepo = "https://develop.openfoam.com/Community/feature-adiosWrite.git"
+
+ version('develop', branch='develop', git=gitrepo)
+ version('1706', branch='v1706', git=gitrepo)
+ version('1612', branch='v1612', git=gitrepo)
+
+ variant('source', default=True, description='Install library source')
+
+ depends_on('openfoam-com@develop+source', when='@develop')
+ depends_on('openfoam-com@1706+source', when='@1706')
+ depends_on('openfoam-com@1612+source', when='@1612')
+ depends_on('adios')
+
+ # General patches
+ common = ['change-userdir.sh', 'spack-derived-Allwmake']
+ assets = []
+
+ build_script = './spack-derived-Allwmake'
+ build_userdir = 'spack-userdir' # Build user APPBIN, LIBBIN into here
+
+ phases = ['configure', 'build', 'install']
+
+ #
+ # - End of definitions / setup -
+ #
+
+ def patch(self):
+ """Copy additional files or other patching."""
+ add_extra_files(self, self.common, self.assets)
+ # Emit openfoam version immediately, if we resolved the wrong version
+ # it takes a very long time to rebuild!
+ tty.info('Build for ' + self.spec['openfoam'].format('$_$@$%@+$+'))
+
+ def configure(self, spec, prefix):
+ """Generate spack-config.sh file."""
+ # Local tweaks
+ config = join_path(self.stage.source_path, 'spack-config.sh')
+ with open(config, 'w') as out:
+ out.write(
+ """# Local tweaks for building
+# Location of adios from spack
+export ADIOS_ARCH_PATH={adios_dir}
+
+# Local build (for user appbin, libbin)
+. ./change-userdir.sh $PWD/{user_dir}
+#
+"""
+ .format(
+ adios_dir=spec['adios'].prefix,
+ user_dir=self.build_userdir))
+
+ def build(self, spec, prefix):
+ """Build with Allwmake script, wrapped to source environment first."""
+ args = []
+ if self.parallel: # Parallel build? - pass via environment
+ os.environ['WM_NCOMPPROCS'] = str(make_jobs)
+ builder = Executable(self.build_script)
+ builder(*args)
+
+ def install(self, spec, prefix):
+ """Install under the prefix directory"""
+
+ for f in ['README.md', 'Issues.txt']:
+ if os.path.isfile(f):
+ install(f, join_path(self.prefix, f))
+
+ dirs = ['doc', 'etc', 'tutorials']
+ if '+source' in spec:
+ dirs.append('src')
+
+ for d in dirs:
+ install_tree(d, join_path(self.prefix, d))
+
+ # Place directly under 'lib' (no bin)
+ for d in ['lib']:
+ install_tree(
+ join_path(self.build_userdir, d),
+ join_path(self.prefix, d))
diff --git a/var/spack/repos/builtin/packages/ompt-openmp/package.py b/var/spack/repos/builtin/packages/ompt-openmp/package.py
index daa3fed670..387edd7c64 100644
--- a/var/spack/repos/builtin/packages/ompt-openmp/package.py
+++ b/var/spack/repos/builtin/packages/ompt-openmp/package.py
@@ -25,7 +25,7 @@
from spack import *
-class OmptOpenmp(Package):
+class OmptOpenmp(CMakePackage):
"""LLVM/Clang OpenMP runtime with OMPT support. This is a fork of the
OpenMPToolsInterface/LLVM-openmp fork of the official LLVM OpenMP
mirror. This library provides a drop-in replacement of the OpenMP
@@ -35,15 +35,10 @@ class OmptOpenmp(Package):
homepage = "https://github.com/OpenMPToolsInterface/LLVM-openmp"
url = "http://github.com/khuck/LLVM-openmp/archive/v0.1.tar.gz"
- version('0.1', '2334e6a84b52da41b27afd9831ed5370')
+ version('0.1', '59d6933a2e9b7d1423fb9c7c77d5663f')
- depends_on('cmake', type='build')
+ depends_on('cmake@2.8:', type='build')
- def install(self, spec, prefix):
- with working_dir("runtime/build", create=True):
- cmake('-DCMAKE_C_COMPILER=%s' % self.compiler.cc,
- '-DCMAKE_CXX_COMPILER=%s' % self.compiler.cxx,
- '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '..', *std_cmake_args)
- make()
- make("install")
+ conflicts('%gcc@:4.7')
+
+ root_cmakelists_dir = 'runtime'
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index d79e2c27f8..73b89fcd23 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -33,6 +33,7 @@ class Openblas(MakefilePackage):
homepage = 'http://www.openblas.net'
url = 'http://github.com/xianyi/OpenBLAS/archive/v0.2.19.tar.gz'
+ version('0.2.20', '48637eb29f5b492b91459175dcc574b1')
version('0.2.19', '28c998054fd377279741c6f0b9ea7941')
version('0.2.18', '805e7f660877d588ea7e3792cda2ee65')
version('0.2.17', '664a12807f2a2a7cda4781e3ab2ae0e1')
@@ -56,10 +57,15 @@ class Openblas(MakefilePackage):
patch('make.patch', when='@0.2.16:')
# This patch is in a pull request to OpenBLAS that has not been handled
# https://github.com/xianyi/OpenBLAS/pull/915
- patch('openblas_icc.patch', when='%intel')
+ # UPD: the patch has been merged starting version 0.2.20
+ patch('openblas_icc.patch', when='@:0.2.19%intel')
patch('openblas_icc_openmp.patch', when='%intel@16.0:')
patch('openblas_icc_fortran.patch', when='%intel@16.0:')
+ # Fixes compilation error on POWER8 with GCC 7
+ # https://github.com/xianyi/OpenBLAS/pull/1098
+ patch('power8.patch', when='@0.2.18:0.2.19 %gcc@7.1.0: target=ppc64')
+
# Change file comments to work around clang 3.9 assembler bug
# https://github.com/xianyi/OpenBLAS/pull/982
patch('openblas0.2.19.diff', when='@0.2.19')
@@ -78,12 +84,15 @@ class Openblas(MakefilePackage):
'OpenBLAS requires both C and Fortran compilers!'
)
# Add support for OpenMP
- if '+openmp' in self.spec and self.spec.satisfies('%clang'):
- # Openblas (as of 0.2.18) hardcoded that OpenMP cannot
- # be used with any (!) compiler named clang, bummer.
- raise InstallError(
- 'OpenBLAS does not support OpenMP with clang!'
- )
+ if (('+openmp' in self.spec) and self.spec.satisfies('%clang')):
+ if str(self.spec.compiler.version).endswith('-apple'):
+ raise InstallError("Apple's clang does not support OpenMP")
+ if '@:0.2.19' in self.spec:
+ # Openblas (as of 0.2.19) hardcoded that OpenMP cannot
+ # be used with any (!) compiler named clang, bummer.
+ raise InstallError(
+ 'OpenBLAS @:0.2.19 does not support OpenMP with clang!'
+ )
@property
def make_defs(self):
diff --git a/var/spack/repos/builtin/packages/openblas/power8.patch b/var/spack/repos/builtin/packages/openblas/power8.patch
new file mode 100644
index 0000000000..b89c044c1b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openblas/power8.patch
@@ -0,0 +1,7809 @@
+diff --git a/kernel/power/casum.c b/kernel/power/casum.c
+index aeed0ca78..d1108581d 100644
+--- a/kernel/power/casum.c
++++ b/kernel/power/casum.c
+@@ -53,7 +53,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_16
+
+-static void casum_kernel_16(BLASLONG n, FLOAT *x1, FLOAT *svec)
++static FLOAT casum_kernel_16(BLASLONG n, FLOAT *x1)
+ {
+
+ BLASLONG i=0;
+@@ -92,11 +92,7 @@ static void casum_kernel_16(BLASLONG n, FLOAT *x1, FLOAT *svec)
+
+ }
+
+- svec[0] = sum0+sum1+sum2+sum3;
+- svec[1] = 0.0;
+- svec[2] = 0.0;
+- svec[3] = 0.0;
+-
++ return sum0+sum1+sum2+sum3;
+ }
+
+ #endif
+@@ -106,7 +102,6 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ BLASLONG i=0;
+ BLASLONG ip=0;
+ FLOAT sumf = 0.0;
+- FLOAT svec[4] __attribute__ ((aligned (16)));;
+ BLASLONG n1;
+ BLASLONG inc_x2;
+
+@@ -119,8 +114,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ if ( n1 > 0 )
+ {
+
+- casum_kernel_16(n1, x, svec);
+- sumf = svec[0] + svec[1]+svec[2]+svec[3];
++ sumf = casum_kernel_16(n1, x);
+ i=n1;
+ ip = 2 * n1;
+ }
+diff --git a/kernel/power/casum_microk_power8.c b/kernel/power/casum_microk_power8.c
+index cb50234ce..38a114326 100644
+--- a/kernel/power/casum_microk_power8.c
++++ b/kernel/power/casum_microk_power8.c
+@@ -34,144 +34,145 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_16 1
+-static void casum_kernel_16( BLASLONG n, FLOAT *x, FLOAT *svec) __attribute__ ((noinline));
+
+-static void casum_kernel_16( BLASLONG n, FLOAT *x, FLOAT *svec)
++static float casum_kernel_16 (long n, float *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xvabssp 48, 40 \n\t"
+- "xvabssp 49, 41 \n\t"
+- "xvabssp 50, 42 \n\t"
+- "xvabssp 51, 43 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+-
+- "xvabssp 52, 44 \n\t"
+- "xvabssp 53, 45 \n\t"
+-
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+-
+- "xvabssp 54, 46 \n\t"
+- "xvabssp 55, 47 \n\t"
+-
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+-
+- "xvaddsp 32, 32, 48 \n\t"
+- "xvaddsp 33, 33, 49 \n\t"
+-
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "xvaddsp 34, 34, 50 \n\t"
+- "xvaddsp 35, 35, 51 \n\t"
+- "addi %2, %2, 128 \n\t"
+- "xvaddsp 36, 36, 52 \n\t"
+- "xvaddsp 37, 37, 53 \n\t"
+- "addic. %0 , %0 , -16 \n\t"
+- "xvaddsp 38, 38, 54 \n\t"
+- "xvaddsp 39, 39, 55 \n\t"
+-
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+-
+- "xvabssp 48, 40 \n\t"
+- "xvabssp 49, 41 \n\t"
+- "xvabssp 50, 42 \n\t"
+- "xvabssp 51, 43 \n\t"
+- "xvabssp 52, 44 \n\t"
+- "xvabssp 53, 45 \n\t"
+- "xvabssp 54, 46 \n\t"
+- "xvabssp 55, 47 \n\t"
+-
+- "xvaddsp 32, 32, 48 \n\t"
+- "xvaddsp 33, 33, 49 \n\t"
+- "xvaddsp 34, 34, 50 \n\t"
+- "xvaddsp 35, 35, 51 \n\t"
+- "xvaddsp 36, 36, 52 \n\t"
+- "xvaddsp 37, 37, 53 \n\t"
+- "xvaddsp 38, 38, 54 \n\t"
+- "xvaddsp 39, 39, 55 \n\t"
+-
+- "xvaddsp 32, 32, 33 \n\t"
+- "xvaddsp 34, 34, 35 \n\t"
+- "xvaddsp 36, 36, 37 \n\t"
+- "xvaddsp 38, 38, 39 \n\t"
+-
+- "xvaddsp 32, 32, 34 \n\t"
+- "xvaddsp 36, 36, 38 \n\t"
+-
+- "xvaddsp 32, 32, 36 \n\t"
+-
+-
+- "stxvw4x 32, 0, %3 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (svec), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2", "memory"
+- );
+-
+-}
+-
+-
++ float sum;
++ __vector float t0;
++ __vector float t1;
++ __vector float t2;
++ __vector float t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %8, %2 \n\t"
++ "lxvw4x 42, %9, %2 \n\t"
++ "lxvw4x 43, %10, %2 \n\t"
++ "lxvw4x 44, %11, %2 \n\t"
++ "lxvw4x 45, %12, %2 \n\t"
++ "lxvw4x 46, %13, %2 \n\t"
++ "lxvw4x 47, %14, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvabssp 48, 40 \n\t"
++ "xvabssp 49, 41 \n\t"
++ "xvabssp 50, 42 \n\t"
++ "xvabssp 51, 43 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %8, %2 \n\t"
++
++ "xvabssp %x3, 44 \n\t"
++ "xvabssp %x4, 45 \n\t"
++
++ "lxvw4x 42, %9, %2 \n\t"
++ "lxvw4x 43, %10, %2 \n\t"
++
++ "xvabssp %x5, 46 \n\t"
++ "xvabssp %x6, 47 \n\t"
++
++ "lxvw4x 44, %11, %2 \n\t"
++ "lxvw4x 45, %12, %2 \n\t"
++
++ "xvaddsp 32, 32, 48 \n\t"
++ "xvaddsp 33, 33, 49 \n\t"
++
++ "lxvw4x 46, %13, %2 \n\t"
++ "lxvw4x 47, %14, %2 \n\t"
++
++ "xvaddsp 34, 34, 50 \n\t"
++ "xvaddsp 35, 35, 51 \n\t"
++ "addi %2, %2, 128 \n\t"
++ "xvaddsp 36, 36, %x3 \n\t"
++ "xvaddsp 37, 37, %x4 \n\t"
++ "addic. %1, %1, -16 \n\t"
++ "xvaddsp 38, 38, %x5 \n\t"
++ "xvaddsp 39, 39, %x6 \n\t"
++
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvabssp 48, 40 \n\t"
++ "xvabssp 49, 41 \n\t"
++ "xvabssp 50, 42 \n\t"
++ "xvabssp 51, 43 \n\t"
++ "xvabssp %x3, 44 \n\t"
++ "xvabssp %x4, 45 \n\t"
++ "xvabssp %x5, 46 \n\t"
++ "xvabssp %x6, 47 \n\t"
++
++ "xvaddsp 32, 32, 48 \n\t"
++ "xvaddsp 33, 33, 49 \n\t"
++ "xvaddsp 34, 34, 50 \n\t"
++ "xvaddsp 35, 35, 51 \n\t"
++ "xvaddsp 36, 36, %x3 \n\t"
++ "xvaddsp 37, 37, %x4 \n\t"
++ "xvaddsp 38, 38, %x5 \n\t"
++ "xvaddsp 39, 39, %x6 \n\t"
++
++ "xvaddsp 32, 32, 33 \n\t"
++ "xvaddsp 34, 34, 35 \n\t"
++ "xvaddsp 36, 36, 37 \n\t"
++ "xvaddsp 38, 38, 39 \n\t"
++
++ "xvaddsp 32, 32, 34 \n\t"
++ "xvaddsp 36, 36, 38 \n\t"
++
++ "xvaddsp 32, 32, 36 \n\t"
++
++ "xxsldwi 33, 32, 32, 2 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xxsldwi 33, 32, 32, 1 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xscvspdp %0, 32 \n"
++
++ "#n=%1 x=%3=%2 sum=%0 o16=%8 o32=%9 o48=%10 o64=%11 o80=%12 o96=%13 o112=%14\n"
++ "#t0=%x3 t1=%x4 t2=%x5 t3=%x6"
++ :
++ "=f" (sum), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0), // 3
++ "=wa" (t1), // 4
++ "=wa" (t2), // 5
++ "=wa" (t3) // 6
++ :
++ "m" (*x),
++ "b" (16), // 8
++ "b" (32), // 9
++ "b" (48), // 10
++ "b" (64), // 11
++ "b" (80), // 12
++ "b" (96), // 13
++ "b" (112) // 14
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return sum;
++}
+diff --git a/kernel/power/ccopy_microk_power8.c b/kernel/power/ccopy_microk_power8.c
+index 95b3559ba..b2b1bead1 100644
+--- a/kernel/power/ccopy_microk_power8.c
++++ b/kernel/power/ccopy_microk_power8.c
+@@ -35,140 +35,121 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void ccopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void ccopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void ccopy_kernel_32 (long n, float *x, float *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvw4x 50, 0, %2 \n\t"
+- "lxvw4x 51, %5, %2 \n\t"
+- "lxvw4x 52, %6, %2 \n\t"
+- "lxvw4x 53, %7, %2 \n\t"
+- "lxvw4x 54, %8, %2 \n\t"
+- "lxvw4x 55, %9, %2 \n\t"
+- "lxvw4x 56, %10, %2 \n\t"
+- "lxvw4x 57, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvw4x 40, 0, %1 \n\t"
+- "stxvw4x 41, %5, %1 \n\t"
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "stxvw4x 42, %6, %1 \n\t"
+- "stxvw4x 43, %7, %1 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "stxvw4x 44, %8, %1 \n\t"
+- "stxvw4x 45, %9, %1 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "stxvw4x 46, %10, %1 \n\t"
+- "stxvw4x 47, %11, %1 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "stxvw4x 50, 0, %1 \n\t"
+- "stxvw4x 51, %5, %1 \n\t"
+- "lxvw4x 50, 0, %2 \n\t"
+- "lxvw4x 51, %5, %2 \n\t"
+- "stxvw4x 52, %6, %1 \n\t"
+- "stxvw4x 53, %7, %1 \n\t"
+- "lxvw4x 52, %6, %2 \n\t"
+- "lxvw4x 53, %7, %2 \n\t"
+- "stxvw4x 54, %8, %1 \n\t"
+- "stxvw4x 55, %9, %1 \n\t"
+- "lxvw4x 54, %8, %2 \n\t"
+- "lxvw4x 55, %9, %2 \n\t"
+- "stxvw4x 56, %10, %1 \n\t"
+- "stxvw4x 57, %11, %1 \n\t"
+- "lxvw4x 56, %10, %2 \n\t"
+- "lxvw4x 57, %11, %2 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "stxvw4x 40, 0, %1 \n\t"
+- "stxvw4x 41, %5, %1 \n\t"
+- "stxvw4x 42, %6, %1 \n\t"
+- "stxvw4x 43, %7, %1 \n\t"
+- "stxvw4x 44, %8, %1 \n\t"
+- "stxvw4x 45, %9, %1 \n\t"
+- "stxvw4x 46, %10, %1 \n\t"
+- "stxvw4x 47, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvw4x 50, 0, %1 \n\t"
+- "stxvw4x 51, %5, %1 \n\t"
+- "stxvw4x 52, %6, %1 \n\t"
+- "stxvw4x 53, %7, %1 \n\t"
+- "stxvw4x 54, %8, %1 \n\t"
+- "stxvw4x 55, %9, %1 \n\t"
+- "stxvw4x 56, %10, %1 \n\t"
+- "stxvw4x 57, %11, %1 \n\t"
+-
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ "lxvw4x 32, 0, %2 \n\t"
++ "lxvw4x 33, %5, %2 \n\t"
++ "lxvw4x 34, %6, %2 \n\t"
++ "lxvw4x 35, %7, %2 \n\t"
++ "lxvw4x 36, %8, %2 \n\t"
++ "lxvw4x 37, %9, %2 \n\t"
++ "lxvw4x 38, %10, %2 \n\t"
++ "lxvw4x 39, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %5, %2 \n\t"
++ "lxvw4x 42, %6, %2 \n\t"
++ "lxvw4x 43, %7, %2 \n\t"
++ "lxvw4x 44, %8, %2 \n\t"
++ "lxvw4x 45, %9, %2 \n\t"
++ "lxvw4x 46, %10, %2 \n\t"
++ "lxvw4x 47, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvw4x 32, 0, %3 \n\t"
++ "stxvw4x 33, %5, %3 \n\t"
++ "lxvw4x 32, 0, %2 \n\t"
++ "lxvw4x 33, %5, %2 \n\t"
++ "stxvw4x 34, %6, %3 \n\t"
++ "stxvw4x 35, %7, %3 \n\t"
++ "lxvw4x 34, %6, %2 \n\t"
++ "lxvw4x 35, %7, %2 \n\t"
++ "stxvw4x 36, %8, %3 \n\t"
++ "stxvw4x 37, %9, %3 \n\t"
++ "lxvw4x 36, %8, %2 \n\t"
++ "lxvw4x 37, %9, %2 \n\t"
++ "stxvw4x 38, %10, %3 \n\t"
++ "stxvw4x 39, %11, %3 \n\t"
++ "lxvw4x 38, %10, %2 \n\t"
++ "lxvw4x 39, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "stxvw4x 40, 0, %3 \n\t"
++ "stxvw4x 41, %5, %3 \n\t"
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %5, %2 \n\t"
++ "stxvw4x 42, %6, %3 \n\t"
++ "stxvw4x 43, %7, %3 \n\t"
++ "lxvw4x 42, %6, %2 \n\t"
++ "lxvw4x 43, %7, %2 \n\t"
++ "stxvw4x 44, %8, %3 \n\t"
++ "stxvw4x 45, %9, %3 \n\t"
++ "lxvw4x 44, %8, %2 \n\t"
++ "lxvw4x 45, %9, %2 \n\t"
++ "stxvw4x 46, %10, %3 \n\t"
++ "stxvw4x 47, %11, %3 \n\t"
++ "lxvw4x 46, %10, %2 \n\t"
++ "lxvw4x 47, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "stxvw4x 32, 0, %3 \n\t"
++ "stxvw4x 33, %5, %3 \n\t"
++ "stxvw4x 34, %6, %3 \n\t"
++ "stxvw4x 35, %7, %3 \n\t"
++ "stxvw4x 36, %8, %3 \n\t"
++ "stxvw4x 37, %9, %3 \n\t"
++ "stxvw4x 38, %10, %3 \n\t"
++ "stxvw4x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvw4x 40, 0, %3 \n\t"
++ "stxvw4x 41, %5, %3 \n\t"
++ "stxvw4x 42, %6, %3 \n\t"
++ "stxvw4x 43, %7, %3 \n\t"
++ "stxvw4x 44, %8, %3 \n\t"
++ "stxvw4x 45, %9, %3 \n\t"
++ "stxvw4x 46, %10, %3 \n\t"
++ "stxvw4x 47, %11, %3 \n"
++
++ "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "=m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y) // 3
++ :
++ "m" (*x),
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/cswap_microk_power8.c b/kernel/power/cswap_microk_power8.c
+index 90ab59c54..1dd03dc88 100644
+--- a/kernel/power/cswap_microk_power8.c
++++ b/kernel/power/cswap_microk_power8.c
+@@ -35,146 +35,124 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void cswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void cswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void cswap_kernel_32 (long n, float *x, float *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "addi %3, %3, -4 \n\t"
+- "addi %4, %4, -4 \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "lxvw4x 32, 0, %2 \n\t"
+- "lxvw4x 33, %5, %2 \n\t"
+- "lxvw4x 34, %6, %2 \n\t"
+- "lxvw4x 35, %7, %2 \n\t"
+- "lxvw4x 36, %8, %2 \n\t"
+- "lxvw4x 37, %9, %2 \n\t"
+- "lxvw4x 38, %10, %2 \n\t"
+- "lxvw4x 39, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvw4x 48, 0, %1 \n\t"
+- "lxvw4x 49, %5, %1 \n\t"
+- "lxvw4x 50, %6, %1 \n\t"
+- "lxvw4x 51, %7, %1 \n\t"
+- "lxvw4x 52, %8, %1 \n\t"
+- "lxvw4x 53, %9, %1 \n\t"
+- "lxvw4x 54, %10, %1 \n\t"
+- "lxvw4x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "lxvw4x 56, 0, %1 \n\t"
+- "lxvw4x 57, %5, %1 \n\t"
+- "lxvw4x 58, %6, %1 \n\t"
+- "lxvw4x 59, %7, %1 \n\t"
+- "lxvw4x 60, %8, %1 \n\t"
+- "lxvw4x 61, %9, %1 \n\t"
+- "lxvw4x 62, %10, %1 \n\t"
+- "lxvw4x 63, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvw4x 32, 0, %3 \n\t"
+- "stxvw4x 33, %5, %3 \n\t"
+- "stxvw4x 34, %6, %3 \n\t"
+- "stxvw4x 35, %7, %3 \n\t"
+- "stxvw4x 36, %8, %3 \n\t"
+- "stxvw4x 37, %9, %3 \n\t"
+- "stxvw4x 38, %10, %3 \n\t"
+- "stxvw4x 39, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvw4x 40, 0, %3 \n\t"
+- "stxvw4x 41, %5, %3 \n\t"
+- "stxvw4x 42, %6, %3 \n\t"
+- "stxvw4x 43, %7, %3 \n\t"
+- "stxvw4x 44, %8, %3 \n\t"
+- "stxvw4x 45, %9, %3 \n\t"
+- "stxvw4x 46, %10, %3 \n\t"
+- "stxvw4x 47, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvw4x 48, 0, %4 \n\t"
+- "stxvw4x 49, %5, %4 \n\t"
+- "stxvw4x 50, %6, %4 \n\t"
+- "stxvw4x 51, %7, %4 \n\t"
+- "stxvw4x 52, %8, %4 \n\t"
+- "stxvw4x 53, %9, %4 \n\t"
+- "stxvw4x 54, %10, %4 \n\t"
+- "stxvw4x 55, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "stxvw4x 56, 0, %4 \n\t"
+- "stxvw4x 57, %5, %4 \n\t"
+- "stxvw4x 58, %6, %4 \n\t"
+- "stxvw4x 59, %7, %4 \n\t"
+- "stxvw4x 60, %8, %4 \n\t"
+- "stxvw4x 61, %9, %4 \n\t"
+- "stxvw4x 62, %10, %4 \n\t"
+- "stxvw4x 63, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (y2), // 3
+- "r" (x2), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "%3", "%4", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "lxvw4x 32, 0, %4 \n\t"
++ "lxvw4x 33, %5, %4 \n\t"
++ "lxvw4x 34, %6, %4 \n\t"
++ "lxvw4x 35, %7, %4 \n\t"
++ "lxvw4x 36, %8, %4 \n\t"
++ "lxvw4x 37, %9, %4 \n\t"
++ "lxvw4x 38, %10, %4 \n\t"
++ "lxvw4x 39, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "lxvw4x 40, 0, %4 \n\t"
++ "lxvw4x 41, %5, %4 \n\t"
++ "lxvw4x 42, %6, %4 \n\t"
++ "lxvw4x 43, %7, %4 \n\t"
++ "lxvw4x 44, %8, %4 \n\t"
++ "lxvw4x 45, %9, %4 \n\t"
++ "lxvw4x 46, %10, %4 \n\t"
++ "lxvw4x 47, %11, %4 \n\t"
++
++ "addi %4, %4, -128 \n\t"
++
++ "lxvw4x 48, 0, %3 \n\t"
++ "lxvw4x 49, %5, %3 \n\t"
++ "lxvw4x 50, %6, %3 \n\t"
++ "lxvw4x 51, %7, %3 \n\t"
++ "lxvw4x 0, %8, %3 \n\t"
++ "lxvw4x 1, %9, %3 \n\t"
++ "lxvw4x 2, %10, %3 \n\t"
++ "lxvw4x 3, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "lxvw4x 4, 0, %3 \n\t"
++ "lxvw4x 5, %5, %3 \n\t"
++ "lxvw4x 6, %6, %3 \n\t"
++ "lxvw4x 7, %7, %3 \n\t"
++ "lxvw4x 8, %8, %3 \n\t"
++ "lxvw4x 9, %9, %3 \n\t"
++ "lxvw4x 10, %10, %3 \n\t"
++ "lxvw4x 11, %11, %3 \n\t"
++
++ "addi %3, %3, -128 \n\t"
++
++ "stxvw4x 32, 0, %3 \n\t"
++ "stxvw4x 33, %5, %3 \n\t"
++ "stxvw4x 34, %6, %3 \n\t"
++ "stxvw4x 35, %7, %3 \n\t"
++ "stxvw4x 36, %8, %3 \n\t"
++ "stxvw4x 37, %9, %3 \n\t"
++ "stxvw4x 38, %10, %3 \n\t"
++ "stxvw4x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvw4x 40, 0, %3 \n\t"
++ "stxvw4x 41, %5, %3 \n\t"
++ "stxvw4x 42, %6, %3 \n\t"
++ "stxvw4x 43, %7, %3 \n\t"
++ "stxvw4x 44, %8, %3 \n\t"
++ "stxvw4x 45, %9, %3 \n\t"
++ "stxvw4x 46, %10, %3 \n\t"
++ "stxvw4x 47, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvw4x 48, 0, %4 \n\t"
++ "stxvw4x 49, %5, %4 \n\t"
++ "stxvw4x 50, %6, %4 \n\t"
++ "stxvw4x 51, %7, %4 \n\t"
++ "stxvw4x 0, %8, %4 \n\t"
++ "stxvw4x 1, %9, %4 \n\t"
++ "stxvw4x 2, %10, %4 \n\t"
++ "stxvw4x 3, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "stxvw4x 4, 0, %4 \n\t"
++ "stxvw4x 5, %5, %4 \n\t"
++ "stxvw4x 6, %6, %4 \n\t"
++ "stxvw4x 7, %7, %4 \n\t"
++ "stxvw4x 8, %8, %4 \n\t"
++ "stxvw4x 9, %9, %4 \n\t"
++ "stxvw4x 10, %10, %4 \n\t"
++ "stxvw4x 11, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "addic. %2, %2, -32 \n\t"
++ "bgt 1b \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y) // 4
++ :
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51","vs0","vs1","vs2","vs3",
++ "vs4","vs5","vs6","vs7","vs8","vs9","vs10","vs11"
++ );
++}
+diff --git a/kernel/power/dasum.c b/kernel/power/dasum.c
+index 77f5345ba..73962c2f2 100644
+--- a/kernel/power/dasum.c
++++ b/kernel/power/dasum.c
+@@ -42,7 +42,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #else
+
+-#define ABS fabsf
++#error supports double only
+
+ #endif
+
+@@ -53,7 +53,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_16
+
+-static void dasum_kernel_16(BLASLONG n, FLOAT *x1, FLOAT *svec)
++static FLOAT dasum_kernel_16(BLASLONG n, FLOAT *x1)
+ {
+
+ BLASLONG i=0;
+@@ -92,9 +92,7 @@ static void dasum_kernel_16(BLASLONG n, FLOAT *x1, FLOAT *svec)
+
+ }
+
+- svec[0] = sum0+sum1+sum2+sum3;
+- svec[1] = 0.0;
+-
++ return sum0+sum1+sum2+sum3;
+ }
+
+ #endif
+@@ -103,7 +101,6 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ {
+ BLASLONG i=0;
+ FLOAT sumf = 0.0;
+- FLOAT svec[2] __attribute__ ((aligned (16)));;
+ BLASLONG n1;
+
+ if (n <= 0 || inc_x <= 0) return(sumf);
+@@ -115,8 +112,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ if ( n1 > 0 )
+ {
+
+- dasum_kernel_16(n1, x, svec);
+- sumf = svec[0] + svec[1];
++ sumf = dasum_kernel_16(n1, x);
+ i=n1;
+ }
+
+diff --git a/kernel/power/dasum_microk_power8.c b/kernel/power/dasum_microk_power8.c
+index cc38c4f7d..880d7d271 100644
+--- a/kernel/power/dasum_microk_power8.c
++++ b/kernel/power/dasum_microk_power8.c
+@@ -34,144 +34,142 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_16 1
+-static void dasum_kernel_16( BLASLONG n, FLOAT *x, FLOAT *svec) __attribute__ ((noinline));
+
+-static void dasum_kernel_16( BLASLONG n, FLOAT *x, FLOAT *svec)
++static double dasum_kernel_16 (long n, double *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xvabsdp 48, 40 \n\t"
+- "xvabsdp 49, 41 \n\t"
+- "xvabsdp 50, 42 \n\t"
+- "xvabsdp 51, 43 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+-
+- "xvabsdp 52, 44 \n\t"
+- "xvabsdp 53, 45 \n\t"
+-
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "xvabsdp 54, 46 \n\t"
+- "xvabsdp 55, 47 \n\t"
+-
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+-
+- "xvadddp 32, 32, 48 \n\t"
+- "xvadddp 33, 33, 49 \n\t"
+-
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "xvadddp 34, 34, 50 \n\t"
+- "xvadddp 35, 35, 51 \n\t"
+- "addi %2, %2, 128 \n\t"
+- "xvadddp 36, 36, 52 \n\t"
+- "xvadddp 37, 37, 53 \n\t"
+- "addic. %0 , %0 , -16 \n\t"
+- "xvadddp 38, 38, 54 \n\t"
+- "xvadddp 39, 39, 55 \n\t"
+-
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+-
+- "xvabsdp 48, 40 \n\t"
+- "xvabsdp 49, 41 \n\t"
+- "xvabsdp 50, 42 \n\t"
+- "xvabsdp 51, 43 \n\t"
+- "xvabsdp 52, 44 \n\t"
+- "xvabsdp 53, 45 \n\t"
+- "xvabsdp 54, 46 \n\t"
+- "xvabsdp 55, 47 \n\t"
+-
+- "xvadddp 32, 32, 48 \n\t"
+- "xvadddp 33, 33, 49 \n\t"
+- "xvadddp 34, 34, 50 \n\t"
+- "xvadddp 35, 35, 51 \n\t"
+- "xvadddp 36, 36, 52 \n\t"
+- "xvadddp 37, 37, 53 \n\t"
+- "xvadddp 38, 38, 54 \n\t"
+- "xvadddp 39, 39, 55 \n\t"
+-
+- "xvadddp 32, 32, 33 \n\t"
+- "xvadddp 34, 34, 35 \n\t"
+- "xvadddp 36, 36, 37 \n\t"
+- "xvadddp 38, 38, 39 \n\t"
+-
+- "xvadddp 32, 32, 34 \n\t"
+- "xvadddp 36, 36, 38 \n\t"
+-
+- "xvadddp 32, 32, 36 \n\t"
+-
+-
+- "stxvd2x 32, 0, %3 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (svec), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2", "memory"
+- );
+-
+-}
++ double sum;
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %8, %2 \n\t"
++ "lxvd2x 42, %9, %2 \n\t"
++ "lxvd2x 43, %10, %2 \n\t"
++ "lxvd2x 44, %11, %2 \n\t"
++ "lxvd2x 45, %12, %2 \n\t"
++ "lxvd2x 46, %13, %2 \n\t"
++ "lxvd2x 47, %14, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvabsdp 48, 40 \n\t"
++ "xvabsdp 49, 41 \n\t"
++ "xvabsdp 50, 42 \n\t"
++ "xvabsdp 51, 43 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %8, %2 \n\t"
++
++ "xvabsdp %x3, 44 \n\t"
++ "xvabsdp %x4, 45 \n\t"
++
++ "lxvd2x 42, %9, %2 \n\t"
++ "lxvd2x 43, %10, %2 \n\t"
++
++ "xvabsdp %x5, 46 \n\t"
++ "xvabsdp %x6, 47 \n\t"
++
++ "lxvd2x 44, %11, %2 \n\t"
++ "lxvd2x 45, %12, %2 \n\t"
++
++ "xvadddp 32, 32, 48 \n\t"
++ "xvadddp 33, 33, 49 \n\t"
++
++ "lxvd2x 46, %13, %2 \n\t"
++ "lxvd2x 47, %14, %2 \n\t"
++
++ "xvadddp 34, 34, 50 \n\t"
++ "xvadddp 35, 35, 51 \n\t"
++ "addi %2, %2, 128 \n\t"
++ "xvadddp 36, 36, %x3 \n\t"
++ "xvadddp 37, 37, %x4 \n\t"
++ "addic. %1, %1, -16 \n\t"
++ "xvadddp 38, 38, %x5 \n\t"
++ "xvadddp 39, 39, %x6 \n\t"
++
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvabsdp 48, 40 \n\t"
++ "xvabsdp 49, 41 \n\t"
++ "xvabsdp 50, 42 \n\t"
++ "xvabsdp 51, 43 \n\t"
++ "xvabsdp %x3, 44 \n\t"
++ "xvabsdp %x4, 45 \n\t"
++ "xvabsdp %x5, 46 \n\t"
++ "xvabsdp %x6, 47 \n\t"
++
++ "xvadddp 32, 32, 48 \n\t"
++ "xvadddp 33, 33, 49 \n\t"
++ "xvadddp 34, 34, 50 \n\t"
++ "xvadddp 35, 35, 51 \n\t"
++ "xvadddp 36, 36, %x3 \n\t"
++ "xvadddp 37, 37, %x4 \n\t"
++ "xvadddp 38, 38, %x5 \n\t"
++ "xvadddp 39, 39, %x6 \n\t"
++
++ "xvadddp 32, 32, 33 \n\t"
++ "xvadddp 34, 34, 35 \n\t"
++ "xvadddp 36, 36, 37 \n\t"
++ "xvadddp 38, 38, 39 \n\t"
++
++ "xvadddp 32, 32, 34 \n\t"
++ "xvadddp 36, 36, 38 \n\t"
++
++ "xvadddp 32, 32, 36 \n\t"
++
++ "xxswapd 33, 32 \n\t"
++ "xsadddp %x0, 32, 33 \n"
++
++ "#n=%1 x=%3=%2 sum=%0 o16=%8 o32=%9 o48=%10 o64=%11 o80=%12 o96=%13 o112=%14\n"
++ "#t0=%x3 t1=%x4 t2=%x5 t3=%x6"
++ :
++ "=d" (sum), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0), // 3
++ "=wa" (t1), // 4
++ "=wa" (t2), // 5
++ "=wa" (t3) // 6
++ :
++ "m" (*x),
++ "b" (16), // 8
++ "b" (32), // 9
++ "b" (48), // 10
++ "b" (64), // 11
++ "b" (80), // 12
++ "b" (96), // 13
++ "b" (112) // 14
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return sum;
++}
+
+
+diff --git a/kernel/power/daxpy.c b/kernel/power/daxpy.c
+index 4365bd88d..df0572e8e 100644
+--- a/kernel/power/daxpy.c
++++ b/kernel/power/daxpy.c
+@@ -43,21 +43,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_8
+
+-static void daxpy_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
++static void daxpy_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT alpha)
+ {
+ BLASLONG register i = 0;
+- FLOAT a = *alpha;
+
+ while(i < n)
+ {
+- y[i] += a * x[i];
+- y[i+1] += a * x[i+1];
+- y[i+2] += a * x[i+2];
+- y[i+3] += a * x[i+3];
+- y[i+4] += a * x[i+4];
+- y[i+5] += a * x[i+5];
+- y[i+6] += a * x[i+6];
+- y[i+7] += a * x[i+7];
++ y[i] += alpha * x[i];
++ y[i+1] += alpha * x[i+1];
++ y[i+2] += alpha * x[i+2];
++ y[i+3] += alpha * x[i+3];
++ y[i+4] += alpha * x[i+4];
++ y[i+5] += alpha * x[i+5];
++ y[i+6] += alpha * x[i+6];
++ y[i+7] += alpha * x[i+7];
+ i+=8 ;
+
+ }
+@@ -70,11 +69,6 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ {
+ BLASLONG i=0;
+ BLASLONG ix=0,iy=0;
+- FLOAT a2[4];
+- a2[0]=da;
+- a2[1]=da;
+- a2[2]=da;
+- a2[3]=da;
+
+ if ( n <= 0 ) return(0);
+
+@@ -84,7 +78,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ BLASLONG n1 = n & -16;
+
+ if ( n1 )
+- daxpy_kernel_8(n1, x, y , a2 );
++ daxpy_kernel_8(n1, x, y, da);
+
+ i = n1;
+ while(i < n)
+diff --git a/kernel/power/daxpy_microk_power8.c b/kernel/power/daxpy_microk_power8.c
+index bb3f73aca..fb714a3f9 100644
+--- a/kernel/power/daxpy_microk_power8.c
++++ b/kernel/power/daxpy_microk_power8.c
+@@ -35,167 +35,183 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ #define HAVE_KERNEL_8 1
+-static void daxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y , FLOAT *alpha) __attribute__ ((noinline));
+
+-static void daxpy_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
++static void daxpy_kernel_8 (long n, double *x, double *y, double alpha)
+ {
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++ __vector double t4;
++ __vector double t5;
++ __vector double t6;
++ __vector double t7;
++ __vector double t8;
++ __vector double t9;
++ __vector double t10;
++ __vector double t11;
++ __vector double t12;
++ __vector double t13;
++ __vector double t14;
++ __vector double t15;
++ __vector double t16;
+
++ __asm__
++ (
++ "xxspltd %x4, %x22, 0 \n\t"
+
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
++ "dcbt 0, %2 \n\t"
++ "dcbt 0, %3 \n\t"
+
+- __asm__ __volatile__
+- (
++ "lxvd2x %x5, 0, %2 \n\t"
++ "lxvd2x %x6, %23, %2 \n\t"
++ "lxvd2x %x7, %24, %2 \n\t"
++ "lxvd2x %x8, %25, %2 \n\t"
+
+- "lxsdx 33, %5, %4 \n\t"
+- "xxspltd 32, 33, 0 \n\t"
+- "addi %8, %8, -8 \n\t"
++ "lxvd2x %x13, 0, %3 \n\t"
++ "lxvd2x %x14, %23, %3 \n\t"
++ "lxvd2x %x15, %24, %3 \n\t"
++ "lxvd2x %x16, %25, %3 \n\t"
+
+- "dcbt %2, %9 \n\t"
+- "dcbt %3, %9 \n\t"
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
+
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
++ "lxvd2x %x9, 0, %2 \n\t"
++ "lxvd2x %x10, %23, %2 \n\t"
++ "lxvd2x %x11, %24, %2 \n\t"
++ "lxvd2x %x12, %25, %2 \n\t"
+
+- "lxvd2x 48, 0, %3 \n\t"
+- "lxvd2x 49, %5, %3 \n\t"
+- "lxvd2x 50, %6, %3 \n\t"
+- "lxvd2x 51, %7, %3 \n\t"
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "lxvd2x 44, 0, %2 \n\t"
+- "lxvd2x 45, %5, %2 \n\t"
+- "lxvd2x 46, %6, %2 \n\t"
+- "lxvd2x 47, %7, %2 \n\t"
+-
+- "lxvd2x 52, 0, %3 \n\t"
+- "lxvd2x 53, %5, %3 \n\t"
+- "lxvd2x 54, %6, %3 \n\t"
+- "lxvd2x 55, %7, %3 \n\t"
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %9 \n\t"
+- "dcbt %3, %9 \n\t"
+-
+- "xvmaddadp 48, 40, 32 \n\t"
+- "xvmaddadp 49, 41, 32 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+-
+- "stxvd2x 48, 0, %8 \n\t"
+- "stxvd2x 49, %5, %8 \n\t"
+-
+- "xvmaddadp 50, 42, 32 \n\t"
+- "xvmaddadp 51, 43, 32 \n\t"
+-
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
+-
+- "lxvd2x 48, 0, %3 \n\t"
+- "lxvd2x 49, %5, %3 \n\t"
+- "lxvd2x 50, %6, %3 \n\t"
+- "lxvd2x 51, %7, %3 \n\t"
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %8, %8, 64 \n\t"
+-
+- "xvmaddadp 52, 44, 32 \n\t"
+- "addi %3, %3, 64 \n\t"
+- "xvmaddadp 53, 45, 32 \n\t"
+-
+- "lxvd2x 44, 0, %2 \n\t"
+- "lxvd2x 45, %5, %2 \n\t"
+-
+- "stxvd2x 52, 0, %8 \n\t"
+- "stxvd2x 53, %5, %8 \n\t"
+-
+- "xvmaddadp 54, 46, 32 \n\t"
+- "xvmaddadp 55, 47, 32 \n\t"
+-
+- "lxvd2x 46, %6, %2 \n\t"
+- "lxvd2x 47, %7, %2 \n\t"
+-
+- "stxvd2x 54, %6, %8 \n\t"
+- "stxvd2x 55, %7, %8 \n\t"
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %8, %8, 64 \n\t"
+-
+- "lxvd2x 52, 0, %3 \n\t"
+- "lxvd2x 53, %5, %3 \n\t"
+- "lxvd2x 54, %6, %3 \n\t"
+- "lxvd2x 55, %7, %3 \n\t"
+-
+- "addi %3, %3, 64 \n\t"
+-
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+-
+- "xvmaddadp 48, 40, 32 \n\t"
+- "xvmaddadp 49, 41, 32 \n\t"
+- "xvmaddadp 50, 42, 32 \n\t"
+- "xvmaddadp 51, 43, 32 \n\t"
+-
+- "xvmaddadp 52, 44, 32 \n\t"
+- "xvmaddadp 53, 45, 32 \n\t"
+- "xvmaddadp 54, 46, 32 \n\t"
+- "xvmaddadp 55, 47, 32 \n\t"
+-
+- "stxvd2x 48, 0, %8 \n\t"
+- "stxvd2x 49, %5, %8 \n\t"
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- "stxvd2x 52, 0, %8 \n\t"
+- "stxvd2x 53, %5, %8 \n\t"
+- "stxvd2x 54, %6, %8 \n\t"
+- "stxvd2x 55, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (y1), // 3
+- "r" (alpha), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (y2), // 8
+- "r" (pre) // 9
+- : "cr0", "%0", "%2" , "%3", "%8", "memory"
+- );
+-
+-}
++ "lxvd2x %x17, 0, %3 \n\t"
++ "lxvd2x %x18, %23, %3 \n\t"
++ "lxvd2x %x19, %24, %3 \n\t"
++ "lxvd2x %x20, %25, %3 \n\t"
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, -64 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".align 5 \n"
++ "1: \n\t"
++
++ "xvmaddadp %x13, %x5, %x4 \n\t"
++ "xvmaddadp %x14, %x6, %x4 \n\t"
++
++ "lxvd2x %x5, 0, %2 \n\t"
++ "lxvd2x %x6, %23, %2 \n\t"
++
++ "stxvd2x %x13, 0, %3 \n\t"
++ "stxvd2x %x14, %23, %3 \n\t"
++
++ "xvmaddadp %x15, %x7, %x4 \n\t"
++ "xvmaddadp %x16, %x8, %x4 \n\t"
++
++ "lxvd2x %x7, %24, %2 \n\t"
++ "lxvd2x %x8, %25, %2 \n\t"
++
++ "stxvd2x %x15, %24, %3 \n\t"
++ "stxvd2x %x16, %25, %3 \n\t"
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "lxvd2x %x13, 0, %3 \n\t"
++ "lxvd2x %x14, %23, %3 \n\t"
++ "lxvd2x %x15, %24, %3 \n\t"
++ "lxvd2x %x16, %25, %3 \n\t"
++
++ "addi %3, %3, -64 \n\t"
++
++ "xvmaddadp %x17, %x9, %x4 \n\t"
++ "xvmaddadp %x18, %x10, %x4 \n\t"
++
++ "lxvd2x %x9, 0, %2 \n\t"
++ "lxvd2x %x10, %23, %2 \n\t"
++
++ "stxvd2x %x17, 0, %3 \n\t"
++ "stxvd2x %x18, %23, %3 \n\t"
++
++ "xvmaddadp %x19, %x11, %x4 \n\t"
++ "xvmaddadp %x20, %x12, %x4 \n\t"
++
++ "lxvd2x %x11, %24, %2 \n\t"
++ "lxvd2x %x12, %25, %2 \n\t"
++
++ "stxvd2x %x19, %24, %3 \n\t"
++ "stxvd2x %x20, %25, %3 \n\t"
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "lxvd2x %x17, 0, %3 \n\t"
++ "lxvd2x %x18, %23, %3 \n\t"
++ "lxvd2x %x19, %24, %3 \n\t"
++ "lxvd2x %x20, %25, %3 \n\t"
++
++ "addi %3, %3, -64 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmaddadp %x13, %x5, %x4 \n\t"
++ "xvmaddadp %x14, %x6, %x4 \n\t"
++ "xvmaddadp %x15, %x7, %x4 \n\t"
++ "xvmaddadp %x16, %x8, %x4 \n\t"
++
++ "xvmaddadp %x17, %x9, %x4 \n\t"
++ "xvmaddadp %x18, %x10, %x4 \n\t"
++ "xvmaddadp %x19, %x11, %x4 \n\t"
++ "xvmaddadp %x20, %x12, %x4 \n\t"
++
++ "stxvd2x %x13, 0, %3 \n\t"
++ "stxvd2x %x14, %23, %3 \n\t"
++ "stxvd2x %x15, %24, %3 \n\t"
++ "stxvd2x %x16, %25, %3 \n\t"
++
++ "addi %3, %3, 64 \n\t"
++
++ "stxvd2x %x17, 0, %3 \n\t"
++ "stxvd2x %x18, %23, %3 \n\t"
++ "stxvd2x %x19, %24, %3 \n\t"
++ "stxvd2x %x20, %25, %3 \n"
++
++ "#n=%1 x=%21=%2 y=%0=%3 alpha=%22 o16=%23 o32=%24 o48=%25\n"
++ "#t0=%x4 t1=%x5 t2=%x6 t3=%x7 t4=%x8 t5=%x9 t6=%x10 t7=%x11 t8=%x12 t9=%x13 t10=%x14 t11=%x15 t12=%x16 t13=%x17 t14=%x18 t15=%x19 t16=%x20"
++ :
++ "+m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y), // 3
++ "=wa" (t0), // 4
++ "=wa" (t1), // 5
++ "=wa" (t2), // 6
++ "=wa" (t3), // 7
++ "=wa" (t4), // 8
++ "=wa" (t5), // 9
++ "=wa" (t6), // 10
++ "=wa" (t7), // 11
++ "=wa" (t8), // 12
++ "=wa" (t9), // 13
++ "=wa" (t10), // 14
++ "=wa" (t11), // 15
++ "=wa" (t12), // 16
++ "=wa" (t13), // 17
++ "=wa" (t14), // 18
++ "=wa" (t15), // 19
++ "=wa" (t16) // 20
++ :
++ "m" (*x),
++ "d" (alpha), // 22
++ "b" (16), // 23
++ "b" (32), // 24
++ "b" (48) // 25
++ :
++ "cr0"
++ );
++
++}
+
+
+diff --git a/kernel/power/dcopy_microk_power8.c b/kernel/power/dcopy_microk_power8.c
+index 04f7db556..261dc04de 100644
+--- a/kernel/power/dcopy_microk_power8.c
++++ b/kernel/power/dcopy_microk_power8.c
+@@ -35,140 +35,121 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void dcopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void dcopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void dcopy_kernel_32 (long n, double *x, double *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 50, 0, %2 \n\t"
+- "lxvd2x 51, %5, %2 \n\t"
+- "lxvd2x 52, %6, %2 \n\t"
+- "lxvd2x 53, %7, %2 \n\t"
+- "lxvd2x 54, %8, %2 \n\t"
+- "lxvd2x 55, %9, %2 \n\t"
+- "lxvd2x 56, %10, %2 \n\t"
+- "lxvd2x 57, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvd2x 40, 0, %1 \n\t"
+- "stxvd2x 41, %5, %1 \n\t"
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "stxvd2x 42, %6, %1 \n\t"
+- "stxvd2x 43, %7, %1 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "stxvd2x 44, %8, %1 \n\t"
+- "stxvd2x 45, %9, %1 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "stxvd2x 46, %10, %1 \n\t"
+- "stxvd2x 47, %11, %1 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "stxvd2x 50, 0, %1 \n\t"
+- "stxvd2x 51, %5, %1 \n\t"
+- "lxvd2x 50, 0, %2 \n\t"
+- "lxvd2x 51, %5, %2 \n\t"
+- "stxvd2x 52, %6, %1 \n\t"
+- "stxvd2x 53, %7, %1 \n\t"
+- "lxvd2x 52, %6, %2 \n\t"
+- "lxvd2x 53, %7, %2 \n\t"
+- "stxvd2x 54, %8, %1 \n\t"
+- "stxvd2x 55, %9, %1 \n\t"
+- "lxvd2x 54, %8, %2 \n\t"
+- "lxvd2x 55, %9, %2 \n\t"
+- "stxvd2x 56, %10, %1 \n\t"
+- "stxvd2x 57, %11, %1 \n\t"
+- "lxvd2x 56, %10, %2 \n\t"
+- "lxvd2x 57, %11, %2 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "stxvd2x 40, 0, %1 \n\t"
+- "stxvd2x 41, %5, %1 \n\t"
+- "stxvd2x 42, %6, %1 \n\t"
+- "stxvd2x 43, %7, %1 \n\t"
+- "stxvd2x 44, %8, %1 \n\t"
+- "stxvd2x 45, %9, %1 \n\t"
+- "stxvd2x 46, %10, %1 \n\t"
+- "stxvd2x 47, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvd2x 50, 0, %1 \n\t"
+- "stxvd2x 51, %5, %1 \n\t"
+- "stxvd2x 52, %6, %1 \n\t"
+- "stxvd2x 53, %7, %1 \n\t"
+- "stxvd2x 54, %8, %1 \n\t"
+- "stxvd2x 55, %9, %1 \n\t"
+- "stxvd2x 56, %10, %1 \n\t"
+- "stxvd2x 57, %11, %1 \n\t"
+-
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %5, %2 \n\t"
++ "lxvd2x 34, %6, %2 \n\t"
++ "lxvd2x 35, %7, %2 \n\t"
++ "lxvd2x 36, %8, %2 \n\t"
++ "lxvd2x 37, %9, %2 \n\t"
++ "lxvd2x 38, %10, %2 \n\t"
++ "lxvd2x 39, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %5, %2 \n\t"
++ "lxvd2x 42, %6, %2 \n\t"
++ "lxvd2x 43, %7, %2 \n\t"
++ "lxvd2x 44, %8, %2 \n\t"
++ "lxvd2x 45, %9, %2 \n\t"
++ "lxvd2x 46, %10, %2 \n\t"
++ "lxvd2x 47, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %5, %2 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "lxvd2x 34, %6, %2 \n\t"
++ "lxvd2x 35, %7, %2 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "lxvd2x 36, %8, %2 \n\t"
++ "lxvd2x 37, %9, %2 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++ "lxvd2x 38, %10, %2 \n\t"
++ "lxvd2x 39, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %5, %2 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "lxvd2x 42, %6, %2 \n\t"
++ "lxvd2x 43, %7, %2 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "lxvd2x 44, %8, %2 \n\t"
++ "lxvd2x 45, %9, %2 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n\t"
++ "lxvd2x 46, %10, %2 \n\t"
++ "lxvd2x 47, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n"
++
++ "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "=m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y) // 3
++ :
++ "m" (*x),
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/ddot.c b/kernel/power/ddot.c
+index cef60a2e5..e43470e23 100644
+--- a/kernel/power/ddot.c
++++ b/kernel/power/ddot.c
+@@ -43,7 +43,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_8
+
+-static void ddot_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d)
++static FLOAT ddot_kernel_8 (BLASLONG n, FLOAT *x, FLOAT *y)
+ {
+ BLASLONG register i = 0;
+ FLOAT dot = 0.0;
+@@ -62,8 +62,7 @@ static void ddot_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d)
+ i+=8 ;
+
+ }
+- *d += dot;
+-
++ return dot;
+ }
+
+ #endif
+@@ -83,7 +82,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
+ BLASLONG n1 = n & -16;
+
+ if ( n1 )
+- ddot_kernel_8(n1, x, y , &dot );
++ dot = ddot_kernel_8(n1, x, y);
+
+ i = n1;
+ while(i < n)
+diff --git a/kernel/power/ddot_microk_power8.c b/kernel/power/ddot_microk_power8.c
+index b88049212..4e6bc29c9 100644
+--- a/kernel/power/ddot_microk_power8.c
++++ b/kernel/power/ddot_microk_power8.c
+@@ -34,145 +34,138 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_8 1
+-static void ddot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y , FLOAT *dot) __attribute__ ((noinline));
+
+-static void ddot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
++static double ddot_kernel_8 (long n, double *x, double *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "dcbt %2, %12 \n\t"
+- "dcbt %3, %12 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 48, 0, %3 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 49, %5, %3 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 50, %6, %3 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 51, %7, %3 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 52, %8, %3 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 53, %9, %3 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 54, %10, %3 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+- "lxvd2x 55, %11, %3 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+- "addi %3, %3, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %12 \n\t"
+- "dcbt %3, %12 \n\t"
+-
+- "xvmaddadp 32, 40, 48 \n\t"
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 48, 0, %3 \n\t"
+- "xvmaddadp 33, 41, 49 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 49, %5, %3 \n\t"
+- "xvmaddadp 34, 42, 50 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 50, %6, %3 \n\t"
+- "xvmaddadp 35, 43, 51 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 51, %7, %3 \n\t"
+- "xvmaddadp 36, 44, 52 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 52, %8, %3 \n\t"
+- "xvmaddadp 37, 45, 53 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 53, %9, %3 \n\t"
+- "xvmaddadp 38, 46, 54 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 54, %10, %3 \n\t"
+- "xvmaddadp 39, 47, 55 \n\t"
+-
+- "lxvd2x 47, %11, %2 \n\t"
+- "lxvd2x 55, %11, %3 \n\t"
+-
+-
+- "addi %2, %2, 128 \n\t"
+- "addi %3, %3, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmaddadp 32, 40, 48 \n\t"
+- "xvmaddadp 33, 41, 49 \n\t"
+- "xvmaddadp 34, 42, 50 \n\t"
+- "xvmaddadp 35, 43, 51 \n\t"
+- "xvmaddadp 36, 44, 52 \n\t"
+- "xvmaddadp 37, 45, 53 \n\t"
+- "xvmaddadp 38, 46, 54 \n\t"
+- "xvmaddadp 39, 47, 55 \n\t"
+-
+- "xvadddp 32, 32, 33 \n\t"
+- "xvadddp 34, 34, 35 \n\t"
+- "xvadddp 36, 36, 37 \n\t"
+- "xvadddp 38, 38, 39 \n\t"
+-
+- "xvadddp 32, 32, 34 \n\t"
+- "xvadddp 36, 36, 38 \n\t"
+-
+- "xvadddp 32, 32, 36 \n\t"
+-
+- "xxswapd 33, 32 \n\t"
+-
+- "xsadddp 32, 32, 33 \n\t"
+-
+- "stxsdx 32, 0, %4 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (y1), // 3
+- "r" (dot), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112), // 11
+- "r" (pre) // 12
+- : "cr0", "%0", "%2" , "%3", "memory"
+- );
+-
+-}
+-
+-
++ double dot;
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++ "dcbt 0, %3 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 48, 0, %3 \n\t"
++ "lxvd2x 41, %10, %2 \n\t"
++ "lxvd2x 49, %10, %3 \n\t"
++ "lxvd2x 42, %11, %2 \n\t"
++ "lxvd2x 50, %11, %3 \n\t"
++ "lxvd2x 43, %12, %2 \n\t"
++ "lxvd2x 51, %12, %3 \n\t"
++ "lxvd2x 44, %13, %2 \n\t"
++ "lxvd2x %x4, %13, %3 \n\t"
++ "lxvd2x 45, %14, %2 \n\t"
++ "lxvd2x %x5, %14, %3 \n\t"
++ "lxvd2x 46, %15, %2 \n\t"
++ "lxvd2x %x6, %15, %3 \n\t"
++ "lxvd2x 47, %16, %2 \n\t"
++ "lxvd2x %x7, %16, %3 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmaddadp 32, 40, 48 \n\t"
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 48, 0, %3 \n\t"
++ "xvmaddadp 33, 41, 49 \n\t"
++ "lxvd2x 41, %10, %2 \n\t"
++ "lxvd2x 49, %10, %3 \n\t"
++ "xvmaddadp 34, 42, 50 \n\t"
++ "lxvd2x 42, %11, %2 \n\t"
++ "lxvd2x 50, %11, %3 \n\t"
++ "xvmaddadp 35, 43, 51 \n\t"
++ "lxvd2x 43, %12, %2 \n\t"
++ "lxvd2x 51, %12, %3 \n\t"
++ "xvmaddadp 36, 44, %x4 \n\t"
++ "lxvd2x 44, %13, %2 \n\t"
++ "lxvd2x %x4, %13, %3 \n\t"
++ "xvmaddadp 37, 45, %x5 \n\t"
++ "lxvd2x 45, %14, %2 \n\t"
++ "lxvd2x %x5, %14, %3 \n\t"
++ "xvmaddadp 38, 46, %x6 \n\t"
++ "lxvd2x 46, %15, %2 \n\t"
++ "lxvd2x %x6, %15, %3 \n\t"
++ "xvmaddadp 39, 47, %x7 \n\t"
++ "lxvd2x 47, %16, %2 \n\t"
++ "lxvd2x %x7, %16, %3 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmaddadp 32, 40, 48 \n\t"
++ "xvmaddadp 33, 41, 49 \n\t"
++ "xvmaddadp 34, 42, 50 \n\t"
++ "xvmaddadp 35, 43, 51 \n\t"
++ "xvmaddadp 36, 44, %x4 \n\t"
++ "xvmaddadp 37, 45, %x5 \n\t"
++ "xvmaddadp 38, 46, %x6 \n\t"
++ "xvmaddadp 39, 47, %x7 \n\t"
++
++ "xvadddp 32, 32, 33 \n\t"
++ "xvadddp 34, 34, 35 \n\t"
++ "xvadddp 36, 36, 37 \n\t"
++ "xvadddp 38, 38, 39 \n\t"
++
++ "xvadddp 32, 32, 34 \n\t"
++ "xvadddp 36, 36, 38 \n\t"
++
++ "xvadddp 32, 32, 36 \n\t"
++
++ "xxswapd 33, 32 \n\t"
++
++ "xsadddp %x0, 32, 33 \n"
++
++ "#dot=%0 n=%1 x=%8=%2 y=%9=%3 o16=%10 o32=%11 o48=%12 o64=%13 o80=%14 o96=%15 o122=%16\n"
++ "#t0=%x4 t1=%x5 t2=%x6 t3=%x7"
++ :
++ "=d" (dot), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y), // 3
++ "=wa" (t0), // 4
++ "=wa" (t1), // 5
++ "=wa" (t2), // 6
++ "=wa" (t3) // 7
++ :
++ "m" (*x),
++ "m" (*y),
++ "b" (16), // 10
++ "b" (32), // 11
++ "b" (48), // 12
++ "b" (64), // 13
++ "b" (80), // 14
++ "b" (96), // 15
++ "b" (112) // 16
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return dot;
++}
+diff --git a/kernel/power/dgemv_n.c b/kernel/power/dgemv_n.c
+index 812d09d15..57f9f9e72 100644
+--- a/kernel/power/dgemv_n.c
++++ b/kernel/power/dgemv_n.c
+@@ -47,18 +47,18 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_4x4
+
+-static void dgemv_kernel_4x4(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT *alpha)
++static void dgemv_kernel_4x4(BLASLONG n, FLOAT *a_ptr, BLASLONG lda, FLOAT *xo, FLOAT *y, FLOAT alpha)
+ {
+ BLASLONG i;
+- FLOAT *a0,*a1,*a2,*a3;
+ FLOAT x[4] __attribute__ ((aligned (16)));;
+- a0 = ap[0];
+- a1 = ap[1];
+- a2 = ap[2];
+- a3 = ap[3];
++ FLOAT *a0 = a_ptr;
++ FLOAT *a1 = a0 + lda;
++ FLOAT *a2 = a1 + lda;
++ FLOAT *a3 = a2 + lda;
++
+
+ for ( i=0; i<4; i++)
+- x[i] = xo[i] * *alpha;
++ x[i] = xo[i] * alpha;
+
+ for ( i=0; i< n; i+=4 )
+ {
+@@ -73,16 +73,13 @@ static void dgemv_kernel_4x4(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT
+
+ #ifndef HAVE_KERNEL_4x2
+
+-static void dgemv_kernel_4x2(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT *alpha)
++static void dgemv_kernel_4x2(BLASLONG n, FLOAT *a0, FLOAT *a1, FLOAT *xo, FLOAT *y, FLOAT alpha)
+ {
+ BLASLONG i;
+- FLOAT *a0,*a1;
+ FLOAT x[4] __attribute__ ((aligned (16)));;
+- a0 = ap[0];
+- a1 = ap[1];
+
+ for ( i=0; i<2; i++)
+- x[i] = xo[i] * *alpha;
++ x[i] = xo[i] * alpha;
+
+ for ( i=0; i< n; i+=4 )
+ {
+@@ -98,15 +95,13 @@ static void dgemv_kernel_4x2(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT
+
+ #ifndef HAVE_KERNEL_4x1
+
+-static void dgemv_kernel_4x1(BLASLONG n, FLOAT *ap, FLOAT *xo, FLOAT *y, FLOAT *alpha)
++static void dgemv_kernel_4x1(BLASLONG n, FLOAT *a0, FLOAT *xo, FLOAT *y, FLOAT alpha)
+ {
+ BLASLONG i;
+- FLOAT *a0;
+ FLOAT x[4] __attribute__ ((aligned (16)));;
+- a0 = ap;
+
+ for ( i=0; i<1; i++)
+- x[i] = xo[i] * *alpha;
++ x[i] = xo[i] * alpha;
+
+ for ( i=0; i< n; i+=4 )
+ {
+@@ -141,7 +136,6 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+ {
+
+ BLASLONG i;
+- BLASLONG j;
+ FLOAT *a_ptr;
+ FLOAT *x_ptr;
+ FLOAT *y_ptr;
+@@ -151,13 +145,9 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+ BLASLONG m3;
+ BLASLONG n2;
+ BLASLONG lda4 = lda << 2;
+- FLOAT *ap[4] __attribute__ ((aligned (16)));;
+ FLOAT xbuffer[8] __attribute__ ((aligned (16)));;
+- FLOAT alpha_r[4] __attribute__ ((aligned (16)));;
+ FLOAT *ybuffer;
+
+- alpha_r[0] = alpha;
+-
+ if ( m < 1 ) return(0);
+ if ( n < 1 ) return(0);
+
+@@ -187,11 +177,6 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+ a_ptr = a;
+ x_ptr = x;
+
+- ap[0] = a_ptr;
+- ap[1] = a_ptr + lda;
+- ap[2] = ap[1] + lda;
+- ap[3] = ap[2] + lda;
+-
+ if ( inc_y != 1 )
+ memset(ybuffer,0,NB*8);
+ else
+@@ -203,18 +188,14 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+
+ for( i = 0; i < n1 ; i++)
+ {
+- dgemv_kernel_4x4(NB,ap,x_ptr,ybuffer,alpha_r);
+- ap[0] += lda4;
+- ap[1] += lda4;
+- ap[2] += lda4;
+- ap[3] += lda4;
++ dgemv_kernel_4x4(NB,a_ptr,lda,x_ptr,ybuffer,alpha);
+ a_ptr += lda4;
+ x_ptr += 4;
+ }
+
+ if ( n2 & 2 )
+ {
+- dgemv_kernel_4x2(NB,ap,x_ptr,ybuffer,alpha_r);
++ dgemv_kernel_4x2(NB,a_ptr,a_ptr+lda,x_ptr,ybuffer,alpha);
+ a_ptr += lda*2;
+ x_ptr += 2;
+ }
+@@ -222,7 +203,7 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+
+ if ( n2 & 1 )
+ {
+- dgemv_kernel_4x1(NB,a_ptr,x_ptr,ybuffer,alpha_r);
++ dgemv_kernel_4x1(NB,a_ptr,x_ptr,ybuffer,alpha);
+ a_ptr += lda;
+ x_ptr += 1;
+
+@@ -243,11 +224,7 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+ x_ptr += inc_x;
+ xbuffer[3] = x_ptr[0];
+ x_ptr += inc_x;
+- dgemv_kernel_4x4(NB,ap,xbuffer,ybuffer,alpha_r);
+- ap[0] += lda4;
+- ap[1] += lda4;
+- ap[2] += lda4;
+- ap[3] += lda4;
++ dgemv_kernel_4x4(NB,a_ptr,lda,xbuffer,ybuffer,alpha);
+ a_ptr += lda4;
+ }
+
+@@ -255,7 +232,7 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a, BLASLO
+ {
+ xbuffer[0] = x_ptr[0];
+ x_ptr += inc_x;
+- dgemv_kernel_4x1(NB,a_ptr,xbuffer,ybuffer,alpha_r);
++ dgemv_kernel_4x1(NB,a_ptr,xbuffer,ybuffer,alpha);
+ a_ptr += lda;
+
+ }
+diff --git a/kernel/power/dgemv_n_microk_power8.c b/kernel/power/dgemv_n_microk_power8.c
+index 9eabe555c..5b42bbb38 100644
+--- a/kernel/power/dgemv_n_microk_power8.c
++++ b/kernel/power/dgemv_n_microk_power8.c
+@@ -35,267 +35,264 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_4x4 1
+
+-static void dgemv_kernel_4x4(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT *alpha) __attribute__ ((noinline));
+-
+-static void dgemv_kernel_4x4(BLASLONG n, FLOAT **ap, FLOAT *xo, FLOAT *y, FLOAT *alpha)
++static void dgemv_kernel_4x4 (long n, double *ap, long lda, double *x, double *y, double alpha)
+ {
+- BLASLONG i=n;
+- BLASLONG o8 = 8;
+- BLASLONG o16 = 16;
+- BLASLONG o24 = 24;
+- BLASLONG pre = 384;
+-
+- FLOAT *a0,*a1,*a2,*a3;
+- FLOAT *y1=y+1;
+- FLOAT x[4] __attribute__ ((aligned (16)));;
+- a0 = ap[0]+1;
+- a1 = ap[1]+1;
+- a2 = ap[2]+1;
+- a3 = ap[3]+1;
+-
+- x[0]=xo[0] * *alpha;
+- x[1]=xo[1] * *alpha;
+- x[2]=xo[2] * *alpha;
+- x[3]=xo[3] * *alpha;
++ double *a0;
++ double *a1;
++ double *a2;
++ double *a3;
++
++ __asm__
++ (
++ "lxvd2x 34, 0, %9 \n\t" // x0, x1
++ "lxvd2x 35, %10, %9 \n\t" // x2, x3
++ "xxspltd 32, %x8, 0 \n\t" // alpha, alpha
++
++ "sldi %6, %4, 3 \n\t" // lda * sizeof (double)
++
++ "xvmuldp 34, 34, 32 \n\t" // x0 * alpha, x1 * alpha
++ "xvmuldp 35, 35, 32 \n\t" // x2 * alpha, x3 * alpha
++
++ "add %4, %3, %6 \n\t" // a1 = a0 + lda
++ "add %6, %6, %6 \n\t" // 2 * lda
++
++ "xxspltd 32, 34, 0 \n\t" // x0 * alpha, x0 * alpha
++ "xxspltd 33, 34, 1 \n\t" // x1 * alpha, x1 * alpha
++ "xxspltd 34, 35, 0 \n\t" // x2 * alpha, x2 * alpha
++ "xxspltd 35, 35, 1 \n\t" // x3 * alpha, x3 * alpha
++
++ "add %5, %3, %6 \n\t" // a2 = a0 + 2 * lda
++ "add %6, %4, %6 \n\t" // a3 = a1 + 2 * lda
++
++ "dcbt 0, %3 \n\t"
++ "dcbt 0, %4 \n\t"
++ "dcbt 0, %5 \n\t"
++ "dcbt 0, %6 \n\t"
+
++ "lxvd2x 40, 0, %3 \n\t" // a0[0], a0[1]
++ "lxvd2x 41, %10, %3 \n\t" // a0[2], a0[3]
+
+- __asm__ __volatile__
+- (
+- "lxvdsx 32, 0 , %1 \n\t" // x0
+- "lxvdsx 33,%3 , %1 \n\t" // x1
+- "lxvdsx 34,%4 , %1 \n\t" // x2
+- "lxvdsx 35,%5 , %1 \n\t" // x3
+- "addi %2 , %2 , -8 \n\t"
+- "addi %6 , %6 , -8 \n\t"
+- "addi %7 , %7 , -8 \n\t"
+- "addi %8 , %8 , -8 \n\t"
+- "addi %9 , %9 , -8 \n\t"
+-
+- "lxvd2x 48, 0, %6 \n\t" // a0[0], a0[1]
+- "lxvd2x 49,%4, %6 \n\t" // a0[2], a0[3]
+-
+- "lxvd2x 50, 0, %7 \n\t" // a1[0], a1[1]
+- "lxvd2x 51,%4, %7 \n\t" // a1[2], a1[3]
++ "lxvd2x 42, 0, %4 \n\t" // a1[0], a1[1]
++ "lxvd2x 43, %10, %4 \n\t" // a1[2], a1[3]
+
+- "lxvd2x 52, 0, %8 \n\t" // a2[0], a2[1]
+- "lxvd2x 53,%4, %8 \n\t" // a2[2], a2[3]
++ "lxvd2x 44, 0, %5 \n\t" // a2[0], a2[1]
++ "lxvd2x 45, %10, %5 \n\t" // a2[2], a2[3]
+
+- "lxvd2x 54, 0, %9 \n\t" // a3[0], a3[1]
+- "lxvd2x 55,%4, %9 \n\t" // a3[2], a3[3]
++ "lxvd2x 46, 0, %6 \n\t" // a3[0], a3[1]
++ "lxvd2x 47, %10, %6 \n\t" // a3[2], a3[3]
+
+- "addi %6, %6, 32 \n\t"
+- "addi %7, %7, 32 \n\t"
+- "addi %8, %8, 32 \n\t"
+- "addi %9, %9, 32 \n\t"
++ "dcbt 0, %2 \n\t"
+
+- "addic. %0 , %0 , -4 \n\t"
+- "ble 2f \n\t"
++ "addi %3, %3, 32 \n\t"
++ "addi %4, %4, 32 \n\t"
++ "addi %5, %5, 32 \n\t"
++ "addi %6, %6, 32 \n\t"
+
+- ".align 5 \n\t"
+- "1: \n\t"
++ "addic. %1, %1, -4 \n\t"
++ "ble 2f \n\t"
+
+- "dcbt %2, %10 \n\t"
++ ".p2align 5 \n"
++ "1: \n\t"
+
+- "lxvd2x 40, 0, %2 \n\t" // y0, y1
+- "lxvd2x 41,%4, %2 \n\t" // y2, y3
+-
+- "dcbt %6, %10 \n\t"
+- "dcbt %7, %10 \n\t"
+- "dcbt %8, %10 \n\t"
+- "dcbt %9, %10 \n\t"
++ "lxvd2x 36, 0, %2 \n\t" // y0, y1
++ "lxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "xvmaddadp 40, 48, 32 \n\t"
+- "xvmaddadp 41, 49, 32 \n\t"
++ "xvmaddadp 36, 40, 32 \n\t"
++ "xvmaddadp 37, 41, 32 \n\t"
+
+- "lxvd2x 48, 0, %6 \n\t" // a0[0], a0[1]
+- "lxvd2x 49,%4, %6 \n\t" // a0[2], a0[3]
++ "lxvd2x 40, 0, %3 \n\t" // a0[0], a0[1]
++ "lxvd2x 41, %10, %3 \n\t" // a0[2], a0[3]
+
+- "xvmaddadp 40, 50, 33 \n\t"
+- "addi %6, %6, 32 \n\t"
+- "xvmaddadp 41, 51, 33 \n\t"
++ "xvmaddadp 36, 42, 33 \n\t"
++ "addi %3, %3, 32 \n\t"
++ "xvmaddadp 37, 43, 33 \n\t"
+
+- "lxvd2x 50, 0, %7 \n\t" // a1[0], a1[1]
+- "lxvd2x 51,%4, %7 \n\t" // a1[2], a1[3]
++ "lxvd2x 42, 0, %4 \n\t" // a1[0], a1[1]
++ "lxvd2x 43, %10, %4 \n\t" // a1[2], a1[3]
+
+- "xvmaddadp 40, 52, 34 \n\t"
+- "addi %7, %7, 32 \n\t"
+- "xvmaddadp 41, 53, 34 \n\t"
++ "xvmaddadp 36, 44, 34 \n\t"
++ "addi %4, %4, 32 \n\t"
++ "xvmaddadp 37, 45, 34 \n\t"
+
+- "lxvd2x 52, 0, %8 \n\t" // a2[0], a2[1]
+- "lxvd2x 53,%4, %8 \n\t" // a2[2], a2[3]
++ "lxvd2x 44, 0, %5 \n\t" // a2[0], a2[1]
++ "lxvd2x 45, %10, %5 \n\t" // a2[2], a2[3]
+
+- "xvmaddadp 40, 54, 35 \n\t"
+- "addi %8, %8, 32 \n\t"
+- "xvmaddadp 41, 55, 35 \n\t"
++ "xvmaddadp 36, 46, 35 \n\t"
++ "addi %5, %5, 32 \n\t"
++ "xvmaddadp 37, 47, 35 \n\t"
+
+- "stxvd2x 40, 0, %2 \n\t" // y0, y1
+- "stxvd2x 41,%4, %2 \n\t" // y2, y3
++ "stxvd2x 36, 0, %2 \n\t" // y0, y1
++ "stxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "lxvd2x 54, 0, %9 \n\t" // a3[0], a3[1]
+- "lxvd2x 55,%4, %9 \n\t" // a3[2], a3[3]
++ "lxvd2x 46, 0, %6 \n\t" // a3[0], a3[1]
++ "lxvd2x 47, %10, %6 \n\t" // a3[2], a3[3]
+
+- "addi %9, %9, 32 \n\t"
+- "addi %2, %2, 32 \n\t"
++ "addi %6, %6, 32 \n\t"
++ "addi %2, %2, 32 \n\t"
+
+- "addic. %0 , %0 , -4 \n\t"
+- "ble 2f \n\t"
++ "addic. %1, %1, -4 \n\t"
++ "ble 2f \n\t"
+
+
+- "lxvd2x 40, 0, %2 \n\t" // y0, y1
+- "lxvd2x 41,%4, %2 \n\t" // y2, y3
+-
+- "xvmaddadp 40, 48, 32 \n\t"
+- "xvmaddadp 41, 49, 32 \n\t"
++ "lxvd2x 36, 0, %2 \n\t" // y0, y1
++ "lxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "lxvd2x 48, 0, %6 \n\t" // a0[0], a0[1]
+- "lxvd2x 49,%4, %6 \n\t" // a0[2], a0[3]
++ "xvmaddadp 36, 40, 32 \n\t"
++ "xvmaddadp 37, 41, 32 \n\t"
+
+- "xvmaddadp 40, 50, 33 \n\t"
+- "addi %6, %6, 32 \n\t"
+- "xvmaddadp 41, 51, 33 \n\t"
++ "lxvd2x 40, 0, %3 \n\t" // a0[0], a0[1]
++ "lxvd2x 41, %10, %3 \n\t" // a0[2], a0[3]
+
+- "lxvd2x 50, 0, %7 \n\t" // a1[0], a1[1]
+- "lxvd2x 51,%4, %7 \n\t" // a1[2], a1[3]
++ "xvmaddadp 36, 42, 33 \n\t"
++ "addi %3, %3, 32 \n\t"
++ "xvmaddadp 37, 43, 33 \n\t"
+
+- "xvmaddadp 40, 52, 34 \n\t"
+- "addi %7, %7, 32 \n\t"
+- "xvmaddadp 41, 53, 34 \n\t"
++ "lxvd2x 42, 0, %4 \n\t" // a1[0], a1[1]
++ "lxvd2x 43, %10, %4 \n\t" // a1[2], a1[3]
+
+- "lxvd2x 52, 0, %8 \n\t" // a2[0], a2[1]
+- "lxvd2x 53,%4, %8 \n\t" // a2[2], a2[3]
++ "xvmaddadp 36, 44, 34 \n\t"
++ "addi %4, %4, 32 \n\t"
++ "xvmaddadp 37, 45, 34 \n\t"
+
+- "xvmaddadp 40, 54, 35 \n\t"
+- "addi %8, %8, 32 \n\t"
+- "xvmaddadp 41, 55, 35 \n\t"
++ "lxvd2x 44, 0, %5 \n\t" // a2[0], a2[1]
++ "lxvd2x 45, %10, %5 \n\t" // a2[2], a2[3]
+
+- "stxvd2x 40, 0, %2 \n\t" // y0, y1
+- "stxvd2x 41,%4, %2 \n\t" // y2, y3
++ "xvmaddadp 36, 46, 35 \n\t"
++ "addi %5, %5, 32 \n\t"
++ "xvmaddadp 37, 47, 35 \n\t"
+
+- "lxvd2x 54, 0, %9 \n\t" // a3[0], a3[1]
+- "lxvd2x 55,%4, %9 \n\t" // a3[2], a3[3]
++ "stxvd2x 36, 0, %2 \n\t" // y0, y1
++ "stxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "addi %9, %9, 32 \n\t"
+- "addi %2, %2, 32 \n\t"
++ "lxvd2x 46, 0, %6 \n\t" // a3[0], a3[1]
++ "lxvd2x 47, %10, %6 \n\t" // a3[2], a3[3]
+
+- "addic. %0 , %0 , -4 \n\t"
+- "ble 2f \n\t"
++ "addi %6, %6, 32 \n\t"
++ "addi %2, %2, 32 \n\t"
+
++ "addic. %1, %1, -4 \n\t"
++ "ble 2f \n\t"
+
+- "lxvd2x 40, 0, %2 \n\t" // y0, y1
+- "lxvd2x 41,%4, %2 \n\t" // y2, y3
+-
+- "xvmaddadp 40, 48, 32 \n\t"
+- "xvmaddadp 41, 49, 32 \n\t"
+
+- "lxvd2x 48, 0, %6 \n\t" // a0[0], a0[1]
+- "lxvd2x 49,%4, %6 \n\t" // a0[2], a0[3]
++ "lxvd2x 36, 0, %2 \n\t" // y0, y1
++ "lxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "xvmaddadp 40, 50, 33 \n\t"
+- "addi %6, %6, 32 \n\t"
+- "xvmaddadp 41, 51, 33 \n\t"
++ "xvmaddadp 36, 40, 32 \n\t"
++ "xvmaddadp 37, 41, 32 \n\t"
+
+- "lxvd2x 50, 0, %7 \n\t" // a1[0], a1[1]
+- "lxvd2x 51,%4, %7 \n\t" // a1[2], a1[3]
++ "lxvd2x 40, 0, %3 \n\t" // a0[0], a0[1]
++ "lxvd2x 41, %10, %3 \n\t" // a0[2], a0[3]
+
+- "xvmaddadp 40, 52, 34 \n\t"
+- "addi %7, %7, 32 \n\t"
+- "xvmaddadp 41, 53, 34 \n\t"
++ "xvmaddadp 36, 42, 33 \n\t"
++ "addi %3, %3, 32 \n\t"
++ "xvmaddadp 37, 43, 33 \n\t"
+
+- "lxvd2x 52, 0, %8 \n\t" // a2[0], a2[1]
+- "lxvd2x 53,%4, %8 \n\t" // a2[2], a2[3]
++ "lxvd2x 42, 0, %4 \n\t" // a1[0], a1[1]
++ "lxvd2x 43, %10, %4 \n\t" // a1[2], a1[3]
+
+- "xvmaddadp 40, 54, 35 \n\t"
+- "addi %8, %8, 32 \n\t"
+- "xvmaddadp 41, 55, 35 \n\t"
++ "xvmaddadp 36, 44, 34 \n\t"
++ "addi %4, %4, 32 \n\t"
++ "xvmaddadp 37, 45, 34 \n\t"
+
+- "stxvd2x 40, 0, %2 \n\t" // y0, y1
+- "stxvd2x 41,%4, %2 \n\t" // y2, y3
++ "lxvd2x 44, 0, %5 \n\t" // a2[0], a2[1]
++ "lxvd2x 45, %10, %5 \n\t" // a2[2], a2[3]
+
+- "lxvd2x 54, 0, %9 \n\t" // a3[0], a3[1]
+- "lxvd2x 55,%4, %9 \n\t" // a3[2], a3[3]
++ "xvmaddadp 36, 46, 35 \n\t"
++ "addi %5, %5, 32 \n\t"
++ "xvmaddadp 37, 47, 35 \n\t"
+
+- "addi %9, %9, 32 \n\t"
+- "addi %2, %2, 32 \n\t"
++ "stxvd2x 36, 0, %2 \n\t" // y0, y1
++ "stxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "addic. %0 , %0 , -4 \n\t"
+- "ble 2f \n\t"
++ "lxvd2x 46, 0, %6 \n\t" // a3[0], a3[1]
++ "lxvd2x 47, %10, %6 \n\t" // a3[2], a3[3]
+
++ "addi %6, %6, 32 \n\t"
++ "addi %2, %2, 32 \n\t"
+
+- "lxvd2x 40, 0, %2 \n\t" // y0, y1
+- "lxvd2x 41,%4, %2 \n\t" // y2, y3
+-
+- "xvmaddadp 40, 48, 32 \n\t"
+- "xvmaddadp 41, 49, 32 \n\t"
++ "addic. %1, %1, -4 \n\t"
++ "ble 2f \n\t"
+
+- "lxvd2x 48, 0, %6 \n\t" // a0[0], a0[1]
+- "lxvd2x 49,%4, %6 \n\t" // a0[2], a0[3]
+
+- "xvmaddadp 40, 50, 33 \n\t"
+- "addi %6, %6, 32 \n\t"
+- "xvmaddadp 41, 51, 33 \n\t"
++ "lxvd2x 36, 0, %2 \n\t" // y0, y1
++ "lxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "lxvd2x 50, 0, %7 \n\t" // a1[0], a1[1]
+- "lxvd2x 51,%4, %7 \n\t" // a1[2], a1[3]
++ "xvmaddadp 36, 40, 32 \n\t"
++ "xvmaddadp 37, 41, 32 \n\t"
+
+- "xvmaddadp 40, 52, 34 \n\t"
+- "addi %7, %7, 32 \n\t"
+- "xvmaddadp 41, 53, 34 \n\t"
++ "lxvd2x 40, 0, %3 \n\t" // a0[0], a0[1]
++ "lxvd2x 41, %10, %3 \n\t" // a0[2], a0[3]
+
+- "lxvd2x 52, 0, %8 \n\t" // a2[0], a2[1]
+- "lxvd2x 53,%4, %8 \n\t" // a2[2], a2[3]
++ "xvmaddadp 36, 42, 33 \n\t"
++ "addi %3, %3, 32 \n\t"
++ "xvmaddadp 37, 43, 33 \n\t"
+
+- "xvmaddadp 40, 54, 35 \n\t"
+- "addi %8, %8, 32 \n\t"
+- "xvmaddadp 41, 55, 35 \n\t"
++ "lxvd2x 42, 0, %4 \n\t" // a1[0], a1[1]
++ "lxvd2x 43, %10, %4 \n\t" // a1[2], a1[3]
+
+- "stxvd2x 40, 0, %2 \n\t" // y0, y1
+- "stxvd2x 41,%4, %2 \n\t" // y2, y3
++ "xvmaddadp 36, 44, 34 \n\t"
++ "addi %4, %4, 32 \n\t"
++ "xvmaddadp 37, 45, 34 \n\t"
+
+- "lxvd2x 54, 0, %9 \n\t" // a3[0], a3[1]
+- "lxvd2x 55,%4, %9 \n\t" // a3[2], a3[3]
++ "lxvd2x 44, 0, %5 \n\t" // a2[0], a2[1]
++ "lxvd2x 45, %10, %5 \n\t" // a2[2], a2[3]
+
+- "addi %9, %9, 32 \n\t"
+- "addi %2, %2, 32 \n\t"
++ "xvmaddadp 36, 46, 35 \n\t"
++ "addi %5, %5, 32 \n\t"
++ "xvmaddadp 37, 47, 35 \n\t"
+
+- "addic. %0 , %0 , -4 \n\t"
+- "bgt 1b \n\t"
++ "stxvd2x 36, 0, %2 \n\t" // y0, y1
++ "stxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "2: \n\t"
++ "lxvd2x 46, 0, %6 \n\t" // a3[0], a3[1]
++ "lxvd2x 47, %10, %6 \n\t" // a3[2], a3[3]
+
+- "lxvd2x 40, 0, %2 \n\t" // y0, y1
+- "lxvd2x 41,%4, %2 \n\t" // y2, y3
++ "addi %6, %6, 32 \n\t"
++ "addi %2, %2, 32 \n\t"
+
+- "xvmaddadp 40, 48, 32 \n\t"
+- "xvmaddadp 41, 49, 32 \n\t"
++ "addic. %1, %1, -4 \n\t"
++ "bgt 1b \n"
+
+- "xvmaddadp 40, 50, 33 \n\t"
+- "xvmaddadp 41, 51, 33 \n\t"
++ "2: \n\t"
+
+- "xvmaddadp 40, 52, 34 \n\t"
+- "xvmaddadp 41, 53, 34 \n\t"
++ "lxvd2x 36, 0, %2 \n\t" // y0, y1
++ "lxvd2x 37, %10, %2 \n\t" // y2, y3
+
+- "xvmaddadp 40, 54, 35 \n\t"
+- "xvmaddadp 41, 55, 35 \n\t"
++ "xvmaddadp 36, 40, 32 \n\t"
++ "xvmaddadp 37, 41, 32 \n\t"
+
+- "stxvd2x 40, 0, %2 \n\t" // y0, y1
+- "stxvd2x 41,%4, %2 \n\t" // y2, y3
++ "xvmaddadp 36, 42, 33 \n\t"
++ "xvmaddadp 37, 43, 33 \n\t"
+
+- :
+- :
+- "r" (i), // 0
+- "r" (x), // 1
+- "r" (y1), // 2
+- "r" (o8), // 3
+- "r" (o16), // 4
+- "r" (o24), // 5
+- "r" (a0), // 6
+- "r" (a1), // 7
+- "r" (a2), // 8
+- "r" (a3), // 9
+- "r" (pre) // 10
+- : "cr0", "%0", "%2" , "%6", "%7", "%8", "%9", "memory"
+- );
++ "xvmaddadp 36, 44, 34 \n\t"
++ "xvmaddadp 37, 45, 34 \n\t"
+
+-}
++ "xvmaddadp 36, 46, 35 \n\t"
++ "xvmaddadp 37, 47, 35 \n\t"
+
++ "stxvd2x 36, 0, %2 \n\t" // y0, y1
++ "stxvd2x 37, %10, %2 \n" // y2, y3
+
++ "#n=%1 ap=%11 lda=%12 x=%7=%9 y=%0=%2 alpha=%8 o16=%10\n"
++ "#a0=%3 a1=%4 a2=%5 a3=%6"
++ :
++ "=m" (*y),
++ "+r" (n), // 1
++ "+b" (y), // 2
++ "=b" (a0), // 3
++ "=b" (a1), // 4
++ "=&b" (a2), // 5
++ "=&b" (a3) // 6
++ :
++ "m" (*x),
++ "d" (alpha), // 8
++ "r" (x), // 9
++ "b" (16), // 10
++ "3" (ap), // 11
++ "4" (lda) // 12
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/drot.c b/kernel/power/drot.c
+index c93f69b12..3e107486f 100644
+--- a/kernel/power/drot.c
++++ b/kernel/power/drot.c
+@@ -46,7 +46,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_16
+
+-static void drot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
++static void drot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT c, FLOAT s)
+ {
+
+ BLASLONG i=0;
+@@ -56,8 +56,6 @@ static void drot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
+ FLOAT y00, y01, y02, y03;
+ FLOAT *x1=x;
+ FLOAT *y1=y;
+- FLOAT c1=*c;
+- FLOAT s1=*s;
+
+ while ( i<n )
+ {
+@@ -71,14 +69,14 @@ static void drot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
+ x03 = x1[3];
+ y03 = y1[3];
+
+- f0 = c1*x00 + s1*y00;
+- g0 = c1*y00 - s1*x00;
+- f1 = c1*x01 + s1*y01;
+- g1 = c1*y01 - s1*x01;
+- f2 = c1*x02 + s1*y02;
+- g2 = c1*y02 - s1*x02;
+- f3 = c1*x03 + s1*y03;
+- g3 = c1*y03 - s1*x03;
++ f0 = c*x00 + s*y00;
++ g0 = c*y00 - s*x00;
++ f1 = c*x01 + s*y01;
++ g1 = c*y01 - s*x01;
++ f2 = c*x02 + s*y02;
++ g2 = c*y02 - s*x02;
++ f3 = c*x03 + s*y03;
++ g3 = c*y03 - s*x03;
+
+ x1[0] = f0;
+ y1[0] = g0;
+@@ -106,8 +104,6 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT
+ {
+ BLASLONG i=0;
+ BLASLONG ix=0,iy=0;
+- FLOAT c1[4] __attribute__ ((aligned (16)));;
+- FLOAT s1[4] __attribute__ ((aligned (16)));;
+ FLOAT *x1=x;
+ FLOAT *y1=y;
+ FLOAT temp;
+@@ -120,15 +116,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT
+ BLASLONG n1 = n & -16;
+ if ( n1 > 0 )
+ {
+- c1[0]=c;
+- c1[1]=c;
+- c1[2]=c;
+- c1[3]=c;
+- s1[0]=s;
+- s1[1]=s;
+- s1[2]=s;
+- s1[3]=s;
+- drot_kernel_16(n1, x1, y1, c1, s1);
++ drot_kernel_16(n1, x1, y1, c, s);
+ i=n1;
+ }
+
+diff --git a/kernel/power/drot_microk_power8.c b/kernel/power/drot_microk_power8.c
+index 4444ac7eb..016b7764d 100644
+--- a/kernel/power/drot_microk_power8.c
++++ b/kernel/power/drot_microk_power8.c
+@@ -38,174 +38,176 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_16 1
+
+-static void drot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s) __attribute__ ((noinline));
+-
+-static void drot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
++static void drot_kernel_16 (long n, double *x, double *y, double c, double s)
+ {
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++ __vector double t4;
++ __vector double t5;
++ __vector double t6;
++ __vector double t7;
+
++ __asm__
++ (
++ "xxspltd 36, %x13, 0 \n\t" // load c to both dwords
++ "xxspltd 37, %x14, 0 \n\t" // load s to both dwords
+
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxsdx 36 , %5, %3 \n\t" // load c
+- "lxsdx 37 , %5, %4 \n\t" // load s
+- "addi %8 , %8, -8 \n\t"
+- "addi %9 , %9, -8 \n\t"
+-
+- "xxspltd 36 , 36, 0 \n\t"
+- "xxspltd 37 , 37, 0 \n\t"
+-
+- "lxvd2x 32, 0, %1 \n\t" // load x
+- "lxvd2x 33, %5, %1 \n\t"
+- "lxvd2x 34, %6, %1 \n\t"
+- "lxvd2x 35, %7, %1 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t" // load y
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "addi %1, %1, 64 \n\t"
+- "addi %2, %2, 64 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "xvmuldp 48, 32, 36 \n\t" // c * x
+- "xvmuldp 49, 33, 36 \n\t"
+- "xvmuldp 50, 34, 36 \n\t"
+- "xvmuldp 51, 35, 36 \n\t"
+-
+- "xvmuldp 56, 40, 36 \n\t" // c * y
+- "xvmuldp 57, 41, 36 \n\t"
+- "xvmuldp 58, 42, 36 \n\t"
+- "xvmuldp 59, 43, 36 \n\t"
+-
+- "xvmuldp 52, 32, 37 \n\t" // s * x
+- "xvmuldp 53, 33, 37 \n\t"
+-
+- "lxvd2x 32, 0, %1 \n\t" // load x
+- "lxvd2x 33, %5, %1 \n\t"
+-
+- "xvmuldp 54, 34, 37 \n\t"
+- "xvmuldp 55, 35, 37 \n\t"
+-
+- "lxvd2x 34, %6, %1 \n\t"
+- "lxvd2x 35, %7, %1 \n\t"
+-
+- "xvmuldp 60, 40, 37 \n\t" // s * y
+- "xvmuldp 61, 41, 37 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t" // load y
+- "lxvd2x 41, %5, %2 \n\t"
+-
+- "xvmuldp 62, 42, 37 \n\t"
+- "xvmuldp 63, 43, 37 \n\t"
+-
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "xvadddp 48, 48 , 60 \n\t" // c * x + s * y
+- "xvadddp 49, 49 , 61 \n\t" // c * x + s * y
+-
+- "addi %1, %1, 64 \n\t"
+- "addi %2, %2, 64 \n\t"
+-
+- "xvadddp 50, 50 , 62 \n\t" // c * x + s * y
+- "xvadddp 51, 51 , 63 \n\t" // c * x + s * y
+-
+- "xvsubdp 56, 56 , 52 \n\t" // c * y - s * x
+- "xvsubdp 57, 57 , 53 \n\t" // c * y - s * x
+- "xvsubdp 58, 58 , 54 \n\t" // c * y - s * x
+- "xvsubdp 59, 59 , 55 \n\t" // c * y - s * x
+-
+- "stxvd2x 48, 0, %8 \n\t" // store x
+- "stxvd2x 49, %5, %8 \n\t"
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
+-
+- "stxvd2x 56, 0, %9 \n\t" // store y
+- "stxvd2x 57, %5, %9 \n\t"
+- "stxvd2x 58, %6, %9 \n\t"
+- "stxvd2x 59, %7, %9 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+- "addi %9, %9, 64 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmuldp 48, 32, 36 \n\t" // c * x
+- "xvmuldp 49, 33, 36 \n\t"
+- "xvmuldp 50, 34, 36 \n\t"
+- "xvmuldp 51, 35, 36 \n\t"
+-
+- "xvmuldp 56, 40, 36 \n\t" // c * y
+- "xvmuldp 57, 41, 36 \n\t"
+- "xvmuldp 58, 42, 36 \n\t"
+- "xvmuldp 59, 43, 36 \n\t"
+-
+- "xvmuldp 52, 32, 37 \n\t" // s * x
+- "xvmuldp 53, 33, 37 \n\t"
+- "xvmuldp 54, 34, 37 \n\t"
+- "xvmuldp 55, 35, 37 \n\t"
+-
+- "xvmuldp 60, 40, 37 \n\t" // s * y
+- "xvmuldp 61, 41, 37 \n\t"
+- "xvmuldp 62, 42, 37 \n\t"
+- "xvmuldp 63, 43, 37 \n\t"
+-
+- "xvadddp 48, 48 , 60 \n\t" // c * x + s * y
+- "xvadddp 49, 49 , 61 \n\t" // c * x + s * y
+- "xvadddp 50, 50 , 62 \n\t" // c * x + s * y
+- "xvadddp 51, 51 , 63 \n\t" // c * x + s * y
+-
+- "xvsubdp 56, 56 , 52 \n\t" // c * y - s * x
+- "xvsubdp 57, 57 , 53 \n\t" // c * y - s * x
+- "xvsubdp 58, 58 , 54 \n\t" // c * y - s * x
+- "xvsubdp 59, 59 , 55 \n\t" // c * y - s * x
+-
+- "stxvd2x 48, 0, %8 \n\t" // store x
+- "stxvd2x 49, %5, %8 \n\t"
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
++ "lxvd2x 32, 0, %3 \n\t" // load x
++ "lxvd2x 33, %15, %3 \n\t"
++ "lxvd2x 34, %16, %3 \n\t"
++ "lxvd2x 35, %17, %3 \n\t"
+
+- "stxvd2x 56, 0, %9 \n\t" // store y
+- "stxvd2x 57, %5, %9 \n\t"
+- "stxvd2x 58, %6, %9 \n\t"
+- "stxvd2x 59, %7, %9 \n\t"
++ "lxvd2x 48, 0, %4 \n\t" // load y
++ "lxvd2x 49, %15, %4 \n\t"
++ "lxvd2x 50, %16, %4 \n\t"
++ "lxvd2x 51, %17, %4 \n\t"
+
++ "addi %3, %3, 64 \n\t"
++ "addi %4, %4, 64 \n\t"
+
++ "addic. %2, %2, -8 \n\t"
++ "ble 2f \n\t"
+
+- :
+- :
+- "r" (i), // 0
+- "r" (x1), // 1
+- "r" (y1), // 2
+- "r" (c), // 3
+- "r" (s), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (x2), // 8
+- "r" (y2) // 9
+- : "cr0", "%0", "%1" , "%2", "%8", "%9", "memory"
+- );
++ ".p2align 5 \n"
++ "1: \n\t"
+
+-}
++ "xvmuldp 40, 32, 36 \n\t" // c * x
++ "xvmuldp 41, 33, 36 \n\t"
++ "xvmuldp 42, 34, 36 \n\t"
++ "xvmuldp 43, 35, 36 \n\t"
+
++ "xvmuldp %x5, 48, 36 \n\t" // c * y
++ "xvmuldp %x6, 49, 36 \n\t"
++ "xvmuldp %x7, 50, 36 \n\t"
++ "xvmuldp %x8, 51, 36 \n\t"
+
++ "xvmuldp 44, 32, 37 \n\t" // s * x
++ "xvmuldp 45, 33, 37 \n\t"
++
++ "lxvd2x 32, 0, %3 \n\t" // load x
++ "lxvd2x 33, %15, %3 \n\t"
++
++ "xvmuldp 46, 34, 37 \n\t"
++ "xvmuldp 47, 35, 37 \n\t"
++
++ "lxvd2x 34, %16, %3 \n\t"
++ "lxvd2x 35, %17, %3 \n\t"
++
++ "xvmuldp %x9, 48, 37 \n\t" // s * y
++ "xvmuldp %x10, 49, 37 \n\t"
++
++ "lxvd2x 48, 0, %4 \n\t" // load y
++ "lxvd2x 49, %15, %4 \n\t"
++
++ "xvmuldp %x11, 50, 37 \n\t"
++ "xvmuldp %x12, 51, 37 \n\t"
++
++ "lxvd2x 50, %16, %4 \n\t"
++ "lxvd2x 51, %17, %4 \n\t"
++
++ "xvadddp 40, 40, %x9 \n\t" // c * x + s * y
++ "xvadddp 41, 41, %x10 \n\t" // c * x + s * y
++
++ "addi %3, %3, -64 \n\t"
++ "addi %4, %4, -64 \n\t"
++
++ "xvadddp 42, 42, %x11 \n\t" // c * x + s * y
++ "xvadddp 43, 43, %x12 \n\t" // c * x + s * y
++
++ "xvsubdp %x5, %x5, 44 \n\t" // c * y - s * x
++ "xvsubdp %x6, %x6, 45 \n\t" // c * y - s * x
++ "xvsubdp %x7, %x7, 46 \n\t" // c * y - s * x
++ "xvsubdp %x8, %x8, 47 \n\t" // c * y - s * x
++
++ "stxvd2x 40, 0, %3 \n\t" // store x
++ "stxvd2x 41, %15, %3 \n\t"
++ "stxvd2x 42, %16, %3 \n\t"
++ "stxvd2x 43, %17, %3 \n\t"
++
++ "stxvd2x %x5, 0, %4 \n\t" // store y
++ "stxvd2x %x6, %15, %4 \n\t"
++ "stxvd2x %x7, %16, %4 \n\t"
++ "stxvd2x %x8, %17, %4 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %4, %4, 128 \n\t"
++
++ "addic. %2, %2, -8 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmuldp 40, 32, 36 \n\t" // c * x
++ "xvmuldp 41, 33, 36 \n\t"
++ "xvmuldp 42, 34, 36 \n\t"
++ "xvmuldp 43, 35, 36 \n\t"
++
++ "xvmuldp %x5, 48, 36 \n\t" // c * y
++ "xvmuldp %x6, 49, 36 \n\t"
++ "xvmuldp %x7, 50, 36 \n\t"
++ "xvmuldp %x8, 51, 36 \n\t"
++
++ "xvmuldp 44, 32, 37 \n\t" // s * x
++ "xvmuldp 45, 33, 37 \n\t"
++ "xvmuldp 46, 34, 37 \n\t"
++ "xvmuldp 47, 35, 37 \n\t"
++
++ "xvmuldp %x9, 48, 37 \n\t" // s * y
++ "xvmuldp %x10, 49, 37 \n\t"
++ "xvmuldp %x11, 50, 37 \n\t"
++ "xvmuldp %x12, 51, 37 \n\t"
++
++ "addi %3, %3, -64 \n\t"
++ "addi %4, %4, -64 \n\t"
++
++ "xvadddp 40, 40, %x9 \n\t" // c * x + s * y
++ "xvadddp 41, 41, %x10 \n\t" // c * x + s * y
++ "xvadddp 42, 42, %x11 \n\t" // c * x + s * y
++ "xvadddp 43, 43, %x12 \n\t" // c * x + s * y
++
++ "xvsubdp %x5, %x5, 44 \n\t" // c * y - s * x
++ "xvsubdp %x6, %x6, 45 \n\t" // c * y - s * x
++ "xvsubdp %x7, %x7, 46 \n\t" // c * y - s * x
++ "xvsubdp %x8, %x8, 47 \n\t" // c * y - s * x
++
++ "stxvd2x 40, 0, %3 \n\t" // store x
++ "stxvd2x 41, %15, %3 \n\t"
++ "stxvd2x 42, %16, %3 \n\t"
++ "stxvd2x 43, %17, %3 \n\t"
++
++ "stxvd2x %x5, 0, %4 \n\t" // store y
++ "stxvd2x %x6, %15, %4 \n\t"
++ "stxvd2x %x7, %16, %4 \n\t"
++ "stxvd2x %x8, %17, %4 \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 c=%13 s=%14 o16=%15 o32=%16 o48=%17\n"
++ "#t0=%x5 t1=%x6 t2=%x7 t3=%x8 t4=%x9 t5=%x10 t6=%x11 t7=%x12"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y), // 4
++ "=wa" (t0), // 5
++ "=wa" (t1), // 6
++ "=wa" (t2), // 7
++ "=wa" (t3), // 8
++ "=wa" (t4), // 9
++ "=wa" (t5), // 10
++ "=wa" (t6), // 11
++ "=wa" (t7) // 12
++ :
++ "d" (c), // 13
++ "d" (s), // 14
++ "b" (16), // 15
++ "b" (32), // 16
++ "b" (48) // 17
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++}
+diff --git a/kernel/power/dscal.c b/kernel/power/dscal.c
+index c62a56315..f32dc4bad 100644
+--- a/kernel/power/dscal.c
++++ b/kernel/power/dscal.c
+@@ -41,11 +41,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #if !defined(HAVE_KERNEL_8)
+
+-static void dscal_kernel_8( BLASLONG n, FLOAT *da , FLOAT *x )
++static void dscal_kernel_8 (BLASLONG n, FLOAT *x, FLOAT alpha)
+ {
+
+ BLASLONG i;
+- FLOAT alpha = *da;
+
+ for( i=0; i<n; i+=8 )
+ {
+@@ -62,7 +61,7 @@ static void dscal_kernel_8( BLASLONG n, FLOAT *da , FLOAT *x )
+
+ }
+
+-static void dscal_kernel_8_zero( BLASLONG n, FLOAT *da , FLOAT *x )
++static void dscal_kernel_8_zero (BLASLONG n, FLOAT *x)
+ {
+
+ BLASLONG i;
+@@ -102,10 +101,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ BLASLONG n1 = n & -16;
+ if ( n1 > 0 )
+ {
+- FLOAT alpha[2];
+- alpha[0]=da;
+- alpha[1]=da;
+- dscal_kernel_8_zero(n1 , alpha , x);
++ dscal_kernel_8_zero(n1, x);
+ j=n1;
+ }
+
+@@ -123,10 +119,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ BLASLONG n1 = n & -16;
+ if ( n1 > 0 )
+ {
+- FLOAT alpha[2];
+- alpha[0]=da;
+- alpha[1]=da;
+- dscal_kernel_8(n1 , alpha , x);
++ dscal_kernel_8(n1, x, da);
+ j=n1;
+ }
+ while(j < n)
+diff --git a/kernel/power/dscal_microk_power8.c b/kernel/power/dscal_microk_power8.c
+index d90c3d80c..04898eb3d 100644
+--- a/kernel/power/dscal_microk_power8.c
++++ b/kernel/power/dscal_microk_power8.c
+@@ -35,185 +35,149 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_8 1
+
+-static void dscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x) __attribute__ ((noinline));
+-
+-static void dscal_kernel_8( BLASLONG n, FLOAT *alpha, FLOAT *x)
++static void dscal_kernel_8 (long n, double *x, double alpha)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *x2=x+1;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxsdx 33, 0, %3 \n\t"
+- "xxspltd 32, 33, 0 \n\t"
+- "addi %1, %1, -8 \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "xvmuldp 48, 40, 32 \n\t"
+- "xvmuldp 49, 41, 32 \n\t"
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "xvmuldp 50, 42, 32 \n\t"
+- "xvmuldp 51, 43, 32 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "xvmuldp 52, 44, 32 \n\t"
+- "xvmuldp 53, 45, 32 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "xvmuldp 54, 46, 32 \n\t"
+- "xvmuldp 55, 47, 32 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "stxvd2x 48, 0, %1 \n\t"
+- "stxvd2x 49, %5, %1 \n\t"
+- "stxvd2x 50, %6, %1 \n\t"
+- "stxvd2x 51, %7, %1 \n\t"
+- "stxvd2x 52, %8, %1 \n\t"
+- "stxvd2x 53, %9, %1 \n\t"
+- "stxvd2x 54, %10, %1 \n\t"
+- "stxvd2x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmuldp 48, 40, 32 \n\t"
+- "xvmuldp 49, 41, 32 \n\t"
+- "xvmuldp 50, 42, 32 \n\t"
+- "xvmuldp 51, 43, 32 \n\t"
+- "xvmuldp 52, 44, 32 \n\t"
+- "xvmuldp 53, 45, 32 \n\t"
+- "xvmuldp 54, 46, 32 \n\t"
+- "xvmuldp 55, 47, 32 \n\t"
+-
+- "stxvd2x 48, 0, %1 \n\t"
+- "stxvd2x 49, %5, %1 \n\t"
+- "stxvd2x 50, %6, %1 \n\t"
+- "stxvd2x 51, %7, %1 \n\t"
+- "stxvd2x 52, %8, %1 \n\t"
+- "stxvd2x 53, %9, %1 \n\t"
+- "stxvd2x 54, %10, %1 \n\t"
+- "stxvd2x 55, %11, %1 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (x2), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
+-static void dscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) __attribute__ ((noinline));
+-
+-static void dscal_kernel_8_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xxspltd %x3, %x3, 0 \n\t"
++
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %4, %2 \n\t"
++ "lxvd2x 34, %5, %2 \n\t"
++ "lxvd2x 35, %6, %2 \n\t"
++ "lxvd2x 36, %7, %2 \n\t"
++ "lxvd2x 37, %8, %2 \n\t"
++ "lxvd2x 38, %9, %2 \n\t"
++ "lxvd2x 39, %10, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmuldp 40, 32, %x3 \n\t"
++ "xvmuldp 41, 33, %x3 \n\t"
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %4, %2 \n\t"
++ "xvmuldp 42, 34, %x3 \n\t"
++ "xvmuldp 43, 35, %x3 \n\t"
++ "lxvd2x 34, %5, %2 \n\t"
++ "lxvd2x 35, %6, %2 \n\t"
++ "xvmuldp 44, 36, %x3 \n\t"
++ "xvmuldp 45, 37, %x3 \n\t"
++ "lxvd2x 36, %7, %2 \n\t"
++ "lxvd2x 37, %8, %2 \n\t"
++ "xvmuldp 46, 38, %x3 \n\t"
++ "xvmuldp 47, 39, %x3 \n\t"
++ "lxvd2x 38, %9, %2 \n\t"
++ "lxvd2x 39, %10, %2 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "stxvd2x 40, 0, %2 \n\t"
++ "stxvd2x 41, %4, %2 \n\t"
++ "stxvd2x 42, %5, %2 \n\t"
++ "stxvd2x 43, %6, %2 \n\t"
++ "stxvd2x 44, %7, %2 \n\t"
++ "stxvd2x 45, %8, %2 \n\t"
++ "stxvd2x 46, %9, %2 \n\t"
++ "stxvd2x 47, %10, %2 \n\t"
++
++ "addi %2, %2, 256 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmuldp 40, 32, %x3 \n\t"
++ "xvmuldp 41, 33, %x3 \n\t"
++ "xvmuldp 42, 34, %x3 \n\t"
++ "xvmuldp 43, 35, %x3 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "xvmuldp 44, 36, %x3 \n\t"
++ "xvmuldp 45, 37, %x3 \n\t"
++ "xvmuldp 46, 38, %x3 \n\t"
++ "xvmuldp 47, 39, %x3 \n\t"
++
++ "stxvd2x 40, 0, %2 \n\t"
++ "stxvd2x 41, %4, %2 \n\t"
++ "stxvd2x 42, %5, %2 \n\t"
++ "stxvd2x 43, %6, %2 \n\t"
++ "stxvd2x 44, %7, %2 \n\t"
++ "stxvd2x 45, %8, %2 \n\t"
++ "stxvd2x 46, %9, %2 \n\t"
++ "stxvd2x 47, %10, %2 \n"
++
++ "#n=%1 alpha=%3 x=%0=%2 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10"
++ :
++ "+m" (*x),
++ "+r" (n), // 1
++ "+b" (x) // 2
++ :
++ "d" (alpha), // 3
++ "b" (16), // 4
++ "b" (32), // 5
++ "b" (48), // 6
++ "b" (64), // 7
++ "b" (80), // 8
++ "b" (96), // 9
++ "b" (112) // 10
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
++
++
++static void dscal_kernel_8_zero (long n, double *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *x2=x+1;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "xxlxor 32 , 32 , 32 \n\t"
+- "addi %1, %1, -8 \n\t"
+-
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvd2x 32, 0, %1 \n\t"
+- "stxvd2x 32, %5, %1 \n\t"
+- "stxvd2x 32, %6, %1 \n\t"
+- "stxvd2x 32, %7, %1 \n\t"
+- "stxvd2x 32, %8, %1 \n\t"
+- "stxvd2x 32, %9, %1 \n\t"
+- "stxvd2x 32, %10, %1 \n\t"
+- "stxvd2x 32, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (x2), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __vector double t0;
++
++ __asm__
++ (
++ "xxlxor %x3, %x3, %x3 \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvd2x %x3, 0, %2 \n\t"
++ "stxvd2x %x3, %4, %2 \n\t"
++ "stxvd2x %x3, %5, %2 \n\t"
++ "stxvd2x %x3, %6, %2 \n\t"
++ "stxvd2x %x3, %7, %2 \n\t"
++ "stxvd2x %x3, %8, %2 \n\t"
++ "stxvd2x %x3, %9, %2 \n\t"
++ "stxvd2x %x3, %10, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "bgt 1b \n"
++
++ "#n=%1 x=%0=%2 t0=%x3 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10"
++ :
++ "=m" (*x),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0) // 3
++ :
++ "b" (16), // 4
++ "b" (32), // 5
++ "b" (48), // 6
++ "b" (64), // 7
++ "b" (80), // 8
++ "b" (96), // 9
++ "b" (112) // 10
++ :
++ "cr0"
++ );
++}
+diff --git a/kernel/power/dswap_microk_power8.c b/kernel/power/dswap_microk_power8.c
+index 77747c3b9..31eff3449 100644
+--- a/kernel/power/dswap_microk_power8.c
++++ b/kernel/power/dswap_microk_power8.c
+@@ -35,146 +35,124 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void dswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void dswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void dswap_kernel_32 (long n, double *x, double *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "addi %3, %3, -8 \n\t"
+- "addi %4, %4, -8 \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "lxvd2x 32, 0, %2 \n\t"
+- "lxvd2x 33, %5, %2 \n\t"
+- "lxvd2x 34, %6, %2 \n\t"
+- "lxvd2x 35, %7, %2 \n\t"
+- "lxvd2x 36, %8, %2 \n\t"
+- "lxvd2x 37, %9, %2 \n\t"
+- "lxvd2x 38, %10, %2 \n\t"
+- "lxvd2x 39, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 48, 0, %1 \n\t"
+- "lxvd2x 49, %5, %1 \n\t"
+- "lxvd2x 50, %6, %1 \n\t"
+- "lxvd2x 51, %7, %1 \n\t"
+- "lxvd2x 52, %8, %1 \n\t"
+- "lxvd2x 53, %9, %1 \n\t"
+- "lxvd2x 54, %10, %1 \n\t"
+- "lxvd2x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "lxvd2x 56, 0, %1 \n\t"
+- "lxvd2x 57, %5, %1 \n\t"
+- "lxvd2x 58, %6, %1 \n\t"
+- "lxvd2x 59, %7, %1 \n\t"
+- "lxvd2x 60, %8, %1 \n\t"
+- "lxvd2x 61, %9, %1 \n\t"
+- "lxvd2x 62, %10, %1 \n\t"
+- "lxvd2x 63, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvd2x 32, 0, %3 \n\t"
+- "stxvd2x 33, %5, %3 \n\t"
+- "stxvd2x 34, %6, %3 \n\t"
+- "stxvd2x 35, %7, %3 \n\t"
+- "stxvd2x 36, %8, %3 \n\t"
+- "stxvd2x 37, %9, %3 \n\t"
+- "stxvd2x 38, %10, %3 \n\t"
+- "stxvd2x 39, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvd2x 40, 0, %3 \n\t"
+- "stxvd2x 41, %5, %3 \n\t"
+- "stxvd2x 42, %6, %3 \n\t"
+- "stxvd2x 43, %7, %3 \n\t"
+- "stxvd2x 44, %8, %3 \n\t"
+- "stxvd2x 45, %9, %3 \n\t"
+- "stxvd2x 46, %10, %3 \n\t"
+- "stxvd2x 47, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvd2x 48, 0, %4 \n\t"
+- "stxvd2x 49, %5, %4 \n\t"
+- "stxvd2x 50, %6, %4 \n\t"
+- "stxvd2x 51, %7, %4 \n\t"
+- "stxvd2x 52, %8, %4 \n\t"
+- "stxvd2x 53, %9, %4 \n\t"
+- "stxvd2x 54, %10, %4 \n\t"
+- "stxvd2x 55, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "stxvd2x 56, 0, %4 \n\t"
+- "stxvd2x 57, %5, %4 \n\t"
+- "stxvd2x 58, %6, %4 \n\t"
+- "stxvd2x 59, %7, %4 \n\t"
+- "stxvd2x 60, %8, %4 \n\t"
+- "stxvd2x 61, %9, %4 \n\t"
+- "stxvd2x 62, %10, %4 \n\t"
+- "stxvd2x 63, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (y2), // 3
+- "r" (x2), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "%3", "%4", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "lxvd2x 32, 0, %4 \n\t"
++ "lxvd2x 33, %5, %4 \n\t"
++ "lxvd2x 34, %6, %4 \n\t"
++ "lxvd2x 35, %7, %4 \n\t"
++ "lxvd2x 36, %8, %4 \n\t"
++ "lxvd2x 37, %9, %4 \n\t"
++ "lxvd2x 38, %10, %4 \n\t"
++ "lxvd2x 39, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "lxvd2x 40, 0, %4 \n\t"
++ "lxvd2x 41, %5, %4 \n\t"
++ "lxvd2x 42, %6, %4 \n\t"
++ "lxvd2x 43, %7, %4 \n\t"
++ "lxvd2x 44, %8, %4 \n\t"
++ "lxvd2x 45, %9, %4 \n\t"
++ "lxvd2x 46, %10, %4 \n\t"
++ "lxvd2x 47, %11, %4 \n\t"
++
++ "addi %4, %4, -128 \n\t"
++
++ "lxvd2x 48, 0, %3 \n\t"
++ "lxvd2x 49, %5, %3 \n\t"
++ "lxvd2x 50, %6, %3 \n\t"
++ "lxvd2x 51, %7, %3 \n\t"
++ "lxvd2x 0, %8, %3 \n\t"
++ "lxvd2x 1, %9, %3 \n\t"
++ "lxvd2x 2, %10, %3 \n\t"
++ "lxvd2x 3, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "lxvd2x 4, 0, %3 \n\t"
++ "lxvd2x 5, %5, %3 \n\t"
++ "lxvd2x 6, %6, %3 \n\t"
++ "lxvd2x 7, %7, %3 \n\t"
++ "lxvd2x 8, %8, %3 \n\t"
++ "lxvd2x 9, %9, %3 \n\t"
++ "lxvd2x 10, %10, %3 \n\t"
++ "lxvd2x 11, %11, %3 \n\t"
++
++ "addi %3, %3, -128 \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 48, 0, %4 \n\t"
++ "stxvd2x 49, %5, %4 \n\t"
++ "stxvd2x 50, %6, %4 \n\t"
++ "stxvd2x 51, %7, %4 \n\t"
++ "stxvd2x 0, %8, %4 \n\t"
++ "stxvd2x 1, %9, %4 \n\t"
++ "stxvd2x 2, %10, %4 \n\t"
++ "stxvd2x 3, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "stxvd2x 4, 0, %4 \n\t"
++ "stxvd2x 5, %5, %4 \n\t"
++ "stxvd2x 6, %6, %4 \n\t"
++ "stxvd2x 7, %7, %4 \n\t"
++ "stxvd2x 8, %8, %4 \n\t"
++ "stxvd2x 9, %9, %4 \n\t"
++ "stxvd2x 10, %10, %4 \n\t"
++ "stxvd2x 11, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "addic. %2, %2, -32 \n\t"
++ "bgt 1b \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y) // 4
++ :
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51","vs0","vs1","vs2","vs3",
++ "vs4","vs5","vs6","vs7","vs8","vs9","vs10","vs11"
++ );
++}
+diff --git a/kernel/power/sasum.c b/kernel/power/sasum.c
+index 43311f2ba..fb10b1d27 100644
+--- a/kernel/power/sasum.c
++++ b/kernel/power/sasum.c
+@@ -38,7 +38,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #if defined(DOUBLE)
+
+-#define ABS fabs
++#error supports float only
+
+ #else
+
+@@ -53,7 +53,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_32
+
+-static void sasum_kernel_32(BLASLONG n, FLOAT *x1, FLOAT *svec)
++static FLOAT sasum_kernel_32(BLASLONG n, FLOAT *x1)
+ {
+
+ BLASLONG i=0;
+@@ -92,11 +92,7 @@ static void sasum_kernel_32(BLASLONG n, FLOAT *x1, FLOAT *svec)
+
+ }
+
+- svec[0] = sum0+sum1+sum2+sum3;
+- svec[1] = 0.0;
+- svec[2] = 0.0;
+- svec[3] = 0.0;
+-
++ return sum0+sum1+sum2+sum3;
+ }
+
+ #endif
+@@ -105,7 +101,6 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ {
+ BLASLONG i=0;
+ FLOAT sumf = 0.0;
+- FLOAT svec[4] __attribute__ ((aligned (16)));;
+ BLASLONG n1;
+
+ if (n <= 0 || inc_x <= 0) return(sumf);
+@@ -117,8 +112,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ if ( n1 > 0 )
+ {
+
+- sasum_kernel_32(n1, x, svec);
+- sumf = svec[0] + svec[1]+svec[2]+svec[3];
++ sumf = sasum_kernel_32(n1, x);
+ i=n1;
+ }
+
+diff --git a/kernel/power/sasum_microk_power8.c b/kernel/power/sasum_microk_power8.c
+index 847fffe04..25a969d62 100644
+--- a/kernel/power/sasum_microk_power8.c
++++ b/kernel/power/sasum_microk_power8.c
+@@ -34,144 +34,145 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_32 1
+-static void sasum_kernel_32( BLASLONG n, FLOAT *x, FLOAT *svec) __attribute__ ((noinline));
+
+-static void sasum_kernel_32( BLASLONG n, FLOAT *x, FLOAT *svec)
++static float sasum_kernel_32 (long n, float *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xvabssp 48, 40 \n\t"
+- "xvabssp 49, 41 \n\t"
+- "xvabssp 50, 42 \n\t"
+- "xvabssp 51, 43 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+-
+- "xvabssp 52, 44 \n\t"
+- "xvabssp 53, 45 \n\t"
+-
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+-
+- "xvabssp 54, 46 \n\t"
+- "xvabssp 55, 47 \n\t"
+-
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+-
+- "xvaddsp 32, 32, 48 \n\t"
+- "xvaddsp 33, 33, 49 \n\t"
+-
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "xvaddsp 34, 34, 50 \n\t"
+- "xvaddsp 35, 35, 51 \n\t"
+- "addi %2, %2, 128 \n\t"
+- "xvaddsp 36, 36, 52 \n\t"
+- "xvaddsp 37, 37, 53 \n\t"
+- "addic. %0 , %0 , -32 \n\t"
+- "xvaddsp 38, 38, 54 \n\t"
+- "xvaddsp 39, 39, 55 \n\t"
+-
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+-
+- "xvabssp 48, 40 \n\t"
+- "xvabssp 49, 41 \n\t"
+- "xvabssp 50, 42 \n\t"
+- "xvabssp 51, 43 \n\t"
+- "xvabssp 52, 44 \n\t"
+- "xvabssp 53, 45 \n\t"
+- "xvabssp 54, 46 \n\t"
+- "xvabssp 55, 47 \n\t"
+-
+- "xvaddsp 32, 32, 48 \n\t"
+- "xvaddsp 33, 33, 49 \n\t"
+- "xvaddsp 34, 34, 50 \n\t"
+- "xvaddsp 35, 35, 51 \n\t"
+- "xvaddsp 36, 36, 52 \n\t"
+- "xvaddsp 37, 37, 53 \n\t"
+- "xvaddsp 38, 38, 54 \n\t"
+- "xvaddsp 39, 39, 55 \n\t"
+-
+- "xvaddsp 32, 32, 33 \n\t"
+- "xvaddsp 34, 34, 35 \n\t"
+- "xvaddsp 36, 36, 37 \n\t"
+- "xvaddsp 38, 38, 39 \n\t"
+-
+- "xvaddsp 32, 32, 34 \n\t"
+- "xvaddsp 36, 36, 38 \n\t"
+-
+- "xvaddsp 32, 32, 36 \n\t"
+-
+-
+- "stxvw4x 32, 0, %3 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (svec), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2", "memory"
+- );
+-
+-}
+-
+-
++ float sum;
++ __vector float t0;
++ __vector float t1;
++ __vector float t2;
++ __vector float t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %8, %2 \n\t"
++ "lxvw4x 42, %9, %2 \n\t"
++ "lxvw4x 43, %10, %2 \n\t"
++ "lxvw4x 44, %11, %2 \n\t"
++ "lxvw4x 45, %12, %2 \n\t"
++ "lxvw4x 46, %13, %2 \n\t"
++ "lxvw4x 47, %14, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvabssp 48, 40 \n\t"
++ "xvabssp 49, 41 \n\t"
++ "xvabssp 50, 42 \n\t"
++ "xvabssp 51, 43 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %8, %2 \n\t"
++
++ "xvabssp %x3, 44 \n\t"
++ "xvabssp %x4, 45 \n\t"
++
++ "lxvw4x 42, %9, %2 \n\t"
++ "lxvw4x 43, %10, %2 \n\t"
++
++ "xvabssp %x5, 46 \n\t"
++ "xvabssp %x6, 47 \n\t"
++
++ "lxvw4x 44, %11, %2 \n\t"
++ "lxvw4x 45, %12, %2 \n\t"
++
++ "xvaddsp 32, 32, 48 \n\t"
++ "xvaddsp 33, 33, 49 \n\t"
++
++ "lxvw4x 46, %13, %2 \n\t"
++ "lxvw4x 47, %14, %2 \n\t"
++
++ "xvaddsp 34, 34, 50 \n\t"
++ "xvaddsp 35, 35, 51 \n\t"
++ "addi %2, %2, 128 \n\t"
++ "xvaddsp 36, 36, %x3 \n\t"
++ "xvaddsp 37, 37, %x4 \n\t"
++ "addic. %1, %1, -32 \n\t"
++ "xvaddsp 38, 38, %x5 \n\t"
++ "xvaddsp 39, 39, %x6 \n\t"
++
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvabssp 48, 40 \n\t"
++ "xvabssp 49, 41 \n\t"
++ "xvabssp 50, 42 \n\t"
++ "xvabssp 51, 43 \n\t"
++ "xvabssp %x3, 44 \n\t"
++ "xvabssp %x4, 45 \n\t"
++ "xvabssp %x5, 46 \n\t"
++ "xvabssp %x6, 47 \n\t"
++
++ "xvaddsp 32, 32, 48 \n\t"
++ "xvaddsp 33, 33, 49 \n\t"
++ "xvaddsp 34, 34, 50 \n\t"
++ "xvaddsp 35, 35, 51 \n\t"
++ "xvaddsp 36, 36, %x3 \n\t"
++ "xvaddsp 37, 37, %x4 \n\t"
++ "xvaddsp 38, 38, %x5 \n\t"
++ "xvaddsp 39, 39, %x6 \n\t"
++
++ "xvaddsp 32, 32, 33 \n\t"
++ "xvaddsp 34, 34, 35 \n\t"
++ "xvaddsp 36, 36, 37 \n\t"
++ "xvaddsp 38, 38, 39 \n\t"
++
++ "xvaddsp 32, 32, 34 \n\t"
++ "xvaddsp 36, 36, 38 \n\t"
++
++ "xvaddsp 32, 32, 36 \n\t"
++
++ "xxsldwi 33, 32, 32, 2 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xxsldwi 33, 32, 32, 1 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xscvspdp %0, 32 \n"
++
++ "#n=%1 x=%3=%2 sum=%0 o16=%8 o32=%9 o48=%10 o64=%11 o80=%12 o96=%13 o112=%14\n"
++ "#t0=%x3 t1=%x4 t2=%x5 t3=%x6"
++ :
++ "=f" (sum), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0), // 3
++ "=wa" (t1), // 4
++ "=wa" (t2), // 5
++ "=wa" (t3) // 6
++ :
++ "m" (*x),
++ "b" (16), // 8
++ "b" (32), // 9
++ "b" (48), // 10
++ "b" (64), // 11
++ "b" (80), // 12
++ "b" (96), // 13
++ "b" (112) // 14
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return sum;
++}
+diff --git a/kernel/power/scopy_microk_power8.c b/kernel/power/scopy_microk_power8.c
+index 2e08e3561..444a6d4d5 100644
+--- a/kernel/power/scopy_microk_power8.c
++++ b/kernel/power/scopy_microk_power8.c
+@@ -35,97 +35,78 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void scopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void scopy_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void scopy_kernel_32 (long n, float *x, float *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvw4x 40, 0, %1 \n\t"
+- "stxvw4x 41, %5, %1 \n\t"
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "stxvw4x 42, %6, %1 \n\t"
+- "stxvw4x 43, %7, %1 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "stxvw4x 44, %8, %1 \n\t"
+- "stxvw4x 45, %9, %1 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "stxvw4x 46, %10, %1 \n\t"
+- "stxvw4x 47, %11, %1 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "stxvw4x 40, 0, %1 \n\t"
+- "stxvw4x 41, %5, %1 \n\t"
+- "stxvw4x 42, %6, %1 \n\t"
+- "stxvw4x 43, %7, %1 \n\t"
+- "stxvw4x 44, %8, %1 \n\t"
+- "stxvw4x 45, %9, %1 \n\t"
+- "stxvw4x 46, %10, %1 \n\t"
+- "stxvw4x 47, %11, %1 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %5, %2 \n\t"
++ "lxvw4x 42, %6, %2 \n\t"
++ "lxvw4x 43, %7, %2 \n\t"
++ "lxvw4x 44, %8, %2 \n\t"
++ "lxvw4x 45, %9, %2 \n\t"
++ "lxvw4x 46, %10, %2 \n\t"
++ "lxvw4x 47, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvw4x 40, 0, %3 \n\t"
++ "stxvw4x 41, %5, %3 \n\t"
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 41, %5, %2 \n\t"
++ "stxvw4x 42, %6, %3 \n\t"
++ "stxvw4x 43, %7, %3 \n\t"
++ "lxvw4x 42, %6, %2 \n\t"
++ "lxvw4x 43, %7, %2 \n\t"
++ "stxvw4x 44, %8, %3 \n\t"
++ "stxvw4x 45, %9, %3 \n\t"
++ "lxvw4x 44, %8, %2 \n\t"
++ "lxvw4x 45, %9, %2 \n\t"
++ "stxvw4x 46, %10, %3 \n\t"
++ "stxvw4x 47, %11, %3 \n\t"
++ "lxvw4x 46, %10, %2 \n\t"
++ "lxvw4x 47, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "stxvw4x 40, 0, %3 \n\t"
++ "stxvw4x 41, %5, %3 \n\t"
++ "stxvw4x 42, %6, %3 \n\t"
++ "stxvw4x 43, %7, %3 \n\t"
++ "stxvw4x 44, %8, %3 \n\t"
++ "stxvw4x 45, %9, %3 \n\t"
++ "stxvw4x 46, %10, %3 \n\t"
++ "stxvw4x 47, %11, %3 \n"
++
++ "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "=m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y) // 3
++ :
++ "m" (*x),
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/sdot.c b/kernel/power/sdot.c
+index 52fb1fe24..31f473485 100644
+--- a/kernel/power/sdot.c
++++ b/kernel/power/sdot.c
+@@ -42,7 +42,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_16
+
+-static void sdot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d)
++static FLOAT sdot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y)
+ {
+ BLASLONG register i = 0;
+ FLOAT dot = 0.0;
+@@ -61,8 +61,7 @@ static void sdot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d)
+ i+=8 ;
+
+ }
+- *d += dot;
+-
++ return dot;
+ }
+
+ #endif
+@@ -82,8 +81,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
+ BLASLONG n1 = n & -32;
+
+ if ( n1 )
+- sdot_kernel_16(n1, x, y , &dot );
+-
++ dot = sdot_kernel_16(n1, x, y);
+
+ i = n1;
+ while(i < n)
+diff --git a/kernel/power/sdot_microk_power8.c b/kernel/power/sdot_microk_power8.c
+index 6dd588acd..7f7ccfac3 100644
+--- a/kernel/power/sdot_microk_power8.c
++++ b/kernel/power/sdot_microk_power8.c
+@@ -34,146 +34,142 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_16 1
+-static void sdot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y , FLOAT *dot) __attribute__ ((noinline));
+
+-static void sdot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
++static float sdot_kernel_16 (long n, float *x, float *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+- FLOAT tempdot[4];
+-
+-
+- __asm__ __volatile__
+- (
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "dcbt %2, %12 \n\t"
+- "dcbt %3, %12 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 48, 0, %3 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 49, %5, %3 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 50, %6, %3 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 51, %7, %3 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 52, %8, %3 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 53, %9, %3 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 54, %10, %3 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+- "lxvw4x 55, %11, %3 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+- "addi %3, %3, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %12 \n\t"
+- "dcbt %3, %12 \n\t"
+-
+- "xvmaddasp 32, 40, 48 \n\t"
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 48, 0, %3 \n\t"
+- "xvmaddasp 33, 41, 49 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 49, %5, %3 \n\t"
+- "xvmaddasp 34, 42, 50 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 50, %6, %3 \n\t"
+- "xvmaddasp 35, 43, 51 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 51, %7, %3 \n\t"
+- "xvmaddasp 36, 44, 52 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 52, %8, %3 \n\t"
+- "xvmaddasp 37, 45, 53 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 53, %9, %3 \n\t"
+- "xvmaddasp 38, 46, 54 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 54, %10, %3 \n\t"
+- "xvmaddasp 39, 47, 55 \n\t"
+-
+- "lxvw4x 47, %11, %2 \n\t"
+- "lxvw4x 55, %11, %3 \n\t"
+-
+-
+- "addi %2, %2, 128 \n\t"
+- "addi %3, %3, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmaddasp 32, 40, 48 \n\t"
+- "xvmaddasp 33, 41, 49 \n\t"
+- "xvmaddasp 34, 42, 50 \n\t"
+- "xvmaddasp 35, 43, 51 \n\t"
+- "xvmaddasp 36, 44, 52 \n\t"
+- "xvmaddasp 37, 45, 53 \n\t"
+- "xvmaddasp 38, 46, 54 \n\t"
+- "xvmaddasp 39, 47, 55 \n\t"
+-
+- "xvaddsp 32, 32 , 33 \n\t"
+- "xvaddsp 34, 34 , 35 \n\t"
+- "xvaddsp 36, 36 , 37 \n\t"
+- "xvaddsp 38, 38 , 39 \n\t"
+-
+- "xvaddsp 32, 32 , 34 \n\t"
+- "xvaddsp 36, 36 , 38 \n\t"
+-
+- "xvaddsp 32, 32 , 36 \n\t"
+-
+- "stxvw4x 32, 0 , %4 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (y1), // 3
+- "r" (tempdot), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112), // 11
+- "r" (pre) // 12
+- : "cr0", "%0", "%2" , "%3", "memory"
+- );
+-
+- *dot = tempdot[0] + tempdot[1] + tempdot[2] + tempdot[3];
+-
+-
+-}
+-
+-
++ float dot;
++ __vector float t0;
++ __vector float t1;
++ __vector float t2;
++ __vector float t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++ "dcbt 0, %3 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 48, 0, %3 \n\t"
++ "lxvw4x 41, %10, %2 \n\t"
++ "lxvw4x 49, %10, %3 \n\t"
++ "lxvw4x 42, %11, %2 \n\t"
++ "lxvw4x 50, %11, %3 \n\t"
++ "lxvw4x 43, %12, %2 \n\t"
++ "lxvw4x 51, %12, %3 \n\t"
++ "lxvw4x 44, %13, %2 \n\t"
++ "lxvw4x %x4, %13, %3 \n\t"
++ "lxvw4x 45, %14, %2 \n\t"
++ "lxvw4x %x5, %14, %3 \n\t"
++ "lxvw4x 46, %15, %2 \n\t"
++ "lxvw4x %x6, %15, %3 \n\t"
++ "lxvw4x 47, %16, %2 \n\t"
++ "lxvw4x %x7, %16, %3 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmaddasp 32, 40, 48 \n\t"
++ "lxvw4x 40, 0, %2 \n\t"
++ "lxvw4x 48, 0, %3 \n\t"
++ "xvmaddasp 33, 41, 49 \n\t"
++ "lxvw4x 41, %10, %2 \n\t"
++ "lxvw4x 49, %10, %3 \n\t"
++ "xvmaddasp 34, 42, 50 \n\t"
++ "lxvw4x 42, %11, %2 \n\t"
++ "lxvw4x 50, %11, %3 \n\t"
++ "xvmaddasp 35, 43, 51 \n\t"
++ "lxvw4x 43, %12, %2 \n\t"
++ "lxvw4x 51, %12, %3 \n\t"
++ "xvmaddasp 36, 44, %x4 \n\t"
++ "lxvw4x 44, %13, %2 \n\t"
++ "lxvw4x %x4, %13, %3 \n\t"
++ "xvmaddasp 37, 45, %x5 \n\t"
++ "lxvw4x 45, %14, %2 \n\t"
++ "lxvw4x %x5, %14, %3 \n\t"
++ "xvmaddasp 38, 46, %x6 \n\t"
++ "lxvw4x 46, %15, %2 \n\t"
++ "lxvw4x %x6, %15, %3 \n\t"
++ "xvmaddasp 39, 47, %x7 \n\t"
++ "lxvw4x 47, %16, %2 \n\t"
++ "lxvw4x %x7, %16, %3 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++ "addi %3, %3, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmaddasp 32, 40, 48 \n\t"
++ "xvmaddasp 33, 41, 49 \n\t"
++ "xvmaddasp 34, 42, 50 \n\t"
++ "xvmaddasp 35, 43, 51 \n\t"
++ "xvmaddasp 36, 44, %x4 \n\t"
++ "xvmaddasp 37, 45, %x5 \n\t"
++ "xvmaddasp 38, 46, %x6 \n\t"
++ "xvmaddasp 39, 47, %x7 \n\t"
++
++ "xvaddsp 32, 32, 33 \n\t"
++ "xvaddsp 34, 34, 35 \n\t"
++ "xvaddsp 36, 36, 37 \n\t"
++ "xvaddsp 38, 38, 39 \n\t"
++
++ "xvaddsp 32, 32, 34 \n\t"
++ "xvaddsp 36, 36, 38 \n\t"
++
++ "xvaddsp 32, 32, 36 \n\t"
++
++ "xxsldwi 33, 32, 32, 2 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xxsldwi 33, 32, 32, 1 \n\t"
++ "xvaddsp 32, 32, 33 \n\t"
++
++ "xscvspdp %x0, 32 \n"
++
++ "#dot=%0 n=%1 x=%8=%2 y=%9=%3 o16=%10 o32=%11 o48=%12 o64=%13 o80=%14 o96=%15 o122=%16\n"
++ "#t0=%x4 t1=%x5 t2=%x6 t3=%x7"
++ :
++ "=f" (dot), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y), // 3
++ "=wa" (t0), // 4
++ "=wa" (t1), // 5
++ "=wa" (t2), // 6
++ "=wa" (t3) // 7
++ :
++ "m" (*x),
++ "m" (*y),
++ "b" (16), // 10
++ "b" (32), // 11
++ "b" (48), // 12
++ "b" (64), // 13
++ "b" (80), // 14
++ "b" (96), // 15
++ "b" (112) // 16
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return dot;
++}
+diff --git a/kernel/power/srot.c b/kernel/power/srot.c
+index d464846a4..d2910ff87 100644
+--- a/kernel/power/srot.c
++++ b/kernel/power/srot.c
+@@ -46,7 +46,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_16
+
+-static void srot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
++static void srot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT c, FLOAT s)
+ {
+
+ BLASLONG i=0;
+@@ -56,8 +56,6 @@ static void srot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
+ FLOAT y00, y01, y02, y03;
+ FLOAT *x1=x;
+ FLOAT *y1=y;
+- FLOAT c1=*c;
+- FLOAT s1=*s;
+
+ while ( i<n )
+ {
+@@ -71,14 +69,14 @@ static void srot_kernel_16(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
+ x03 = x1[3];
+ y03 = y1[3];
+
+- f0 = c1*x00 + s1*y00;
+- g0 = c1*y00 - s1*x00;
+- f1 = c1*x01 + s1*y01;
+- g1 = c1*y01 - s1*x01;
+- f2 = c1*x02 + s1*y02;
+- g2 = c1*y02 - s1*x02;
+- f3 = c1*x03 + s1*y03;
+- g3 = c1*y03 - s1*x03;
++ f0 = c*x00 + s*y00;
++ g0 = c*y00 - s*x00;
++ f1 = c*x01 + s*y01;
++ g1 = c*y01 - s*x01;
++ f2 = c*x02 + s*y02;
++ g2 = c*y02 - s*x02;
++ f3 = c*x03 + s*y03;
++ g3 = c*y03 - s*x03;
+
+ x1[0] = f0;
+ y1[0] = g0;
+@@ -106,8 +104,6 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT
+ {
+ BLASLONG i=0;
+ BLASLONG ix=0,iy=0;
+- FLOAT c1[4] __attribute__ ((aligned (16)));;
+- FLOAT s1[4] __attribute__ ((aligned (16)));;
+ FLOAT *x1=x;
+ FLOAT *y1=y;
+ FLOAT temp;
+@@ -120,15 +116,7 @@ int CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT
+ BLASLONG n1 = n & -16;
+ if ( n1 > 0 )
+ {
+- c1[0]=c;
+- c1[1]=c;
+- c1[2]=c;
+- c1[3]=c;
+- s1[0]=s;
+- s1[1]=s;
+- s1[2]=s;
+- s1[3]=s;
+- srot_kernel_16(n1, x1, y1, c1, s1);
++ srot_kernel_16(n1, x1, y1, c, s);
+ i=n1;
+ }
+
+diff --git a/kernel/power/srot_microk_power8.c b/kernel/power/srot_microk_power8.c
+index ade65500f..0a18c16e0 100644
+--- a/kernel/power/srot_microk_power8.c
++++ b/kernel/power/srot_microk_power8.c
+@@ -38,171 +38,179 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_16 1
+
+-static void srot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s) __attribute__ ((noinline));
+-
+-static void srot_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *c, FLOAT *s)
++static void srot_kernel_16 (long n, float *x, float *y, float c, float s)
+ {
++ __vector float t0;
++ __vector float t1;
++ __vector float t2;
++ __vector float t3;
++ __vector float t4;
++ __vector float t5;
++ __vector float t6;
++ __vector float t7;
+
++ __asm__
++ (
++ "xscvdpspn 36, %x13 \n\t" // load c to all words
++ "xxspltw 36, 36, 0 \n\t"
+
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvw4x 36 , 0, %3 \n\t" // load c
+- "lxvw4x 37 , 0, %4 \n\t" // load s
+- "addi %8 , %8, -4 \n\t"
+- "addi %9 , %9, -4 \n\t"
+-
+- "lxvw4x 32, 0, %1 \n\t" // load x
+- "lxvw4x 33, %5, %1 \n\t"
+- "lxvw4x 34, %6, %1 \n\t"
+- "lxvw4x 35, %7, %1 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t" // load y
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+-
+- "addi %1, %1, 64 \n\t"
+- "addi %2, %2, 64 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "xvmulsp 48, 32, 36 \n\t" // c * x
+- "xvmulsp 49, 33, 36 \n\t"
+- "xvmulsp 50, 34, 36 \n\t"
+- "xvmulsp 51, 35, 36 \n\t"
+-
+- "xvmulsp 56, 40, 36 \n\t" // c * y
+- "xvmulsp 57, 41, 36 \n\t"
+- "xvmulsp 58, 42, 36 \n\t"
+- "xvmulsp 59, 43, 36 \n\t"
+-
+- "xvmulsp 52, 32, 37 \n\t" // s * x
+- "xvmulsp 53, 33, 37 \n\t"
+-
+- "lxvw4x 32, 0, %1 \n\t" // load x
+- "lxvw4x 33, %5, %1 \n\t"
+-
+- "xvmulsp 54, 34, 37 \n\t"
+- "xvmulsp 55, 35, 37 \n\t"
+-
+- "lxvw4x 34, %6, %1 \n\t"
+- "lxvw4x 35, %7, %1 \n\t"
+-
+- "xvmulsp 60, 40, 37 \n\t" // s * y
+- "xvmulsp 61, 41, 37 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t" // load y
+- "lxvw4x 41, %5, %2 \n\t"
+-
+- "xvmulsp 62, 42, 37 \n\t"
+- "xvmulsp 63, 43, 37 \n\t"
+-
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+-
+- "xvaddsp 48, 48 , 60 \n\t" // c * x + s * y
+- "xvaddsp 49, 49 , 61 \n\t" // c * x + s * y
+-
+- "addi %1, %1, 64 \n\t"
+- "addi %2, %2, 64 \n\t"
+-
+- "xvaddsp 50, 50 , 62 \n\t" // c * x + s * y
+- "xvaddsp 51, 51 , 63 \n\t" // c * x + s * y
+-
+- "xvsubsp 56, 56 , 52 \n\t" // c * y - s * x
+- "xvsubsp 57, 57 , 53 \n\t" // c * y - s * x
+- "xvsubsp 58, 58 , 54 \n\t" // c * y - s * x
+- "xvsubsp 59, 59 , 55 \n\t" // c * y - s * x
+-
+- "stxvw4x 48, 0, %8 \n\t" // store x
+- "stxvw4x 49, %5, %8 \n\t"
+- "stxvw4x 50, %6, %8 \n\t"
+- "stxvw4x 51, %7, %8 \n\t"
+-
+- "stxvw4x 56, 0, %9 \n\t" // store y
+- "stxvw4x 57, %5, %9 \n\t"
+- "stxvw4x 58, %6, %9 \n\t"
+- "stxvw4x 59, %7, %9 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+- "addi %9, %9, 64 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmulsp 48, 32, 36 \n\t" // c * x
+- "xvmulsp 49, 33, 36 \n\t"
+- "xvmulsp 50, 34, 36 \n\t"
+- "xvmulsp 51, 35, 36 \n\t"
+-
+- "xvmulsp 56, 40, 36 \n\t" // c * y
+- "xvmulsp 57, 41, 36 \n\t"
+- "xvmulsp 58, 42, 36 \n\t"
+- "xvmulsp 59, 43, 36 \n\t"
+-
+- "xvmulsp 52, 32, 37 \n\t" // s * x
+- "xvmulsp 53, 33, 37 \n\t"
+- "xvmulsp 54, 34, 37 \n\t"
+- "xvmulsp 55, 35, 37 \n\t"
+-
+- "xvmulsp 60, 40, 37 \n\t" // s * y
+- "xvmulsp 61, 41, 37 \n\t"
+- "xvmulsp 62, 42, 37 \n\t"
+- "xvmulsp 63, 43, 37 \n\t"
+-
+- "xvaddsp 48, 48 , 60 \n\t" // c * x + s * y
+- "xvaddsp 49, 49 , 61 \n\t" // c * x + s * y
+- "xvaddsp 50, 50 , 62 \n\t" // c * x + s * y
+- "xvaddsp 51, 51 , 63 \n\t" // c * x + s * y
+-
+- "xvsubsp 56, 56 , 52 \n\t" // c * y - s * x
+- "xvsubsp 57, 57 , 53 \n\t" // c * y - s * x
+- "xvsubsp 58, 58 , 54 \n\t" // c * y - s * x
+- "xvsubsp 59, 59 , 55 \n\t" // c * y - s * x
++ "xscvdpspn 37, %x14 \n\t" // load s to all words
++ "xxspltw 37, 37, 0 \n\t"
+
+- "stxvw4x 48, 0, %8 \n\t" // store x
+- "stxvw4x 49, %5, %8 \n\t"
+- "stxvw4x 50, %6, %8 \n\t"
+- "stxvw4x 51, %7, %8 \n\t"
++ "lxvw4x 32, 0, %3 \n\t" // load x
++ "lxvw4x 33, %15, %3 \n\t"
++ "lxvw4x 34, %16, %3 \n\t"
++ "lxvw4x 35, %17, %3 \n\t"
+
+- "stxvw4x 56, 0, %9 \n\t" // store y
+- "stxvw4x 57, %5, %9 \n\t"
+- "stxvw4x 58, %6, %9 \n\t"
+- "stxvw4x 59, %7, %9 \n\t"
++ "lxvw4x 48, 0, %4 \n\t" // load y
++ "lxvw4x 49, %15, %4 \n\t"
++ "lxvw4x 50, %16, %4 \n\t"
++ "lxvw4x 51, %17, %4 \n\t"
+
++ "addi %3, %3, 64 \n\t"
++ "addi %4, %4, 64 \n\t"
+
++ "addic. %2, %2, -16 \n\t"
++ "ble 2f \n\t"
+
+- :
+- :
+- "r" (i), // 0
+- "r" (x1), // 1
+- "r" (y1), // 2
+- "r" (c), // 3
+- "r" (s), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (x2), // 8
+- "r" (y2) // 9
+- : "cr0", "%0", "%1" , "%2", "%8", "%9", "memory"
+- );
++ ".p2align 5 \n"
++ "1: \n\t"
+
+-}
++ "xvmulsp 40, 32, 36 \n\t" // c * x
++ "xvmulsp 41, 33, 36 \n\t"
++ "xvmulsp 42, 34, 36 \n\t"
++ "xvmulsp 43, 35, 36 \n\t"
+
++ "xvmulsp %x5, 48, 36 \n\t" // c * y
++ "xvmulsp %x6, 49, 36 \n\t"
++ "xvmulsp %x7, 50, 36 \n\t"
++ "xvmulsp %x8, 51, 36 \n\t"
+
++ "xvmulsp 44, 32, 37 \n\t" // s * x
++ "xvmulsp 45, 33, 37 \n\t"
++
++ "lxvw4x 32, 0, %3 \n\t" // load x
++ "lxvw4x 33, %15, %3 \n\t"
++
++ "xvmulsp 46, 34, 37 \n\t"
++ "xvmulsp 47, 35, 37 \n\t"
++
++ "lxvw4x 34, %16, %3 \n\t"
++ "lxvw4x 35, %17, %3 \n\t"
++
++ "xvmulsp %x9, 48, 37 \n\t" // s * y
++ "xvmulsp %x10, 49, 37 \n\t"
++
++ "lxvw4x 48, 0, %4 \n\t" // load y
++ "lxvw4x 49, %15, %4 \n\t"
++
++ "xvmulsp %x11, 50, 37 \n\t"
++ "xvmulsp %x12, 51, 37 \n\t"
++
++ "lxvw4x 50, %16, %4 \n\t"
++ "lxvw4x 51, %17, %4 \n\t"
++
++ "xvaddsp 40, 40, %x9 \n\t" // c * x + s * y
++ "xvaddsp 41, 41, %x10 \n\t" // c * x + s * y
++
++ "addi %3, %3, -64 \n\t"
++ "addi %4, %4, -64 \n\t"
++
++ "xvaddsp 42, 42, %x11 \n\t" // c * x + s * y
++ "xvaddsp 43, 43, %x12 \n\t" // c * x + s * y
++
++ "xvsubsp %x5, %x5, 44 \n\t" // c * y - s * x
++ "xvsubsp %x6, %x6, 45 \n\t" // c * y - s * x
++ "xvsubsp %x7, %x7, 46 \n\t" // c * y - s * x
++ "xvsubsp %x8, %x8, 47 \n\t" // c * y - s * x
++
++ "stxvw4x 40, 0, %3 \n\t" // store x
++ "stxvw4x 41, %15, %3 \n\t"
++ "stxvw4x 42, %16, %3 \n\t"
++ "stxvw4x 43, %17, %3 \n\t"
++
++ "stxvw4x %x5, 0, %4 \n\t" // store y
++ "stxvw4x %x6, %15, %4 \n\t"
++ "stxvw4x %x7, %16, %4 \n\t"
++ "stxvw4x %x8, %17, %4 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %4, %4, 128 \n\t"
++
++ "addic. %2, %2, -16 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmulsp 40, 32, 36 \n\t" // c * x
++ "xvmulsp 41, 33, 36 \n\t"
++ "xvmulsp 42, 34, 36 \n\t"
++ "xvmulsp 43, 35, 36 \n\t"
++
++ "xvmulsp %x5, 48, 36 \n\t" // c * y
++ "xvmulsp %x6, 49, 36 \n\t"
++ "xvmulsp %x7, 50, 36 \n\t"
++ "xvmulsp %x8, 51, 36 \n\t"
++
++ "xvmulsp 44, 32, 37 \n\t" // s * x
++ "xvmulsp 45, 33, 37 \n\t"
++ "xvmulsp 46, 34, 37 \n\t"
++ "xvmulsp 47, 35, 37 \n\t"
++
++ "xvmulsp %x9, 48, 37 \n\t" // s * y
++ "xvmulsp %x10, 49, 37 \n\t"
++ "xvmulsp %x11, 50, 37 \n\t"
++ "xvmulsp %x12, 51, 37 \n\t"
++
++ "addi %3, %3, -64 \n\t"
++ "addi %4, %4, -64 \n\t"
++
++ "xvaddsp 40, 40, %x9 \n\t" // c * x + s * y
++ "xvaddsp 41, 41, %x10 \n\t" // c * x + s * y
++ "xvaddsp 42, 42, %x11 \n\t" // c * x + s * y
++ "xvaddsp 43, 43, %x12 \n\t" // c * x + s * y
++
++ "xvsubsp %x5, %x5, 44 \n\t" // c * y - s * x
++ "xvsubsp %x6, %x6, 45 \n\t" // c * y - s * x
++ "xvsubsp %x7, %x7, 46 \n\t" // c * y - s * x
++ "xvsubsp %x8, %x8, 47 \n\t" // c * y - s * x
++
++ "stxvw4x 40, 0, %3 \n\t" // store x
++ "stxvw4x 41, %15, %3 \n\t"
++ "stxvw4x 42, %16, %3 \n\t"
++ "stxvw4x 43, %17, %3 \n\t"
++
++ "stxvw4x %x5, 0, %4 \n\t" // store y
++ "stxvw4x %x6, %15, %4 \n\t"
++ "stxvw4x %x7, %16, %4 \n\t"
++ "stxvw4x %x8, %17, %4 \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 c=%13 s=%14 o16=%15 o32=%16 o48=%17\n"
++ "#t0=%x5 t1=%x6 t2=%x7 t3=%x8 t4=%x9 t5=%x10 t6=%x11 t7=%x12"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y), // 4
++ "=wa" (t0), // 5
++ "=wa" (t1), // 6
++ "=wa" (t2), // 7
++ "=wa" (t3), // 8
++ "=wa" (t4), // 9
++ "=wa" (t5), // 10
++ "=wa" (t6), // 11
++ "=wa" (t7) // 12
++ :
++ "f" (c), // 13
++ "f" (s), // 14
++ "b" (16), // 15
++ "b" (32), // 16
++ "b" (48) // 17
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++}
+diff --git a/kernel/power/sscal.c b/kernel/power/sscal.c
+index c6ef5e969..bd5cdc43f 100644
+--- a/kernel/power/sscal.c
++++ b/kernel/power/sscal.c
+@@ -42,11 +42,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #if !defined(HAVE_KERNEL_16)
+
+-static void sscal_kernel_16( BLASLONG n, FLOAT *da , FLOAT *x )
++static void sscal_kernel_16 (BLASLONG n, FLOAT *x, FLOAT alpha)
+ {
+
+ BLASLONG i;
+- FLOAT alpha = *da;
+
+ for( i=0; i<n; i+=8 )
+ {
+@@ -63,7 +62,7 @@ static void sscal_kernel_16( BLASLONG n, FLOAT *da , FLOAT *x )
+
+ }
+
+-static void sscal_kernel_16_zero( BLASLONG n, FLOAT *da , FLOAT *x )
++static void sscal_kernel_16_zero( BLASLONG n, FLOAT *x )
+ {
+
+ BLASLONG i;
+@@ -90,7 +89,6 @@ static void sscal_kernel_16_zero( BLASLONG n, FLOAT *da , FLOAT *x )
+ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2)
+ {
+ BLASLONG i=0,j=0;
+- FLOAT alpha[4] __attribute__ ((aligned (16)));;
+
+ if ( n <= 0 || inc_x <=0 )
+ return(0);
+@@ -105,11 +103,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ BLASLONG n1 = n & -32;
+ if ( n1 > 0 )
+ {
+- alpha[0]=da;
+- alpha[1]=da;
+- alpha[2]=da;
+- alpha[3]=da;
+- sscal_kernel_16_zero(n1 , alpha , x);
++ sscal_kernel_16_zero(n1, x);
+ j=n1;
+ }
+
+@@ -127,11 +121,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS
+ BLASLONG n1 = n & -32;
+ if ( n1 > 0 )
+ {
+- alpha[0]=da;
+- alpha[1]=da;
+- alpha[2]=da;
+- alpha[3]=da;
+- sscal_kernel_16(n1 , alpha , x);
++ sscal_kernel_16(n1, x, da);
+ j=n1;
+ }
+ while(j < n)
+diff --git a/kernel/power/sscal_microk_power8.c b/kernel/power/sscal_microk_power8.c
+index 963cec777..49862a329 100644
+--- a/kernel/power/sscal_microk_power8.c
++++ b/kernel/power/sscal_microk_power8.c
+@@ -35,184 +35,150 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_16 1
+
+-static void sscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x) __attribute__ ((noinline));
+-
+-static void sscal_kernel_16( BLASLONG n, FLOAT *alpha, FLOAT *x)
++static void sscal_kernel_16 (long n, float *x, float alpha)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *x2=x+1;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvw4x 32, 0, %3 \n\t"
+- "addi %1, %1, -4 \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "xvmulsp 48, 40, 32 \n\t"
+- "xvmulsp 49, 41, 32 \n\t"
+- "lxvw4x 40, 0, %2 \n\t"
+- "lxvw4x 41, %5, %2 \n\t"
+- "xvmulsp 50, 42, 32 \n\t"
+- "xvmulsp 51, 43, 32 \n\t"
+- "lxvw4x 42, %6, %2 \n\t"
+- "lxvw4x 43, %7, %2 \n\t"
+- "xvmulsp 52, 44, 32 \n\t"
+- "xvmulsp 53, 45, 32 \n\t"
+- "lxvw4x 44, %8, %2 \n\t"
+- "lxvw4x 45, %9, %2 \n\t"
+- "xvmulsp 54, 46, 32 \n\t"
+- "xvmulsp 55, 47, 32 \n\t"
+- "lxvw4x 46, %10, %2 \n\t"
+- "lxvw4x 47, %11, %2 \n\t"
+-
+- "stxvw4x 48, 0, %1 \n\t"
+- "stxvw4x 49, %5, %1 \n\t"
+- "stxvw4x 50, %6, %1 \n\t"
+- "stxvw4x 51, %7, %1 \n\t"
+- "stxvw4x 52, %8, %1 \n\t"
+- "stxvw4x 53, %9, %1 \n\t"
+- "stxvw4x 54, %10, %1 \n\t"
+- "stxvw4x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmulsp 48, 40, 32 \n\t"
+- "xvmulsp 49, 41, 32 \n\t"
+- "xvmulsp 50, 42, 32 \n\t"
+- "xvmulsp 51, 43, 32 \n\t"
+- "xvmulsp 52, 44, 32 \n\t"
+- "xvmulsp 53, 45, 32 \n\t"
+- "xvmulsp 54, 46, 32 \n\t"
+- "xvmulsp 55, 47, 32 \n\t"
+-
+- "stxvw4x 48, 0, %1 \n\t"
+- "stxvw4x 49, %5, %1 \n\t"
+- "stxvw4x 50, %6, %1 \n\t"
+- "stxvw4x 51, %7, %1 \n\t"
+- "stxvw4x 52, %8, %1 \n\t"
+- "stxvw4x 53, %9, %1 \n\t"
+- "stxvw4x 54, %10, %1 \n\t"
+- "stxvw4x 55, %11, %1 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (x2), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
+-static void sscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x) __attribute__ ((noinline));
+-
+-static void sscal_kernel_16_zero( BLASLONG n, FLOAT *alpha, FLOAT *x)
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xscvdpspn %x3, %x3 \n\t"
++ "xxspltw %x3, %x3, 0 \n\t"
++
++ "lxvw4x 32, 0, %2 \n\t"
++ "lxvw4x 33, %4, %2 \n\t"
++ "lxvw4x 34, %5, %2 \n\t"
++ "lxvw4x 35, %6, %2 \n\t"
++ "lxvw4x 36, %7, %2 \n\t"
++ "lxvw4x 37, %8, %2 \n\t"
++ "lxvw4x 38, %9, %2 \n\t"
++ "lxvw4x 39, %10, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmulsp 40, 32, %x3 \n\t"
++ "xvmulsp 41, 33, %x3 \n\t"
++ "lxvw4x 32, 0, %2 \n\t"
++ "lxvw4x 33, %4, %2 \n\t"
++ "xvmulsp 42, 34, %x3 \n\t"
++ "xvmulsp 43, 35, %x3 \n\t"
++ "lxvw4x 34, %5, %2 \n\t"
++ "lxvw4x 35, %6, %2 \n\t"
++ "xvmulsp 44, 36, %x3 \n\t"
++ "xvmulsp 45, 37, %x3 \n\t"
++ "lxvw4x 36, %7, %2 \n\t"
++ "lxvw4x 37, %8, %2 \n\t"
++ "xvmulsp 46, 38, %x3 \n\t"
++ "xvmulsp 47, 39, %x3 \n\t"
++ "lxvw4x 38, %9, %2 \n\t"
++ "lxvw4x 39, %10, %2 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "stxvw4x 40, 0, %2 \n\t"
++ "stxvw4x 41, %4, %2 \n\t"
++ "stxvw4x 42, %5, %2 \n\t"
++ "stxvw4x 43, %6, %2 \n\t"
++ "stxvw4x 44, %7, %2 \n\t"
++ "stxvw4x 45, %8, %2 \n\t"
++ "stxvw4x 46, %9, %2 \n\t"
++ "stxvw4x 47, %10, %2 \n\t"
++
++ "addi %2, %2, 256 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmulsp 40, 32, %x3 \n\t"
++ "xvmulsp 41, 33, %x3 \n\t"
++ "xvmulsp 42, 34, %x3 \n\t"
++ "xvmulsp 43, 35, %x3 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "xvmulsp 44, 36, %x3 \n\t"
++ "xvmulsp 45, 37, %x3 \n\t"
++ "xvmulsp 46, 38, %x3 \n\t"
++ "xvmulsp 47, 39, %x3 \n\t"
++
++ "stxvw4x 40, 0, %2 \n\t"
++ "stxvw4x 41, %4, %2 \n\t"
++ "stxvw4x 42, %5, %2 \n\t"
++ "stxvw4x 43, %6, %2 \n\t"
++ "stxvw4x 44, %7, %2 \n\t"
++ "stxvw4x 45, %8, %2 \n\t"
++ "stxvw4x 46, %9, %2 \n\t"
++ "stxvw4x 47, %10, %2 \n"
++
++ "#n=%1 alpha=%3 x=%0=%2 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10"
++ :
++ "+m" (*x),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+f" (alpha) // 3
++ :
++ "b" (16), // 4
++ "b" (32), // 5
++ "b" (48), // 6
++ "b" (64), // 7
++ "b" (80), // 8
++ "b" (96), // 9
++ "b" (112) // 10
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
++
++
++static void sscal_kernel_16_zero (long n, float *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *x2=x+1;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "xxlxor 32 , 32 , 32 \n\t"
+- "addi %1, %1, -4 \n\t"
+-
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvw4x 32, 0, %1 \n\t"
+- "stxvw4x 32, %5, %1 \n\t"
+- "stxvw4x 32, %6, %1 \n\t"
+- "stxvw4x 32, %7, %1 \n\t"
+- "stxvw4x 32, %8, %1 \n\t"
+- "stxvw4x 32, %9, %1 \n\t"
+- "stxvw4x 32, %10, %1 \n\t"
+- "stxvw4x 32, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (x2), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __vector float t0;
++
++ __asm__
++ (
++ "xxlxor %x3, %x3, %x3 \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvw4x %x3, 0, %2 \n\t"
++ "stxvw4x %x3, %4, %2 \n\t"
++ "stxvw4x %x3, %5, %2 \n\t"
++ "stxvw4x %x3, %6, %2 \n\t"
++ "stxvw4x %x3, %7, %2 \n\t"
++ "stxvw4x %x3, %8, %2 \n\t"
++ "stxvw4x %x3, %9, %2 \n\t"
++ "stxvw4x %x3, %10, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -32 \n\t"
++ "bgt 1b \n"
++
++ "#n=%1 x=%0=%2 t0=%x3 o16=%4 o32=%5 o48=%6 o64=%7 o80=%8 o96=%9 o112=%10"
++ :
++ "=m" (*x),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0) // 3
++ :
++ "b" (16), // 4
++ "b" (32), // 5
++ "b" (48), // 6
++ "b" (64), // 7
++ "b" (80), // 8
++ "b" (96), // 9
++ "b" (112) // 10
++ :
++ "cr0"
++ );
++}
+diff --git a/kernel/power/sswap_microk_power8.c b/kernel/power/sswap_microk_power8.c
+index c48e743de..d44f16765 100644
+--- a/kernel/power/sswap_microk_power8.c
++++ b/kernel/power/sswap_microk_power8.c
+@@ -35,102 +35,74 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_32 1
+
+-static void sswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void sswap_kernel_32( BLASLONG n, FLOAT *x, FLOAT *y)
++static void sswap_kernel_32 (long n, float *x, float *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "addi %3, %3, -4 \n\t"
+- "addi %4, %4, -4 \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "lxvw4x 32, 0, %2 \n\t"
+- "lxvw4x 33, %5, %2 \n\t"
+- "lxvw4x 34, %6, %2 \n\t"
+- "lxvw4x 35, %7, %2 \n\t"
+- "lxvw4x 36, %8, %2 \n\t"
+- "lxvw4x 37, %9, %2 \n\t"
+- "lxvw4x 38, %10, %2 \n\t"
+- "lxvw4x 39, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvw4x 48, 0, %1 \n\t"
+- "lxvw4x 49, %5, %1 \n\t"
+- "lxvw4x 50, %6, %1 \n\t"
+- "lxvw4x 51, %7, %1 \n\t"
+- "lxvw4x 52, %8, %1 \n\t"
+- "lxvw4x 53, %9, %1 \n\t"
+- "lxvw4x 54, %10, %1 \n\t"
+- "lxvw4x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvw4x 32, 0, %3 \n\t"
+- "stxvw4x 33, %5, %3 \n\t"
+- "stxvw4x 34, %6, %3 \n\t"
+- "stxvw4x 35, %7, %3 \n\t"
+- "stxvw4x 36, %8, %3 \n\t"
+- "stxvw4x 37, %9, %3 \n\t"
+- "stxvw4x 38, %10, %3 \n\t"
+- "stxvw4x 39, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvw4x 48, 0, %4 \n\t"
+- "stxvw4x 49, %5, %4 \n\t"
+- "stxvw4x 50, %6, %4 \n\t"
+- "stxvw4x 51, %7, %4 \n\t"
+- "stxvw4x 52, %8, %4 \n\t"
+- "stxvw4x 53, %9, %4 \n\t"
+- "stxvw4x 54, %10, %4 \n\t"
+- "stxvw4x 55, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "addic. %0 , %0 , -32 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (y2), // 3
+- "r" (x2), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "%3", "%4", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "lxvw4x 32, 0, %4 \n\t"
++ "lxvw4x 33, %5, %4 \n\t"
++ "lxvw4x 34, %6, %4 \n\t"
++ "lxvw4x 35, %7, %4 \n\t"
++ "lxvw4x 36, %8, %4 \n\t"
++ "lxvw4x 37, %9, %4 \n\t"
++ "lxvw4x 38, %10, %4 \n\t"
++ "lxvw4x 39, %11, %4 \n\t"
++
++ "lxvw4x 40, 0, %3 \n\t"
++ "lxvw4x 41, %5, %3 \n\t"
++ "lxvw4x 42, %6, %3 \n\t"
++ "lxvw4x 43, %7, %3 \n\t"
++ "lxvw4x 44, %8, %3 \n\t"
++ "lxvw4x 45, %9, %3 \n\t"
++ "lxvw4x 46, %10, %3 \n\t"
++ "lxvw4x 47, %11, %3 \n\t"
++
++ "stxvw4x 32, 0, %3 \n\t"
++ "stxvw4x 33, %5, %3 \n\t"
++ "stxvw4x 34, %6, %3 \n\t"
++ "stxvw4x 35, %7, %3 \n\t"
++ "stxvw4x 36, %8, %3 \n\t"
++ "stxvw4x 37, %9, %3 \n\t"
++ "stxvw4x 38, %10, %3 \n\t"
++ "stxvw4x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvw4x 40, 0, %4 \n\t"
++ "stxvw4x 41, %5, %4 \n\t"
++ "stxvw4x 42, %6, %4 \n\t"
++ "stxvw4x 43, %7, %4 \n\t"
++ "stxvw4x 44, %8, %4 \n\t"
++ "stxvw4x 45, %9, %4 \n\t"
++ "stxvw4x 46, %10, %4 \n\t"
++ "stxvw4x 47, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "addic. %2, %2, -32 \n\t"
++ "bgt 1b \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y) // 4
++ :
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/zasum.c b/kernel/power/zasum.c
+index abd6ec08a..0b6b87d46 100644
+--- a/kernel/power/zasum.c
++++ b/kernel/power/zasum.c
+@@ -53,7 +53,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_8
+
+-static void zasum_kernel_8(BLASLONG n, FLOAT *x1, FLOAT *svec)
++static FLOAT zasum_kernel_8(BLASLONG n, FLOAT *x1)
+ {
+
+ BLASLONG i=0;
+@@ -92,9 +92,7 @@ static void zasum_kernel_8(BLASLONG n, FLOAT *x1, FLOAT *svec)
+
+ }
+
+- svec[0] = sum0+sum1+sum2+sum3;
+- svec[1] = 0.0;
+-
++ return sum0+sum1+sum2+sum3;
+ }
+
+ #endif
+@@ -104,7 +102,6 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ BLASLONG i=0;
+ BLASLONG ip=0;
+ FLOAT sumf = 0.0;
+- FLOAT svec[2] __attribute__ ((aligned (16)));;
+ BLASLONG n1;
+ BLASLONG inc_x2;
+
+@@ -117,8 +114,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
+ if ( n1 > 0 )
+ {
+
+- zasum_kernel_8(n1, x, svec);
+- sumf = svec[0] + svec[1];
++ sumf = zasum_kernel_8(n1, x);
+ i=n1;
+ ip=2*n1;
+ }
+diff --git a/kernel/power/zasum_microk_power8.c b/kernel/power/zasum_microk_power8.c
+index b9f6c0ac6..82366902d 100644
+--- a/kernel/power/zasum_microk_power8.c
++++ b/kernel/power/zasum_microk_power8.c
+@@ -34,144 +34,140 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_8 1
+-static void zasum_kernel_8( BLASLONG n, FLOAT *x, FLOAT *svec) __attribute__ ((noinline));
+
+-static void zasum_kernel_8( BLASLONG n, FLOAT *x, FLOAT *svec)
++static double zasum_kernel_8 (long n, double *x)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2 , %4 \n\t"
+-
+- "xvabsdp 48, 40 \n\t"
+- "xvabsdp 49, 41 \n\t"
+- "xvabsdp 50, 42 \n\t"
+- "xvabsdp 51, 43 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+-
+- "xvabsdp 52, 44 \n\t"
+- "xvabsdp 53, 45 \n\t"
+-
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "xvabsdp 54, 46 \n\t"
+- "xvabsdp 55, 47 \n\t"
+-
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+-
+- "xvadddp 32, 32, 48 \n\t"
+- "xvadddp 33, 33, 49 \n\t"
+-
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "xvadddp 34, 34, 50 \n\t"
+- "xvadddp 35, 35, 51 \n\t"
+- "addi %2, %2, 128 \n\t"
+- "xvadddp 36, 36, 52 \n\t"
+- "xvadddp 37, 37, 53 \n\t"
+- "addic. %0 , %0 , -8 \n\t"
+- "xvadddp 38, 38, 54 \n\t"
+- "xvadddp 39, 39, 55 \n\t"
+-
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+-
+- "xvabsdp 48, 40 \n\t"
+- "xvabsdp 49, 41 \n\t"
+- "xvabsdp 50, 42 \n\t"
+- "xvabsdp 51, 43 \n\t"
+- "xvabsdp 52, 44 \n\t"
+- "xvabsdp 53, 45 \n\t"
+- "xvabsdp 54, 46 \n\t"
+- "xvabsdp 55, 47 \n\t"
+-
+- "xvadddp 32, 32, 48 \n\t"
+- "xvadddp 33, 33, 49 \n\t"
+- "xvadddp 34, 34, 50 \n\t"
+- "xvadddp 35, 35, 51 \n\t"
+- "xvadddp 36, 36, 52 \n\t"
+- "xvadddp 37, 37, 53 \n\t"
+- "xvadddp 38, 38, 54 \n\t"
+- "xvadddp 39, 39, 55 \n\t"
+-
+- "xvadddp 32, 32, 33 \n\t"
+- "xvadddp 34, 34, 35 \n\t"
+- "xvadddp 36, 36, 37 \n\t"
+- "xvadddp 38, 38, 39 \n\t"
+-
+- "xvadddp 32, 32, 34 \n\t"
+- "xvadddp 36, 36, 38 \n\t"
+-
+- "xvadddp 32, 32, 36 \n\t"
+-
+-
+- "stxvd2x 32, 0, %3 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (svec), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2", "memory"
+- );
+-
+-}
+-
+-
++ double sum;
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %8, %2 \n\t"
++ "lxvd2x 42, %9, %2 \n\t"
++ "lxvd2x 43, %10, %2 \n\t"
++ "lxvd2x 44, %11, %2 \n\t"
++ "lxvd2x 45, %12, %2 \n\t"
++ "lxvd2x 46, %13, %2 \n\t"
++ "lxvd2x 47, %14, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvabsdp 48, 40 \n\t"
++ "xvabsdp 49, 41 \n\t"
++ "xvabsdp 50, 42 \n\t"
++ "xvabsdp 51, 43 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %8, %2 \n\t"
++
++ "xvabsdp %x3, 44 \n\t"
++ "xvabsdp %x4, 45 \n\t"
++
++ "lxvd2x 42, %9, %2 \n\t"
++ "lxvd2x 43, %10, %2 \n\t"
++
++ "xvabsdp %x5, 46 \n\t"
++ "xvabsdp %x6, 47 \n\t"
++
++ "lxvd2x 44, %11, %2 \n\t"
++ "lxvd2x 45, %12, %2 \n\t"
++
++ "xvadddp 32, 32, 48 \n\t"
++ "xvadddp 33, 33, 49 \n\t"
++
++ "lxvd2x 46, %13, %2 \n\t"
++ "lxvd2x 47, %14, %2 \n\t"
++
++ "xvadddp 34, 34, 50 \n\t"
++ "xvadddp 35, 35, 51 \n\t"
++ "addi %2, %2, 128 \n\t"
++ "xvadddp 36, 36, %x3 \n\t"
++ "xvadddp 37, 37, %x4 \n\t"
++ "addic. %1, %1, -8 \n\t"
++ "xvadddp 38, 38, %x5 \n\t"
++ "xvadddp 39, 39, %x6 \n\t"
++
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvabsdp 48, 40 \n\t"
++ "xvabsdp 49, 41 \n\t"
++ "xvabsdp 50, 42 \n\t"
++ "xvabsdp 51, 43 \n\t"
++ "xvabsdp %x3, 44 \n\t"
++ "xvabsdp %x4, 45 \n\t"
++ "xvabsdp %x5, 46 \n\t"
++ "xvabsdp %x6, 47 \n\t"
++
++ "xvadddp 32, 32, 48 \n\t"
++ "xvadddp 33, 33, 49 \n\t"
++ "xvadddp 34, 34, 50 \n\t"
++ "xvadddp 35, 35, 51 \n\t"
++ "xvadddp 36, 36, %x3 \n\t"
++ "xvadddp 37, 37, %x4 \n\t"
++ "xvadddp 38, 38, %x5 \n\t"
++ "xvadddp 39, 39, %x6 \n\t"
++
++ "xvadddp 32, 32, 33 \n\t"
++ "xvadddp 34, 34, 35 \n\t"
++ "xvadddp 36, 36, 37 \n\t"
++ "xvadddp 38, 38, 39 \n\t"
++
++ "xvadddp 32, 32, 34 \n\t"
++ "xvadddp 36, 36, 38 \n\t"
++
++ "xvadddp 32, 32, 36 \n\t"
++
++ "xxswapd 33, 32 \n\t"
++ "xsadddp %x0, 32, 33 \n"
++
++ "#n=%1 x=%3=%2 sum=%0 o16=%8 o32=%9 o48=%10 o64=%11 o80=%12 o96=%13 o112=%14\n"
++ "#t0=%x3 t1=%x4 t2=%x5 t3=%x6"
++ :
++ "=d" (sum), // 0
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0), // 3
++ "=wa" (t1), // 4
++ "=wa" (t2), // 5
++ "=wa" (t3) // 6
++ :
++ "m" (*x),
++ "b" (16), // 8
++ "b" (32), // 9
++ "b" (48), // 10
++ "b" (64), // 11
++ "b" (80), // 12
++ "b" (96), // 13
++ "b" (112) // 14
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++
++ return sum;
++}
+diff --git a/kernel/power/zaxpy.c b/kernel/power/zaxpy.c
+index 0ee0c1bf9..dd7ab6c3c 100644
+--- a/kernel/power/zaxpy.c
++++ b/kernel/power/zaxpy.c
+@@ -78,7 +78,6 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
+ {
+ BLASLONG i=0;
+ BLASLONG ix=0,iy=0;
+- FLOAT da[4];
+
+ if ( n <= 0 ) return(0);
+
+@@ -89,11 +88,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r, FLOAT da_i,
+
+ if ( n1 )
+ {
+- da[0] = da_r;
+- da[1] = da_r;
+- da[2] = da_i;
+- da[3] = da_i;
+- zaxpy_kernel_4(n1, x, y , da );
++ zaxpy_kernel_4 (n1, x, y, da_r, da_i);
+ ix = 2 * n1;
+ }
+ i = n1;
+diff --git a/kernel/power/zaxpy_microk_power8.c b/kernel/power/zaxpy_microk_power8.c
+index c8a529fd9..124614f62 100644
+--- a/kernel/power/zaxpy_microk_power8.c
++++ b/kernel/power/zaxpy_microk_power8.c
+@@ -35,216 +35,225 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ #define HAVE_KERNEL_4 1
+-static void zaxpy_kernel_4( BLASLONG n, FLOAT *x, FLOAT *y , FLOAT *alpha) __attribute__ ((noinline));
+-
+-static void zaxpy_kernel_4( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *alpha)
++static void zaxpy_kernel_4 (long n, double *x, double *y,
++ double alpha_r, double alpha_i)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
+-
+ #if !defined(CONJ)
+- FLOAT mvec[2] = { -1.0, 1.0 };
++ static const double mvec[2] = { -1.0, 1.0 };
+ #else
+- FLOAT mvec[2] = { 1.0, -1.0 };
++ static const double mvec[2] = { 1.0, -1.0 };
+ #endif
+-
+-
+- __asm__ __volatile__
+- (
+-
+- "lxsdx 34, 0 , %4 \n\t" // alpha_r
+- "lxsdx 35, %5, %4 \n\t" // alpha_i
+- "xxspltd 32, 34, 0 \n\t"
+- "xxspltd 33, 35, 0 \n\t"
+-
+- "lxvd2x 36, 0, %9 \n\t" // mvec
++ const double *mvecp = mvec;
++
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++ __vector double t4;
++ __vector double t5;
++ __vector double t6;
++ __vector double t7;
++ __vector double t8;
++ __vector double t9;
++ __vector double t10;
++ __vector double t11;
++ long ytmp;
++
++ __asm__
++ (
++ "xxspltd 32, %x19, 0 \n\t" // alpha_r
++ "xxspltd 33, %x20, 0 \n\t" // alpha_i
++
++ "lxvd2x 36, 0, %21 \n\t" // mvec
+
+ #if !defined(CONJ)
+- "xvmuldp 33, 33 , 36 \n\t" // alpha_i * mvec
++ "xvmuldp 33, 33, 36 \n\t" // alpha_i * mvec
+ #else
+- "xvmuldp 32, 32 , 36 \n\t" // alpha_r * mvec
++ "xvmuldp 32, 32, 36 \n\t" // alpha_r * mvec
+ #endif
+
+- "addi %8, %8, -8 \n\t"
+-
+- "dcbt %2, %10 \n\t"
+- "dcbt %3, %10 \n\t"
+-
+-
+- "lxvd2x 40, 0, %2 \n\t" // x0
+- "lxvd2x 41, %5, %2 \n\t" // x1
+- "lxvd2x 42, %6, %2 \n\t" // x2
+- "lxvd2x 43, %7, %2 \n\t" // x3
+-
+- "lxvd2x 48, 0, %3 \n\t" // y0
+- "lxvd2x 49, %5, %3 \n\t" // y1
+- "lxvd2x 50, %6, %3 \n\t" // y2
+- "lxvd2x 51, %7, %3 \n\t" // y3
+-
+- "xxswapd 56, 40 \n\t" // exchange real and imag part
+- "xxswapd 57, 41 \n\t" // exchange real and imag part
+- "xxswapd 58, 42 \n\t" // exchange real and imag part
+- "xxswapd 59, 43 \n\t" // exchange real and imag part
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "lxvd2x 44, 0, %2 \n\t" // x4
+- "lxvd2x 45, %5, %2 \n\t" // x5
+- "lxvd2x 46, %6, %2 \n\t" // x6
+- "lxvd2x 47, %7, %2 \n\t" // x7
+-
+- "lxvd2x 52, 0, %3 \n\t" // y4
+- "lxvd2x 53, %5, %3 \n\t" // y5
+- "lxvd2x 54, %6, %3 \n\t" // y6
+- "lxvd2x 55, %7, %3 \n\t" // y7
+-
+- "xxswapd 60, 44 \n\t" // exchange real and imag part
+- "xxswapd 61, 45 \n\t" // exchange real and imag part
+- "xxswapd 62, 46 \n\t" // exchange real and imag part
+- "xxswapd 63, 47 \n\t" // exchange real and imag part
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %10 \n\t"
+- "dcbt %3, %10 \n\t"
+-
+- "xvmaddadp 48, 40, 32 \n\t" // alpha_r * x0_r , alpha_r * x0_i
+- "xvmaddadp 49, 41, 32 \n\t"
+- "lxvd2x 40, 0, %2 \n\t" // x0
+- "lxvd2x 41, %5, %2 \n\t" // x1
+- "xvmaddadp 50, 42, 32 \n\t"
+- "xvmaddadp 51, 43, 32 \n\t"
+- "lxvd2x 42, %6, %2 \n\t" // x2
+- "lxvd2x 43, %7, %2 \n\t" // x3
+-
+- "xvmaddadp 52, 44, 32 \n\t"
+- "addi %2, %2, 64 \n\t"
+- "xvmaddadp 53, 45, 32 \n\t"
+- "lxvd2x 44, 0, %2 \n\t" // x4
+- "lxvd2x 45, %5, %2 \n\t" // x5
+- "xvmaddadp 54, 46, 32 \n\t"
+- "xvmaddadp 55, 47, 32 \n\t"
+- "lxvd2x 46, %6, %2 \n\t" // x6
+- "lxvd2x 47, %7, %2 \n\t" // x7
+-
+- "xvmaddadp 48, 56, 33 \n\t" // alpha_i * x0_i , alpha_i * x0_r
+- "addi %2, %2, 64 \n\t"
+- "xvmaddadp 49, 57, 33 \n\t"
+- "xvmaddadp 50, 58, 33 \n\t"
+- "xvmaddadp 51, 59, 33 \n\t"
+-
+- "xvmaddadp 52, 60, 33 \n\t"
+- "xvmaddadp 53, 61, 33 \n\t"
+- "xvmaddadp 54, 62, 33 \n\t"
+- "xvmaddadp 55, 63, 33 \n\t"
+-
+- "stxvd2x 48, 0, %8 \n\t"
+- "stxvd2x 49, %5, %8 \n\t"
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- "stxvd2x 52, 0, %8 \n\t"
+- "stxvd2x 53, %5, %8 \n\t"
+- "stxvd2x 54, %6, %8 \n\t"
+- "stxvd2x 55, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- "xxswapd 56, 40 \n\t" // exchange real and imag part
+- "xxswapd 57, 41 \n\t" // exchange real and imag part
+- "lxvd2x 48, 0, %3 \n\t" // y0
+- "lxvd2x 49, %5, %3 \n\t" // y1
+- "xxswapd 58, 42 \n\t" // exchange real and imag part
+- "xxswapd 59, 43 \n\t" // exchange real and imag part
+- "lxvd2x 50, %6, %3 \n\t" // y2
+- "lxvd2x 51, %7, %3 \n\t" // y3
+-
+- "xxswapd 60, 44 \n\t" // exchange real and imag part
+- "addi %3, %3, 64 \n\t"
+- "xxswapd 61, 45 \n\t" // exchange real and imag part
+- "lxvd2x 52, 0, %3 \n\t" // y4
+- "lxvd2x 53, %5, %3 \n\t" // y5
+- "xxswapd 62, 46 \n\t" // exchange real and imag part
+- "xxswapd 63, 47 \n\t" // exchange real and imag part
+- "lxvd2x 54, %6, %3 \n\t" // y6
+- "lxvd2x 55, %7, %3 \n\t" // y7
+-
+- "addi %3, %3, 64 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmaddadp 48, 40, 32 \n\t" // alpha_r * x0_r , alpha_r * x0_i
+- "xvmaddadp 49, 41, 32 \n\t"
+- "xvmaddadp 50, 42, 32 \n\t"
+- "xvmaddadp 51, 43, 32 \n\t"
+-
+- "xvmaddadp 52, 44, 32 \n\t"
+- "xvmaddadp 53, 45, 32 \n\t"
+- "xvmaddadp 54, 46, 32 \n\t"
+- "xvmaddadp 55, 47, 32 \n\t"
+-
+- "xvmaddadp 48, 56, 33 \n\t" // alpha_i * x0_i , alpha_i * x0_r
+- "xvmaddadp 49, 57, 33 \n\t"
+- "xvmaddadp 50, 58, 33 \n\t"
+- "xvmaddadp 51, 59, 33 \n\t"
+-
+- "xvmaddadp 52, 60, 33 \n\t"
+- "xvmaddadp 53, 61, 33 \n\t"
+- "xvmaddadp 54, 62, 33 \n\t"
+- "xvmaddadp 55, 63, 33 \n\t"
+-
+-
+- "stxvd2x 48, 0, %8 \n\t"
+- "stxvd2x 49, %5, %8 \n\t"
+- "stxvd2x 50, %6, %8 \n\t"
+- "stxvd2x 51, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- "stxvd2x 52, 0, %8 \n\t"
+- "stxvd2x 53, %5, %8 \n\t"
+- "stxvd2x 54, %6, %8 \n\t"
+- "stxvd2x 55, %7, %8 \n\t"
+-
+- "addi %8, %8, 64 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (y1), // 3
+- "r" (alpha), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (y2), // 8
+- "r" (mvec), // 9
+- "r" (pre) // 10
+- : "cr0", "%0", "%2" , "%3", "%8", "memory"
+- );
+-
+-}
+-
+-
++ "mr %16, %3 \n\t"
++ "dcbt 0, %2 \n\t"
++ "dcbt 0, %3 \n\t"
++
++
++ "lxvd2x 40, 0, %2 \n\t" // x0
++ "lxvd2x 41, %22, %2 \n\t" // x1
++ "lxvd2x 42, %23, %2 \n\t" // x2
++ "lxvd2x 43, %24, %2 \n\t" // x3
++
++ "lxvd2x 48, 0, %3 \n\t" // y0
++ "lxvd2x 49, %22, %3 \n\t" // y1
++ "lxvd2x 50, %23, %3 \n\t" // y2
++ "lxvd2x 51, %24, %3 \n\t" // y3
++
++ "xxswapd %x8, 40 \n\t" // exchange real and imag part
++ "xxswapd %x9, 41 \n\t" // exchange real and imag part
++ "xxswapd %x10, 42 \n\t" // exchange real and imag part
++ "xxswapd %x11, 43 \n\t" // exchange real and imag part
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "lxvd2x 44, 0, %2 \n\t" // x4
++ "lxvd2x 45, %22, %2 \n\t" // x5
++ "lxvd2x 46, %23, %2 \n\t" // x6
++ "lxvd2x 47, %24, %2 \n\t" // x7
++
++ "lxvd2x %x4, 0, %3 \n\t" // y4
++ "lxvd2x %x5, %22, %3 \n\t" // y5
++ "lxvd2x %x6, %23, %3 \n\t" // y6
++ "lxvd2x %x7, %24, %3 \n\t" // y7
++
++ "xxswapd %x12, 44 \n\t" // exchange real and imag part
++ "xxswapd %x13, 45 \n\t" // exchange real and imag part
++ "xxswapd %x14, 46 \n\t" // exchange real and imag part
++ "xxswapd %x15, 47 \n\t" // exchange real and imag part
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmaddadp 48, 40, 32 \n\t" // alpha_r * x0_r , alpha_r * x0_i
++ "xvmaddadp 49, 41, 32 \n\t"
++ "lxvd2x 40, 0, %2 \n\t" // x0
++ "lxvd2x 41, %22, %2 \n\t" // x1
++ "xvmaddadp 50, 42, 32 \n\t"
++ "xvmaddadp 51, 43, 32 \n\t"
++ "lxvd2x 42, %23, %2 \n\t" // x2
++ "lxvd2x 43, %24, %2 \n\t" // x3
++
++ "xvmaddadp %x4, 44, 32 \n\t"
++ "addi %2, %2, 64 \n\t"
++ "xvmaddadp %x5, 45, 32 \n\t"
++ "lxvd2x 44, 0, %2 \n\t" // x4
++ "lxvd2x 45, %22, %2 \n\t" // x5
++ "xvmaddadp %x6, 46, 32 \n\t"
++ "xvmaddadp %x7, 47, 32 \n\t"
++ "lxvd2x 46, %23, %2 \n\t" // x6
++ "lxvd2x 47, %24, %2 \n\t" // x7
++
++ "xvmaddadp 48, %x8, 33 \n\t" // alpha_i * x0_i , alpha_i * x0_r
++ "addi %2, %2, 64 \n\t"
++ "xvmaddadp 49, %x9, 33 \n\t"
++ "xvmaddadp 50, %x10, 33 \n\t"
++ "xvmaddadp 51, %x11, 33 \n\t"
++
++ "xvmaddadp %x4, %x12, 33 \n\t"
++ "xvmaddadp %x5, %x13, 33 \n\t"
++ "xvmaddadp %x6, %x14, 33 \n\t"
++ "xvmaddadp %x7, %x15, 33 \n\t"
++
++ "stxvd2x 48, 0, %16 \n\t"
++ "stxvd2x 49, %22, %16 \n\t"
++ "stxvd2x 50, %23, %16 \n\t"
++ "stxvd2x 51, %24, %16 \n\t"
++
++ "addi %16, %16, 64 \n\t"
++
++ "stxvd2x %x4, 0, %16 \n\t"
++ "stxvd2x %x5, %22, %16 \n\t"
++ "stxvd2x %x6, %23, %16 \n\t"
++ "stxvd2x %x7, %24, %16 \n\t"
++
++ "addi %16, %16, 64 \n\t"
++
++ "xxswapd %x8, 40 \n\t" // exchange real and imag part
++ "xxswapd %x9, 41 \n\t" // exchange real and imag part
++ "lxvd2x 48, 0, %3 \n\t" // y0
++ "lxvd2x 49, %22, %3 \n\t" // y1
++ "xxswapd %x10, 42 \n\t" // exchange real and imag part
++ "xxswapd %x11, 43 \n\t" // exchange real and imag part
++ "lxvd2x 50, %23, %3 \n\t" // y2
++ "lxvd2x 51, %24, %3 \n\t" // y3
++
++ "xxswapd %x12, 44 \n\t" // exchange real and imag part
++ "addi %3, %3, 64 \n\t"
++ "xxswapd %x13, 45 \n\t" // exchange real and imag part
++ "lxvd2x %x4, 0, %3 \n\t" // y4
++ "lxvd2x %x5, %22, %3 \n\t" // y5
++ "xxswapd %x14, 46 \n\t" // exchange real and imag part
++ "xxswapd %x15, 47 \n\t" // exchange real and imag part
++ "lxvd2x %x6, %23, %3 \n\t" // y6
++ "lxvd2x %x7, %24, %3 \n\t" // y7
++
++ "addi %3, %3, 64 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmaddadp 48, 40, 32 \n\t" // alpha_r * x0_r , alpha_r * x0_i
++ "xvmaddadp 49, 41, 32 \n\t"
++ "xvmaddadp 50, 42, 32 \n\t"
++ "xvmaddadp 51, 43, 32 \n\t"
++
++ "xvmaddadp %x4, 44, 32 \n\t"
++ "xvmaddadp %x5, 45, 32 \n\t"
++ "xvmaddadp %x6, 46, 32 \n\t"
++ "xvmaddadp %x7, 47, 32 \n\t"
++
++ "xvmaddadp 48, %x8, 33 \n\t" // alpha_i * x0_i , alpha_i * x0_r
++ "xvmaddadp 49, %x9, 33 \n\t"
++ "xvmaddadp 50, %x10, 33 \n\t"
++ "xvmaddadp 51, %x11, 33 \n\t"
++
++ "xvmaddadp %x4, %x12, 33 \n\t"
++ "xvmaddadp %x5, %x13, 33 \n\t"
++ "xvmaddadp %x6, %x14, 33 \n\t"
++ "xvmaddadp %x7, %x15, 33 \n\t"
++
++ "stxvd2x 48, 0, %16 \n\t"
++ "stxvd2x 49, %22, %16 \n\t"
++ "stxvd2x 50, %23, %16 \n\t"
++ "stxvd2x 51, %24, %16 \n\t"
++
++ "addi %16, %16, 64 \n\t"
++
++ "stxvd2x %x4, 0, %16 \n\t"
++ "stxvd2x %x5, %22, %16 \n\t"
++ "stxvd2x %x6, %23, %16 \n\t"
++ "stxvd2x %x7, %24, %16 \n"
++
++ "#n=%1 x=%17=%2 y=%0=%3 alpha=(%19,%20) mvecp=%18=%16 o16=%22 o32=%23 o48=%24 ytmp=%16\n"
++ "#t0=%x4 t1=%x5 t2=%x6 t3=%x7 t4=%x8 t5=%x9 t6=%x10 t7=%x11 t8=%x12 t9=%x13 t10=%x14 t11=%x15"
++ :
++ "+m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y), // 3
++ "=wa" (t0), // 4
++ "=wa" (t1), // 5
++ "=wa" (t2), // 6
++ "=wa" (t3), // 7
++ "=wa" (t4), // 8
++ "=wa" (t5), // 9
++ "=wa" (t6), // 10
++ "=wa" (t7), // 11
++ "=wa" (t8), // 12
++ "=wa" (t9), // 13
++ "=wa" (t10), // 14
++ "=wa" (t11), // 15
++ "=b" (ytmp) // 16
++ :
++ "m" (*x),
++ "m" (*mvecp),
++ "d" (alpha_r), // 19
++ "d" (alpha_i), // 20
++ "16" (mvecp), // 21
++ "b" (16), // 22
++ "b" (32), // 23
++ "b" (48) // 24
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++}
+diff --git a/kernel/power/zcopy_microk_power8.c b/kernel/power/zcopy_microk_power8.c
+index 73abe084e..5ca34b633 100644
+--- a/kernel/power/zcopy_microk_power8.c
++++ b/kernel/power/zcopy_microk_power8.c
+@@ -35,140 +35,121 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_16 1
+
+-static void zcopy_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void zcopy_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y)
++static void zcopy_kernel_16 (long n, FLOAT *x, FLOAT *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 50, 0, %2 \n\t"
+- "lxvd2x 51, %5, %2 \n\t"
+- "lxvd2x 52, %6, %2 \n\t"
+- "lxvd2x 53, %7, %2 \n\t"
+- "lxvd2x 54, %8, %2 \n\t"
+- "lxvd2x 55, %9, %2 \n\t"
+- "lxvd2x 56, %10, %2 \n\t"
+- "lxvd2x 57, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "stxvd2x 40, 0, %1 \n\t"
+- "stxvd2x 41, %5, %1 \n\t"
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "stxvd2x 42, %6, %1 \n\t"
+- "stxvd2x 43, %7, %1 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "stxvd2x 44, %8, %1 \n\t"
+- "stxvd2x 45, %9, %1 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "stxvd2x 46, %10, %1 \n\t"
+- "stxvd2x 47, %11, %1 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "stxvd2x 50, 0, %1 \n\t"
+- "stxvd2x 51, %5, %1 \n\t"
+- "lxvd2x 50, 0, %2 \n\t"
+- "lxvd2x 51, %5, %2 \n\t"
+- "stxvd2x 52, %6, %1 \n\t"
+- "stxvd2x 53, %7, %1 \n\t"
+- "lxvd2x 52, %6, %2 \n\t"
+- "lxvd2x 53, %7, %2 \n\t"
+- "stxvd2x 54, %8, %1 \n\t"
+- "stxvd2x 55, %9, %1 \n\t"
+- "lxvd2x 54, %8, %2 \n\t"
+- "lxvd2x 55, %9, %2 \n\t"
+- "stxvd2x 56, %10, %1 \n\t"
+- "stxvd2x 57, %11, %1 \n\t"
+- "lxvd2x 56, %10, %2 \n\t"
+- "lxvd2x 57, %11, %2 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "stxvd2x 40, 0, %1 \n\t"
+- "stxvd2x 41, %5, %1 \n\t"
+- "stxvd2x 42, %6, %1 \n\t"
+- "stxvd2x 43, %7, %1 \n\t"
+- "stxvd2x 44, %8, %1 \n\t"
+- "stxvd2x 45, %9, %1 \n\t"
+- "stxvd2x 46, %10, %1 \n\t"
+- "stxvd2x 47, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvd2x 50, 0, %1 \n\t"
+- "stxvd2x 51, %5, %1 \n\t"
+- "stxvd2x 52, %6, %1 \n\t"
+- "stxvd2x 53, %7, %1 \n\t"
+- "stxvd2x 54, %8, %1 \n\t"
+- "stxvd2x 55, %9, %1 \n\t"
+- "stxvd2x 56, %10, %1 \n\t"
+- "stxvd2x 57, %11, %1 \n\t"
+-
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %5, %2 \n\t"
++ "lxvd2x 34, %6, %2 \n\t"
++ "lxvd2x 35, %7, %2 \n\t"
++ "lxvd2x 36, %8, %2 \n\t"
++ "lxvd2x 37, %9, %2 \n\t"
++ "lxvd2x 38, %10, %2 \n\t"
++ "lxvd2x 39, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %5, %2 \n\t"
++ "lxvd2x 42, %6, %2 \n\t"
++ "lxvd2x 43, %7, %2 \n\t"
++ "lxvd2x 44, %8, %2 \n\t"
++ "lxvd2x 45, %9, %2 \n\t"
++ "lxvd2x 46, %10, %2 \n\t"
++ "lxvd2x 47, %11, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "lxvd2x 32, 0, %2 \n\t"
++ "lxvd2x 33, %5, %2 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "lxvd2x 34, %6, %2 \n\t"
++ "lxvd2x 35, %7, %2 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "lxvd2x 36, %8, %2 \n\t"
++ "lxvd2x 37, %9, %2 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++ "lxvd2x 38, %10, %2 \n\t"
++ "lxvd2x 39, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "lxvd2x 40, 0, %2 \n\t"
++ "lxvd2x 41, %5, %2 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "lxvd2x 42, %6, %2 \n\t"
++ "lxvd2x 43, %7, %2 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "lxvd2x 44, %8, %2 \n\t"
++ "lxvd2x 45, %9, %2 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n\t"
++ "lxvd2x 46, %10, %2 \n\t"
++ "lxvd2x 47, %11, %2 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -16 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n"
++
++ "#n=%1 x=%4=%2 y=%0=%3 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "=m" (*y),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y) // 3
++ :
++ "m" (*x),
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47"
++ );
++}
+diff --git a/kernel/power/zdot.c b/kernel/power/zdot.c
+index bc1a95e22..b83f832b1 100644
+--- a/kernel/power/zdot.c
++++ b/kernel/power/zdot.c
+@@ -43,8 +43,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_8
+
+-static void zdot_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d) __attribute__ ((noinline));
+-
+ static void zdot_kernel_8(BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *d)
+ {
+ BLASLONG register i = 0;
+diff --git a/kernel/power/zdot_microk_power8.c b/kernel/power/zdot_microk_power8.c
+index 296d3d469..71078b66c 100644
+--- a/kernel/power/zdot_microk_power8.c
++++ b/kernel/power/zdot_microk_power8.c
+@@ -34,186 +34,174 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ **************************************************************************************/
+
+ #define HAVE_KERNEL_8 1
+-static void zdot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y , FLOAT *dot) __attribute__ ((noinline));
+
+-static void zdot_kernel_8( BLASLONG n, FLOAT *x, FLOAT *y, FLOAT *dot)
++static void zdot_kernel_8 (long n, double *x, double *y, double *dot)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+- "xxlxor 32,32,32 \n\t"
+- "xxlxor 33,33,33 \n\t"
+- "xxlxor 34,34,34 \n\t"
+- "xxlxor 35,35,35 \n\t"
+- "xxlxor 36,36,36 \n\t"
+- "xxlxor 37,37,37 \n\t"
+- "xxlxor 38,38,38 \n\t"
+- "xxlxor 39,39,39 \n\t"
+-
+- "dcbt %2, %8 \n\t"
+- "dcbt %3, %8 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
+- "lxvd2x 48, 0, %3 \n\t" // y0_r, y0_i
+- "lxvd2x 41, %5, %2 \n\t" // x1_r, x1_i
+- "lxvd2x 49, %5, %3 \n\t" // y1_r, y1_i
+- "lxvd2x 42, %6, %2 \n\t" // x2_r, x2_i
+- "lxvd2x 50, %6, %3 \n\t" // y2_r, y2_i
+- "lxvd2x 43, %7, %2 \n\t" // x3_r, x3_i
+- "lxvd2x 51, %7, %3 \n\t" // y3_r, y3_i
+-
+- "xxswapd 52,48 \n\t" // y0_i, y0_r
+- "xxswapd 53,49 \n\t" // y1_i, y1_r
+- "xxswapd 54,50 \n\t" // y2_i, y2_r
+- "xxswapd 55,51 \n\t" // y3_i, y3_r
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+-
+- "lxvd2x 44, 0, %2 \n\t" // x0_r, x0_i
+- "lxvd2x 56, 0, %3 \n\t" // y0_r, y0_i
+- "lxvd2x 45, %5, %2 \n\t" // x1_r, x1_i
+- "lxvd2x 57, %5, %3 \n\t" // y1_r, y1_i
+- "lxvd2x 46, %6, %2 \n\t" // x2_r, x2_i
+- "lxvd2x 58, %6, %3 \n\t" // y2_r, y2_i
+- "lxvd2x 47, %7, %2 \n\t" // x3_r, x3_i
+- "lxvd2x 59, %7, %3 \n\t" // y3_r, y3_i
+-
+- "xxswapd 60,56 \n\t" // y0_i, y0_r
+- "xxswapd 61,57 \n\t" // y1_i, y1_r
+- "xxswapd 62,58 \n\t" // y2_i, y2_r
+- "xxswapd 63,59 \n\t" // y3_i, y3_r
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %8 \n\t"
+- "dcbt %3, %8 \n\t"
+-
+- "xvmaddadp 32, 40, 48 \n\t" // x0_r * y0_r , x0_i * y0_i
+- "lxvd2x 48, 0, %3 \n\t" // y0_r, y0_i
+- "xvmaddadp 34, 41, 49 \n\t" // x1_r * y1_r , x1_i * y1_i
+- "lxvd2x 49, %5, %3 \n\t" // y1_r, y1_i
+-
+- "xvmaddadp 36, 42, 50 \n\t" // x2_r * y2_r , x2_i * y2_i
+- "lxvd2x 50, %6, %3 \n\t" // y2_r, y2_i
+- "xvmaddadp 38, 43, 51 \n\t" // x3_r * y3_r , x3_i * y3_i
+- "lxvd2x 51, %7, %3 \n\t" // y3_r, y3_i
+-
+- "xvmaddadp 33, 40, 52 \n\t" // x0_r * y0_i , x0_i * y0_r
+- "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
+- "xvmaddadp 35, 41, 53 \n\t" // x1_r * y1_i , x1_i * y1_r
+- "lxvd2x 41, %5, %2 \n\t" // x1_r, x1_i
+-
+- "xvmaddadp 37, 42, 54 \n\t" // x2_r * y2_i , x2_i * y2_r
+- "lxvd2x 42, %6, %2 \n\t" // x2_r, x2_i
+- "xvmaddadp 39, 43, 55 \n\t" // x3_r * y3_i , x3_i * y3_r
+- "lxvd2x 43, %7, %2 \n\t" // x3_r, x3_i
+-
+- "xxswapd 52,48 \n\t" // y0_i, y0_r
+- "xxswapd 53,49 \n\t" // y1_i, y1_r
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "xxswapd 54,50 \n\t" // y2_i, y2_r
+- "xxswapd 55,51 \n\t" // y3_i, y3_r
+-
+- "xvmaddadp 32, 44, 56 \n\t" // x0_r * y0_r , x0_i * y0_i
+- "lxvd2x 56, 0, %3 \n\t" // y0_r, y0_i
+- "xvmaddadp 34, 45, 57 \n\t" // x1_r * y1_r , x1_i * y1_i
+- "lxvd2x 57, %5, %3 \n\t" // y1_r, y1_i
+- "xvmaddadp 36, 46, 58 \n\t" // x2_r * y2_r , x2_i * y2_i
+- "lxvd2x 58, %6, %3 \n\t" // y2_r, y2_i
+- "xvmaddadp 38, 47, 59 \n\t" // x3_r * y3_r , x3_i * y3_i
+- "lxvd2x 59, %7, %3 \n\t" // y3_r, y3_i
+-
+- "xvmaddadp 33, 44, 60 \n\t" // x0_r * y0_i , x0_i * y0_r
+- "lxvd2x 44, 0, %2 \n\t" // x0_r, x0_i
+- "xvmaddadp 35, 45, 61 \n\t" // x1_r * y1_i , x1_i * y1_r
+- "lxvd2x 45, %5, %2 \n\t" // x1_r, x1_i
+- "xvmaddadp 37, 46, 62 \n\t" // x2_r * y2_i , x2_i * y2_r
+- "lxvd2x 46, %6, %2 \n\t" // x2_r, x2_i
+- "xvmaddadp 39, 47, 63 \n\t" // x3_r * y3_i , x3_i * y3_r
+- "lxvd2x 47, %7, %2 \n\t" // x3_r, x3_i
+-
+- "xxswapd 60,56 \n\t" // y0_i, y0_r
+- "xxswapd 61,57 \n\t" // y1_i, y1_r
+-
+- "addi %2, %2, 64 \n\t"
+- "addi %3, %3, 64 \n\t"
+-
+- "xxswapd 62,58 \n\t" // y2_i, y2_r
+- "xxswapd 63,59 \n\t" // y3_i, y3_r
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmaddadp 32, 40, 48 \n\t" // x0_r * y0_r , x0_i * y0_i
+- "xvmaddadp 34, 41, 49 \n\t" // x1_r * y1_r , x1_i * y1_i
+- "xvmaddadp 36, 42, 50 \n\t" // x2_r * y2_r , x2_i * y2_i
+- "xvmaddadp 38, 43, 51 \n\t" // x3_r * y3_r , x3_i * y3_i
+-
+- "xvmaddadp 33, 40, 52 \n\t" // x0_r * y0_i , x0_i * y0_r
+- "xvmaddadp 35, 41, 53 \n\t" // x1_r * y1_i , x1_i * y1_r
+- "xvmaddadp 37, 42, 54 \n\t" // x2_r * y2_i , x2_i * y2_r
+- "xvmaddadp 39, 43, 55 \n\t" // x3_r * y3_i , x3_i * y3_r
+-
+- "xvmaddadp 32, 44, 56 \n\t" // x0_r * y0_r , x0_i * y0_i
+- "xvmaddadp 34, 45, 57 \n\t" // x1_r * y1_r , x1_i * y1_i
+- "xvmaddadp 36, 46, 58 \n\t" // x2_r * y2_r , x2_i * y2_i
+- "xvmaddadp 38, 47, 59 \n\t" // x3_r * y3_r , x3_i * y3_i
+-
+- "xvmaddadp 33, 44, 60 \n\t" // x0_r * y0_i , x0_i * y0_r
+- "xvmaddadp 35, 45, 61 \n\t" // x1_r * y1_i , x1_i * y1_r
+- "xvmaddadp 37, 46, 62 \n\t" // x2_r * y2_i , x2_i * y2_r
+- "xvmaddadp 39, 47, 63 \n\t" // x3_r * y3_i , x3_i * y3_r
+-
+-
+- "xvadddp 32, 32, 34 \n\t"
+- "xvadddp 36, 36, 38 \n\t"
+-
+- "xvadddp 33, 33, 35 \n\t"
+- "xvadddp 37, 37, 39 \n\t"
+-
+- "xvadddp 32, 32, 36 \n\t"
+- "xvadddp 33, 33, 37 \n\t"
+-
+- "stxvd2x 32, 0, %4 \n\t"
+- "stxvd2x 33, %5, %4 \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (n), // 1
+- "r" (x1), // 2
+- "r" (y1), // 3
+- "r" (dot), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (pre) // 8
+- : "cr0", "%0", "%2" , "%3", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++ "dcbt 0, %3 \n\t"
++
++ "xxlxor 32, 32, 32 \n\t"
++ "xxlxor 33, 33, 33 \n\t"
++ "xxlxor 34, 34, 34 \n\t"
++ "xxlxor 35, 35, 35 \n\t"
++ "xxlxor 36, 36, 36 \n\t"
++ "xxlxor 37, 37, 37 \n\t"
++ "xxlxor 38, 38, 38 \n\t"
++ "xxlxor 39, 39, 39 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
++ "lxvd2x 48, 0, %3 \n\t" // y0_r, y0_i
++ "lxvd2x 41, %7, %2 \n\t" // x1_r, x1_i
++ "lxvd2x 49, %7, %3 \n\t" // y1_r, y1_i
++ "lxvd2x 42, %8, %2 \n\t" // x2_r, x2_i
++ "lxvd2x 50, %8, %3 \n\t" // y2_r, y2_i
++ "lxvd2x 43, %9, %2 \n\t" // x3_r, x3_i
++ "lxvd2x 51, %9, %3 \n\t" // y3_r, y3_i
++
++ "xxswapd 0, 48 \n\t" // y0_i, y0_r
++ "xxswapd 1, 49 \n\t" // y1_i, y1_r
++ "xxswapd 2, 50 \n\t" // y2_i, y2_r
++ "xxswapd 3, 51 \n\t" // y3_i, y3_r
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "lxvd2x 44, 0, %2 \n\t" // x0_r, x0_i
++ "lxvd2x 4, 0, %3 \n\t" // y0_r, y0_i
++ "lxvd2x 45, %7, %2 \n\t" // x1_r, x1_i
++ "lxvd2x 5, %7, %3 \n\t" // y1_r, y1_i
++ "lxvd2x 46, %8, %2 \n\t" // x2_r, x2_i
++ "lxvd2x 6, %8, %3 \n\t" // y2_r, y2_i
++ "lxvd2x 47, %9, %2 \n\t" // x3_r, x3_i
++ "lxvd2x 7, %9, %3 \n\t" // y3_r, y3_i
++
++ "xxswapd 8, 4 \n\t" // y0_i, y0_r
++ "xxswapd 9, 5 \n\t" // y1_i, y1_r
++ "xxswapd 10, 6 \n\t" // y2_i, y2_r
++ "xxswapd 11, 7 \n\t" // y3_i, y3_r
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmaddadp 32, 40, 48 \n\t" // x0_r * y0_r , x0_i * y0_i
++ "lxvd2x 48, 0, %3 \n\t" // y0_r, y0_i
++ "xvmaddadp 34, 41, 49 \n\t" // x1_r * y1_r , x1_i * y1_i
++ "lxvd2x 49, %7, %3 \n\t" // y1_r, y1_i
++
++ "xvmaddadp 36, 42, 50 \n\t" // x2_r * y2_r , x2_i * y2_i
++ "lxvd2x 50, %8, %3 \n\t" // y2_r, y2_i
++ "xvmaddadp 38, 43, 51 \n\t" // x3_r * y3_r , x3_i * y3_i
++ "lxvd2x 51, %9, %3 \n\t" // y3_r, y3_i
++
++ "xvmaddadp 33, 40, 0 \n\t" // x0_r * y0_i , x0_i * y0_r
++ "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
++ "xvmaddadp 35, 41, 1 \n\t" // x1_r * y1_i , x1_i * y1_r
++ "lxvd2x 41, %7, %2 \n\t" // x1_r, x1_i
++
++ "xvmaddadp 37, 42, 2 \n\t" // x2_r * y2_i , x2_i * y2_r
++ "lxvd2x 42, %8, %2 \n\t" // x2_r, x2_i
++ "xvmaddadp 39, 43, 3 \n\t" // x3_r * y3_i , x3_i * y3_r
++ "lxvd2x 43, %9, %2 \n\t" // x3_r, x3_i
++
++ "xxswapd 0,48 \n\t" // y0_i, y0_r
++ "xxswapd 1,49 \n\t" // y1_i, y1_r
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "xxswapd 2,50 \n\t" // y2_i, y2_r
++ "xxswapd 3,51 \n\t" // y3_i, y3_r
++
++ "xvmaddadp 32, 44, 4 \n\t" // x0_r * y0_r , x0_i * y0_i
++ "lxvd2x 4, 0, %3 \n\t" // y0_r, y0_i
++ "xvmaddadp 34, 45, 5 \n\t" // x1_r * y1_r , x1_i * y1_i
++ "lxvd2x 5, %7, %3 \n\t" // y1_r, y1_i
++ "xvmaddadp 36, 46, 6 \n\t" // x2_r * y2_r , x2_i * y2_i
++ "lxvd2x 6, %8, %3 \n\t" // y2_r, y2_i
++ "xvmaddadp 38, 47, 7 \n\t" // x3_r * y3_r , x3_i * y3_i
++ "lxvd2x 7, %9, %3 \n\t" // y3_r, y3_i
++
++ "xvmaddadp 33, 44, 8 \n\t" // x0_r * y0_i , x0_i * y0_r
++ "lxvd2x 44, 0, %2 \n\t" // x0_r, x0_i
++ "xvmaddadp 35, 45, 9 \n\t" // x1_r * y1_i , x1_i * y1_r
++ "lxvd2x 45, %7, %2 \n\t" // x1_r, x1_i
++ "xvmaddadp 37, 46, 10 \n\t" // x2_r * y2_i , x2_i * y2_r
++ "lxvd2x 46, %8, %2 \n\t" // x2_r, x2_i
++ "xvmaddadp 39, 47, 11 \n\t" // x3_r * y3_i , x3_i * y3_r
++ "lxvd2x 47, %9, %2 \n\t" // x3_r, x3_i
++
++ "xxswapd 8,4 \n\t" // y0_i, y0_r
++ "xxswapd 9,5 \n\t" // y1_i, y1_r
++
++ "addi %2, %2, 64 \n\t"
++ "addi %3, %3, 64 \n\t"
++
++ "xxswapd 10,6 \n\t" // y2_i, y2_r
++ "xxswapd 11,7 \n\t" // y3_i, y3_r
++
++ "addic. %1, %1, -8 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmaddadp 32, 40, 48 \n\t" // x0_r * y0_r , x0_i * y0_i
++ "xvmaddadp 34, 41, 49 \n\t" // x1_r * y1_r , x1_i * y1_i
++ "xvmaddadp 36, 42, 50 \n\t" // x2_r * y2_r , x2_i * y2_i
++ "xvmaddadp 38, 43, 51 \n\t" // x3_r * y3_r , x3_i * y3_i
++
++ "xvmaddadp 33, 40, 0 \n\t" // x0_r * y0_i , x0_i * y0_r
++ "xvmaddadp 35, 41, 1 \n\t" // x1_r * y1_i , x1_i * y1_r
++ "xvmaddadp 37, 42, 2 \n\t" // x2_r * y2_i , x2_i * y2_r
++ "xvmaddadp 39, 43, 3 \n\t" // x3_r * y3_i , x3_i * y3_r
++
++ "xvmaddadp 32, 44, 4 \n\t" // x0_r * y0_r , x0_i * y0_i
++ "xvmaddadp 34, 45, 5 \n\t" // x1_r * y1_r , x1_i * y1_i
++ "xvmaddadp 36, 46, 6 \n\t" // x2_r * y2_r , x2_i * y2_i
++ "xvmaddadp 38, 47, 7 \n\t" // x3_r * y3_r , x3_i * y3_i
++
++ "xvmaddadp 33, 44, 8 \n\t" // x0_r * y0_i , x0_i * y0_r
++ "xvmaddadp 35, 45, 9 \n\t" // x1_r * y1_i , x1_i * y1_r
++ "xvmaddadp 37, 46, 10 \n\t" // x2_r * y2_i , x2_i * y2_r
++ "xvmaddadp 39, 47, 11 \n\t" // x3_r * y3_i , x3_i * y3_r
++
++ "xvadddp 32, 32, 34 \n\t"
++ "xvadddp 36, 36, 38 \n\t"
++
++ "xvadddp 33, 33, 35 \n\t"
++ "xvadddp 37, 37, 39 \n\t"
++
++ "xvadddp 32, 32, 36 \n\t"
++ "xvadddp 33, 33, 37 \n\t"
++
++ "stxvd2x 32, 0, %6 \n\t"
++ "stxvd2x 33, %7, %6 \n"
++
++ "#n=%1 x=%4=%2 y=%5=%3 dot=%0=%6 o16=%7 o32=%8 o48=%9"
++ :
++ "=m" (*dot),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "+b" (y) // 3
++ :
++ "m" (*x),
++ "m" (*y),
++ "b" (dot), // 6
++ "b" (16), // 7
++ "b" (32), // 8
++ "b" (48) // 9
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51","vs0","vs1","vs2","vs3",
++ "vs4","vs5","vs6","vs7","vs8","vs9","vs10","vs11"
++ );
++}
+diff --git a/kernel/power/zscal.c b/kernel/power/zscal.c
+index 410fc9840..14d677f24 100644
+--- a/kernel/power/zscal.c
++++ b/kernel/power/zscal.c
+@@ -47,15 +47,15 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #ifndef HAVE_KERNEL_8
+
+-static void zscal_kernel_8(BLASLONG n, FLOAT *x, FLOAT *alpha)
++static void zscal_kernel_8(BLASLONG n, FLOAT *x, FLOAT da_r, FLOAT da_i)
+ {
+
+ BLASLONG i=0;
+ FLOAT *x1=x;
+- FLOAT alpha_r1=alpha[0];
+- FLOAT alpha_r2=alpha[1];
+- FLOAT alpha_i1=alpha[2];
+- FLOAT alpha_i2=alpha[3];
++ FLOAT alpha_r1=da_r;
++ FLOAT alpha_r2=da_r;
++ FLOAT alpha_i1=-da_i;
++ FLOAT alpha_i2=da_i;
+ FLOAT temp00, temp01, temp10, temp11, temp20, temp21, temp30, temp31;
+ FLOAT x0_r, x0_i, x1_r, x1_i, x2_r, x2_i, x3_r, x3_i;
+
+@@ -116,7 +116,6 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, F
+ BLASLONG inc_x2;
+ BLASLONG ip = 0;
+ FLOAT temp;
+- FLOAT alpha[4] __attribute__ ((aligned (16)));;
+ BLASLONG n1;
+
+ if ( n <= 0 )
+@@ -147,11 +146,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, F
+ n1 = n & -8;
+ if ( n1 > 0 )
+ {
+- alpha[0] = da_r;
+- alpha[1] = da_r;
+- alpha[2] = -da_i;
+- alpha[3] = da_i;
+- zscal_kernel_8(n1, x, alpha);
++ zscal_kernel_8(n1, x, da_r, da_i);
+ i=n1;
+ ip = n1 * 2;
+
+diff --git a/kernel/power/zscal_microk_power8.c b/kernel/power/zscal_microk_power8.c
+index 5e09d8d79..aba9029a0 100644
+--- a/kernel/power/zscal_microk_power8.c
++++ b/kernel/power/zscal_microk_power8.c
+@@ -38,187 +38,202 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_8 1
+
+-static void zscal_kernel_8( BLASLONG n, FLOAT *x, FLOAT *alpha) __attribute__ ((noinline));
+-
+-static void zscal_kernel_8( BLASLONG n, FLOAT *x, FLOAT *alpha)
++static void zscal_kernel_8 (long n, double *x, double alpha_r, double alpha_i)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *x2=x+1;
+- BLASLONG pre = 384;
+-
+- __asm__ __volatile__
+- (
+-
+- "lxvd2x 32, 0, %3 \n\t" // alpha_r , alpha_r
+- "lxvd2x 33, %5, %3 \n\t" // -alpha_i , alpha_i
+- "addi %1, %1, -8 \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "ble 2f \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "dcbt %2, %4 \n\t"
+-
+- "xvmuldp 48, 40, 32 \n\t" // x0_r * alpha_r, x0_i * alpha_r
+- "xvmuldp 49, 41, 32 \n\t"
+- "xvmuldp 50, 42, 32 \n\t"
+- "xvmuldp 51, 43, 32 \n\t"
+- "xvmuldp 52, 44, 32 \n\t"
+- "xvmuldp 53, 45, 32 \n\t"
+- "xvmuldp 54, 46, 32 \n\t"
+- "xvmuldp 55, 47, 32 \n\t"
+-
+- "xxswapd 56, 40 \n\t"
+- "xxswapd 57, 41 \n\t"
+- "xxswapd 58, 42 \n\t"
+- "xxswapd 59, 43 \n\t"
+- "xxswapd 60, 44 \n\t"
+- "xxswapd 61, 45 \n\t"
+- "xxswapd 62, 46 \n\t"
+- "xxswapd 63, 47 \n\t"
+-
+- "xvmuldp 56, 56, 33 \n\t" // x0_i * -alpha_i, x0_r * alpha_i
+- "xvmuldp 57, 57, 33 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
+- "lxvd2x 41, %5, %2 \n\t"
+-
+- "xvmuldp 58, 58, 33 \n\t"
+- "xvmuldp 59, 59, 33 \n\t"
+-
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+-
+- "xvmuldp 60, 60, 33 \n\t"
+- "xvmuldp 61, 61, 33 \n\t"
+-
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+-
+- "xvmuldp 62, 62, 33 \n\t"
+- "xvmuldp 63, 63, 33 \n\t"
+-
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "xvadddp 48, 48 , 56 \n\t"
+- "xvadddp 49, 49 , 57 \n\t"
+- "xvadddp 50, 50 , 58 \n\t"
+- "xvadddp 51, 51 , 59 \n\t"
+-
+- "stxvd2x 48, 0, %1 \n\t"
+- "stxvd2x 49, %5, %1 \n\t"
+-
+- "xvadddp 52, 52 , 60 \n\t"
+- "xvadddp 53, 53 , 61 \n\t"
+-
+- "stxvd2x 50, %6, %1 \n\t"
+- "stxvd2x 51, %7, %1 \n\t"
+-
+- "xvadddp 54, 54 , 62 \n\t"
+- "xvadddp 55, 55 , 63 \n\t"
+-
+- "stxvd2x 52, %8, %1 \n\t"
+- "stxvd2x 53, %9, %1 \n\t"
+- "stxvd2x 54, %10, %1 \n\t"
+- "stxvd2x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+- "addi %2, %2, 128 \n\t"
+-
+- "addic. %0 , %0 , -8 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- "xvmuldp 48, 40, 32 \n\t" // x0_r * alpha_r, x0_i * alpha_r
+- "xvmuldp 49, 41, 32 \n\t"
+- "xvmuldp 50, 42, 32 \n\t"
+- "xvmuldp 51, 43, 32 \n\t"
+- "xvmuldp 52, 44, 32 \n\t"
+- "xvmuldp 53, 45, 32 \n\t"
+- "xvmuldp 54, 46, 32 \n\t"
+- "xvmuldp 55, 47, 32 \n\t"
+-
+- "xxswapd 56, 40 \n\t"
+- "xxswapd 57, 41 \n\t"
+- "xxswapd 58, 42 \n\t"
+- "xxswapd 59, 43 \n\t"
+- "xxswapd 60, 44 \n\t"
+- "xxswapd 61, 45 \n\t"
+- "xxswapd 62, 46 \n\t"
+- "xxswapd 63, 47 \n\t"
+-
+- "xvmuldp 56, 56, 33 \n\t" // x0_i * -alpha_i, x0_r * alpha_i
+- "xvmuldp 57, 57, 33 \n\t"
+- "xvmuldp 58, 58, 33 \n\t"
+- "xvmuldp 59, 59, 33 \n\t"
+- "xvmuldp 60, 60, 33 \n\t"
+- "xvmuldp 61, 61, 33 \n\t"
+- "xvmuldp 62, 62, 33 \n\t"
+- "xvmuldp 63, 63, 33 \n\t"
+-
+- "xvadddp 48, 48 , 56 \n\t"
+- "xvadddp 49, 49 , 57 \n\t"
+- "xvadddp 50, 50 , 58 \n\t"
+- "xvadddp 51, 51 , 59 \n\t"
+- "xvadddp 52, 52 , 60 \n\t"
+- "xvadddp 53, 53 , 61 \n\t"
+- "xvadddp 54, 54 , 62 \n\t"
+- "xvadddp 55, 55 , 63 \n\t"
+-
+- "stxvd2x 48, 0, %1 \n\t"
+- "stxvd2x 49, %5, %1 \n\t"
+- "stxvd2x 50, %6, %1 \n\t"
+- "stxvd2x 51, %7, %1 \n\t"
+- "stxvd2x 52, %8, %1 \n\t"
+- "stxvd2x 53, %9, %1 \n\t"
+- "stxvd2x 54, %10, %1 \n\t"
+- "stxvd2x 55, %11, %1 \n\t"
+-
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (x2), // 1
+- "r" (x1), // 2
+- "r" (alpha), // 3
+- "r" (pre), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "memory"
+- );
+-
+-}
+-
+-
++ __vector double t0;
++ __vector double t1;
++ __vector double t2;
++ __vector double t3;
++ __vector double t4;
++ __vector double t5;
++ __vector double t6;
++ __vector double t7;
++ __vector double t8;
++ __vector double t9;
++ __vector double t10;
++ __vector double t11;
++
++ __asm__
++ (
++ "dcbt 0, %2 \n\t"
++
++ "xsnegdp 33, %x16 \n\t" // -alpha_i
++ "xxspltd 32, %x15, 0 \n\t" // alpha_r , alpha_r
++ "xxmrghd 33, 33, %x16 \n\t" // -alpha_i , alpha_i
++
++ "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
++ "lxvd2x 41, %17, %2 \n\t"
++ "lxvd2x 42, %18, %2 \n\t"
++ "lxvd2x 43, %19, %2 \n\t"
++ "lxvd2x 44, %20, %2 \n\t"
++ "lxvd2x 45, %21, %2 \n\t"
++ "lxvd2x 46, %22, %2 \n\t"
++ "lxvd2x 47, %23, %2 \n\t"
++
++ "addi %2, %2, 128 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "ble 2f \n\t"
++
++ ".p2align 5 \n"
++ "1: \n\t"
++
++ "xvmuldp 48, 40, 32 \n\t" // x0_r * alpha_r, x0_i * alpha_r
++ "xvmuldp 49, 41, 32 \n\t"
++ "xvmuldp 50, 42, 32 \n\t"
++ "xvmuldp 51, 43, 32 \n\t"
++ "xvmuldp %x3, 44, 32 \n\t"
++ "xvmuldp %x4, 45, 32 \n\t"
++ "xvmuldp %x5, 46, 32 \n\t"
++ "xvmuldp %x6, 47, 32 \n\t"
++
++ "xxswapd %x7, 40 \n\t"
++ "xxswapd %x8, 41 \n\t"
++ "xxswapd %x9, 42 \n\t"
++ "xxswapd %x10, 43 \n\t"
++ "xxswapd %x11, 44 \n\t"
++ "xxswapd %x12, 45 \n\t"
++ "xxswapd %x13, 46 \n\t"
++ "xxswapd %x14, 47 \n\t"
++
++ "xvmuldp %x7, %x7, 33 \n\t" // x0_i * -alpha_i, x0_r * alpha_i
++ "xvmuldp %x8, %x8, 33 \n\t"
++
++ "lxvd2x 40, 0, %2 \n\t" // x0_r, x0_i
++ "lxvd2x 41, %17, %2 \n\t"
++
++ "xvmuldp %x9, %x9, 33 \n\t"
++ "xvmuldp %x10, %x10, 33 \n\t"
++
++ "lxvd2x 42, %18, %2 \n\t"
++ "lxvd2x 43, %19, %2 \n\t"
++
++ "xvmuldp %x11, %x11, 33 \n\t"
++ "xvmuldp %x12, %x12, 33 \n\t"
++
++ "lxvd2x 44, %20, %2 \n\t"
++ "lxvd2x 45, %21, %2 \n\t"
++
++ "xvmuldp %x13, %x13, 33 \n\t"
++ "xvmuldp %x14, %x14, 33 \n\t"
++
++ "lxvd2x 46, %22, %2 \n\t"
++ "lxvd2x 47, %23, %2 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "xvadddp 48, 48, %x7 \n\t"
++ "xvadddp 49, 49, %x8 \n\t"
++ "xvadddp 50, 50, %x9 \n\t"
++ "xvadddp 51, 51, %x10 \n\t"
++
++ "stxvd2x 48, 0, %2 \n\t"
++ "stxvd2x 49, %17, %2 \n\t"
++
++ "xvadddp %x3, %x3, %x11 \n\t"
++ "xvadddp %x4, %x4, %x12 \n\t"
++
++ "stxvd2x 50, %18, %2 \n\t"
++ "stxvd2x 51, %19, %2 \n\t"
++
++ "xvadddp %x5, %x5, %x13 \n\t"
++ "xvadddp %x6, %x6, %x14 \n\t"
++
++ "stxvd2x %x3, %20, %2 \n\t"
++ "stxvd2x %x4, %21, %2 \n\t"
++ "stxvd2x %x5, %22, %2 \n\t"
++ "stxvd2x %x6, %23, %2 \n\t"
++
++ "addi %2, %2, 256 \n\t"
++
++ "addic. %1, %1, -8 \n\t"
++ "bgt 1b \n"
++
++ "2: \n\t"
++
++ "xvmuldp 48, 40, 32 \n\t" // x0_r * alpha_r, x0_i * alpha_r
++ "xvmuldp 49, 41, 32 \n\t"
++ "xvmuldp 50, 42, 32 \n\t"
++ "xvmuldp 51, 43, 32 \n\t"
++ "xvmuldp %x3, 44, 32 \n\t"
++ "xvmuldp %x4, 45, 32 \n\t"
++ "xvmuldp %x5, 46, 32 \n\t"
++ "xvmuldp %x6, 47, 32 \n\t"
++
++ "xxswapd %x7, 40 \n\t"
++ "xxswapd %x8, 41 \n\t"
++ "xxswapd %x9, 42 \n\t"
++ "xxswapd %x10, 43 \n\t"
++ "xxswapd %x11, 44 \n\t"
++ "xxswapd %x12, 45 \n\t"
++ "xxswapd %x13, 46 \n\t"
++ "xxswapd %x14, 47 \n\t"
++
++ "addi %2, %2, -128 \n\t"
++
++ "xvmuldp %x7, %x7, 33 \n\t" // x0_i * -alpha_i, x0_r * alpha_i
++ "xvmuldp %x8, %x8, 33 \n\t"
++ "xvmuldp %x9, %x9, 33 \n\t"
++ "xvmuldp %x10, %x10, 33 \n\t"
++ "xvmuldp %x11, %x11, 33 \n\t"
++ "xvmuldp %x12, %x12, 33 \n\t"
++ "xvmuldp %x13, %x13, 33 \n\t"
++ "xvmuldp %x14, %x14, 33 \n\t"
++
++ "xvadddp 48, 48, %x7 \n\t"
++ "xvadddp 49, 49, %x8 \n\t"
++ "xvadddp 50, 50, %x9 \n\t"
++ "xvadddp 51, 51, %x10 \n\t"
++
++ "stxvd2x 48, 0, %2 \n\t"
++ "stxvd2x 49, %17, %2 \n\t"
++
++ "xvadddp %x3, %x3, %x11 \n\t"
++ "xvadddp %x4, %x4, %x12 \n\t"
++
++ "stxvd2x 50, %18, %2 \n\t"
++ "stxvd2x 51, %19, %2 \n\t"
++
++ "xvadddp %x5, %x5, %x13 \n\t"
++ "xvadddp %x6, %x6, %x14 \n\t"
++
++ "stxvd2x %x3, %20, %2 \n\t"
++ "stxvd2x %x4, %21, %2 \n\t"
++ "stxvd2x %x5, %22, %2 \n\t"
++ "stxvd2x %x6, %23, %2 \n"
++
++ "#n=%1 x=%0=%2 alpha=(%15,%16) o16=%17 o32=%18 o48=%19 o64=%20 o80=%21 o96=%22 o112=%23\n"
++ "#t0=%x3 t1=%x4 t2=%x5 t3=%x6 t4=%x7 t5=%x8 t6=%x9 t7=%x10 t8=%x11 t9=%x12 t10=%x13 t11=%x14"
++ :
++ "+m" (*x),
++ "+r" (n), // 1
++ "+b" (x), // 2
++ "=wa" (t0), // 3
++ "=wa" (t1), // 4
++ "=wa" (t2), // 5
++ "=wa" (t3), // 6
++ "=wa" (t4), // 7
++ "=wa" (t5), // 8
++ "=wa" (t6), // 9
++ "=wa" (t7), // 10
++ "=wa" (t8), // 11
++ "=wa" (t9), // 12
++ "=wa" (t10), // 13
++ "=wa" (t11) // 14
++ :
++ "d" (alpha_r), // 15
++ "d" (alpha_i), // 16
++ "b" (16), // 17
++ "b" (32), // 18
++ "b" (48), // 19
++ "b" (64), // 20
++ "b" (80), // 21
++ "b" (96), // 22
++ "b" (112) // 23
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51"
++ );
++}
+diff --git a/kernel/power/zswap_microk_power8.c b/kernel/power/zswap_microk_power8.c
+index 9e5623752..54391ba5d 100644
+--- a/kernel/power/zswap_microk_power8.c
++++ b/kernel/power/zswap_microk_power8.c
+@@ -35,146 +35,123 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #define HAVE_KERNEL_16 1
+
+-static void zswap_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y) __attribute__ ((noinline));
+-
+-static void zswap_kernel_16( BLASLONG n, FLOAT *x, FLOAT *y)
++static void
++zswap_kernel_16 (long n, double *x, double *y)
+ {
+-
+-
+- BLASLONG i = n;
+- BLASLONG o16 = 16;
+- BLASLONG o32 = 32;
+- BLASLONG o48 = 48;
+- BLASLONG o64 = 64;
+- BLASLONG o80 = 80;
+- BLASLONG o96 = 96;
+- BLASLONG o112 = 112;
+- FLOAT *x1=x;
+- FLOAT *y1=y;
+- FLOAT *x2=x+1;
+- FLOAT *y2=y+1;
+- BLASLONG pre = 384;
+- BLASLONG alpha=0;
+-
+- __asm__ __volatile__
+- (
+-
+- "addi %3, %3, -8 \n\t"
+- "addi %4, %4, -8 \n\t"
+-
+- ".align 5 \n\t"
+- "1: \n\t"
+-
+- "lxvd2x 32, 0, %2 \n\t"
+- "lxvd2x 33, %5, %2 \n\t"
+- "lxvd2x 34, %6, %2 \n\t"
+- "lxvd2x 35, %7, %2 \n\t"
+- "lxvd2x 36, %8, %2 \n\t"
+- "lxvd2x 37, %9, %2 \n\t"
+- "lxvd2x 38, %10, %2 \n\t"
+- "lxvd2x 39, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 40, 0, %2 \n\t"
+- "lxvd2x 41, %5, %2 \n\t"
+- "lxvd2x 42, %6, %2 \n\t"
+- "lxvd2x 43, %7, %2 \n\t"
+- "lxvd2x 44, %8, %2 \n\t"
+- "lxvd2x 45, %9, %2 \n\t"
+- "lxvd2x 46, %10, %2 \n\t"
+- "lxvd2x 47, %11, %2 \n\t"
+-
+- "addi %2, %2, 128 \n\t"
+-
+- "lxvd2x 48, 0, %1 \n\t"
+- "lxvd2x 49, %5, %1 \n\t"
+- "lxvd2x 50, %6, %1 \n\t"
+- "lxvd2x 51, %7, %1 \n\t"
+- "lxvd2x 52, %8, %1 \n\t"
+- "lxvd2x 53, %9, %1 \n\t"
+- "lxvd2x 54, %10, %1 \n\t"
+- "lxvd2x 55, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "lxvd2x 56, 0, %1 \n\t"
+- "lxvd2x 57, %5, %1 \n\t"
+- "lxvd2x 58, %6, %1 \n\t"
+- "lxvd2x 59, %7, %1 \n\t"
+- "lxvd2x 60, %8, %1 \n\t"
+- "lxvd2x 61, %9, %1 \n\t"
+- "lxvd2x 62, %10, %1 \n\t"
+- "lxvd2x 63, %11, %1 \n\t"
+-
+- "addi %1, %1, 128 \n\t"
+-
+- "stxvd2x 32, 0, %3 \n\t"
+- "stxvd2x 33, %5, %3 \n\t"
+- "stxvd2x 34, %6, %3 \n\t"
+- "stxvd2x 35, %7, %3 \n\t"
+- "stxvd2x 36, %8, %3 \n\t"
+- "stxvd2x 37, %9, %3 \n\t"
+- "stxvd2x 38, %10, %3 \n\t"
+- "stxvd2x 39, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvd2x 40, 0, %3 \n\t"
+- "stxvd2x 41, %5, %3 \n\t"
+- "stxvd2x 42, %6, %3 \n\t"
+- "stxvd2x 43, %7, %3 \n\t"
+- "stxvd2x 44, %8, %3 \n\t"
+- "stxvd2x 45, %9, %3 \n\t"
+- "stxvd2x 46, %10, %3 \n\t"
+- "stxvd2x 47, %11, %3 \n\t"
+-
+- "addi %3, %3, 128 \n\t"
+-
+- "stxvd2x 48, 0, %4 \n\t"
+- "stxvd2x 49, %5, %4 \n\t"
+- "stxvd2x 50, %6, %4 \n\t"
+- "stxvd2x 51, %7, %4 \n\t"
+- "stxvd2x 52, %8, %4 \n\t"
+- "stxvd2x 53, %9, %4 \n\t"
+- "stxvd2x 54, %10, %4 \n\t"
+- "stxvd2x 55, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "stxvd2x 56, 0, %4 \n\t"
+- "stxvd2x 57, %5, %4 \n\t"
+- "stxvd2x 58, %6, %4 \n\t"
+- "stxvd2x 59, %7, %4 \n\t"
+- "stxvd2x 60, %8, %4 \n\t"
+- "stxvd2x 61, %9, %4 \n\t"
+- "stxvd2x 62, %10, %4 \n\t"
+- "stxvd2x 63, %11, %4 \n\t"
+-
+- "addi %4, %4, 128 \n\t"
+-
+- "addic. %0 , %0 , -16 \n\t"
+- "bgt 1b \n\t"
+-
+- "2: \n\t"
+-
+- :
+- :
+- "r" (i), // 0
+- "r" (y1), // 1
+- "r" (x1), // 2
+- "r" (y2), // 3
+- "r" (x2), // 4
+- "r" (o16), // 5
+- "r" (o32), // 6
+- "r" (o48), // 7
+- "r" (o64), // 8
+- "r" (o80), // 9
+- "r" (o96), // 10
+- "r" (o112) // 11
+- : "cr0", "%0", "%2" , "%1", "%3", "%4", "memory"
+- );
+-
+-}
+-
+-
++ __asm__
++ (
++ ".p2align 5 \n"
++ "1: \n\t"
++ "lxvd2x 32, 0, %4 \n\t"
++ "lxvd2x 33, %5, %4 \n\t"
++ "lxvd2x 34, %6, %4 \n\t"
++ "lxvd2x 35, %7, %4 \n\t"
++ "lxvd2x 36, %8, %4 \n\t"
++ "lxvd2x 37, %9, %4 \n\t"
++ "lxvd2x 38, %10, %4 \n\t"
++ "lxvd2x 39, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "lxvd2x 40, 0, %4 \n\t"
++ "lxvd2x 41, %5, %4 \n\t"
++ "lxvd2x 42, %6, %4 \n\t"
++ "lxvd2x 43, %7, %4 \n\t"
++ "lxvd2x 44, %8, %4 \n\t"
++ "lxvd2x 45, %9, %4 \n\t"
++ "lxvd2x 46, %10, %4 \n\t"
++ "lxvd2x 47, %11, %4 \n\t"
++
++ "addi %4, %4, -128 \n\t"
++
++ "lxvd2x 48, 0, %3 \n\t"
++ "lxvd2x 49, %5, %3 \n\t"
++ "lxvd2x 50, %6, %3 \n\t"
++ "lxvd2x 51, %7, %3 \n\t"
++ "lxvd2x 0, %8, %3 \n\t"
++ "lxvd2x 1, %9, %3 \n\t"
++ "lxvd2x 2, %10, %3 \n\t"
++ "lxvd2x 3, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "lxvd2x 4, 0, %3 \n\t"
++ "lxvd2x 5, %5, %3 \n\t"
++ "lxvd2x 6, %6, %3 \n\t"
++ "lxvd2x 7, %7, %3 \n\t"
++ "lxvd2x 8, %8, %3 \n\t"
++ "lxvd2x 9, %9, %3 \n\t"
++ "lxvd2x 10, %10, %3 \n\t"
++ "lxvd2x 11, %11, %3 \n\t"
++
++ "addi %3, %3, -128 \n\t"
++
++ "stxvd2x 32, 0, %3 \n\t"
++ "stxvd2x 33, %5, %3 \n\t"
++ "stxvd2x 34, %6, %3 \n\t"
++ "stxvd2x 35, %7, %3 \n\t"
++ "stxvd2x 36, %8, %3 \n\t"
++ "stxvd2x 37, %9, %3 \n\t"
++ "stxvd2x 38, %10, %3 \n\t"
++ "stxvd2x 39, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 40, 0, %3 \n\t"
++ "stxvd2x 41, %5, %3 \n\t"
++ "stxvd2x 42, %6, %3 \n\t"
++ "stxvd2x 43, %7, %3 \n\t"
++ "stxvd2x 44, %8, %3 \n\t"
++ "stxvd2x 45, %9, %3 \n\t"
++ "stxvd2x 46, %10, %3 \n\t"
++ "stxvd2x 47, %11, %3 \n\t"
++
++ "addi %3, %3, 128 \n\t"
++
++ "stxvd2x 48, 0, %4 \n\t"
++ "stxvd2x 49, %5, %4 \n\t"
++ "stxvd2x 50, %6, %4 \n\t"
++ "stxvd2x 51, %7, %4 \n\t"
++ "stxvd2x 0, %8, %4 \n\t"
++ "stxvd2x 1, %9, %4 \n\t"
++ "stxvd2x 2, %10, %4 \n\t"
++ "stxvd2x 3, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++
++ "stxvd2x 4, 0, %4 \n\t"
++ "stxvd2x 5, %5, %4 \n\t"
++ "stxvd2x 6, %6, %4 \n\t"
++ "stxvd2x 7, %7, %4 \n\t"
++ "stxvd2x 8, %8, %4 \n\t"
++ "stxvd2x 9, %9, %4 \n\t"
++ "stxvd2x 10, %10, %4 \n\t"
++ "stxvd2x 11, %11, %4 \n\t"
++
++ "addi %4, %4, 128 \n\t"
++ "addic. %2, %2, -16 \n\t"
++ "bgt 1b \n"
++
++ "#n=%2 x=%0=%3 y=%1=%4 o16=%5 o32=%6 o48=%7 o64=%8 o80=%9 o96=%10 o112=%11"
++ :
++ "+m" (*x),
++ "+m" (*y),
++ "+r" (n), // 2
++ "+b" (x), // 3
++ "+b" (y) // 4
++ :
++ "b" (16), // 5
++ "b" (32), // 6
++ "b" (48), // 7
++ "b" (64), // 8
++ "b" (80), // 9
++ "b" (96), // 10
++ "b" (112) // 11
++ :
++ "cr0",
++ "vs32","vs33","vs34","vs35","vs36","vs37","vs38","vs39",
++ "vs40","vs41","vs42","vs43","vs44","vs45","vs46","vs47",
++ "vs48","vs49","vs50","vs51","vs0","vs1","vs2","vs3",
++ "vs4","vs5","vs6","vs7","vs8","vs9","vs10","vs11"
++ );
++}
diff --git a/var/spack/repos/builtin/packages/opencoarrays/package.py b/var/spack/repos/builtin/packages/opencoarrays/package.py
index 0449155bc7..37ae236c0a 100644
--- a/var/spack/repos/builtin/packages/opencoarrays/package.py
+++ b/var/spack/repos/builtin/packages/opencoarrays/package.py
@@ -42,6 +42,11 @@ class Opencoarrays(CMakePackage):
version('1.7.4', '85ba87def461e3ff5a164de2e6482930')
version('1.6.2', '5a4da993794f3e04ea7855a6678981ba')
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo',
+ 'MinSizeRel', 'CodeCoverage'))
+
depends_on('mpi')
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 09fa68b9c0..5587a893dc 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Opencv(Package):
+class Opencv(CMakePackage):
"""OpenCV is released under a BSD license and hence it's free for both
academic and commercial use. It has C++, C, Python and Java interfaces and
supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for
@@ -42,13 +42,19 @@ class Opencv(Package):
homepage = 'http://opencv.org/'
url = 'https://github.com/Itseez/opencv/archive/3.1.0.tar.gz'
- version('3.2.0', 'a43b65488124ba33dde195fea9041b70')
- version('3.1.0', '70e1dd07f0aa06606f1bc0e3fa15abd3')
+ version('master', git="https://github.com/opencv/opencv.git", branch="master")
+ version('3.3.0', 'eeedaec282a70aa2ea1d5152a372c990')
+ version('3.2.0', 'a43b65488124ba33dde195fea9041b70')
+ version('3.1.0', '70e1dd07f0aa06606f1bc0e3fa15abd3')
+ version('2.4.13.2', 'fe52791ce523681a67036def4c25261b')
+ version('2.4.13.1', 'f6d354500d5013e60dc0fc44b07a63d1')
+ version('2.4.13', '8feb45a71adad89b8017a777477c3eff')
+ version('2.4.12.3', '2496a4a4caf8fecfbfc294fbe6a814b0')
+ version('2.4.12.2', 'bc0c60c2ea1cf4078deef99569912fc7')
+ version('2.4.12.1', '7192f51434710904b5e3594872b897c3')
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('eigen', default=True, description='Activates support for eigen')
variant('ipp', default=True, description='Activates support for IPP')
@@ -61,32 +67,36 @@ class Opencv(Package):
description='Enables the build of Python extensions')
variant('java', default=False,
description='Activates support for Java')
+ variant('openmp', default=False, description='Activates support for OpenMP threads')
+ variant('core', default=False, description='Include opencv_core module into the OpenCV build')
+ variant('highgui', default=False, description='Include opencv_highgui module into the OpenCV build')
+ variant('imgproc', default=False, description='Include opencv_imgproc module into the OpenCV build')
+ variant('jpeg', default=False, description='Include JPEG support')
+ variant('png', default=False, description='Include PNG support')
+ variant('tiff', default=False, description='Include TIFF support')
+ variant('zlib', default=False, description='Build zlib from source')
- depends_on('cmake', type='build')
depends_on('eigen', when='+eigen', type='build')
- depends_on('zlib')
- depends_on('libpng')
- depends_on('libjpeg-turbo')
- depends_on('libtiff')
+ depends_on('zlib', when='+zlib')
+ depends_on('libpng', when='+png')
+ depends_on('jpeg', when='+jpeg')
+ depends_on('libtiff', when='+tiff')
depends_on('jasper', when='+jasper')
depends_on('cuda', when='+cuda')
depends_on('gtkplus', when='+gtk')
depends_on('vtk', when='+vtk')
depends_on('qt', when='+qt')
- depends_on('jdk', when='+java')
+ depends_on('java', when='+java')
depends_on('py-numpy', when='+python', type=('build', 'run'))
extends('python', when='+python')
- def install(self, spec, prefix):
- cmake_options = []
- cmake_options.extend(std_cmake_args)
+ def cmake_args(self):
+ spec = self.spec
- cmake_options.extend([
- '-DCMAKE_BUILD_TYPE:STRING={0}'.format((
- 'Debug' if '+debug' in spec else 'Release')),
+ args = [
'-DBUILD_SHARED_LIBS:BOOL={0}'.format((
'ON' if '+shared' in spec else 'OFF')),
'-DENABLE_PRECOMPILED_HEADERS:BOOL=OFF',
@@ -100,66 +110,88 @@ class Opencv(Package):
'ON' if '+vtk' in spec else 'OFF')),
'-DBUILD_opencv_java:BOOL={0}'.format((
'ON' if '+java' in spec else 'OFF')),
- ])
+ '-DBUILD_opencv_core:BOOL={0}'.format((
+ 'ON' if '+core' in spec else 'OFF')),
+ '-DBUILD_opencv_highgui:BOOL={0}'.format((
+ 'ON' if '+highgui' in spec else 'OFF')),
+ '-DBUILD_opencv_imgproc:BOOL={0}'.format((
+ 'ON' if '+imgproc' in spec else 'OFF')),
+ '-DWITH_JPEG:BOOL={0}'.format((
+ 'ON' if '+jpeg' in spec else 'OFF')),
+ '-DWITH_PNG:BOOL={0}'.format((
+ 'ON' if '+png' in spec else 'OFF')),
+ '-DWITH_TIFF:BOOL={0}'.format((
+ 'ON' if '+tiff' in spec else 'OFF')),
+ '-DWITH_ZLIB:BOOL={0}'.format((
+ 'ON' if '+zlib' in spec else 'OFF')),
+ '-DWITH_OPENMP:BOOL={0}'.format((
+ 'ON' if '+openmp' in spec else 'OFF')),
+ ]
# Media I/O
- zlib = spec['zlib']
- cmake_options.extend([
- '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
- join_path(zlib.prefix.lib,
- 'libz.{0}'.format(dso_suffix))),
- '-DZLIB_INCLUDE_DIR:PATH={0}'.format(zlib.prefix.include)
- ])
-
- libpng = spec['libpng']
- cmake_options.extend([
- '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
- join_path(libpng.prefix.lib,
- 'libpng.{0}'.format(dso_suffix))),
- '-DPNG_INCLUDE_DIR:PATH={0}'.format(libpng.prefix.include)
- ])
-
- libjpeg = spec['libjpeg-turbo']
- cmake_options.extend([
- '-DJPEG_LIBRARY:FILEPATH={0}'.format(
- join_path(libjpeg.prefix.lib,
- 'libjpeg.{0}'.format(dso_suffix))),
- '-DJPEG_INCLUDE_DIR:PATH={0}'.format(libjpeg.prefix.include)
- ])
-
- libtiff = spec['libtiff']
- cmake_options.extend([
- '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
- join_path(libtiff.prefix.lib,
- 'libtiff.{0}'.format(dso_suffix))),
- '-DTIFF_INCLUDE_DIR:PATH={0}'.format(libtiff.prefix.include)
- ])
-
- jasper = spec['jasper']
- cmake_options.extend([
- '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format((
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
- join_path(jasper.prefix.lib,
- 'libjasper.{0}'.format(dso_suffix))),
- '-DJASPER_INCLUDE_DIR:PATH={0}'.format(jasper.prefix.include)
- ])
+ if '+zlib' in spec:
+ zlib = spec['zlib']
+ args.extend([
+ '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(zlib.prefix.lib,
+ 'libz.{0}'.format(dso_suffix))),
+ '-DZLIB_INCLUDE_DIR:PATH={0}'.format(zlib.prefix.include)
+ ])
+
+ if '+png' in spec:
+ libpng = spec['libpng']
+ args.extend([
+ '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(libpng.prefix.lib,
+ 'libpng.{0}'.format(dso_suffix))),
+ '-DPNG_INCLUDE_DIR:PATH={0}'.format(libpng.prefix.include)
+ ])
+
+ if '+jpeg' in spec:
+ libjpeg = spec['jpeg']
+ args.extend([
+ '-DBUILD_JPEG:BOOL=OFF',
+ '-DJPEG_LIBRARY:FILEPATH={0}'.format(
+ join_path(libjpeg.prefix.lib,
+ 'libjpeg.{0}'.format(dso_suffix))),
+ '-DJPEG_INCLUDE_DIR:PATH={0}'.format(libjpeg.prefix.include)
+ ])
+
+ if '+tiff' in spec:
+ libtiff = spec['libtiff']
+ args.extend([
+ '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(libtiff.prefix.lib,
+ 'libtiff.{0}'.format(dso_suffix))),
+ '-DTIFF_INCLUDE_DIR:PATH={0}'.format(libtiff.prefix.include)
+ ])
+
+ if '+jasper' in spec:
+ jasper = spec['jasper']
+ args.extend([
+ '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format((
+ 'DEBUG' if '+debug' in spec else 'RELEASE'),
+ join_path(jasper.prefix.lib,
+ 'libjasper.{0}'.format(dso_suffix))),
+ '-DJASPER_INCLUDE_DIR:PATH={0}'.format(jasper.prefix.include)
+ ])
# GUI
if '+gtk' not in spec:
- cmake_options.extend([
+ args.extend([
'-DWITH_GTK:BOOL=OFF',
'-DWITH_GTK_2_X:BOOL=OFF'
])
elif '^gtkplus@3:' in spec:
- cmake_options.extend([
+ args.extend([
'-DWITH_GTK:BOOL=ON',
'-DWITH_GTK_2_X:BOOL=OFF'
])
elif '^gtkplus@2:3' in spec:
- cmake_options.extend([
+ args.extend([
'-DWITH_GTK:BOOL=OFF',
'-DWITH_GTK_2_X:BOOL=ON'
])
@@ -171,7 +203,7 @@ class Opencv(Package):
python_include_dir = spec['python'].headers.directories[0]
if '^python@3:' in spec:
- cmake_options.extend([
+ args.extend([
'-DBUILD_opencv_python3=ON',
'-DPYTHON3_EXECUTABLE={0}'.format(python_exe),
'-DPYTHON3_LIBRARY={0}'.format(python_lib),
@@ -179,7 +211,7 @@ class Opencv(Package):
'-DBUILD_opencv_python2=OFF',
])
elif '^python@2:3' in spec:
- cmake_options.extend([
+ args.extend([
'-DBUILD_opencv_python2=ON',
'-DPYTHON2_EXECUTABLE={0}'.format(python_exe),
'-DPYTHON2_LIBRARY={0}'.format(python_lib),
@@ -187,12 +219,9 @@ class Opencv(Package):
'-DBUILD_opencv_python3=OFF',
])
else:
- cmake_options.extend([
+ args.extend([
'-DBUILD_opencv_python2=OFF',
'-DBUILD_opencv_python3=OFF'
])
- with working_dir('spack_build', create=True):
- cmake('..', *cmake_options)
- make('VERBOSE=1')
- make("install")
+ return args
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-bin-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-bin.patch
index b9e87a7ec8..b9e87a7ec8 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-bin-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-bin.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-build-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-build.patch
index 26e2d8f085..26e2d8f085 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-build-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-build.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-etc-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-etc.patch
index dd8146e953..dd8146e953 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-etc-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-etc.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/mgridgen-lib-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-mgridgen-lib.patch
index 8dc0b995ff..8dc0b995ff 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/mgridgen-lib-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-mgridgen-lib.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-mpi-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-mpi.patch
index b3663b0a49..b3663b0a49 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-mpi-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-mpi.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/scotch-metis-lib-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-scotch-metis-lib.patch
index b7530e6320..b7530e6320 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/scotch-metis-lib-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-scotch-metis-lib.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-site-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-site.patch
index d988c2f9b8..d988c2f9b8 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-site-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-site.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/zoltan-lib-1612.patch b/var/spack/repos/builtin/packages/openfoam-com/1612-zoltan-lib.patch
index 712e6a7dfd..712e6a7dfd 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/zoltan-lib-1612.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/1612-zoltan-lib.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/openfoam-site-plus.patch b/var/spack/repos/builtin/packages/openfoam-com/openfoam-site.patch
index a1f5d8a08a..a1f5d8a08a 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/openfoam-site-plus.patch
+++ b/var/spack/repos/builtin/packages/openfoam-com/openfoam-site.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-com/package.py b/var/spack/repos/builtin/packages/openfoam-com/package.py
index 9e930535a0..0e2c0275d3 100644
--- a/var/spack/repos/builtin/packages/openfoam-com/package.py
+++ b/var/spack/repos/builtin/packages/openfoam-com/package.py
@@ -54,6 +54,9 @@
# - Combining +zoltan with +int64 has not been tested, but probably won't work.
# - Combining +mgridgen with +int64 or +float32 probably won't work.
#
+# The spack 'develop' version of openfoam-com retains the upstream
+# WM_PROJECT_VERSION=plus naming internally.
+#
##############################################################################
from spack import *
from spack.environment import *
@@ -258,12 +261,14 @@ class OpenfoamCom(Package):
"""
homepage = "http://www.openfoam.com/"
- baseurl = "https://sourceforge.net/projects/openfoamplus/files"
+ baseurl = "https://sourceforge.net/projects/openfoamplus/files/"
+ gitrepo = "https://develop.openfoam.com/Development/OpenFOAM-plus.git"
+ version('1706', '630d30770f7b54d6809efbf94b7d7c8f',
+ url=baseurl + 'v1706/OpenFOAM-v1706.tgz')
version('1612', 'ca02c491369150ab127cbb88ec60fbdf',
- url=baseurl + '/v1612+/OpenFOAM-v1612+.tgz')
- version('plus', branch='develop', # Note: needs user credentials
- git='https://develop.openfoam.com/Development/OpenFOAM-plus.git')
+ url=baseurl + 'v1612+/OpenFOAM-v1612+.tgz')
+ version('develop', branch='develop', git=gitrepo) # Needs credentials
variant('int64', default=False,
description='Compile with 64-bit label')
@@ -309,27 +314,29 @@ class OpenfoamCom(Package):
# Workaround: use preferred variants "+plugins +qt" in
# ~/.spack/packages.yaml
+ # 1706 ok with newer paraview but avoid pv-5.2, pv-5.3 readers
+ depends_on('paraview@5.4:', when='@1706:+paraview')
# 1612 plugins need older paraview
- # The native reader in paraview 5.2 is broken, so start after that
depends_on('paraview@:5.0.1', when='@1612+paraview')
- depends_on('paraview@5.3:', when='@1706:+paraview')
- depends_on('paraview@5.3:', when='@plus+paraview')
# General patches
common = ['spack-Allwmake', 'README-spack']
assets = []
# Version-specific patches
- patch('openfoam-bin-1612.patch', when='@1612')
- patch('openfoam-etc-1612.patch', when='@1612')
- patch('openfoam-site-1612.patch', when='@1612')
- patch('openfoam-mpi-1612.patch', when='@1612')
- patch('openfoam-build-1612.patch', when='@1612')
- patch('mgridgen-lib-1612.patch', when='@1612')
- patch('scotch-metis-lib-1612.patch', when='@1612')
- patch('zoltan-lib-1612.patch', when='@1612')
-
- patch('openfoam-site-plus.patch', when='@plus')
+ patch('1612-bin.patch', when='@1612')
+ patch('1612-build.patch', when='@1612')
+ patch('1612-etc.patch', when='@1612')
+ patch('1612-site.patch', when='@1612')
+ patch('1612-mpi.patch', when='@1612')
+ patch('1612-mgridgen-lib.patch', when='@1612')
+ patch('1612-scotch-metis-lib.patch', when='@1612')
+ patch('1612-zoltan-lib.patch', when='@1612')
+
+ # This patch is reasonably version-invariant
+ # 1) default site directly under WM_PROJECT_DIR
+ # 2) no FOAM_EXT_LIBBIN required
+ patch('openfoam-site.patch', when='@1706:')
# Some user config settings
# default: 'compile-option': 'RpathOpt',
@@ -349,7 +356,7 @@ class OpenfoamCom(Package):
etc_config = {}
phases = ['configure', 'build', 'install']
- build_script = './spack-Allwmake' # <- Added by patch() method.
+ build_script = './spack-Allwmake' # From patch() method.
#
# - End of definitions / setup -
@@ -360,7 +367,6 @@ class OpenfoamCom(Package):
run_env.set('WM_PROJECT_DIR', self.projectdir)
for d in ['wmake', self.archbin]: # bin already added automatically
run_env.prepend_path('PATH', join_path(self.projectdir, d))
- run_env.set('MPI_BUFFER_SIZE', "20000000")
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
"""Provide location of the OpenFOAM project.
diff --git a/var/spack/repos/builtin/packages/openfoam-org/openfoam-etc-41.patch b/var/spack/repos/builtin/packages/openfoam-org/41-etc.patch
index 6fe3b7b4d3..6fe3b7b4d3 100644
--- a/var/spack/repos/builtin/packages/openfoam-org/openfoam-etc-41.patch
+++ b/var/spack/repos/builtin/packages/openfoam-org/41-etc.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-org/openfoam-site-41.patch b/var/spack/repos/builtin/packages/openfoam-org/41-site.patch
index d988c2f9b8..d988c2f9b8 100644
--- a/var/spack/repos/builtin/packages/openfoam-org/openfoam-site-41.patch
+++ b/var/spack/repos/builtin/packages/openfoam-org/41-site.patch
diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py
index a31cc2e210..98e1ba5602 100644
--- a/var/spack/repos/builtin/packages/openfoam-org/package.py
+++ b/var/spack/repos/builtin/packages/openfoam-org/package.py
@@ -79,7 +79,7 @@ class OpenfoamOrg(Package):
version('4.1', '318a446c4ae6366c7296b61184acd37c',
url=baseurl + '/OpenFOAM-4.x/archive/version-4.1.tar.gz')
- version('dev', git='https://github.com/OpenFOAM/OpenFOAM-dev.git')
+ version('develop', git='https://github.com/OpenFOAM/OpenFOAM-dev.git')
variant('int64', default=False,
description='Compile with 64-bit label')
@@ -103,8 +103,8 @@ class OpenfoamOrg(Package):
assets = ['bin/foamEtcFile']
# Version-specific patches
- patch('openfoam-etc-41.patch', when='@4.1')
- patch('openfoam-site-41.patch', when='@4.1')
+ patch('41-etc.patch', when='@4.1')
+ patch('41-site.patch', when='@4.1')
# Some user config settings
config = {
@@ -134,7 +134,6 @@ class OpenfoamOrg(Package):
run_env.set('WM_PROJECT_DIR', self.projectdir)
for d in ['wmake', self.archbin]: # bin already added automatically
run_env.prepend_path('PATH', join_path(self.projectdir, d))
- run_env.set('MPI_BUFFER_SIZE', "20000000")
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
"""Provide location of the OpenFOAM project.
diff --git a/var/spack/repos/builtin/packages/openmc/package.py b/var/spack/repos/builtin/packages/openmc/package.py
new file mode 100644
index 0000000000..aed4f4b0e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openmc/package.py
@@ -0,0 +1,91 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Openmc(MakefilePackage):
+ """The OpenMC project aims to provide a fully-featured Monte Carlo particle
+ transport code based on modern methods. It is a constructive solid
+ geometry, continuous-energy transport code that uses ACE format cross
+ sections. The project started under the Computational Reactor Physics
+ Group at MIT."""
+
+ homepage = "https://github.com/ANL-CESAR/"
+ url = "https://github.com/ANL-CESAR/openmc.git"
+
+ tags = ['proxy-app']
+
+ version('develop', git='https://github.com/ANL-CESAR/openmc.git')
+
+ build_directory = 'src'
+
+ parallel = False
+
+ @property
+ def build_targets(self):
+
+ targets = []
+
+ if self.compiler.name == 'gcc':
+ targets.append('COMPILER=gnu')
+ targets.append('MACHINE=UNKNOWN')
+ if self.compiler.name == 'intel':
+ targets.append('COMPILER=intel')
+ if self.compiler.name == 'pgi':
+ targets.append('COMPILER=pgi')
+ if self.compiler.name == 'xl':
+ targets.append('COMPILER=ibm')
+ if self.compiler.name == 'cce':
+ targets.append('COMPILER=cray')
+
+ return targets
+
+ def install(self, spec, prefix):
+ with working_dir('src'):
+ pth_st_cmp = join_path(prefix.bin, 'statepoint_cmp')
+ pth_st_histogram = join_path(prefix.bin, 'statepoint_histogram')
+ pth_st_meshpoint = join_path(prefix.bin, 'statepoint_meshpoint')
+ pth_openmc = join_path(prefix, 'share/man/man1/openmc.1')
+ pth_copyright = join_path(prefix, 'share/doc/openmc/copyright')
+ mkdir(prefix.bin)
+ mkdirp(pth_st_cmp)
+ mkdirp(pth_st_histogram)
+ mkdirp(pth_st_meshpoint)
+ mkdirp(pth_openmc)
+ mkdirp(pth_copyright)
+
+ install('openmc', prefix.bin)
+ install('utils/statepoint_cmp.py', pth_st_cmp)
+ install('utils/statepoint_histogram.py',
+ pth_st_histogram)
+ install('utils/statepoint_meshplot.py',
+ pth_st_meshpoint)
+ install('man/man1/openmc.1', pth_openmc)
+ install('LICENSE', pth_copyright)
+ install_tree('docs/', prefix.docs)
+ install_tree('examples/', prefix.examples)
+ install_tree('data/', prefix.data)
+ install_tree('tests/', prefix.tests)
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index e685cfce88..7fc50928db 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -52,6 +52,18 @@ def _verbs_dir():
return None
+def _mxm_dir():
+ """Look for default directory where the Mellanox package is
+ installed. Return None if not found.
+ """
+ # Only using default directory; make this more flexible in the future
+ path = "/opt/mellanox/mxm"
+ if os.path.isdir(path):
+ return path
+ else:
+ return None
+
+
class Openmpi(AutotoolsPackage):
"""The Open MPI Project is an open source Message Passing Interface
implementation that is developed and maintained by a consortium
@@ -189,7 +201,7 @@ class Openmpi(AutotoolsPackage):
depends_on('hwloc')
depends_on('hwloc +cuda', when='+cuda')
- depends_on('jdk', when='+java')
+ depends_on('java', when='+java')
depends_on('sqlite', when='+sqlite3@:1.11')
conflicts('+cuda', when='@:1.6') # CUDA support was added in 1.7
@@ -198,8 +210,8 @@ class Openmpi(AutotoolsPackage):
conflicts('fabrics=mxm', when='@:1.5.3') # MXM support was added in 1.5.4
def url_for_version(self, version):
- return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (
- version.up_to(2), version)
+ url = "http://www.open-mpi.org/software/ompi/v{0}/downloads/openmpi-{1}.tar.bz2"
+ return url.format(version.up_to(2), version)
@property
def libs(self):
@@ -251,6 +263,17 @@ class Openmpi(AutotoolsPackage):
line += '={0}'.format(path)
return line
+ def with_or_without_mxm(self, activated):
+ opt = 'mxm'
+ # If the option has not been activated return --without-mxm
+ if not activated:
+ return '--without-{0}'.format(opt)
+ line = '--with-{0}'.format(opt)
+ path = _mxm_dir()
+ if (path is not None):
+ line += '={0}'.format(path)
+ return line
+
@run_before('autoreconf')
def die_without_fortran(self):
# Until we can pass variants such as +fortran through virtual
@@ -285,7 +308,7 @@ class Openmpi(AutotoolsPackage):
config_args.extend([
'--enable-java',
'--enable-mpi-java',
- '--with-jdk-dir={0}'.format(spec['jdk'].prefix)
+ '--with-jdk-dir={0}'.format(spec['java'].prefix)
])
else:
config_args.extend([
diff --git a/var/spack/repos/builtin/packages/openscenegraph/package.py b/var/spack/repos/builtin/packages/openscenegraph/package.py
index 28a7187da8..e90d010e83 100644
--- a/var/spack/repos/builtin/packages/openscenegraph/package.py
+++ b/var/spack/repos/builtin/packages/openscenegraph/package.py
@@ -26,7 +26,7 @@
from spack import *
-class Openscenegraph(Package):
+class Openscenegraph(CMakePackage):
"""OpenSceneGraph is an open source, high performance 3D graphics toolkit
that's used in a variety of visual simulation applications."""
@@ -36,42 +36,34 @@ class Openscenegraph(Package):
version('3.2.3', '02ffdad7744c747d8fad0d7babb58427')
version('3.1.5', '1c90b851b109849c985006486ef59822')
- variant('debug', default=False, description='Builds a debug version of the library')
variant('shared', default=True, description='Builds a shared version of the library')
depends_on('cmake@2.8.7:', type='build')
depends_on('qt@4:')
depends_on('zlib')
- def install(self, spec, prefix):
- build_type = 'Debug' if '+debug' in spec else 'Release'
+ def cmake_args(self):
+ spec = self.spec
+
shared_status = 'ON' if '+shared' in spec else 'OFF'
- cmake_args = std_cmake_args[:]
- cmake_args.extend([
- '-DCMAKE_BUILD_TYPE={0}'.format(build_type),
+ args = [
'-DDYNAMIC_OPENSCENEGRAPH={0}'.format(shared_status),
'-DDYNAMIC_OPENTHREADS={0}'.format(shared_status),
- ])
+ '-DZLIB_INCLUDE_DIR={0}'.format(spec['zlib'].prefix.include),
+ '-DZLIB_LIBRARY={0}/libz.{1}'.format(spec['zlib'].prefix.lib,
+ dso_suffix),
+ '-DBUILD_OSG_APPLICATIONS=OFF',
+ '-DOSG_NOTIFY_DISABLED=ON',
+ '-DLIB_POSTFIX=',
+ ]
# NOTE: This is necessary in order to allow OpenSceneGraph to compile
# despite containing a number of implicit bool to int conversions.
if spec.satisfies('%gcc'):
- cmake_args.extend([
+ args.extend([
'-DCMAKE_C_FLAGS=-fpermissive',
'-DCMAKE_CXX_FLAGS=-fpermissive',
])
- with working_dir('spack-build', create=True):
- cmake(
- '..',
- '-DZLIB_INCLUDE_DIR={0}'.format(spec['zlib'].prefix.include),
- '-DZLIB_LIBRARY={0}/libz.{1}'.format(spec['zlib'].prefix.lib,
- dso_suffix),
- '-DBUILD_OSG_APPLICATIONS=OFF',
- '-DOSG_NOTIFY_DISABLED=ON',
- '-DLIB_POSTFIX=',
- *cmake_args
- )
- make()
- make('install')
+ return args
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index 7b1c66e5d1..1b71e44346 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
#
# This file is part of Spack.
@@ -23,7 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##############################################################################
-# Copyright (c) 2015-2016 Krell Institute. All Rights Reserved.
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
@@ -45,7 +45,7 @@ import os
import os.path
-class Openspeedshop(Package):
+class Openspeedshop(CMakePackage):
"""OpenSpeedShop is a community effort by The Krell Institute with
current direct funding from DOEs NNSA. It builds on top of a
broad list of community infrastructures, most notably Dyninst
@@ -61,17 +61,11 @@ class Openspeedshop(Package):
homepage = "http://www.openspeedshop.org"
url = "https://github.com/OpenSpeedShop"
- version('2.2', '16cb051179c2038de4e8a845edf1d573')
+
# Use when the git repository is available
version('2.3', branch='master',
git='https://github.com/OpenSpeedShop/openspeedshop.git')
- # Optional mirror template
- # url = "file:/home/jeg/OpenSpeedShop_ROOT/SOURCES/openspeedshop-2.3.tar.gz"
- # version('2.3', '517a7798507241ad8abd8b0626a4d2cf')
-
- parallel = False
-
variant('offline', default=False,
description="build with offline instrumentor enabled.")
variant('cbtf', default=True,
@@ -83,11 +77,13 @@ class Openspeedshop(Package):
to point to target build.")
variant('cuda', default=False,
description="build with cuda packages included.")
- variant('ptgf', default=False,
- description="build with the PTGF based gui package enabled.")
- variant('rtfe', default=False,
- description="build for clusters heterogeneous processors \
- on fe/be nodes.")
+
+ variant('gui', default='qt3', values=('none', 'qt3', 'qt4'),
+ description='Build or not build a GUI of choice'
+ )
+
+ variant('build_type', default='None', values=('None'),
+ description='CMake build type')
# MPI variants
variant('openmpi', default=False,
@@ -112,18 +108,19 @@ class Openspeedshop(Package):
depends_on("cmake@3.0.2:", type='build')
# Dependencies for openspeedshop that are common to all
# the variants of the OpenSpeedShop build
+ depends_on("libtool", type='build')
depends_on("bison", type='build')
depends_on("flex", type='build')
- depends_on("binutils@2.24+krellpatch", type='build')
- # TODO: when using dyninst@9.3.0:, we will need to use elf
- # depends_on("elf", type="link")
- depends_on("libelf")
+ depends_on("binutils", type='build')
+ depends_on("elf", type="link")
depends_on("libdwarf")
depends_on("sqlite")
depends_on("boost@1.50.0:1.59.0")
- depends_on("dyninst@9.2.0")
+ depends_on("dyninst@9.3.2")
depends_on("libxml2+python")
- depends_on("qt@3.3.8b+krellpatch")
+ depends_on("qt@3.3.8b+krellpatch", when='gui=qt3')
+ # Actively working on adding this gui package
+ # depends_on("cbtf-argonavis-gui", when='gui=qt4')
# Dependencies only for the openspeedshop offline package.
depends_on("libunwind", when='+offline')
@@ -138,30 +135,101 @@ class Openspeedshop(Package):
# Dependencies only for the openspeedshop cbtf package.
depends_on("cbtf", when='+cbtf')
- depends_on("cbtf-krell", when='+cbtf')
+ depends_on('cbtf-krell', when='+cbtf')
+ depends_on('cbtf-krell+mpich', when='+cbtf+mpich')
+ depends_on('cbtf-krell+mpich2', when='+cbtf+mpich2')
+ depends_on('cbtf-krell+mpt', when='+cbtf+mpt')
+ depends_on('cbtf-krell+mvapich', when='+cbtf+mvapich')
+ depends_on('cbtf-krell+mvapich2', when='+cbtf+mvapich2')
+ depends_on('cbtf-krell+openmpi', when='+cbtf+openmpi')
depends_on("cbtf-argonavis", when='+cbtf+cuda')
depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf')
- def adjustBuildTypeParams_cmakeOptions(self, spec, cmakeOptions):
- # Sets build type parameters into cmakeOptions the
- # options that will enable the cbtf-krell built type settings
+ parallel = False
+ build_directory = 'build_openspeedshop'
+
+ def cmake_args(self):
+ spec = self.spec
compile_flags = "-O2 -g"
- BuildTypeOptions = []
- # Set CMAKE_BUILD_TYPE to what cbtf-krell wants it
- # to be, not the stdcmakeargs
- for word in cmakeOptions[:]:
- if word.startswith('-DCMAKE_BUILD_TYPE'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_CXX_FLAGS'):
- cmakeOptions.remove(word)
- if word.startswith('-DCMAKE_C_FLAGS'):
- cmakeOptions.remove(word)
- BuildTypeOptions.extend(['-DCMAKE_BUILD_TYPE=None',
- '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
- '-DCMAKE_C_FLAGS=%s' % compile_flags])
-
- cmakeOptions.extend(BuildTypeOptions)
+
+ if '+offline' in spec:
+ # Indicate building offline vers (writes rawdata files)
+ instrumentor_setting = "offline"
+ if '+runtime' in spec:
+ cmake_args = [
+ '-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s' % spec['papi'].prefix]
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmake_args)
+
+ else:
+ cmake_args = []
+
+ # Appends base options to cmake_args
+ self.set_defaultbase_cmakeOptions(spec, cmake_args)
+
+ cmake_args.extend(
+ ['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
+ '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
+ '-DPAPI_DIR=%s' % spec['papi'].prefix,
+ '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
+ '-DQTLIB_DIR=%s' % spec['qt'].prefix])
+
+ # Add any MPI implementations coming from variant settings
+ self.set_mpi_cmakeOptions(spec, cmake_args)
+
+ elif '+cbtf' in spec:
+ # Indicate building cbtf vers (transfer rawdata files)
+ instrumentor_setting = "cbtf"
+
+ if '+runtime' in spec:
+ # Appends base options to cmake_args
+ self.set_defaultbase_cmakeOptions(spec, cmake_args)
+
+ cmake_args.extend(
+ ['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+
+ else:
+ cmake_args = []
+
+ # Appends base options to cmake_args
+ self.set_defaultbase_cmakeOptions(spec, cmake_args)
+ guitype = self.spec.variants['gui'].value
+ cmake_args.extend(
+ ['-DCMAKE_CXX_FLAGS=%s' % compile_flags,
+ '-DCMAKE_C_FLAGS=%s' % compile_flags,
+ '-DINSTRUMENTOR=%s' % instrumentor_setting,
+ '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix,
+ '-DCBTF_DIR=%s' % spec['cbtf'].prefix,
+ '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix,
+ '-DMRNET_DIR=%s' % spec['mrnet'].prefix])
+
+ if guitype == 'none':
+ cmake_args.extend(
+ ['-DBUILD_QT3_GUI=FALSE'])
+ elif guitype == 'qt4':
+ cmake_args.extend(
+ ['-DBUILD_QT3_GUI=FALSE'])
+ elif guitype == 'qt3':
+ cmake_args.extend(
+ ['-DQTLIB_DIR=%s'
+ % spec['qt'].prefix])
+
+ return cmake_args
def set_defaultbase_cmakeOptions(self, spec, cmakeOptions):
# Appends to cmakeOptions the options that will enable
@@ -174,7 +242,7 @@ class Openspeedshop(Package):
BaseOptions = []
BaseOptions.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix)
- BaseOptions.append('-DLIBELF_DIR=%s' % spec['libelf'].prefix)
+ BaseOptions.append('-DLIBELF_DIR=%s' % spec['elf'].prefix)
BaseOptions.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix)
BaseOptions.append('-DPYTHON_EXECUTABLE=%s' % python_exe)
BaseOptions.append('-DPYTHON_INCLUDE_DIR=%s' % python_include)
@@ -273,144 +341,3 @@ class Openspeedshop(Package):
run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2')
if '+openmpi' in self.spec:
run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi')
-
- def install(self, spec, prefix):
-
- if '+offline' in spec:
- instrumentor_setting = "offline"
- if '+runtime' in spec:
- with working_dir('build_runtime', create=True):
-
- cmakeOptions = []
- cmakeOptions.extend([
- '-DCMAKE_INSTALL_PREFIX=%s' % prefix,
- '-DINSTRUMENTOR=%s' % instrumentor_setting,
- '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s' % spec['papi'].prefix])
-
- # Add any MPI implementations coming from variant settings
- self.set_mpi_cmakeOptions(spec, cmakeOptions)
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the build options to the favored
- # ones for this build
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
- else:
- cmake_prefix_path = join_path(spec['dyninst'].prefix)
- with working_dir('build', create=True):
- cmakeOptions = []
-
- # Appends base options to cmakeOptions
- self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
-
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s'
- % prefix,
- '-DCMAKE_PREFIX_PATH=%s'
- % cmake_prefix_path,
- '-DINSTRUMENTOR=%s'
- % instrumentor_setting,
- '-DLIBMONITOR_DIR=%s'
- % spec['libmonitor'].prefix,
- '-DLIBUNWIND_DIR=%s'
- % spec['libunwind'].prefix,
- '-DPAPI_DIR=%s'
- % spec['papi'].prefix,
- '-DSQLITE3_DIR=%s'
- % spec['sqlite'].prefix,
- '-DQTLIB_DIR=%s'
- % spec['qt'].prefix])
-
- # Add any MPI implementations coming from variant settings
- self.set_mpi_cmakeOptions(spec, cmakeOptions)
- cmakeOptions.extend(std_cmake_args)
-
- # Adjust the build options to the favored
- # ones for this build
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
-
- elif '+cbtf' in spec:
- instrumentor_setting = "cbtf"
- # resolve_symbols = "symtabapi"
- cmake_prefix_path = join_path(spec['cbtf'].prefix) \
- + ':' + join_path(spec['cbtf-krell'].prefix)\
- + ':' + join_path(spec['dyninst'].prefix)
-
- if '+runtime' in spec:
- with working_dir('build_cbtf_runtime', create=True):
- cmakeOptions = []
-
- # Appends base options to cmakeOptions
- self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
-
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s'
- % prefix,
- '-DCMAKE_PREFIX_PATH=%s'
- % cmake_prefix_path,
- '-DINSTRUMENTOR=%s'
- % instrumentor_setting,
- '-DCBTF_DIR=%s'
- % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s'
- % spec['cbtf-krell'].prefix,
- '-DMRNET_DIR=%s'
- % spec['mrnet'].prefix])
-
- # Adjust the build options to the
- # favored ones for this build
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
-
- else:
- with working_dir('build_cbtf', create=True):
- cmakeOptions = []
-
- # Appends base options to cmakeOptions
- self.set_defaultbase_cmakeOptions(spec, cmakeOptions)
-
- cmakeOptions.extend(
- ['-DCMAKE_INSTALL_PREFIX=%s'
- % prefix,
- '-DCMAKE_PREFIX_PATH=%s'
- % cmake_prefix_path,
- '-DINSTRUMENTOR=%s'
- % instrumentor_setting,
- '-DSQLITE3_DIR=%s'
- % spec['sqlite'].prefix,
- '-DCBTF_DIR=%s'
- % spec['cbtf'].prefix,
- '-DCBTF_KRELL_DIR=%s'
- % spec['cbtf-krell'].prefix,
- '-DQTLIB_DIR=%s'
- % spec['qt'].prefix,
- '-DMRNET_DIR=%s'
- % spec['mrnet'].prefix])
-
- # Adjust the build options to the favored
- # ones for this build
- self.adjustBuildTypeParams_cmakeOptions(spec, cmakeOptions)
-
- cmake('..', *cmakeOptions)
-
- make("clean")
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/orfm/package.py b/var/spack/repos/builtin/packages/orfm/package.py
new file mode 100644
index 0000000000..11ff3c4c7b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/orfm/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Orfm(AutotoolsPackage):
+ """A simple and not slow open reading frame (ORF) caller. No bells or
+ whistles like frameshift detection, just a straightforward goal of
+ returning a FASTA file of open reading frames over a certain length
+ from a FASTA/Q file of nucleotide sequences."""
+
+ homepage = "https://github.com/wwood/OrfM"
+ url = "https://github.com/wwood/OrfM/releases/download/v0.7.1/orfm-0.7.1.tar.gz"
+
+ version('0.7.1', 'fcf18283a028cea2af90663a76a73a2a')
diff --git a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
index 44c396e508..f6d49d74e7 100644
--- a/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
+++ b/var/spack/repos/builtin/packages/osu-micro-benchmarks/package.py
@@ -23,6 +23,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
+import sys
class OsuMicroBenchmarks(Package):
@@ -46,7 +47,6 @@ class OsuMicroBenchmarks(Package):
config_args = [
'CC=%s' % spec['mpi'].prefix.bin + '/mpicc',
'CXX=%s' % spec['mpi'].prefix.bin + '/mpicxx',
- 'LDFLAGS=-lrt',
'--prefix=%s' % prefix
]
@@ -56,6 +56,10 @@ class OsuMicroBenchmarks(Package):
'--with-cuda=%s' % spec['cuda'].prefix,
])
+ # librt not available on darwin (and not required)
+ if not sys.platform == 'darwin':
+ config_args.append('LDFLAGS=-lrt')
+
configure(*config_args)
make()
diff --git a/var/spack/repos/builtin/packages/otf2/package.py b/var/spack/repos/builtin/packages/otf2/package.py
index 5b78ae935b..cd338f06c6 100644
--- a/var/spack/repos/builtin/packages/otf2/package.py
+++ b/var/spack/repos/builtin/packages/otf2/package.py
@@ -34,6 +34,7 @@ class Otf2(AutotoolsPackage):
homepage = "http://www.vi-hps.org/projects/score-p"
url = "http://www.vi-hps.org/upload/packages/otf2/otf2-1.4.tar.gz"
+ version('2.1', 'e2994e53d9b7c2cbd0c4f564d638751e')
version('2.0', '5b546188b25bc1c4e285e06dddf75dfc')
version('1.5.1', '16a9df46e0da78e374f5d12c8cdc1109')
version('1.4', 'a23c42e936eb9209c4e08b61c3cf5092')
@@ -41,4 +42,8 @@ class Otf2(AutotoolsPackage):
version('1.2.1', '8fb3e11fb7489896596ae2c7c83d7fc8')
def configure_args(self):
- return ["--enable-shared", "CFLAGS=-fPIC", "CXXFLAGS=-fPIC"]
+ return [
+ '--enable-shared',
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
+ 'CXXFLAGS={0}'.format(self.compiler.pic_flag)
+ ]
diff --git a/var/spack/repos/builtin/packages/pacbio-daligner/package.py b/var/spack/repos/builtin/packages/pacbio-daligner/package.py
new file mode 100644
index 0000000000..695c4717f7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacbio-daligner/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PacbioDaligner(MakefilePackage):
+ """Daligner: The Dazzler "Overlap" Module. This is a special fork
+ required for some pacbio utilities."""
+
+ homepage = "https://github.com/PacificBiosciences/DALIGNER"
+ url = "https://github.com/PacificBiosciences/DALIGNER"
+
+ version('2017-08-05',
+ git='https://github.com/PacificBiosciences/DALIGNER.git',
+ commit='0fe5240d2cc6b55bf9e04465b700b76110749c9d')
+
+ depends_on('gmake', type='build')
+ depends_on('pacbio-dazz-db')
+
+ def edit(self, spec, prefix):
+ mkdir(prefix.bin)
+ makefile = FileFilter('Makefile')
+ makefile.filter('DEST_DIR\s*=\s*~/bin', 'DEST_DIR = ' + prefix.bin)
+ gmf = FileFilter('GNUmakefile')
+ gmf.filter('rsync\s*-av\s*\$\{ALL\}\s*\$\{PREFIX\}/bin',
+ 'cp ${ALL} ' + prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pacbio-damasker/package.py b/var/spack/repos/builtin/packages/pacbio-damasker/package.py
new file mode 100644
index 0000000000..b2415fd340
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacbio-damasker/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PacbioDamasker(MakefilePackage):
+ """Damasker: The Dazzler Repeat Masking Suite. This is a special fork
+ required for some pacbio utilities."""
+
+ homepage = "https://github.com/PacificBiosciences/DAMASKER"
+ url = "https://github.com/PacificBiosciences/DAMASKER"
+
+ version('2017-02-11',
+ git='https://github.com/PacificBiosciences/DAMASKER.git',
+ commit='144244b77d52cb785cb1b3b8ae3ab6f3f0c63264')
+
+ depends_on('gmake', type='build')
+
+ def edit(self, spec, prefix):
+ mkdirp(prefix.bin)
+ makefile = FileFilter('Makefile')
+ makefile.filter('DEST_DIR\s*=\s*~/bin', 'DEST_DIR = ' + prefix.bin)
+ gmf = FileFilter('GNUmakefile')
+ gmf.filter('rsync\s*-av\s*\$\{ALL\}\s*\$\{PREFIX\}/bin',
+ 'cp ${ALL} ' + prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py b/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py
new file mode 100644
index 0000000000..1223c25f37
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacbio-dazz-db/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class PacbioDazzDb(MakefilePackage):
+ """The Dazzler Database Library. This version is a special fork
+ required for some pacbio utilities."""
+
+ homepage = "https://github.com/PacificBiosciences/DAZZ_DB"
+ url = "https://github.com/PacificBiosciences/DAZZ_DB"
+
+ version('2017-04-10',
+ git='https://github.com/PacificBiosciences/DAZZ_DB.git',
+ commit='f29d27d51f460563481cd227d17f4bdc5e288365')
+
+ depends_on('gmake', type='build')
+
+ def edit(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.lib)
+ mkdirp(prefix.include)
+ makefile = FileFilter('Makefile')
+ makefile.filter('DEST_DIR\s*=\s*~/bin', 'DEST_DIR = ' + prefix.bin)
+ gmf = FileFilter('GNUmakefile')
+ gmf.filter('rsync\s*-av\s*\$\{ALL\}\s*\$\{PREFIX\}/bin',
+ 'cp ${ALL} ' + prefix.bin)
+ gmf.filter('rsync\s*-av\s*libdazzdb.*\s*\$\{PREFIX\}/lib',
+ 'cp libdazzdb.* ' + prefix.lib)
+ gmf.filter(('rsync\s*-av\s*\$\(wildcard\s*\$\{THISDIR\}/\*.h'
+ '\)\s*\$\{PREFIX\}/include'),
+ 'cp *.h ' + prefix.include)
diff --git a/var/spack/repos/builtin/packages/pacbio-dextractor/package.py b/var/spack/repos/builtin/packages/pacbio-dextractor/package.py
new file mode 100644
index 0000000000..91a4e6f330
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pacbio-dextractor/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PacbioDextractor(MakefilePackage):
+ """The Dextractor and Compression Command Library. This is a special
+ fork required by some pacbio utilities."""
+
+ homepage = "https://github.com/PacificBiosciences/DEXTRACTOR"
+ url = "https://github.com/PacificBiosciences/DEXTRACTOR"
+
+ version('2016-08-09',
+ git='https://github.com/PacificBiosciences/DEXTRACTOR.git',
+ commit='89726800346d0bed15d98dcc577f4c7733aab4b1')
+
+ depends_on('hdf5')
+ depends_on('gmake', type='build')
+
+ def edit(self, spec, prefix):
+ mkdirp(prefix.bin)
+ makefile = FileFilter('Makefile')
+ makefile.filter('PATH_HDF5\s*=\s*/sw/apps/hdf5/current',
+ 'PATH_HDF5 = ' + spec['hdf5'].prefix)
+ makefile.filter('PATH_HDF5\*s=\s*/usr/local/hdf5', '')
+ makefile.filter('DEST_DIR\s*=\s*~/bin', 'DEST_DIR = ' + prefix.bin)
+ gmf = FileFilter('GNUmakefile')
+ gmf.filter('rsync\s*-av\s*\$\{ALL\}\s*\$\{PREFIX\}/bin',
+ 'cp ${ALL} ' + prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pagit/package.py b/var/spack/repos/builtin/packages/pagit/package.py
new file mode 100644
index 0000000000..2e41d83da3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pagit/package.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pagit(Package):
+ """PAGIT addresses the need for software to generate high quality draft
+ genomes."""
+
+ homepage = "http://www.sanger.ac.uk/science/tools/pagit"
+ url = "ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V1.01.64bit.tgz"
+
+ version('1.01', '2c4e8512c8c02073146b50b328962e9d')
+
+ depends_on('java', type=('build', 'run'))
+ depends_on('perl', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ url = 'ftp://ftp.sanger.ac.uk/pub/resources/software/pagit/PAGIT.V{0}.64bit.tgz'
+ return url.format(version)
+
+ def install(self, spec, prefix):
+ with working_dir('PAGIT'):
+ install_tree('ABACAS', prefix.ABACAS)
+ install_tree('bin', prefix.bin)
+ install_tree('ICORN', prefix.ICORN)
+ install_tree('IMAGE', prefix.IMAGE)
+ install_tree('lib', prefix.lib)
+ install_tree('RATT', prefix.RATT)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('PAGIT_HOME', self.prefix)
+ run_env.set('PILEUP_HOME', join_path(self.prefix.bin, 'pileup_v0.5'))
+ run_env.set('ICORN_HOME', self.prefix.icorn)
+ run_env.set('SNPOMATIC_HOME', self.prefix.bin)
+ run_env.set('RATT_HOME', self.prefix.RATT)
+ run_env.set('RATT_CONFIG', join_path(self.prefix.RATT, 'RATT_config'))
+ run_env.prepend_path('PATH', join_path(self.prefix.bin, 'pileup_v0.5',
+ 'ssaha2'))
+ run_env.prepend_path('PATH', join_path(self.prefix.bin,
+ 'pileup_v0.5'))
+ run_env.prepend_path('PATH', self.prefix.IMAGE)
+ run_env.prepend_path('PATH', self.prefix.ABACAS)
+ run_env.prepend_path('PATH', self.prefix.ICORN)
+ run_env.prepend_path('PATH', self.prefix.RATT)
+ run_env.prepend_path('PERL5LIB', self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/paml/package.py b/var/spack/repos/builtin/packages/paml/package.py
new file mode 100644
index 0000000000..693d2b808b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/paml/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Paml(MakefilePackage):
+ """PAML is a package of programs for phylogenetic analyses of DNA or
+ protein sewuences using maximum likelihood."""
+
+ homepage = "http://abacus.gene.ucl.ac.uk/software/paml.html"
+ url = "http://abacus.gene.ucl.ac.uk/software/paml4.9e.tgz"
+
+ version('4.9e', 'ac5a062bfea1f4eaac79008434030acf')
+
+ build_directory = 'src'
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir(self.build_directory):
+ install('baseml', prefix.bin)
+ install('basemlg', prefix.bin)
+ install('chi2', prefix.bin)
+ install('codeml', prefix.bin)
+ install('evolver', prefix.bin)
+ install('infinitesites', prefix.bin)
+ install('mcmctree', prefix.bin)
+ install('pamp', prefix.bin)
+ install('yn00', prefix.bin)
+ install_tree('dat', prefix.dat)
+ install_tree('Technical', prefix.Technical)
diff --git a/var/spack/repos/builtin/packages/panda/package.py b/var/spack/repos/builtin/packages/panda/package.py
index 7e5f7710d2..5c905fb2d3 100644
--- a/var/spack/repos/builtin/packages/panda/package.py
+++ b/var/spack/repos/builtin/packages/panda/package.py
@@ -26,7 +26,7 @@
from spack import *
-class Panda(Package):
+class Panda(CMakePackage):
"""PANDA: Parallel AdjaceNcy Decomposition Algorithm"""
homepage = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/index.html"
url = "http://comopt.ifi.uni-heidelberg.de/software/PANDA/downloads/panda-2016-03-07.tar"
@@ -35,11 +35,5 @@ class Panda(Package):
# Note: Panda can also be built without MPI support
- depends_on("cmake", type="build")
- depends_on("mpi")
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake("..", *std_cmake_args)
- make()
- make("install")
+ depends_on('cmake@2.6.4:', type='build')
+ depends_on('mpi')
diff --git a/var/spack/repos/builtin/packages/paradiseo/package.py b/var/spack/repos/builtin/packages/paradiseo/package.py
index 4b9bad0f3e..fbcf8ca5e5 100644
--- a/var/spack/repos/builtin/packages/paradiseo/package.py
+++ b/var/spack/repos/builtin/packages/paradiseo/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Paradiseo(Package):
+class Paradiseo(CMakePackage):
"""A C++ white-box object-oriented framework dedicated to the reusable
design of metaheuristics."""
homepage = "http://paradiseo.gforge.inria.fr/"
@@ -51,13 +51,11 @@ class Paradiseo(Package):
description='Compile with (Experimental) EDO module')
# variant('doc', default=False, description='Compile with documentation')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('openmp', default=False, description='Enable OpenMP support')
variant('gnuplot', default=False, description='Enable GnuPlot support')
# Required dependencies
- depends_on("cmake", type='build')
+ depends_on("cmake@2.8:", type='build')
# Optional dependencies
depends_on("mpi", when="+mpi")
@@ -73,13 +71,10 @@ class Paradiseo(Package):
patch('fix_tests.patch')
patch('fix_tutorials.patch')
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
+ def cmake_args(self):
+ spec = self.spec
- options.extend([
- '-DCMAKE_BUILD_TYPE:STRING=%s' % (
- 'Debug' if '+debug' in spec else 'Release'),
+ return [
'-DINSTALL_TYPE:STRING=MIN',
'-DMPI:BOOL=%s' % ('TRUE' if '+mpi' in spec else 'FALSE'),
# Note: This requires a C++11 compatible compiler
@@ -91,14 +86,4 @@ class Paradiseo(Package):
'TRUE' if '+openmp' in spec else 'FALSE'),
'-DENABLE_GNUPLOT:BOOL=%s' % (
'TRUE' if '+gnuplot' in spec else 'FALSE')
- ])
-
- with working_dir('spack-build', create=True):
- # Configure
- cmake('..', *options)
-
- # Build, test and install
- make("VERBOSE=1")
- if self.run_tests:
- make("test")
- make("install")
+ ]
diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
index 6d22217440..757a336dd9 100644
--- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py
@@ -40,7 +40,7 @@ class ParallelNetcdf(AutotoolsPackage):
variant('cxx', default=True, description='Build the C++ Interface')
variant('fortran', default=True, description='Build the Fortran Interface')
- variant('fpic', default=True,
+ variant('pic', default=True,
description='Produce position-independent code (for shared libs)')
depends_on('mpi')
@@ -53,12 +53,18 @@ class ParallelNetcdf(AutotoolsPackage):
spec = self.spec
args = ['--with-mpi={0}'.format(spec['mpi'].prefix)]
- args.append('SEQ_CC=%s' % spack_cc)
+ args.append('SEQ_CC={0}'.format(spack_cc))
+
+ if '+pic' in spec:
+ args.extend([
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
+ 'CXXFLAGS={0}'.format(self.compiler.pic_flag),
+ 'FFLAGS={0}'.format(self.compiler.pic_flag)
+ ])
- if '+fpic' in spec:
- args.extend(['CFLAGS=-fPIC', 'CXXFLAGS=-fPIC', 'FFLAGS=-fPIC'])
if '~cxx' in spec:
args.append('--disable-cxx')
+
if '~fortran' in spec:
args.append('--disable-fortran')
diff --git a/var/spack/repos/builtin/packages/parmgridgen/package.py b/var/spack/repos/builtin/packages/parmgridgen/package.py
index 50eca81053..8630a139ec 100644
--- a/var/spack/repos/builtin/packages/parmgridgen/package.py
+++ b/var/spack/repos/builtin/packages/parmgridgen/package.py
@@ -47,8 +47,8 @@ class Parmgridgen(Package):
def install(self, spec, prefix):
make_opts = [
'make=make',
- 'COPTIONS=-fPIC',
- 'LDOPTIONS=-fPIC',
+ 'COPTIONS={0}'.format(self.compiler.pic_flag),
+ 'LDOPTIONS={0}'.format(self.compiler.pic_flag),
'CC={0}'.format(self.compiler.cc),
'LD={0}'.format(self.compiler.cc),
'LIBDIR=-L../..',
diff --git a/var/spack/repos/builtin/packages/parsimonator/package.py b/var/spack/repos/builtin/packages/parsimonator/package.py
new file mode 100644
index 0000000000..5b979f23e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parsimonator/package.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Parsimonator(MakefilePackage):
+ """Parsimonator is a no-frills light-weight implementation for building
+ starting trees under parsimony for RAxML"""
+
+ homepage = "http://www.exelixis-lab.org/"
+ url = "https://github.com/stamatak/Parsimonator-1.0.2"
+
+ version('1.0.2', git='https://github.com/stamatak/Parsimonator-1.0.2.git', commit='78368c6ab1e9adc7e9c6ec9256dd7ff2a5bb1b0a')
+
+ variant('sse', default=True, description='Enable SSE in order to substantially speed up execution')
+ variant('avx', default=False, description='Enable AVX in order to substantially speed up execution')
+
+ conflicts('+avx', when='+sse')
+
+ @property
+ def makefile_file(self):
+ if '+sse' in self.spec:
+ return 'Makefile.SSE3.gcc'
+ elif '+avx' in self.spec:
+ return 'Makefile.AVX.gcc'
+ else:
+ return 'Makefile.gcc'
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter(self.makefile_file)
+ makefile.filter('CC = gcc', 'CC = %s' % spack_cc)
+
+ def build(self, spec, prefix):
+ make('-f', self.makefile_file)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ if '+sse' in spec:
+ install('parsimonator-SSE3', prefix.bin)
+ elif '+avx' in spec:
+ install('parsimonator-AVX', prefix.bin)
+ else:
+ install('parsimonator', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/partitionfinder/package.py b/var/spack/repos/builtin/packages/partitionfinder/package.py
new file mode 100644
index 0000000000..523550a64b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/partitionfinder/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Partitionfinder(Package):
+ """PartitionFinder is free open source software to select best-fit
+ partitioning schemes and models of molecular evolution for
+ phylogenetic analyses."""
+
+ homepage = "https://github.com/brettc/partitionfinder"
+ url = "https://github.com/brettc/partitionfinder/archive/v2.1.1.tar.gz"
+
+ version('2.1.1', 'b1b6539f93146c69b967cf92459ae28a')
+
+ depends_on('python@2.7.10:2.999', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-pytables', type=('build', 'run'))
+ depends_on('py-pyparsing', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install_tree('partfinder', prefix.partfinder)
+ install_tree('timings', prefix.timings)
+ install('PartitionFinderMorphology.py', prefix.bin)
+ install('PartitionFinderProtein.py', prefix.bin)
+ install('PartitionFinder.py', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pathfinder/package.py b/var/spack/repos/builtin/packages/pathfinder/package.py
new file mode 100644
index 0000000000..85432ffd49
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pathfinder/package.py
@@ -0,0 +1,55 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Pathfinder(MakefilePackage):
+ """Proxy Application. Signature search."""
+
+ homepage = "https://mantevo.org/packages/"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/PathFinder/PathFinder_1.0.0.tgz"
+
+ tags = ['proxy-app']
+
+ version('1.0.0', '374269e8d42c305eda3e392444e22dde')
+
+ build_targets = ['--directory=PathFinder_ref', 'CC=cc']
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('PathFinder_ref/Makefile')
+ makefile.filter('-fopenmp', self.compiler.openmp_flag)
+
+ def install(self, spec, prefix):
+ # Manual installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc)
+
+ install('PathFinder_ref/PathFinder.x', prefix.bin)
+ install('PathFinder_ref/MicroTestData.adj_list', prefix.bin)
+ install('README', prefix.doc)
+
+ install_tree('generatedData/', prefix.doc.generatedData)
+ install_tree('scaleData/', prefix.doc.scaleData)
diff --git a/var/spack/repos/builtin/packages/pbmpi/package.py b/var/spack/repos/builtin/packages/pbmpi/package.py
new file mode 100644
index 0000000000..548c67c358
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pbmpi/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pbmpi(MakefilePackage):
+ """A Bayesian software for phylogenetic reconstruction using mixture models
+ """
+
+ homepage = "http://megasun.bch.umontreal.ca/People/lartillot/www/index.htm"
+ url = "https://github.com/bayesiancook/pbmpi"
+
+ version('partition', git='https://github.com/bayesiancook/pbmpi.git', branch='partition')
+
+ depends_on('mpi')
+ depends_on('libfabric')
+
+ build_directory = 'sources'
+
+ @run_before('build')
+ def make_data_dir(self):
+ mkdirp(self.stage.source_path, 'data')
+
+ def install(self, spec, prefix):
+ install_tree('data', prefix.bin)
+ install_tree('sources', prefix.sources)
diff --git a/var/spack/repos/builtin/packages/pcma/package.py b/var/spack/repos/builtin/packages/pcma/package.py
new file mode 100644
index 0000000000..944c1ac37b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pcma/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pcma(MakefilePackage):
+ """PCMA is a progressive multiple sequence alignment program that combines
+ two different alignment strategies."""
+
+ homepage = "http://prodata.swmed.edu/pcma/pcma.php"
+ url = "http://prodata.swmed.edu/download/pub/PCMA/pcma.tar.gz"
+
+ version('2.0', 'e78449b2f6b0e90348a0a6747d266f9b')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('makefile')
+ makefile.filter('gcc', spack_cc)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('pcma', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pdsh/package.py b/var/spack/repos/builtin/packages/pdsh/package.py
index 3d0d265409..06457ba38c 100644
--- a/var/spack/repos/builtin/packages/pdsh/package.py
+++ b/var/spack/repos/builtin/packages/pdsh/package.py
@@ -34,3 +34,15 @@ class Pdsh(AutotoolsPackage):
url = "https://github.com/grondo/pdsh/archive/pdsh-2.31.tar.gz"
version('2.31', 'cab34b0ca78f3cf596fd648b265223ed')
+
+ variant('ssh', default=True, description="Build with ssh module")
+
+ variant('static_modules', default=True, description="Build with static modules")
+
+ def configure_args(self):
+ args = []
+ if '+ssh' in self.spec:
+ args.append('--with-ssh')
+ if '+static_modules' in self.spec:
+ args.append('--enable-static-modules')
+ return args
diff --git a/var/spack/repos/builtin/packages/pegtl/package.py b/var/spack/repos/builtin/packages/pegtl/package.py
index 85a008a119..f6848be725 100644
--- a/var/spack/repos/builtin/packages/pegtl/package.py
+++ b/var/spack/repos/builtin/packages/pegtl/package.py
@@ -39,12 +39,3 @@ class Pegtl(CMakePackage):
version('develop', git='https://github.com/taocpp/PEGTL', branch='master')
version('2.1.4', 'e5288b6968e6e910287fce93dc5557bf')
version('2.0.0', 'c772828e7188459338a920c21f9896db')
-
- variant('debug', default=False, description='Build debug version')
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/pennant/package.py b/var/spack/repos/builtin/packages/pennant/package.py
new file mode 100644
index 0000000000..b8e71c7f31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pennant/package.py
@@ -0,0 +1,99 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pennant(MakefilePackage):
+ """PENNANT is an unstructured mesh physics mini-app designed
+ for advanced architecture research. It contains mesh data
+ structures and a few physics algorithms adapted
+ from the LANL rad-hydro code FLAG, and gives a sample of
+ the typical memory access patterns of FLAG.
+ """
+
+ homepage = "https://github.com/lanl/PENNANT"
+ url = "https://github.com/lanl/PENNANT/archive/pennant_v0.9.tar.gz"
+ tags = ['proxy-app']
+
+ version('0.9', '4f21ba3836b2721436277308c2e33f45')
+ version('0.8', 'a1afff4914fef8140c3024a02d7c993c')
+ version('0.7', 'd642a030d5388f65f799504803794a4e')
+ version('0.6', '8ab2d4b47ec9870643bfe6f262cd47a4')
+ version('0.5', '534547878c698b9926e2886c74e10831')
+ version('0.4', '0f67d8da0a92bd42d92a4823d3e4dbe1')
+
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('openmp', default=True, description='Build with OpenMP support')
+ variant('debug', default=False, description='Enable debug')
+
+ depends_on('mpi', when='+mpi')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('Makefile')
+ debug = '-g'
+ opt = '-O3'
+
+ if self.compiler.name == 'intel':
+ opt += ' -fast -fno-alias'
+ if self.compiler.name == 'pgi':
+ opt += ' -fastsse'
+
+ makefile.filter(
+ 'CXXFLAGS_DEBUG .*',
+ 'CXXFLAGS_DEBUG := {0}'.format(debug))
+ makefile.filter(
+ 'CXXFLAGS_OPT .*',
+ 'CXXFLAGS_OPT := {0}'.format(opt))
+ makefile.filter(
+ 'CXXFLAGS_OPENMP .*',
+ 'CXXFLAGS_OPENMP := {0}'.format(self.compiler.openmp_flag))
+
+ if '+mpi' in spec:
+ makefile.filter(
+ 'CXX .*',
+ 'CXX := {0}'.format(spec['mpi'].mpicxx))
+ else:
+ makefile.filter('-DUSE_MPI', '#')
+ makefile.filter('CXX .*', 'CXX := c++')
+
+ if '+openmp' not in spec:
+ makefile.filter('.*CXXFLAGS_OPENMP.*', '#')
+
+ if '+debug' in spec:
+ makefile.filter(
+ '.*(CXXFLAGS_OPT).*',
+ 'CXXFLAGS := $(CXXFLAGS_DEBUG)')
+
+ def install(self, spec, prefix):
+
+ def install_dir(dirname):
+ install_tree(dirname, join_path(prefix, dirname))
+
+ mkdirp(prefix.bin)
+ install('build/pennant', prefix.bin)
+ install_dir('doc')
+ install_dir('test')
+ install('LICENSE', prefix)
+ install('README', prefix)
diff --git a/var/spack/repos/builtin/packages/perl-math-cdf/package.py b/var/spack/repos/builtin/packages/perl-math-cdf/package.py
new file mode 100644
index 0000000000..6d7d195dea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/perl-math-cdf/package.py
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PerlMathCdf(PerlPackage):
+ """Generate probabilities and quantiles from several statistical
+ probability functions"""
+
+ homepage = "http://search.cpan.org/~callahan/Math-CDF-0.1/CDF.pm"
+ url = "http://search.cpan.org/CPAN/authors/id/C/CA/CALLAHAN/Math-CDF-0.1.tar.gz"
+
+ version('0.1', '7866c7b6b9d27f0ce4b7637334478ab7')
diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py
index d9952cc936..1e5e93a2f4 100644
--- a/var/spack/repos/builtin/packages/perl/package.py
+++ b/var/spack/repos/builtin/packages/perl/package.py
@@ -93,6 +93,23 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
'-Dloclibpth=' + self.spec['gdbm'].prefix.lib,
]
+ # Extensions are installed into their private tree via
+ # `INSTALL_BASE`/`--install_base` (see [1]) which results in a
+ # "predictable" installation tree that sadly does not match the
+ # Perl core's @INC structure. This means that when activation
+ # merges the extension into the extendee[2], the directory tree
+ # containing the extensions is not on @INC and the extensions can
+ # not be found.
+ #
+ # This bit prepends @INC with the directory that is used when
+ # extensions are activated [3].
+ #
+ # [1] https://metacpan.org/pod/ExtUtils::MakeMaker#INSTALL_BASE
+ # [2] via the activate method in the PackageBase class
+ # [3] https://metacpan.org/pod/distribution/perl/INSTALL#APPLLIB_EXP
+ config_args.append('-Accflags=-DAPPLLIB_EXP=\\"' +
+ self.prefix.lib.perl5 + '\\"')
+
# Discussion of -fPIC for Intel at:
# https://github.com/LLNL/spack/pull/3081 and
# https://github.com/LLNL/spack/pull/4416
@@ -130,10 +147,6 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
make()
make('install')
- def setup_environment(self, spack_env, run_env):
- """Set PERL5LIB to support activation of Perl packages"""
- run_env.set('PERL5LIB', join_path(self.prefix, 'lib', 'perl5'))
-
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
"""Set PATH and PERL5LIB to include the extension and
any other perl extensions it depends on,
@@ -143,8 +156,8 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
for d in dependent_spec.traverse(
deptype=('build', 'run'), deptype_query='run'):
if d.package.extends(self.spec):
- perl_lib_dirs.append(join_path(d.prefix, 'lib', 'perl5'))
- perl_bin_dirs.append(join_path(d.prefix, 'bin'))
+ perl_lib_dirs.append(d.prefix.lib.perl5)
+ perl_bin_dirs.append(d.prefix.bin)
perl_bin_path = ':'.join(perl_bin_dirs)
perl_lib_path = ':'.join(perl_lib_dirs)
spack_env.prepend_path('PATH', perl_bin_path)
@@ -159,10 +172,10 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
"""
# perl extension builds can have a global perl executable function
- module.perl = Executable(join_path(self.spec.prefix.bin, 'perl'))
+ module.perl = self.spec['perl'].command
# Add variables for library directory
- module.perl_lib_dir = join_path(dependent_spec.prefix, 'lib', 'perl5')
+ module.perl_lib_dir = dependent_spec.prefix.lib.perl5
# Make the site packages directory for extensions,
# if it does not exist already.
@@ -179,7 +192,7 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package
kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
# Find the actual path to the installed Config.pm file.
- perl = Executable(join_path(prefix.bin, 'perl'))
+ perl = self.spec['perl'].command
config_dot_pm = perl('-MModule::Loaded', '-MConfig', '-e',
'print is_loaded(Config)', output=str)
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 1002211810..d4ea674577 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -100,8 +100,10 @@ class Petsc(Package):
# Other dependencies
depends_on('boost', when='@:3.5+boost')
- depends_on('metis@5:~int64', when='+metis~int64')
- depends_on('metis@5:+int64', when='+metis+int64')
+ depends_on('metis@5:~int64+real64', when='+metis~int64+double')
+ depends_on('metis@5:+int64', when='+metis+int64~double')
+ depends_on('metis@5:~int64+real64', when='+metis~int64+double')
+ depends_on('metis@5:+int64', when='+metis+int64~double')
depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('parmetis', when='+metis+mpi')
diff --git a/var/spack/repos/builtin/packages/pgdspider/package.py b/var/spack/repos/builtin/packages/pgdspider/package.py
new file mode 100644
index 0000000000..60dfdc12f4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pgdspider/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os.path
+
+
+class Pgdspider(Package):
+ """"PGDSpider is a powerful automated data conversion tool for population
+ genetic and genomics programs"""
+
+ homepage = "http://www.cmpg.unibe.ch/software/PGDSpider"
+ url = "http://www.cmpg.unibe.ch/software/PGDSpider/PGDSpider_2.1.1.2.zip"
+
+ version('2.1.1.2', '170e5b4a002277ff66866486da920693')
+
+ depends_on('java', type=('build', 'run'))
+ depends_on('bcftools')
+ depends_on('bwa')
+ depends_on('samtools')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ jar_file = 'PGDSpider{0}-cli.jar'.format(self.version.up_to(1))
+ install(jar_file, prefix.bin)
+
+ script_sh = join_path(os.path.dirname(__file__), "pgdspider.sh")
+ script = prefix.bin.pgdspider
+ install(script_sh, script)
+ set_executable(script)
+
+ java = self.spec['java'].prefix.bin.java
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+ filter_file('^java', java, script, **kwargs)
+ filter_file('pgdspider.jar', join_path(prefix.bin, jar_file),
+ script, **kwargs)
diff --git a/var/spack/repos/builtin/packages/pgdspider/pgdspider.sh b/var/spack/repos/builtin/packages/pgdspider/pgdspider.sh
new file mode 100644
index 0000000000..5ac0f66c08
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pgdspider/pgdspider.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+# convenience wrapper for the astral jar file
+java $JAVA_ARGS $JAVA_OPTS -jar pgdspider.jar "$@"
diff --git a/var/spack/repos/builtin/packages/phylip/package.py b/var/spack/repos/builtin/packages/phylip/package.py
new file mode 100644
index 0000000000..39bcd3c1e5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/phylip/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Phylip(Package):
+ """PHYLIP (the PHYLogeny Inference Package) is a package of programs for
+ inferring phylogenies (evolutionary trees)."""
+
+ homepage = "http://evolution.genetics.washington.edu/phylip/"
+ url = "http://evolution.gs.washington.edu/phylip/download/phylip-3.696.tar.gz"
+
+ version('3.696', 'dbe5abc26f6089ead3dba41c2db526ee')
+
+ def install(self, spec, prefix):
+ with working_dir('src'):
+ if self.spec.satisfies('platform=darwin'):
+ make('all', '-f', 'Makefile.osx')
+ make('put', '-f', 'Makefile.osx')
+ else:
+ make('all', '-f', 'Makefile.unx')
+ make('put', '-f', 'Makefile.unx')
+ install_tree('exe', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/picard/package.py b/var/spack/repos/builtin/packages/picard/package.py
index 3705c13f75..f03561a5a7 100644
--- a/var/spack/repos/builtin/packages/picard/package.py
+++ b/var/spack/repos/builtin/packages/picard/package.py
@@ -44,7 +44,7 @@ class Picard(Package):
version('1.140', '308f95516d94c1f3273a4e7e2b315ec2',
url='https://github.com/broadinstitute/picard/releases/download/1.140/picard-tools-1.140.zip')
- depends_on('jdk@8:', type='run')
+ depends_on('java@8:', type='run')
def install(self, spec, prefix):
mkdirp(prefix.bin)
@@ -63,7 +63,7 @@ class Picard(Package):
# Munge the helper script to explicitly point to java and the
# jar file.
- java = join_path(self.spec['jdk'].prefix, 'bin', 'java')
+ java = join_path(self.spec['java'].prefix, 'bin', 'java')
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
filter_file('^java', java, script, **kwargs)
filter_file('picard.jar', join_path(prefix.bin, 'picard.jar'),
diff --git a/var/spack/repos/builtin/packages/pidx/package.py b/var/spack/repos/builtin/packages/pidx/package.py
index f79ff7eec4..e4be597f0f 100644
--- a/var/spack/repos/builtin/packages/pidx/package.py
+++ b/var/spack/repos/builtin/packages/pidx/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Pidx(Package):
+class Pidx(CMakePackage):
"""PIDX Parallel I/O Library.
PIDX is an efficient parallel I/O library that reads and writes
@@ -37,11 +37,5 @@ class Pidx(Package):
version('1.0', git='https://github.com/sci-visus/PIDX.git',
commit='6afa1cf71d1c41263296dc049c8fabaf73c296da')
- depends_on('cmake', type='build')
- depends_on("mpi")
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make("install")
+ depends_on('cmake@2.8.4:', type='build')
+ depends_on('mpi')
diff --git a/var/spack/repos/builtin/packages/piranha/package.py b/var/spack/repos/builtin/packages/piranha/package.py
index 8d684ce277..4bc4d5f894 100644
--- a/var/spack/repos/builtin/packages/piranha/package.py
+++ b/var/spack/repos/builtin/packages/piranha/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Piranha(Package):
+class Piranha(CMakePackage):
"""Piranha is a computer-algebra library for the symbolic manipulation of
sparse multivariate polynomials and other closely-related symbolic objects
(such as Poisson series)."""
@@ -40,7 +40,7 @@ class Piranha(Package):
description='Build the Python bindings')
# Build dependencies
- depends_on('cmake@3.0:', type='build')
+ depends_on('cmake@3.2.0:', type='build')
extends('python', when='+pyranha')
depends_on('python@2.6:', type='build', when='+pyranha')
@@ -53,21 +53,8 @@ class Piranha(Package):
depends_on('gmp') # mpir is a drop-in replacement for this
depends_on('mpfr') # Could also be built against mpir
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
-
- # Python bindings
- options.extend([
- '-DBUILD_PYRANHA=%s' % (
- 'ON' if '+python' in spec else 'OFF'),
+ def cmake_args(self):
+ return [
+ '-DBUILD_PYRANHA=%s' % ('ON' if '+python' in self.spec else 'OFF'),
'-DBUILD_TESTS:BOOL=ON',
- ])
-
- with working_dir('spack-build', create=True):
- cmake('..', *options)
-
- make()
- make('install')
- if self.run_tests:
- make('test')
+ ]
diff --git a/var/spack/repos/builtin/packages/pkg-config/package.py b/var/spack/repos/builtin/packages/pkg-config/package.py
index dfb6608cf3..39306e33cd 100644
--- a/var/spack/repos/builtin/packages/pkg-config/package.py
+++ b/var/spack/repos/builtin/packages/pkg-config/package.py
@@ -44,15 +44,18 @@ class PkgConfig(AutotoolsPackage):
parallel = False
- @when('platform=cray')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
"""spack built pkg-config on cray's requires adding /usr/local/
and /usr/lib64/ to PKG_CONFIG_PATH in order to access cray '.pc'
- files."""
- spack_env.append_path('PKG_CONFIG_PATH', '/usr/lib64/pkgconfig')
- spack_env.append_path('PKG_CONFIG_PATH', '/usr/local/lib64/pkgconfig')
+ files.
+ Adds the ACLOCAL path for autotools."""
spack_env.append_path('ACLOCAL_PATH',
join_path(self.prefix.share, 'aclocal'))
+ if 'platform=cray' in self.spec:
+ spack_env.append_path('PKG_CONFIG_PATH',
+ '/usr/lib64/pkgconfig')
+ spack_env.append_path('PKG_CONFIG_PATH',
+ '/usr/local/lib64/pkgconfig')
def configure_args(self):
config_args = ['--enable-shared']
diff --git a/var/spack/repos/builtin/packages/pkgconf/package.py b/var/spack/repos/builtin/packages/pkgconf/package.py
new file mode 100644
index 0000000000..f74cbd001a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/pkgconf/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Pkgconf(AutotoolsPackage):
+ """pkgconf is a program which helps to configure compiler and linker
+ flags for development frameworks. It is similar to pkg-config from
+ freedesktop.org, providing additional functionality while also
+ maintaining compatibility."""
+
+ homepage = "http://pkgconf.org/"
+ url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-1.3.8.tar.xz"
+
+ version('1.3.8', '484ba3360d983ce07416843d5bc916a8')
+
+ @run_after('install')
+ def link_pkg_config(self):
+ symlink('pkgconf', '{0}/pkg-config'.format(self.prefix.bin))
+ symlink('pkgconf.1',
+ '{0}/pkg-config.1'.format(self.prefix.share.man.man1))
diff --git a/var/spack/repos/builtin/packages/plink/package.py b/var/spack/repos/builtin/packages/plink/package.py
new file mode 100644
index 0000000000..a519f30184
--- /dev/null
+++ b/var/spack/repos/builtin/packages/plink/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Plink(Package):
+ """PLINK is a free, open-source whole genome association analysis toolset,
+ designed to perform a range of basic, large-scale analyses in a
+ computationally efficient manner."""
+
+ homepage = "https://www.cog-genomics.org/plink/1.9/"
+
+ version('1.9', 'a2325881594856c0f1b7523290d1e04f',
+ url='https://www.cog-genomics.org/static/bin/plink170815/plink_linux_x86_64.zip')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('plink', prefix.bin)
+ install('prettify', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/pngwriter/package.py b/var/spack/repos/builtin/packages/pngwriter/package.py
index 664421ceab..1f7c20575f 100644
--- a/var/spack/repos/builtin/packages/pngwriter/package.py
+++ b/var/spack/repos/builtin/packages/pngwriter/package.py
@@ -38,7 +38,7 @@ class Pngwriter(CMakePackage):
homepage = "http://pngwriter.sourceforge.net/"
url = "https://github.com/pngwriter/pngwriter/archive/0.5.6.tar.gz"
- version('dev', branch='dev',
+ version('develop', branch='dev',
git='https://github.com/pngwriter/pngwriter.git')
version('master', branch='master',
git='https://github.com/pngwriter/pngwriter.git')
diff --git a/var/spack/repos/builtin/packages/poamsa/package.py b/var/spack/repos/builtin/packages/poamsa/package.py
new file mode 100644
index 0000000000..3148a10bbd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/poamsa/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Poamsa(MakefilePackage):
+ """POA is Partial Order Alignment, a fast program for multiple sequence
+ alignment in bioinformatics. Its advantages are speed, scalability,
+ sensitivity, and the superior ability to handle branching / indels
+ in the alignment."""
+
+ homepage = "https://sourceforge.net/projects/poamsa"
+ url = "https://downloads.sourceforge.net/project/poamsa/poamsa/2.0/poaV2.tar.gz"
+
+ version('2.0', '9e2eb270d4867114406f53dab1311b2b')
+
+ def url_for_version(self, version):
+ url = "https://downloads.sourceforge.net/project/poamsa/poamsa/{0}/poaV{1}.tar.gz"
+ return url.format(version.dotted, version.up_to(1))
+
+ def build(self, spec, prefix):
+ make('poa')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.lib)
+ install('poa', prefix.bin)
+ install('liblpo.a', prefix.lib)
diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py
index 92e4266552..0934076ab9 100644
--- a/var/spack/repos/builtin/packages/portage/package.py
+++ b/var/spack/repos/builtin/packages/portage/package.py
@@ -36,19 +36,11 @@ class Portage(CMakePackage):
version('develop', git='https://github.com/laristra/portage', branch='master', submodules=True)
- variant('debug', default=False, description='Build debug version')
variant('mpi', default=True, description='Support MPI')
depends_on("cmake@3.1:", type='build')
depends_on('mpi', when='+mpi')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = ['-DENABLE_UNIT_TESTS=ON', '-DENABLE_APP_TESTS=ON']
diff --git a/var/spack/repos/builtin/packages/preseq/package.py b/var/spack/repos/builtin/packages/preseq/package.py
new file mode 100644
index 0000000000..87779bcbac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/preseq/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Preseq(MakefilePackage):
+ """The preseq package is aimed at predicting and estimating the complexity
+ of a genomic sequencing library, equivalent to predicting and
+ estimating the number of redundant reads from a given sequencing depth
+ and how many will be expected from additional sequencing using an
+ initial sequencing experiment."""
+
+ homepage = "https://github.com/smithlabcode/preseq"
+ url = "https://github.com/smithlabcode/preseq/releases/download/v2.0.2/preseq_v2.0.2.tar.bz2"
+
+ version('2.0.2', '9f2a7b597c9f08b821db6ee55e2ea39c')
+
+ depends_on('samtools')
+ depends_on('gsl')
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('PREFIX', self.prefix)
diff --git a/var/spack/repos/builtin/packages/price/package.py b/var/spack/repos/builtin/packages/price/package.py
new file mode 100644
index 0000000000..df674f4f6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/price/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Price(MakefilePackage):
+ """PRICE (Paired-Read Iterative Contig Extension): a de novo genome
+ assembler implemented in C++."""
+
+ homepage = "http://derisilab.ucsf.edu/software/price/"
+ url = "http://derisilab.ucsf.edu/software/price/PriceSource140408.tar.gz"
+
+ version('140408', '2880274a514c34b812718b13a620813e')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('PriceTI', prefix.bin)
+ install('PriceSeqFilter', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/probconsrna/package.py b/var/spack/repos/builtin/packages/probconsrna/package.py
new file mode 100644
index 0000000000..4973ced565
--- /dev/null
+++ b/var/spack/repos/builtin/packages/probconsrna/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Probconsrna(Package):
+ """Experimental version of PROBCONS with parameters estimated via
+ unsupervised training on BRAliBASE """
+
+ homepage = "http://probcons.stanford.edu/"
+ url = "http://probcons.stanford.edu/probconsRNA.tar.gz"
+
+ version('2005-6-7', '2aa13012124208ca5dd6b0a1d508208d')
+
+ def install(self, build, prefix):
+ mkdirp(prefix.bin)
+ install('compare', prefix.bin)
+ install('makegnuplot', prefix.bin)
+ install('probcons', prefix.bin)
+ # needed for tcoffee
+ install('probcons', prefix.bin.probconsRNA)
+ install('project', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py
index 50b190f70e..f6272f3fe8 100644
--- a/var/spack/repos/builtin/packages/protobuf/package.py
+++ b/var/spack/repos/builtin/packages/protobuf/package.py
@@ -25,31 +25,30 @@
from spack import *
-class Protobuf(AutotoolsPackage):
+class Protobuf(CMakePackage):
"""Google's data interchange format."""
homepage = "https://developers.google.com/protocol-buffers"
url = "https://github.com/google/protobuf/archive/v3.2.0.tar.gz"
+ root_cmakelists_dir = "cmake"
+ version('3.4.0', '4f47de212ef665ea619f5f97083c6781')
version('3.2.0', '61d899b8369781f6dd1e62370813392d')
version('3.1.0', '14a532a7538551d5def317bfca41dace')
version('3.0.2', '845b39e4b7681a2ddfd8c7f528299fbb')
- version('2.5.0', '9c21577a03adc1879aba5b52d06e25cf')
+ # does not build with CMake:
+ # version('2.5.0', '9c21577a03adc1879aba5b52d06e25cf')
- depends_on('automake', type='build')
- depends_on('autoconf', type='build')
- depends_on('libtool', type='build')
- depends_on('m4', type='build')
+ depends_on('zlib')
conflicts('%gcc@:4.6') # Requires c++11
- variant('shared', default=True, description='Build shared libraries.')
+ # first fixed in 3.4.0: https://github.com/google/protobuf/pull/3406
+ patch('pkgconfig.patch', when='@:3.3.2')
- def configure_args(self):
- if '+shared' in self.spec:
- return ['--enable-shared=yes',
- '--enable-static=no']
- else:
- return ['--enable-shared=no',
- '--enable-static=yes',
- '--with-pic=yes']
+ def cmake_args(self):
+ args = [
+ '-Dprotobuf_BUILD_TESTS:BOOL=OFF',
+ '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON'
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/protobuf/pkgconfig.patch b/var/spack/repos/builtin/packages/protobuf/pkgconfig.patch
new file mode 100644
index 0000000000..a0e8b4b3b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/protobuf/pkgconfig.patch
@@ -0,0 +1,58 @@
+diff --git a/cmake/install.cmake b/cmake/install.cmake
+index 28dc90d..441bf55 100644
+--- a/cmake/install.cmake
++++ b/cmake/install.cmake
+@@ -1,5 +1,10 @@
+ include(GNUInstallDirs)
+
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf.pc.cmake
++ ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc @ONLY)
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf-lite.pc.cmake
++ ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc @ONLY)
++
+ foreach(_library
+ libprotobuf-lite
+ libprotobuf
+@@ -17,6 +22,8 @@ endforeach()
+ install(TARGETS protoc EXPORT protobuf-targets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc)
+
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++
+ file(STRINGS extract_includes.bat.in _extract_strings
+ REGEX "^copy")
+ foreach(_extract_string ${_extract_strings})
+diff --git a/cmake/protobuf-lite.pc.cmake b/cmake/protobuf-lite.pc.cmake
+new file mode 100644
+index 0000000..cbe5426
+--- /dev/null
++++ b/cmake/protobuf-lite.pc.cmake
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
++
++Name: Protocol Buffers
++Description: Google's Data Interchange Format
++Version: @protobuf_VERSION@
++Libs: -L${libdir} -lprotobuf-lite @CMAKE_THREAD_LIBS_INIT@
++Cflags: -I${includedir} @CMAKE_THREAD_LIBS_INIT@
++Conflicts: protobuf
+diff --git a/cmake/protobuf.pc.cmake b/cmake/protobuf.pc.cmake
+new file mode 100644
+index 0000000..2e30763
+--- /dev/null
++++ b/cmake/protobuf.pc.cmake
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=@CMAKE_INSTALL_PREFIX@
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
++
++Name: Protocol Buffers
++Description: Google's Data Interchange Format
++Version: @protobuf_VERSION@
++Libs: -L${libdir} -lprotobuf @CMAKE_THREAD_LIBS_INIT@
++Cflags: -I${includedir} @CMAKE_THREAD_LIBS_INIT@
++Conflicts: protobuf-lite
diff --git a/var/spack/repos/builtin/packages/pruners-ninja/package.py b/var/spack/repos/builtin/packages/pruners-ninja/package.py
index 660512380b..558f59342b 100644
--- a/var/spack/repos/builtin/packages/pruners-ninja/package.py
+++ b/var/spack/repos/builtin/packages/pruners-ninja/package.py
@@ -31,6 +31,7 @@ class PrunersNinja(AutotoolsPackage):
homepage = "https://github.com/PRUNERS/NINJA"
url = "https://github.com/PRUNERS/NINJA/releases/download/v1.0.0/NINJA-1.0.0.tar.gz"
+ version("1.0.1", "f0728cad61d8f1f970dffb7bb430addb")
version("1.0.0", "fee53c4712ac521ebec3cd8692e5185a")
depends_on("mpi")
diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py
index 41633ffceb..3c50a8413c 100644
--- a/var/spack/repos/builtin/packages/psi4/package.py
+++ b/var/spack/repos/builtin/packages/psi4/package.py
@@ -26,7 +26,7 @@ from spack import *
import os
-class Psi4(Package):
+class Psi4(CMakePackage):
"""Psi4 is an open-source suite of ab initio quantum chemistry
programs designed for efficient, high-accuracy simulations of
a variety of molecular properties."""
@@ -36,20 +36,16 @@ class Psi4(Package):
version('0.5', '53041b8a9be3958384171d0d22f9fdd0')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
+
# Required dependencies
depends_on('blas')
depends_on('lapack')
- depends_on('boost'
- '+chrono'
- '+filesystem'
- '+python'
- '+regex'
- '+serialization'
- '+system'
- '+timer'
- '+thread')
+ depends_on('boost+chrono+filesystem+python+regex+serialization+system+timer+thread')
depends_on('python')
- depends_on('cmake', type='build')
+ depends_on('cmake@3.3:', type='build')
depends_on('py-numpy', type=('build', 'run'))
# Optional dependencies
@@ -59,8 +55,10 @@ class Psi4(Package):
# depends_on('pcm-solver')
# depends_on('chemps2')
- def install(self, spec, prefix):
- cmake_args = [
+ def cmake_args(self):
+ spec = self.spec
+
+ return [
'-DBLAS_TYPE={0}'.format(spec['blas'].name.upper()),
'-DBLAS_LIBRARIES={0}'.format(spec['blas'].libs.joined()),
'-DLAPACK_TYPE={0}'.format(spec['lapack'].name.upper()),
@@ -71,16 +69,7 @@ class Psi4(Package):
'-DENABLE_CHEMPS2=OFF'
]
- cmake_args.extend(std_cmake_args)
-
- with working_dir('spack-build', create=True):
- cmake('..', *cmake_args)
-
- make()
- make('install')
-
- self.filter_compilers(spec, prefix)
-
+ @run_after('install')
def filter_compilers(self, spec, prefix):
"""Run after install to tell the configuration files to
use the compilers that Spack built the package with.
diff --git a/var/spack/repos/builtin/packages/py-3to2/package.py b/var/spack/repos/builtin/packages/py-3to2/package.py
index e1d939d474..cc2986a7b3 100644
--- a/var/spack/repos/builtin/packages/py-3to2/package.py
+++ b/var/spack/repos/builtin/packages/py-3to2/package.py
@@ -30,6 +30,6 @@ class Py3to2(PythonPackage):
for Python version 3.x into Python version 2.x."""
homepage = "https://pypi.python.org/pypi/3to2"
- url = "https://pypi.python.org/packages/source/3/3to2/3to2-1.1.1.zip"
+ url = "https://pypi.io/packages/source/3/3to2/3to2-1.1.1.zip"
version('1.1.1', 'cbeed28e350dbdaef86111ace3052824')
diff --git a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
index bf2f309cff..2498a469f1 100644
--- a/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
+++ b/var/spack/repos/builtin/packages/py-apache-libcloud/package.py
@@ -29,7 +29,8 @@ class PyApacheLibcloud(PythonPackage):
"""Python library for multiple cloud provider APIs"""
homepage = "http://libcloud.apache.org"
+ url = "https://pypi.io/packages/source/a/apache-libcloud/apache-libcloud-1.2.1.tar.gz"
- version('1.2.1', '912e6fb1f2d13f7d3b58ee982b9f9d1f', url="https://pypi.python.org/packages/dd/b5/7b8b5796177345b6a7c1f3d4fda9fbbe9aeef000ac33f3aac06f176845d0/apache-libcloud-1.2.1.tar.gz")
+ version('1.2.1', '912e6fb1f2d13f7d3b58ee982b9f9d1f')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-apipkg/package.py b/var/spack/repos/builtin/packages/py-apipkg/package.py
new file mode 100644
index 0000000000..2e125cb1a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-apipkg/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyApipkg(PythonPackage):
+ """apipkg: namespace control and lazy-import mechanism"""
+
+ homepage = "https://pypi.python.org/pypi/apipkg"
+ url = "https://pypi.io/packages/source/a/apipkg/apipkg-1.4.tar.gz"
+
+ version('1.4', '17e5668601a2322aff41548cb957e7c8')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py
index ff35e98d80..ba9b9600d3 100644
--- a/var/spack/repos/builtin/packages/py-argcomplete/package.py
+++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py
@@ -29,7 +29,7 @@ class PyArgcomplete(PythonPackage):
"""Bash tab completion for argparse."""
homepage = "https://pypi.python.org/pypi/argcomplete"
- url = "https://pypi.python.org/packages/source/a/argcomplete/argcomplete-1.1.1.tar.gz"
+ url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.1.1.tar.gz"
version('1.1.1', '89a3839096c9f991ad33828e72d21abf')
diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py
index 27358c9467..d1d6fcc0e8 100644
--- a/var/spack/repos/builtin/packages/py-astropy/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy/package.py
@@ -31,7 +31,7 @@ class PyAstropy(PythonPackage):
Python astronomy packages."""
homepage = 'http://www.astropy.org/'
- url = 'https://pypi.python.org/packages/source/a/astropy/astropy-1.1.2.tar.gz'
+ url = 'https://pypi.io/packages/source/a/astropy/astropy-1.1.2.tar.gz'
version('1.1.2', 'cbe32023b5b1177d1e2498a0d00cda51')
version('1.1.post1', 'b52919f657a37d45cc45f5cb0f58c44d')
diff --git a/var/spack/repos/builtin/packages/py-biom-format/package.py b/var/spack/repos/builtin/packages/py-biom-format/package.py
new file mode 100644
index 0000000000..2d61507bd0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-biom-format/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyBiomFormat(PythonPackage):
+ """The BIOM file format (canonically pronounced biome) is designed to be
+ a general-use format for representing biological sample by observation
+ contingency tables."""
+
+ homepage = "https://pypi.python.org/pypi/biom-format/2.1.6"
+ url = "https://pypi.io/packages/source/b/biom-format/biom-format-2.1.6.tar.gz"
+
+ version('2.1.6', '1dd4925b74c56e8ee864d5e1973068de')
+
+ variant('h5py', default=True, description='For use with BIOM 2.0+ files')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython', type='build')
+ depends_on('py-h5py', type=('build', 'run'), when='+h5py')
+ depends_on('py-click', type=('build', 'run'))
+ depends_on('py-numpy@1.3.0:', type=('build', 'run'))
+ depends_on('py-future@0.16.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.13.0:', type=('build', 'run'))
+ depends_on('py-pandas@0.19.2:', type=('build', 'run'))
+ depends_on('py-six@1.10.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-bleach/package.py b/var/spack/repos/builtin/packages/py-bleach/package.py
index 628b58cd0c..b469a12b60 100644
--- a/var/spack/repos/builtin/packages/py-bleach/package.py
+++ b/var/spack/repos/builtin/packages/py-bleach/package.py
@@ -29,7 +29,7 @@ class PyBleach(PythonPackage):
"""An easy whitelist-based HTML-sanitizing tool."""
homepage = "http://github.com/mozilla/bleach"
- url = "https://pypi.python.org/packages/99/00/25a8fce4de102bf6e3cc76bc4ea60685b2fee33bde1b34830c70cacc26a7/bleach-1.5.0.tar.gz"
+ url = "https://pypi.io/packages/source/b/bleach/bleach-1.5.0.tar.gz"
version('1.5.0', 'b663300efdf421b3b727b19d7be9c7e7')
diff --git a/var/spack/repos/builtin/packages/py-blessings/package.py b/var/spack/repos/builtin/packages/py-blessings/package.py
index 39c6c16da1..d4d509f205 100644
--- a/var/spack/repos/builtin/packages/py-blessings/package.py
+++ b/var/spack/repos/builtin/packages/py-blessings/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyBlessings(PythonPackage):
"""A nicer, kinder way to write to the terminal """
homepage = "https://github.com/erikrose/blessings"
- url = "https://pypi.python.org/packages/source/b/blessings/blessings-1.6.tar.gz"
+ url = "https://pypi.io/packages/source/b/blessings/blessings-1.6.tar.gz"
version('1.6', '4f552a8ebcd4982693c92571beb99394')
diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
index 99177ef98a..d8958e1208 100644
--- a/var/spack/repos/builtin/packages/py-bottleneck/package.py
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyBottleneck(PythonPackage):
"""A collection of fast NumPy array functions written in Cython."""
homepage = "https://pypi.python.org/pypi/Bottleneck/1.0.0"
- url = "https://pypi.python.org/packages/source/B/Bottleneck/Bottleneck-1.0.0.tar.gz"
+ url = "https://pypi.io/packages/source/B/Bottleneck/Bottleneck-1.0.0.tar.gz"
version('1.0.0', '380fa6f275bd24f27e7cf0e0d752f5d2')
diff --git a/var/spack/repos/builtin/packages/py-cdat-lite/package.py b/var/spack/repos/builtin/packages/py-cdat-lite/package.py
index cec2ce1fbc..257abc33f8 100644
--- a/var/spack/repos/builtin/packages/py-cdat-lite/package.py
+++ b/var/spack/repos/builtin/packages/py-cdat-lite/package.py
@@ -40,3 +40,14 @@ class PyCdatLite(PythonPackage):
depends_on("python@2.5:2.8", type=('build', 'run'))
depends_on("py-numpy", type=('build', 'run'))
depends_on('py-setuptools', type='build')
+
+ phases = ['install']
+
+ def install(self, spec, prefix):
+ """Install everything from build directory."""
+ install_args = self.install_args(spec, prefix)
+ # Combine all phases into a single setup.py command,
+ # otherwise extensions are rebuilt without rpath by install phase:
+ self.setup_py('build_ext', '--rpath=%s' % ":".join(self.rpath),
+ 'build_py', 'build_scripts',
+ 'install', *install_args)
diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py
index a1bf48ca92..4a41241d80 100644
--- a/var/spack/repos/builtin/packages/py-csvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-csvkit/package.py
@@ -30,7 +30,7 @@ class PyCsvkit(PythonPackage):
formats"""
homepage = 'http://csvkit.rtfd.org/'
- url = "https://pypi.python.org/packages/source/c/csvkit/csvkit-0.9.1.tar.gz"
+ url = "https://pypi.io/packages/source/c/csvkit/csvkit-0.9.1.tar.gz"
version('0.9.1', '48d78920019d18846933ee969502fff6')
diff --git a/var/spack/repos/builtin/packages/py-dask/package.py b/var/spack/repos/builtin/packages/py-dask/package.py
index 6141505995..0b27ab80a5 100644
--- a/var/spack/repos/builtin/packages/py-dask/package.py
+++ b/var/spack/repos/builtin/packages/py-dask/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyDask(PythonPackage):
"""Minimal task scheduling abstraction"""
homepage = "https://github.com/dask/dask/"
- url = "https://pypi.python.org/packages/source/d/dask/dask-0.8.1.tar.gz"
+ url = "https://pypi.io/packages/source/d/dask/dask-0.8.1.tar.gz"
version('0.8.1', '5dd8e3a3823b3bc62c9a6d192e2cb5b4')
diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py
index 08d43a0ad0..deeb3197f5 100644
--- a/var/spack/repos/builtin/packages/py-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-dateutil/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyDateutil(PythonPackage):
"""Extensions to the standard Python datetime module."""
homepage = "https://pypi.python.org/pypi/dateutil"
- url = "https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.4.0.tar.gz"
+ url = "https://pypi.io/packages/source/p/python-dateutil/python-dateutil-2.4.0.tar.gz"
version('2.4.0', '75714163bb96bedd07685cdb2071b8bc')
version('2.4.2', '4ef68e1c485b09e9f034e10473e5add2')
diff --git a/var/spack/repos/builtin/packages/py-dbf/package.py b/var/spack/repos/builtin/packages/py-dbf/package.py
index a5c20d62a1..c6b7ddfa99 100644
--- a/var/spack/repos/builtin/packages/py-dbf/package.py
+++ b/var/spack/repos/builtin/packages/py-dbf/package.py
@@ -30,6 +30,6 @@ class PyDbf(PythonPackage):
.dbf files (including memos)"""
homepage = 'https://pypi.python.org/pypi/dbf'
- url = "https://pypi.python.org/packages/source/d/dbf/dbf-0.96.005.tar.gz"
+ url = "https://pypi.io/packages/source/d/dbf/dbf-0.96.005.tar.gz"
version('0.96.005', 'bce1a1ed8b454a30606e7e18dd2f8277')
diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py
index b30de06246..854fe55e52 100644
--- a/var/spack/repos/builtin/packages/py-decorator/package.py
+++ b/var/spack/repos/builtin/packages/py-decorator/package.py
@@ -30,7 +30,7 @@ class PyDecorator(PythonPackage):
for the average programmer, and to popularize decorators by showing
various non-trivial examples."""
homepage = "https://github.com/micheles/decorator"
- url = "https://pypi.python.org/packages/source/d/decorator/decorator-4.0.9.tar.gz"
+ url = "https://pypi.io/packages/source/d/decorator/decorator-4.0.9.tar.gz"
version('4.0.9', 'f12c5651ccd707e12a0abaa4f76cd69a')
diff --git a/var/spack/repos/builtin/packages/py-deeptools/package.py b/var/spack/repos/builtin/packages/py-deeptools/package.py
new file mode 100644
index 0000000000..e4e1ec2583
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-deeptools/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyDeeptools(PythonPackage):
+ """deepTools addresses the challenge of handling the large amounts of data
+ that are now routinely generated from DNA sequencing centers."""
+
+ homepage = "https://pypi.io/packages/source/d/deepTools"
+ url = "https://pypi.io/packages/source/d/deepTools/deepTools-2.5.2.tar.gz"
+
+ version('2.5.2', 'ba8a44c128c6bb1ed4ebdb20bf9ae9c2')
+
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy@1.9.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.17.0:', type=('build', 'run'))
+ depends_on('py-py2bit@0.2.0:', type=('build', 'run'))
+ depends_on('py-pybigwig@0.2.1:', type=('build', 'run'))
+ depends_on('py-pysam@0.8.2:', type=('build', 'run'))
+ depends_on('py-matplotlib@1.4.0:', type=('build', 'run'))
+ depends_on('py-numpydoc@0.5:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py
index 2410244919..4b8a24c673 100644
--- a/var/spack/repos/builtin/packages/py-emcee/package.py
+++ b/var/spack/repos/builtin/packages/py-emcee/package.py
@@ -30,7 +30,7 @@ class PyEmcee(PythonPackage):
Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler."""
homepage = "http://dan.iel.fm/emcee/current/"
- url = "https://pypi.python.org/packages/source/e/emcee/emcee-2.1.0.tar.gz"
+ url = "https://pypi.io/packages/source/e/emcee/emcee-2.1.0.tar.gz"
version('2.1.0', 'c6b6fad05c824d40671d4a4fc58dfff7')
diff --git a/var/spack/repos/builtin/packages/py-entrypoints/package.py b/var/spack/repos/builtin/packages/py-entrypoints/package.py
index f93092b317..1df5e8bdc1 100644
--- a/var/spack/repos/builtin/packages/py-entrypoints/package.py
+++ b/var/spack/repos/builtin/packages/py-entrypoints/package.py
@@ -23,31 +23,17 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-from spack.package import PackageBase
class PyEntrypoints(PythonPackage):
"""Discover and load entry points from installed packages."""
homepage = "https://pypi.python.org/pypi/entrypoints"
- url = "https://pypi.python.org/packages/f8/ad/0e77a853c745a15981ab51fa9a0cb4eca7a7a007b4c1970106ee6ba01e0c/entrypoints-0.2.2-py2.py3-none-any.whl"
+ url = "https://pypi.io/packages/source/e/entrypoints/entrypoints-0.2.3.tar.gz"
import_modules = ['entrypoints']
- version('0.2.2', '73bd7ce92c19b25dc5a20aff41be996a', expand=False)
+ version('0.2.3', '0d3ad1b0130d91e3596ef3a59f25a56c')
depends_on('python@2.7:', type=('build', 'run'))
-
- depends_on('py-pip', type='build')
depends_on('py-configparser', when='^python@:2.8', type=('build', 'run'))
-
- phases = ['install']
-
- def install(self, spec, prefix):
- pip = which('pip')
- pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
-
- run_after('install')(PackageBase._run_default_install_time_test_callbacks)
-
- # Check that self.prefix is there after installation
- run_after('install')(PackageBase.sanity_check_prefix)
diff --git a/var/spack/repos/builtin/packages/py-epydoc/package.py b/var/spack/repos/builtin/packages/py-epydoc/package.py
index 93a6018acb..c10ba2a635 100644
--- a/var/spack/repos/builtin/packages/py-epydoc/package.py
+++ b/var/spack/repos/builtin/packages/py-epydoc/package.py
@@ -29,6 +29,6 @@ class PyEpydoc(PythonPackage):
"""Epydoc is a tool for generating API documentation documentation for
Python modules, based on their docstrings."""
homepage = "https://pypi.python.org/pypi/epydoc"
- url = "https://pypi.python.org/packages/source/e/epydoc/epydoc-3.0.1.tar.gz"
+ url = "https://pypi.io/packages/source/e/epydoc/epydoc-3.0.1.tar.gz"
version('3.0.1', '36407974bd5da2af00bf90ca27feeb44')
diff --git a/var/spack/repos/builtin/packages/py-execnet/package.py b/var/spack/repos/builtin/packages/py-execnet/package.py
new file mode 100644
index 0000000000..dbfa15007e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-execnet/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyExecnet(PythonPackage):
+ """execnet provides a share-nothing model with channel-send/receive
+ communication for distributing execution across many Python interpreters
+ across version, platform and network barriers."""
+
+ homepage = "http://codespeak.net/execnet"
+ url = "https://pypi.io/packages/source/e/execnet/execnet-1.4.1.tar.gz"
+
+ version('1.4.1', '0ff84b6c79d0dafb7e2971629c4d127a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-apipkg@1.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-fastaindex/package.py b/var/spack/repos/builtin/packages/py-fastaindex/package.py
new file mode 100644
index 0000000000..6e98f4c5a4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fastaindex/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyFastaindex(PythonPackage):
+ """FastA index (.fai) handler compatible with samtools faidx is extended
+ with 4 columns storing counts for A, C, G & T for each sequence.."""
+
+ homepage = "https://github.com/lpryszcz/FastaIndex"
+ url = "https://pypi.io/packages/source/F/FastaIndex/FastaIndex-0.11rc7.tar.gz"
+
+ version('0.11rc7', '882c973d968d9db596edfd0fbb07e3a8')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-faststructure/package.py b/var/spack/repos/builtin/packages/py-faststructure/package.py
new file mode 100644
index 0000000000..5085c33af0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-faststructure/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyFaststructure(PythonPackage):
+ """FastStructure is a fast algorithm for inferring population structure
+ from large SNP genotype data."""
+
+ homepage = "https://github.com/rajanil/fastStructure"
+ url = "https://github.com/rajanil/fastStructure/archive/v1.0.tar.gz"
+
+ version('1.0', '5cbb76e7d49e27a57046ab641b666f97')
+
+ depends_on('py-cython', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('gsl')
diff --git a/var/spack/repos/builtin/packages/py-funcsigs/package.py b/var/spack/repos/builtin/packages/py-funcsigs/package.py
index 7d173842d1..d51e797ac2 100644
--- a/var/spack/repos/builtin/packages/py-funcsigs/package.py
+++ b/var/spack/repos/builtin/packages/py-funcsigs/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyFuncsigs(PythonPackage):
"""Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2."""
homepage = "https://pypi.python.org/pypi/funcsigs"
- url = "https://pypi.python.org/packages/source/f/funcsigs/funcsigs-0.4.tar.gz"
+ url = "https://pypi.io/packages/source/f/funcsigs/funcsigs-0.4.tar.gz"
version('0.4', 'fb1d031f284233e09701f6db1281c2a5')
diff --git a/var/spack/repos/builtin/packages/py-functools32/package.py b/var/spack/repos/builtin/packages/py-functools32/package.py
index a01b022df5..658aab5b4e 100644
--- a/var/spack/repos/builtin/packages/py-functools32/package.py
+++ b/var/spack/repos/builtin/packages/py-functools32/package.py
@@ -30,6 +30,6 @@ class PyFunctools32(PythonPackage):
PyPy."""
homepage = "https://github.com/MiCHiLU/python-functools32"
- url = "https://pypi.python.org/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
+ url = "https://pypi.io/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
version('3.2.3-2', '09f24ffd9af9f6cd0f63cb9f4e23d4b2')
diff --git a/var/spack/repos/builtin/packages/py-git2/package.py b/var/spack/repos/builtin/packages/py-git2/package.py
index 5adafe1f96..d5b5bd28f0 100644
--- a/var/spack/repos/builtin/packages/py-git2/package.py
+++ b/var/spack/repos/builtin/packages/py-git2/package.py
@@ -31,9 +31,9 @@ class PyGit2(PythonPackage):
"""
homepage = "http://www.pygit2.org/"
+ url = "https://pypi.io/packages/source/p/pygit2/pygit2-0.24.1.tar.gz"
- version('0.24.1', 'dd98b6a9fded731e36ca5a40484c8545',
- url="https://pypi.python.org/packages/aa/56/84dcce942a48d4b7b970cfb7a779b8db1d904e5ec5f71e7a67a63a23a4e2/pygit2-0.24.1.tar.gz")
+ version('0.24.1', 'dd98b6a9fded731e36ca5a40484c8545')
extends('python')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index 9838f56db5..5a5c02338c 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -30,7 +30,7 @@ class PyH5py(PythonPackage):
HDF5 library from Python."""
homepage = "https://pypi.python.org/pypi/h5py"
- url = "https://pypi.python.org/packages/source/h/h5py/h5py-2.4.0.tar.gz"
+ url = "https://pypi.io/packages/source/h/h5py/h5py-2.4.0.tar.gz"
version('2.6.0', 'ec476211bd1de3f5ac150544189b0bf4')
version('2.5.0', '6e4301b5ad5da0d51b0a1e5ac19e3b74')
diff --git a/var/spack/repos/builtin/packages/py-html5lib/package.py b/var/spack/repos/builtin/packages/py-html5lib/package.py
index 05a5f5ceea..e219450f83 100644
--- a/var/spack/repos/builtin/packages/py-html5lib/package.py
+++ b/var/spack/repos/builtin/packages/py-html5lib/package.py
@@ -29,7 +29,7 @@ class PyHtml5lib(PythonPackage):
"""HTML parser based on the WHATWG HTML specification."""
homepage = "https://github.com/html5lib/html5lib-python"
- url = "https://pypi.python.org/packages/ae/ae/bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/html5lib-0.9999999.tar.gz"
+ url = "https://pypi.io/packages/source/h/html5lib/html5lib-0.9999999.tar.gz"
version('0.9999999', 'ef43cb05e9e799f25d65d1135838a96f')
diff --git a/var/spack/repos/builtin/packages/py-igraph/package.py b/var/spack/repos/builtin/packages/py-igraph/package.py
new file mode 100644
index 0000000000..7d9c408678
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-igraph/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyIgraph(PythonPackage):
+ """igraph is a collection of network analysis tools with the emphasis on
+ efficiency, portability and ease of use."""
+
+ homepage = "http://igraph.org/"
+ url = "http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz"
+
+ version('0.7.0', '32a3238cb9041b1686d7d0ba152235bf')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('igraph')
diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py
index b4b51f67f0..23961d3144 100644
--- a/var/spack/repos/builtin/packages/py-iminuit/package.py
+++ b/var/spack/repos/builtin/packages/py-iminuit/package.py
@@ -29,7 +29,7 @@ class PyIminuit(PythonPackage):
"""Interactive IPython-Friendly Minimizer based on SEAL Minuit2."""
homepage = "https://pypi.python.org/pypi/iminuit"
- url = "https://pypi.python.org/packages/source/i/iminuit/iminuit-1.2.tar.gz"
+ url = "https://pypi.io/packages/source/i/iminuit/iminuit-1.2.tar.gz"
version('1.2', '4701ec472cae42015e26251703e6e984')
diff --git a/var/spack/repos/builtin/packages/py-jpype/package.py b/var/spack/repos/builtin/packages/py-jpype/package.py
index b82a43ca2f..b9117f7536 100644
--- a/var/spack/repos/builtin/packages/py-jpype/package.py
+++ b/var/spack/repos/builtin/packages/py-jpype/package.py
@@ -39,6 +39,6 @@ class PyJpype(PythonPackage):
depends_on('python@2.6:')
depends_on('py-setuptools', type='build')
- depends_on('jdk', type=('build', 'run'))
+ depends_on('java', type=('build', 'run'))
# extra requirements
# depends_on('py-numpy@1.6:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py
index 8a69361bab..2a72c9492a 100644
--- a/var/spack/repos/builtin/packages/py-jsonschema/package.py
+++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py
@@ -29,7 +29,7 @@ class PyJsonschema(PythonPackage):
"""Jsonschema: An(other) implementation of JSON Schema for Python."""
homepage = "http://github.com/Julian/jsonschema"
- url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-2.5.1.tar.gz"
+ url = "https://pypi.io/packages/source/j/jsonschema/jsonschema-2.5.1.tar.gz"
version('2.5.1', '374e848fdb69a3ce8b7e778b47c30640')
diff --git a/var/spack/repos/builtin/packages/py-lazyarray/package.py b/var/spack/repos/builtin/packages/py-lazyarray/package.py
index 2af2624243..7ab655a20e 100644
--- a/var/spack/repos/builtin/packages/py-lazyarray/package.py
+++ b/var/spack/repos/builtin/packages/py-lazyarray/package.py
@@ -32,7 +32,8 @@ class PyLazyarray(PythonPackage):
homepage = "http://bitbucket.org/apdavison/lazyarray/"
url = "https://pypi.io/packages/source/l/lazyarray/lazyarray-0.2.8.tar.gz"
- version('0.2.8', '8e0072f0892b9fc0516e7048f96e9d74')
+ version('0.2.10', '336033357459e66cbca5543bf003a2ba')
+ version('0.2.8', '8e0072f0892b9fc0516e7048f96e9d74')
depends_on('py-numpy@1.3:', type=('build', 'run'))
depends_on('py-numpy@1.5:', type=('build', 'run'), when='^python@3:')
diff --git a/var/spack/repos/builtin/packages/py-lit/package.py b/var/spack/repos/builtin/packages/py-lit/package.py
index 711986ae3f..6d9dbf4830 100644
--- a/var/spack/repos/builtin/packages/py-lit/package.py
+++ b/var/spack/repos/builtin/packages/py-lit/package.py
@@ -32,7 +32,7 @@ class PyLit(PythonPackage):
interface as possible."""
homepage = "https://pypi.python.org/pypi/lit"
- url = "https://pypi.python.org/packages/5b/a0/dbed2c8dfb220eb9a5a893257223cd0ff791c0fbc34ce2f1a957fa4b6c6f/lit-0.5.0.tar.gz"
+ url = "https://pypi.io/packages/source/l/lit/lit-0.5.0.tar.gz"
version('0.5.0', '8144660cc692be8fb903395a5f06564d')
diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py
index 12f606588d..a9963c340f 100644
--- a/var/spack/repos/builtin/packages/py-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-lockfile/package.py
@@ -37,7 +37,7 @@ class PyLockfile(PythonPackage):
possibilities it provides than as production-quality code.
"""
homepage = "https://pypi.python.org/pypi/lockfile"
- url = "https://pypi.python.org/packages/source/l/lockfile/lockfile-0.10.2.tar.gz"
+ url = "https://pypi.io/packages/source/l/lockfile/lockfile-0.10.2.tar.gz"
version('0.10.2', '1aa6175a6d57f082cd12e7ac6102ab15')
diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py
index ab71df7689..925c24a66b 100644
--- a/var/spack/repos/builtin/packages/py-logilab-common/package.py
+++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyLogilabCommon(PythonPackage):
"""Common modules used by Logilab projects"""
homepage = "https://www.logilab.org/project/logilab-common"
- url = "https://pypi.python.org/packages/a7/31/1650d23e44794d46935d82b86e73454cc83b814cbe1365260ccce8a2f4c6/logilab-common-1.2.0.tar.gz"
+ url = "https://pypi.io/packages/source/l/logilab-common/logilab-common-1.2.0.tar.gz"
version('1.2.0', 'f7b51351b7bfe052746fa04c03253c0b')
diff --git a/var/spack/repos/builtin/packages/py-macholib/package.py b/var/spack/repos/builtin/packages/py-macholib/package.py
new file mode 100644
index 0000000000..80d9ee4a53
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-macholib/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMacholib(PythonPackage):
+ """Python package for Mach-O header analysis and editing"""
+
+ homepage = "https://pypi.python.org/pypi/macholib"
+ url = "https://pypi.io/packages/source/m/macholib/macholib-1.8.tar.gz"
+
+ version('1.8', '65af8f20dada7bdb2a142afbec51330e')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-machotools/package.py b/var/spack/repos/builtin/packages/py-machotools/package.py
new file mode 100644
index 0000000000..ec0e1f364c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-machotools/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMachotools(PythonPackage):
+ """Python package for editing Mach-O headers using macholib"""
+
+ homepage = "https://pypi.python.org/pypi/machotools"
+ url = "https://pypi.io/packages/source/m/machotools/machotools-0.2.0.tar.gz"
+
+ version('0.2.0', 'bcc68332c4a80b4f84ec9c8083465416')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-macholib', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-macs2/package.py b/var/spack/repos/builtin/packages/py-macs2/package.py
index d4bfd1b0f4..8f6b4cb27a 100644
--- a/var/spack/repos/builtin/packages/py-macs2/package.py
+++ b/var/spack/repos/builtin/packages/py-macs2/package.py
@@ -30,7 +30,7 @@ class PyMacs2(PythonPackage):
"""MACS2 Model-based Analysis of ChIP-Seq"""
homepage = "https://github.com/taoliu/MACS"
- url = "https://pypi.python.org/packages/9f/99/a8ac96b357f6b0a6f559fe0f5a81bcae12b98579551620ce07c5183aee2c/MACS2-2.1.1.20160309.tar.gz"
+ url = "https://pypi.io/packages/source/M/MACS2/MACS2-2.1.1.20160309.tar.gz"
version('2.1.1.20160309', '2008ba838f83f34f8e0fddefe2a3a0159f4a740707c68058f815b31ddad53d26')
diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py
index b1ea98d963..481c36818b 100644
--- a/var/spack/repos/builtin/packages/py-mako/package.py
+++ b/var/spack/repos/builtin/packages/py-mako/package.py
@@ -30,7 +30,7 @@ class PyMako(PythonPackage):
ideas from the existing templating languages."""
homepage = "https://pypi.python.org/pypi/mako"
- url = "https://pypi.python.org/packages/source/M/Mako/Mako-1.0.1.tar.gz"
+ url = "https://pypi.io/packages/source/M/Mako/Mako-1.0.1.tar.gz"
version('1.0.4', 'c5fc31a323dd4990683d2f2da02d4e20')
version('1.0.1', '9f0aafd177b039ef67b90ea350497a54')
diff --git a/var/spack/repos/builtin/packages/py-misopy/package.py b/var/spack/repos/builtin/packages/py-misopy/package.py
new file mode 100644
index 0000000000..3bfba1cc30
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-misopy/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyMisopy(PythonPackage):
+ """MISO (Mixture of Isoforms) is a probabilistic framework that
+ quantitates the expression level of alternatively spliced genes from
+ RNA-Seq data, and identifies differentially regulated isoforms or exons
+ across samples."""
+
+ homepage = "http://miso.readthedocs.io/en/fastmiso/"
+ url = "https://pypi.io/packages/source/m/misopy/misopy-0.5.4.tar.gz"
+
+ version('0.5.4', 'fe0c9c2613304defbdead12ea99e4194')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('python@2.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.5.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.9.0:', type=('build', 'run'))
+ depends_on('py-pysam@0.6.0:', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('samtools')
+ depends_on('bedtools2')
diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py
index f5653117d9..abb8abc125 100644
--- a/var/spack/repos/builtin/packages/py-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-mock/package.py
@@ -31,7 +31,7 @@ class PyMock(PythonPackage):
they have been used."""
homepage = "https://github.com/testing-cabal/mock"
- url = "https://pypi.python.org/packages/source/m/mock/mock-1.3.0.tar.gz"
+ url = "https://pypi.io/packages/source/m/mock/mock-1.3.0.tar.gz"
version('2.0.0', '0febfafd14330c9dcaa40de2d82d40ad')
version('1.3.0', '73ee8a4afb3ff4da1b4afa287f39fdeb')
diff --git a/var/spack/repos/builtin/packages/py-mpi4py/package.py b/var/spack/repos/builtin/packages/py-mpi4py/package.py
index a2ca9d83d8..0d57375787 100644
--- a/var/spack/repos/builtin/packages/py-mpi4py/package.py
+++ b/var/spack/repos/builtin/packages/py-mpi4py/package.py
@@ -33,7 +33,7 @@ class PyMpi4py(PythonPackage):
"""
homepage = "https://pypi.python.org/pypi/mpi4py"
- url = "https://pypi.python.org/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz"
+ url = "https://pypi.io/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz"
version('2.0.0', '4f7d8126d7367c239fd67615680990e3')
version('1.3.1', 'dbe9d22bdc8ed965c23a7ceb6f32fc3c')
diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py
index 7b57ec4d73..aa00488016 100644
--- a/var/spack/repos/builtin/packages/py-mpmath/package.py
+++ b/var/spack/repos/builtin/packages/py-mpmath/package.py
@@ -28,6 +28,6 @@ from spack import *
class PyMpmath(PythonPackage):
"""A Python library for arbitrary-precision floating-point arithmetic."""
homepage = "http://mpmath.org"
- url = "https://pypi.python.org/packages/source/m/mpmath/mpmath-all-0.19.tar.gz"
+ url = "https://pypi.io/packages/source/m/mpmath/mpmath-all-0.19.tar.gz"
version('0.19', 'd1b7e19dd6830d0d7b5e1bc93d46c02c')
diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py
index 1c5864ed91..f3c5a88897 100644
--- a/var/spack/repos/builtin/packages/py-nestle/package.py
+++ b/var/spack/repos/builtin/packages/py-nestle/package.py
@@ -29,7 +29,7 @@ class PyNestle(PythonPackage):
"""Nested sampling algorithms for evaluating Bayesian evidence."""
homepage = "http://kbarbary.github.io/nestle/"
- url = "https://pypi.python.org/packages/source/n/nestle/nestle-0.1.1.tar.gz"
+ url = "https://pypi.io/packages/source/n/nestle/nestle-0.1.1.tar.gz"
version('0.1.1', '4875c0f9a0a8e263c1d7f5fa6ce604c5')
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index 6ddff5988f..1d8dfa6b53 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -29,9 +29,10 @@ class PyNetworkx(PythonPackage):
"""NetworkX is a Python package for the creation, manipulation, and study
of the structure, dynamics, and functions of complex networks."""
homepage = "http://networkx.github.io/"
- url = "https://pypi.python.org/packages/source/n/networkx/networkx-1.11.tar.gz"
+ url = "https://pypi.io/packages/source/n/networkx/networkx-1.11.tar.gz"
version('1.11', '6ef584a879e9163013e9a762e1cf7cd1')
+ version('1.10', 'eb7a065e37250a4cc009919dacfe7a9d')
depends_on('py-decorator', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index 57250b645b..58090ae674 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -28,10 +28,9 @@ from spack import *
class PyNumexpr(PythonPackage):
"""Fast numerical expression evaluator for NumPy"""
homepage = "https://pypi.python.org/pypi/numexpr"
- url = "https://pypi.python.org/packages/source/n/numexpr/numexpr-2.4.6.tar.gz"
+ url = "https://pypi.io/packages/source/n/numexpr/numexpr-2.6.1.tar.gz"
- version('2.6.1', '6365245705b446426df9543ad218dd8e',
- url="https://pypi.python.org/packages/c6/f0/11628fa4d332d8fe9ab0ba8e9bfe0e065fb6b5324859171ee72d84e079c0/numexpr-2.6.1.tar.gz")
+ version('2.6.1', '6365245705b446426df9543ad218dd8e')
version('2.5', '84f66cced45ba3e30dcf77a937763aaa')
version('2.4.6', '17ac6fafc9ea1ce3eb970b9abccb4fbd')
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index 177a55fd1d..76ccb1a4a9 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -34,7 +34,7 @@ class PyNumpy(PythonPackage):
number capabilities"""
homepage = "http://www.numpy.org/"
- url = "https://pypi.io/packages/source/n/numpy/numpy-1.9.1.tar.gz"
+ url = "https://pypi.io/packages/source/n/numpy/numpy-1.13.1.zip"
install_time_test_callbacks = ['install_test', 'import_module_test']
@@ -48,18 +48,16 @@ class PyNumpy(PythonPackage):
# FIXME: numpy._build_utils and numpy.core.code_generators failed to import
# FIXME: Is this expected?
- version('1.13.0', 'fd044f0b8079abeaf5e6d2e93b2c1d03',
- url="https://pypi.io/packages/source/n/numpy/numpy-1.13.0.zip")
- version('1.12.1', 'c75b072a984028ac746a6a332c209a91',
- url="https://pypi.io/packages/source/n/numpy/numpy-1.12.1.zip")
- version('1.12.0', '33e5a84579f31829bbbba084fe0a4300',
- url="https://pypi.io/packages/source/n/numpy/numpy-1.12.0.zip")
- version('1.11.2', '03bd7927c314c43780271bf1ab795ebc')
- version('1.11.1', '2f44a895a8104ffac140c3a70edbd450')
- version('1.11.0', 'bc56fb9fc2895aa4961802ffbdb31d0b')
- version('1.10.4', 'aed294de0aa1ac7bd3f9745f4f1968ad')
- version('1.9.2', 'a1ed53432dbcd256398898d35bc8e645')
- version('1.9.1', '78842b73560ec378142665e712ae4ad9')
+ version('1.13.1', '2c3c0f4edf720c3a7b525dacc825b9ae')
+ version('1.13.0', 'fd044f0b8079abeaf5e6d2e93b2c1d03')
+ version('1.12.1', 'c75b072a984028ac746a6a332c209a91')
+ version('1.12.0', '33e5a84579f31829bbbba084fe0a4300')
+ version('1.11.2', '8308cc97be154d2f64a2387ea863c2ac')
+ version('1.11.1', '5caa3428b24aaa07e72c79d115140e46')
+ version('1.11.0', '19ce5c4eb16d663a0713daf0018a3021')
+ version('1.10.4', '510ffc322c635511e7be95d225b6bcbb')
+ version('1.9.2', 'e80c19d2fb25af576460bb7dac31c59a')
+ version('1.9.1', '223532d8e1bdaff5d30936439701d6e1')
variant('blas', default=True, description='Build with BLAS support')
variant('lapack', default=True, description='Build with LAPACK support')
diff --git a/var/spack/repos/builtin/packages/py-pathspec/package.py b/var/spack/repos/builtin/packages/py-pathspec/package.py
index e9ff10b109..f939865367 100644
--- a/var/spack/repos/builtin/packages/py-pathspec/package.py
+++ b/var/spack/repos/builtin/packages/py-pathspec/package.py
@@ -30,8 +30,8 @@ class PyPathspec(PythonPackage):
making it easier to write, find and run tests."""
homepage = "https://pypi.python.org/pypi/pathspec"
+ url = "https://pypi.io/packages/source/p/pathspec/pathspec-0.3.4.tar.gz"
- version('0.3.4', '2a4af9bf2dee98845d583ec61a00d05d',
- url='https://pypi.python.org/packages/14/9d/c9d790d373d6f6938d793e9c549b87ad8670b6fa7fc6176485e6ef11c1a4/pathspec-0.3.4.tar.gz')
+ version('0.3.4', '2a4af9bf2dee98845d583ec61a00d05d')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py
index 84d6479fc4..e7e67de871 100644
--- a/var/spack/repos/builtin/packages/py-periodictable/package.py
+++ b/var/spack/repos/builtin/packages/py-periodictable/package.py
@@ -30,7 +30,7 @@ class PyPeriodictable(PythonPackage):
making it easier to write, find and run tests."""
homepage = "https://pypi.python.org/pypi/periodictable"
- url = "https://pypi.python.org/packages/source/p/periodictable/periodictable-1.4.1.tar.gz"
+ url = "https://pypi.io/packages/source/p/periodictable/periodictable-1.4.1.tar.gz"
version('1.4.1', '7246b63cc0b6b1be6e86b6616f9e866e')
diff --git a/var/spack/repos/builtin/packages/py-petsc4py/package.py b/var/spack/repos/builtin/packages/py-petsc4py/package.py
index 888890037c..8e2d56755d 100644
--- a/var/spack/repos/builtin/packages/py-petsc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-petsc4py/package.py
@@ -29,10 +29,10 @@ class PyPetsc4py(PythonPackage):
"""This package provides Python bindings for the PETSc package.
"""
homepage = "https://pypi.python.org/pypi/petsc4py"
- url = "https://pypi.python.org/packages/b3/d5/84a71e3ccc13bf90b5055d264e5b256d161ae513392d0f28e8a7ac80d15c/petsc4py-3.7.0.tar.gz"
+ url = "https://pypi.io/packages/source/p/petsc4py/petsc4py-3.7.0.tar.gz"
version('3.7.0', '816a20040a6a477bd637f397c9fb5b6d')
depends_on('py-setuptools', type='build')
depends_on('py-mpi4py', type=('build', 'run'))
- depends_on('petsc+mpi')
+ depends_on('petsc+mpi')
diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py
index 656c9a15f2..ba6e7b9c67 100644
--- a/var/spack/repos/builtin/packages/py-pillow/package.py
+++ b/var/spack/repos/builtin/packages/py-pillow/package.py
@@ -33,7 +33,7 @@ class PyPillow(PythonPackage):
capabilities."""
homepage = "https://python-pillow.org/"
- url = "https://pypi.python.org/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
+ url = "https://pypi.io/packages/source/P/Pillow/Pillow-3.0.0.tar.gz"
# TODO: This version should be deleted once the next release comes out.
# TODO: It fixes a bug that prevented us from linking to Tk/Tcl.
diff --git a/var/spack/repos/builtin/packages/py-pipits/package.py b/var/spack/repos/builtin/packages/py-pipits/package.py
new file mode 100644
index 0000000000..88a629cc2e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pipits/package.py
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPipits(PythonPackage):
+ """Automated pipeline for analyses of fungal ITS from the Illumina"""
+
+ homepage = "https://github.com/hsgweon/pipits"
+ url = "https://github.com/hsgweon/pipits/archive/1.5.0.tar.gz"
+
+ version('1.5.0', '3f9b52bd7ffbcdb96d7bec150275070a')
+
+ depends_on('python@:2.999', type=('build', 'run'))
+ depends_on('py-biom-format', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('java', type=('build', 'run'))
+ depends_on('hmmer')
+ depends_on('fastx-toolkit')
+ depends_on('vsearch')
+ depends_on('itsx')
+ depends_on('rdp-classifier')
+
+ resource(
+ name='UNITE_retrained',
+ url='http://sourceforge.net/projects/pipits/files/UNITE_retrained_28.06.2017.tar.gz',
+ destination='refdb'
+ )
+
+ resource(
+ name='uchime_reference_dataset_01.01.2016.fasta',
+ url='https://unite.ut.ee/sh_files/uchime_reference_dataset_01.01.2016.zip',
+ destination=join_path('refdb', 'uchime_reference_dataset_01.01.2016')
+ )
+
+ resource(
+ name='warcup_retrained_V2',
+ url='https://sourceforge.net/projects/pipits/files/warcup_retrained_V2.tar.gz',
+ destination='refdb'
+ )
+
+ @run_after('install')
+ def install_db(self):
+ install_tree(join_path(self.stage.source_path, 'refdb'),
+ self.prefix.refdb)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('PIPITS_UNITE_REFERENCE_DATA_CHIMERA', join_path(
+ self.prefix, 'refdb',
+ 'uchime_reference_dataset_01.01.2016',
+ 'uchime_reference_dataset_01.01.2016.fasta'))
+ run_env.set('PIPITS_UNITE_RETRAINED_DIR',
+ self.prefix.refdb.UNITE_retrained)
+ run_env.set('PIPITS_WARCUP_RETRAINED_DIR',
+ self.prefix.refdb.warcup_retrained_V2)
+ run_env.set('PIPITS_RDP_CLASSIFIER_JAR', join_path(
+ self.spec['rdp-classifier'].prefix.bin,
+ 'classifier.jar'))
diff --git a/var/spack/repos/builtin/packages/py-pmw/package.py b/var/spack/repos/builtin/packages/py-pmw/package.py
index e7317bae0c..a0dd79b0e4 100644
--- a/var/spack/repos/builtin/packages/py-pmw/package.py
+++ b/var/spack/repos/builtin/packages/py-pmw/package.py
@@ -29,6 +29,6 @@ class PyPmw(PythonPackage):
"""Pmw is a toolkit for building high-level compound widgets, or
megawidgets, constructed using other widgets as component parts."""
homepage = "https://pypi.python.org/pypi/Pmw"
- url = "https://pypi.python.org/packages/source/P/Pmw/Pmw-2.0.0.tar.gz"
+ url = "https://pypi.io/packages/source/P/Pmw/Pmw-2.0.0.tar.gz"
version('2.0.0', 'c7c3f26c4f5abaa99807edefee578fc0')
diff --git a/var/spack/repos/builtin/packages/py-ppft/package.py b/var/spack/repos/builtin/packages/py-ppft/package.py
index 07681c57e2..da96ba458e 100644
--- a/var/spack/repos/builtin/packages/py-ppft/package.py
+++ b/var/spack/repos/builtin/packages/py-ppft/package.py
@@ -29,7 +29,7 @@ class PyPpft(PythonPackage):
"""Distributed and parallel python """
homepage = "https://github.com/uqfoundation/ppft"
- url = "https://pypi.org/packages/source/p/ppft/ppft-1.6.4.7.1.zip"
+ url = "https://pypi.io/packages/source/p/ppft/ppft-1.6.4.7.1.zip"
version('1.6.4.7.1', '2b196a03bfbc102773f849c6b21e617b')
version('1.6.4.6', 'e533432bfba4b5a523a07d58011df209')
diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py
index 12bf2e7cfa..53e1ec75b6 100644
--- a/var/spack/repos/builtin/packages/py-prettytable/package.py
+++ b/var/spack/repos/builtin/packages/py-prettytable/package.py
@@ -32,7 +32,7 @@ class PyPrettytable(PythonPackage):
"""
homepage = "https://code.google.com/archive/p/prettytable/"
- url = "https://pypi.python.org/packages/e0/a1/36203205f77ccf98f3c6cf17cf068c972e6458d7e58509ca66da949ca347/prettytable-0.7.2.tar.gz"
+ url = "https://pypi.io/packages/source/p/prettytable/prettytable-0.7.2.tar.gz"
version('0.7.2', 'a6b80afeef286ce66733d54a0296b13b')
diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py
index 3d474586fb..32421e959e 100644
--- a/var/spack/repos/builtin/packages/py-protobuf/package.py
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -34,7 +34,7 @@ class PyProtobuf(PythonPackage):
and using a variety of languages."""
homepage = 'https://developers.google.com/protocol-buffers/'
- url = 'https://pypi.python.org/packages/source/p/protobuf/protobuf-3.0.0b2.tar.gz'
+ url = 'https://pypi.io/packages/source/p/protobuf/protobuf-3.0.0b2.tar.gz'
version('3.0.0b2', 'f0d3bd2394345a9af4a277cd0302ae83')
version('2.6.1', '6bf843912193f70073db7f22e2ea55e2')
diff --git a/var/spack/repos/builtin/packages/py-psutil/package.py b/var/spack/repos/builtin/packages/py-psutil/package.py
index f7b96da772..f1524e56c2 100644
--- a/var/spack/repos/builtin/packages/py-psutil/package.py
+++ b/var/spack/repos/builtin/packages/py-psutil/package.py
@@ -31,7 +31,7 @@ class PyPsutil(PythonPackage):
in Python."""
homepage = "https://pypi.python.org/pypi/psutil"
- url = "https://pypi.python.org/packages/d9/c8/8c7a2ab8ec108ba9ab9a4762c5a0d67c283d41b13b5ce46be81fdcae3656/psutil-5.0.1.tar.gz"
+ url = "https://pypi.io/packages/source/p/psutil/psutil-5.0.1.tar.gz"
version('5.0.1', '153dc8be94badc4072016ceeac7808dc')
diff --git a/var/spack/repos/builtin/packages/py-py2bit/package.py b/var/spack/repos/builtin/packages/py-py2bit/package.py
new file mode 100644
index 0000000000..d48fb7e9b9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-py2bit/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPy2bit(PythonPackage):
+ """A package for accessing 2bit files using lib2bit."""
+
+ homepage = "https://pypi.python.org/pypi/py2bit"
+ url = "https://pypi.io/packages/source/p/py2bit/py2bit-0.2.1.tar.gz"
+
+ version('0.2.1', 'eaf5b1c80a0bbf0b35af1f002f83a556')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-pybigwig/package.py b/var/spack/repos/builtin/packages/py-pybigwig/package.py
new file mode 100644
index 0000000000..4d96ba58c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pybigwig/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPybigwig(PythonPackage):
+ """A package for accessing bigWig files using libBigWig."""
+
+ homepage = "https://pypi.python.org/pypi/pyBigWig"
+ url = "https://pypi.io/packages/source/p/pyBigWig/pyBigWig-0.3.4.tar.gz"
+
+ version('0.3.4', '8e0a91e26e87eeaa071408a3a749bfa9')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('curl', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py
new file mode 100644
index 0000000000..0fabae48bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pybind11/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPybind11(CMakePackage):
+ """pybind11 -- Seamless operability between C++11 and Python.
+ pybind11 is a lightweight header-only library that exposes C++ types in
+ Python and vice versa, mainly to create Python bindings of existing C++
+ code. Its goals and syntax are similar to the excellent Boost.Python
+ library by David Abrahams: to minimize boilerplate code in traditional
+ extension modules by inferring type information using compile-time
+ introspection."""
+
+ homepage = "https://pybind11.readthedocs.io"
+ url = "https://github.com/pybind/pybind11/archive/v2.1.0.tar.gz"
+
+ version('2.1.1', '5518988698df937ccee53fb6ba91d12a')
+ version('2.1.0', '3cf07043d677d200720c928569635e12')
+
+ depends_on('py-pytest', type=('build'))
+
+ extends('python')
+
+ def cmake_args(self):
+ args = []
+ args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s'
+ % self.spec['python'].command.path)
+ return args
diff --git a/var/spack/repos/builtin/packages/py-pycrypto/package.py b/var/spack/repos/builtin/packages/py-pycrypto/package.py
index 65d78dc75d..0c24ceb242 100644
--- a/var/spack/repos/builtin/packages/py-pycrypto/package.py
+++ b/var/spack/repos/builtin/packages/py-pycrypto/package.py
@@ -30,7 +30,7 @@ class PyPycrypto(PythonPackage):
"""The Python Cryptography Toolkit"""
homepage = "https://www.dlitz.net/software/pycrypto/"
- url = "https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz"
+ url = "https://pypi.io/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz"
version('2.6.1', '55a61a054aa66812daf5161a0d5d7eda')
diff --git a/var/spack/repos/builtin/packages/py-pycurl/package.py b/var/spack/repos/builtin/packages/py-pycurl/package.py
index 91a1648d3b..4d9164b269 100644
--- a/var/spack/repos/builtin/packages/py-pycurl/package.py
+++ b/var/spack/repos/builtin/packages/py-pycurl/package.py
@@ -30,7 +30,7 @@ class PyPycurl(PythonPackage):
objects identified by a URL from a Python program."""
homepage = "http://pycurl.io/"
- url = "https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz"
+ url = "https://pypi.io/packages/source/p/pycurl/pycurl-7.43.0.tar.gz"
version('7.43.0', 'c94bdba01da6004fa38325e9bd6b9760')
diff --git a/var/spack/repos/builtin/packages/py-pydatalog/package.py b/var/spack/repos/builtin/packages/py-pydatalog/package.py
index 6a51f5dc20..270847f5dc 100644
--- a/var/spack/repos/builtin/packages/py-pydatalog/package.py
+++ b/var/spack/repos/builtin/packages/py-pydatalog/package.py
@@ -28,6 +28,6 @@ from spack import *
class PyPydatalog(PythonPackage):
"""pyDatalog adds logic programming to Python."""
homepage = 'https://pypi.python.org/pypi/pyDatalog/'
- url = 'https://pypi.python.org/packages/09/0b/2670eb9c0027aacfb5b5024ca75e5fee2f1261180ab8797108ffc941158a/pyDatalog-0.17.1.zip'
+ url = 'https://pypi.io/packages/source/p/pyDatalog/pyDatalog-0.17.1.zip'
version('0.17.1', '6b2682301200068d208d6f2d01723939')
diff --git a/var/spack/repos/builtin/packages/py-pyelftools/package.py b/var/spack/repos/builtin/packages/py-pyelftools/package.py
index 23c8b4ef90..e1d074edae 100644
--- a/var/spack/repos/builtin/packages/py-pyelftools/package.py
+++ b/var/spack/repos/builtin/packages/py-pyelftools/package.py
@@ -29,6 +29,6 @@ class PyPyelftools(PythonPackage):
"""A pure-Python library for parsing and analyzing ELF files and DWARF
debugging information"""
homepage = "https://pypi.python.org/pypi/pyelftools"
- url = "https://pypi.python.org/packages/source/p/pyelftools/pyelftools-0.23.tar.gz"
+ url = "https://pypi.io/packages/source/p/pyelftools/pyelftools-0.23.tar.gz"
version('0.23', 'aa7cefa8bd2f63d7b017440c9084f310')
diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py
index 4df0e09c9f..a251529410 100644
--- a/var/spack/repos/builtin/packages/py-pylint/package.py
+++ b/var/spack/repos/builtin/packages/py-pylint/package.py
@@ -28,10 +28,11 @@ from spack import *
class PyPylint(PythonPackage):
"""array processing for numbers, strings, records, and objects."""
homepage = "https://pypi.python.org/pypi/pylint"
- url = "https://pypi.python.org/packages/source/p/pylint/pylint-1.4.1.tar.gz"
+ url = "https://pypi.io/packages/source/p/pylint/pylint-1.7.2.tar.gz"
- version('1.4.1', 'df7c679bdcce5019389038847e4de622')
+ version('1.7.2', '27ee752cdcfacb05bf4940947e6b35c6')
version('1.4.3', '5924c1c7ca5ca23647812f5971d0ea44')
+ version('1.4.1', 'df7c679bdcce5019389038847e4de622')
extends('python', ignore=r'bin/pytest')
depends_on('py-six', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pypeflow/package.py b/var/spack/repos/builtin/packages/py-pypeflow/package.py
new file mode 100644
index 0000000000..8741b731f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pypeflow/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPypeflow(PythonPackage):
+ """pypeFLOW is light weight and reusable make / flow data process
+ library written in Python."""
+
+ homepage = "https://github.com/PacificBiosciences/pypeFLOW"
+ url = "https://github.com/PacificBiosciences/pypeFLOW"
+
+ version('2017-05-04',
+ git='https://github.com/PacificBiosciences/pypeFLOW.git',
+ commit='f23a1b290876bbdf130611000934ae4247158073')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-networkx@1.7:1.11', type=['build', 'run'])
diff --git a/var/spack/repos/builtin/packages/py-pyrad/package.py b/var/spack/repos/builtin/packages/py-pyrad/package.py
new file mode 100644
index 0000000000..05142e26b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyrad/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPyrad(PythonPackage):
+ """RADseq for phylogenetics & introgression analyses"""
+
+ homepage = "http://dereneaton.com/software/pyrad/"
+ url = "https://github.com/dereneaton/pyrad/archive/3.0.66.tar.gz"
+
+ version('3.0.66', '19b8bcd73a574f8a25582d6e8978f0aa')
+
+ depends_on('python@:2.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('vsearch')
+ depends_on('muscle')
diff --git a/var/spack/repos/builtin/packages/py-pysam/package.py b/var/spack/repos/builtin/packages/py-pysam/package.py
new file mode 100644
index 0000000000..cf470ea564
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pysam/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPysam(PythonPackage):
+ """A python module for reading, manipulating and writing genomic data
+ sets."""
+
+ homepage = "https://pypi.python.org/pypi/pysam"
+ url = "https://pypi.io/packages/source/p/pysam/pysam-0.11.2.2.tar.gz"
+
+ version('0.11.2.2', '56230cd5f55b503845915b76c22d620a')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cython@0.21:', type='build')
+ depends_on('bcftools')
diff --git a/var/spack/repos/builtin/packages/py-pyscaf/package.py b/var/spack/repos/builtin/packages/py-pyscaf/package.py
new file mode 100644
index 0000000000..93f6b6afdd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyscaf/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPyscaf(PythonPackage):
+ """pyScaf orders contigs from genome assemblies utilising several types of
+ information"""
+
+ homepage = "https://pypi.python.org/pypi/pyScaf"
+ url = "https://pypi.io/packages/source/p/pyScaf/pyScaf-0.12a4.tar.gz"
+
+ version('0.12a4', 'c67526747eb04d1e28279ac310916d40')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-fastaindex', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py
index 7735fc28df..aff69b46d6 100644
--- a/var/spack/repos/builtin/packages/py-pyside/package.py
+++ b/var/spack/repos/builtin/packages/py-pyside/package.py
@@ -29,7 +29,7 @@ import os
class PyPyside(PythonPackage):
"""Python bindings for Qt."""
homepage = "https://pypi.python.org/pypi/pyside"
- url = "https://pypi.python.org/packages/source/P/PySide/PySide-1.2.2.tar.gz"
+ url = "https://pypi.io/packages/source/P/PySide/PySide-1.2.2.tar.gz"
version('1.2.4', '3cb7174c13bd45e3e8f77638926cb8c0') # rpath problems
version('1.2.2', 'c45bc400c8a86d6b35f34c29e379e44d', preferred=True)
diff --git a/var/spack/repos/builtin/packages/py-pytest-xdist/package.py b/var/spack/repos/builtin/packages/py-pytest-xdist/package.py
new file mode 100644
index 0000000000..f82fa13039
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pytest-xdist/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyPytestXdist(PythonPackage):
+ """py.test xdist plugin for distributed testing and loop-on-failing mode"""
+
+ homepage = "https://github.com/pytest-dev/pytest-xdist"
+ url = "https://pypi.io/packages/source/p/pytest-xdist/pytest-xdist-1.16.0.tar.gz"
+
+ version('1.16.0', '68dabf856981ad93b14960b098b05bff')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-execnet@1.1:', type=('build', 'run'))
+ depends_on('py-pytest@2.7.0:', type=('build', 'run'))
+ depends_on('py-py@1.4.22:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py
index 3e61231c8e..858c57b7d9 100644
--- a/var/spack/repos/builtin/packages/py-python-daemon/package.py
+++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py
@@ -38,7 +38,7 @@ class PyPythonDaemon(PythonPackage):
to enter a daemon state.
"""
homepage = "https://pypi.python.org/pypi/python-daemon/"
- url = "https://pypi.python.org/packages/source/p/python-daemon/python-daemon-2.0.5.tar.gz"
+ url = "https://pypi.io/packages/source/p/python-daemon/python-daemon-2.0.5.tar.gz"
version('2.0.5', '73e7f49f525c51fa4a995aea4d80de41')
diff --git a/var/spack/repos/builtin/packages/py-readme-renderer/package.py b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
index e090d6a6bd..709851aed5 100644
--- a/var/spack/repos/builtin/packages/py-readme-renderer/package.py
+++ b/var/spack/repos/builtin/packages/py-readme-renderer/package.py
@@ -30,7 +30,7 @@ class PyReadmeRenderer(PythonPackage):
for Warehouse."""
homepage = "https://github.com/pypa/readme_renderer"
- url = "https://pypi.python.org/packages/f2/6e/ef1bc3a24eb14e14574aba9dc1bd50bc9a5e7cc880e8ff9cadd385b4fb37/readme_renderer-16.0.tar.gz"
+ url = "https://pypi.io/packages/source/r/readme_renderer/readme_renderer-16.0.tar.gz"
version('16.0', '70321cea986956bcf2deef9981569f39')
diff --git a/var/spack/repos/builtin/packages/py-regex/package.py b/var/spack/repos/builtin/packages/py-regex/package.py
new file mode 100644
index 0000000000..a13dd01919
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-regex/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class PyRegex(PythonPackage):
+ """Alternative regular expression module, to replace re."""
+
+ homepage = "https://pypi.python.org/pypi/regex/"
+ url = "https://pypi.io/packages/source/r/regex/regex-2017.07.11.tar.gz"
+
+ version('2017.07.11', '95f81ebb5273c7ad9a0c4d1ac5a94eb4')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py
index d953650003..5ab66a9ba3 100644
--- a/var/spack/repos/builtin/packages/py-restview/package.py
+++ b/var/spack/repos/builtin/packages/py-restview/package.py
@@ -29,7 +29,7 @@ class PyRestview(PythonPackage):
"""A viewer for ReStructuredText documents that renders them on the fly."""
homepage = "https://mg.pov.lt/restview/"
- url = "https://pypi.python.org/packages/source/r/restview/restview-2.6.1.tar.gz"
+ url = "https://pypi.io/packages/source/r/restview/restview-2.6.1.tar.gz"
version('2.6.1', 'ac8b70e15b8f1732d1733d674813666b')
diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py
index aa3ac66775..a0d020f427 100644
--- a/var/spack/repos/builtin/packages/py-rpy2/package.py
+++ b/var/spack/repos/builtin/packages/py-rpy2/package.py
@@ -33,7 +33,7 @@ class PyRpy2(PythonPackage):
"""
homepage = "https://pypi.python.org/pypi/rpy2"
- url = "https://pypi.python.org/packages/source/r/rpy2/rpy2-2.5.4.tar.gz"
+ url = "https://pypi.io/packages/source/r/rpy2/rpy2-2.5.4.tar.gz"
version('2.5.4', '115a20ac30883f096da2bdfcab55196d')
version('2.5.6', 'a36e758b633ce6aec6a5f450bfee980f')
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index 5ca6e3ebf0..f164a3a25f 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -30,7 +30,7 @@ class PyScikitImage(PythonPackage):
filtering, warping, color manipulation, object detection, etc."""
homepage = "http://scikit-image.org/"
- url = "https://pypi.python.org/packages/source/s/scikit-image/scikit-image-0.12.3.tar.gz"
+ url = "https://pypi.io/packages/source/s/scikit-image/scikit-image-0.12.3.tar.gz"
version('0.12.3', '04ea833383e0b6ad5f65da21292c25e1')
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index 9817ff815b..0d2a9a155c 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -35,8 +35,8 @@ class PyScikitLearn(PythonPackage):
version('0.15.2', 'd9822ad0238e17b382a3c756ea94fe0d')
version('0.16.1', '363ddda501e3b6b61726aa40b8dbdb7e')
version('0.17.1', 'a2f8b877e6d99b1ed737144f5a478dfc')
+ version('0.13.1', 'acba398e1d46274b8470f40d0926e6a4')
depends_on('python@2.6:2.8,3.3:')
- depends_on('py-setuptools', type='build')
depends_on('py-numpy@1.6.1:', type=('build', 'run'))
depends_on('py-scipy@0.9:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index 919b7508a6..6e2ef327e3 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -31,7 +31,7 @@ class PyScipy(PythonPackage):
as routines for numerical integration and optimization."""
homepage = "http://www.scipy.org/"
- url = "https://pypi.io/packages/source/s/scipy/scipy-0.18.1.tar.gz"
+ url = "https://pypi.io/packages/source/s/scipy/scipy-0.19.1.tar.gz"
install_time_test_callbacks = ['install_test', 'import_module_test']
@@ -49,6 +49,9 @@ class PyScipy(PythonPackage):
'scipy.special._precompute'
]
+ # See https://github.com/LLNL/spack/issues/2737
+ version('0.19.1', '6b4d91b62f1926282b127194a06b72b3',
+ url="https://pypi.io/packages/source/s/scipy/scipy-0.19.1.tar.gz")
version('0.19.0', '91b8396231eec780222a57703d3ec550',
url="https://pypi.io/packages/source/s/scipy/scipy-0.19.0.zip")
version('0.18.1', '5fb5fb7ccb113ab3a039702b6c2f3327')
diff --git a/var/spack/repos/builtin/packages/py-shiboken/package.py b/var/spack/repos/builtin/packages/py-shiboken/package.py
index c04f8a2755..2f6f40df3a 100644
--- a/var/spack/repos/builtin/packages/py-shiboken/package.py
+++ b/var/spack/repos/builtin/packages/py-shiboken/package.py
@@ -29,7 +29,7 @@ import os
class PyShiboken(PythonPackage):
"""Shiboken generates bindings for C++ libraries using CPython."""
homepage = "https://shiboken.readthedocs.org/"
- url = "https://pypi.python.org/packages/source/S/Shiboken/Shiboken-1.2.2.tar.gz"
+ url = "https://pypi.io/packages/source/S/Shiboken/Shiboken-1.2.2.tar.gz"
version('1.2.2', '345cfebda221f525842e079a6141e555')
diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py
index 8c1a5c026f..35b7286b9d 100644
--- a/var/spack/repos/builtin/packages/py-slepc4py/package.py
+++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py
@@ -29,7 +29,7 @@ class PySlepc4py(PythonPackage):
"""This package provides Python bindings for the SLEPc package.
"""
homepage = "https://pypi.python.org/pypi/slepc4py"
- url = "https://pypi.python.org/packages/b4/dd/116fbdf865f6f9eda779c5d31bc5b68f37ef3dd5dbfc3feb4aaba1565560/slepc4py-3.7.0.tar.gz"
+ url = "https://pypi.io/packages/source/s/slepc4py/slepc4py-3.7.0.tar.gz"
version('3.7.0', 'c4775e88b0825c7313629c01de60ecb2')
diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py
index c2ff03c1a9..e5f5165fb2 100644
--- a/var/spack/repos/builtin/packages/py-sncosmo/package.py
+++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py
@@ -30,7 +30,7 @@ class PySncosmo(PythonPackage):
analysis."""
homepage = "http://sncosmo.readthedocs.io/"
- url = "https://pypi.python.org/packages/source/s/sncosmo/sncosmo-1.2.0.tar.gz"
+ url = "https://pypi.io/packages/source/s/sncosmo/sncosmo-1.2.0.tar.gz"
version('1.2.0', '028e6d1dc84ab1c17d2f3b6378b2cb1e')
diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py
index ba4c4badcc..1dbf581eb7 100644
--- a/var/spack/repos/builtin/packages/py-sphinx/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx/package.py
@@ -40,6 +40,7 @@ class PySphinx(PythonPackage):
'sphinx.environment.collectors', 'sphinx.environment.adapters'
]
+ version('1.6.3', 'c5ad61f4e0974375ca2c2b58ef8d5411')
version('1.6.1', '26cb1cdca7aa4afc8c925d926b6268e7')
version('1.5.5', 'f9581b3556df9722143c47290273bcf8')
version('1.4.5', '5c2cd2dac45dfa6123d067e32a89e89a')
@@ -63,10 +64,20 @@ class PySphinx(PythonPackage):
depends_on('py-alabaster@0.7.0:0.7.999', type=('build', 'run'))
depends_on('py-imagesize', when='@1.4:', type=('build', 'run'))
depends_on('py-requests@2.0.0:', type=('build', 'run'))
- depends_on('py-typing', type=('build', 'run'))
- depends_on('py-sphinxcontrib-websupport', type=('build', 'run'))
depends_on('py-sphinx-rtd-theme@0.1:', type=('build', 'run')) # optional as of 1.4
+ # Sphinx v1.6+ no longer includes websupport by default:
+ # http://www.sphinx-doc.org/en/stable/changes.html
+ depends_on('py-sphinxcontrib-websupport', when='@1.6:',
+ type=('build', 'run'))
+ # TODO: incorporate the proper dependencies when concretizer is capable
+ # Build dep for 1.6.1 all python (bug), see:
+ # https://github.com/sphinx-doc/sphinx/pull/3789
+ # depends_on('py-typing', when='@1.6.1', type=('build', 'run'))
+ # depends_on('py-typing', when='@1.6.2:^python@2.7:3.4',
+ # type=('build', 'run'))
+ depends_on('py-typing', when='@1.6:', type=('build', 'run'))
+
# TODO: Add a 'test' deptype
# depends_on('py-pytest', type='test')
# depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
index 81ea2790ab..12d868660f 100644
--- a/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
+++ b/var/spack/repos/builtin/packages/py-sqlalchemy/package.py
@@ -29,6 +29,6 @@ class PySqlalchemy(PythonPackage):
"""The Python SQL Toolkit and Object Relational Mapper"""
homepage = 'http://www.sqlalchemy.org/'
- url = "https://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-1.0.12.tar.gz"
+ url = "https://pypi.io/packages/source/S/SQLAlchemy/SQLAlchemy-1.0.12.tar.gz"
version('1.0.12', '6d19ef29883bbebdcac6613cf391cac4')
diff --git a/var/spack/repos/builtin/packages/py-sympy/package.py b/var/spack/repos/builtin/packages/py-sympy/package.py
index 8f82bcc009..8ab3e60a9b 100644
--- a/var/spack/repos/builtin/packages/py-sympy/package.py
+++ b/var/spack/repos/builtin/packages/py-sympy/package.py
@@ -28,7 +28,7 @@ from spack import *
class PySympy(PythonPackage):
"""SymPy is a Python library for symbolic mathematics."""
homepage = "https://pypi.python.org/pypi/sympy"
- url = "https://pypi.python.org/packages/source/s/sympy/sympy-0.7.6.tar.gz"
+ url = "https://pypi.io/packages/source/s/sympy/sympy-0.7.6.tar.gz"
version('0.7.6', '3d04753974306d8a13830008e17babca')
version('1.0', '43e797de799f00f9e8fd2307dba9fab1')
diff --git a/var/spack/repos/builtin/packages/py-tappy/package.py b/var/spack/repos/builtin/packages/py-tappy/package.py
index 1f7b94cbe2..36e22f71e1 100644
--- a/var/spack/repos/builtin/packages/py-tappy/package.py
+++ b/var/spack/repos/builtin/packages/py-tappy/package.py
@@ -29,7 +29,7 @@ class PyTappy(PythonPackage):
"""Python TAP interface module for unit tests"""
homepage = "https://github.com/mblayman/tappy"
# base https://pypi.python.org/pypi/cffi
- url = "https://pypi.python.org/packages/source/t/tap.py/tap.py-1.6.tar.gz"
+ url = "https://pypi.io/packages/source/t/tap.py/tap.py-1.6.tar.gz"
version('1.6', 'c8bdb93ad66e05f939905172a301bedf')
diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py
index e1bbb136d0..0e1275700d 100644
--- a/var/spack/repos/builtin/packages/py-theano/package.py
+++ b/var/spack/repos/builtin/packages/py-theano/package.py
@@ -33,13 +33,14 @@ class PyTheano(PythonPackage):
url = "https://pypi.io/packages/source/T/Theano/Theano-0.8.2.tar.gz"
version('0.8.2', 'f2d0dfe7df141115201077cd933b2c52')
+ version('master', git='https://github.com/Theano/Theano.git', branch='master')
variant('gpu', default=False,
description='Builds with support for GPUs via CUDA and cuDNN')
depends_on('python@2.6:2.8,3.3:')
- depends_on('py-setuptools', type='build')
+ depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-scipy@0.11:', type=('build', 'run'))
depends_on('py-numpy@1.7.1:', type=('build', 'run'))
depends_on('py-six@1.9.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py
index 0beb3f436b..1184b49e3c 100644
--- a/var/spack/repos/builtin/packages/py-twisted/package.py
+++ b/var/spack/repos/builtin/packages/py-twisted/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyTwisted(PythonPackage):
"""An asynchronous networking framework written in Python"""
homepage = "https://twistedmatrix.com/"
- url = "https://pypi.python.org/packages/source/T/Twisted/Twisted-15.3.0.tar.bz2"
+ url = "https://pypi.io/packages/source/T/Twisted/Twisted-15.3.0.tar.bz2"
version('15.4.0', '5337ffb6aeeff3790981a2cd56db9655')
version('15.3.0', 'b58e83da2f00b3352afad74d0c5c4599')
diff --git a/var/spack/repos/builtin/packages/py-unittest2/package.py b/var/spack/repos/builtin/packages/py-unittest2/package.py
index 609688f8a1..c0cdbf9339 100644
--- a/var/spack/repos/builtin/packages/py-unittest2/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2/package.py
@@ -30,7 +30,7 @@ class PyUnittest2(PythonPackage):
testing framework in Python 2.7 and onwards."""
homepage = "https://pypi.python.org/pypi/unittest2"
- url = "https://pypi.python.org/packages/source/u/unittest2/unittest2-1.1.0.tar.gz"
+ url = "https://pypi.io/packages/source/u/unittest2/unittest2-1.1.0.tar.gz"
version('1.1.0', 'f72dae5d44f091df36b6b513305ea000')
diff --git a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
index d48ddc8a54..ea8a9927e5 100644
--- a/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
+++ b/var/spack/repos/builtin/packages/py-unittest2py3k/package.py
@@ -31,7 +31,7 @@ class PyUnittest2py3k(PythonPackage):
version of unittest2."""
homepage = "https://pypi.python.org/pypi/unittest2py3k"
- url = "https://pypi.python.org/packages/source/u/unittest2py3k/unittest2py3k-0.5.1.tar.gz"
+ url = "https://pypi.io/packages/source/u/unittest2py3k/unittest2py3k-0.5.1.tar.gz"
version('0.5.1', '8824ff92044310d9365f90d892bf0f09')
diff --git a/var/spack/repos/builtin/packages/py-urwid/package.py b/var/spack/repos/builtin/packages/py-urwid/package.py
index ea39b89084..4b662a0f1e 100644
--- a/var/spack/repos/builtin/packages/py-urwid/package.py
+++ b/var/spack/repos/builtin/packages/py-urwid/package.py
@@ -28,7 +28,7 @@ from spack import *
class PyUrwid(PythonPackage):
"""A full-featured console UI library"""
homepage = "http://urwid.org/"
- url = "https://pypi.python.org/packages/source/u/urwid/urwid-1.3.0.tar.gz"
+ url = "https://pypi.io/packages/source/u/urwid/urwid-1.3.0.tar.gz"
version('1.3.0', 'a989acd54f4ff1a554add464803a9175')
diff --git a/var/spack/repos/builtin/packages/py-vcversioner/package.py b/var/spack/repos/builtin/packages/py-vcversioner/package.py
index daa2d3caf2..33be558e3c 100644
--- a/var/spack/repos/builtin/packages/py-vcversioner/package.py
+++ b/var/spack/repos/builtin/packages/py-vcversioner/package.py
@@ -29,7 +29,7 @@ class PyVcversioner(PythonPackage):
"""Vcversioner: Take version numbers from version control."""
homepage = "https://github.com/habnabit/vcversioner"
- url = "https://pypi.python.org/packages/source/v/vcversioner/vcversioner-2.16.0.0.tar.gz"
+ url = "https://pypi.io/packages/source/v/vcversioner/vcversioner-2.16.0.0.tar.gz"
version('2.16.0.0', 'aab6ef5e0cf8614a1b1140ed5b7f107d')
diff --git a/var/spack/repos/builtin/packages/py-xlrd/package.py b/var/spack/repos/builtin/packages/py-xlrd/package.py
index af8dec00da..4bf87a46ca 100644
--- a/var/spack/repos/builtin/packages/py-xlrd/package.py
+++ b/var/spack/repos/builtin/packages/py-xlrd/package.py
@@ -30,6 +30,6 @@ class PyXlrd(PythonPackage):
spreadsheet files"""
homepage = 'http://www.python-excel.org/'
- url = "https://pypi.python.org/packages/source/x/xlrd/xlrd-0.9.4.tar.gz"
+ url = "https://pypi.io/packages/source/x/xlrd/xlrd-0.9.4.tar.gz"
version('0.9.4', '911839f534d29fe04525ef8cd88fe865')
diff --git a/var/spack/repos/builtin/packages/qbox/package.py b/var/spack/repos/builtin/packages/qbox/package.py
new file mode 100644
index 0000000000..6ffb27e197
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qbox/package.py
@@ -0,0 +1,93 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import shutil
+from spack import *
+
+
+class Qbox(MakefilePackage):
+ """Qbox is a C++/MPI scalable parallel implementation of first-principles
+ molecular dynamics (FPMD) based on the plane-wave, pseudopotential
+ formalism. Qbox is designed for operation on large parallel computers."""
+
+ homepage = "http://qboxcode.org/"
+ url = "http://qboxcode.org/download/qbox-1.63.7.tgz"
+
+ version('1.63.7', '6b0cf5656f816a1a59e22b268387af33')
+ version('1.63.5', 'da3161ab6a455793f2133dd03c04077c')
+ version('1.63.4', '8596f32c8fb7e7baa96571c655aaee07')
+ version('1.63.2', '55e8f13f37c8e1f43ca831791e3af1da')
+ version('1.63.0', '1436c884c553ab026b7f787307e5e6ed')
+ version('1.62.3', 'f07e038ab92b85956794e91a40346dbf')
+ version('1.60.9', '53b0df612e56bb65e8220d9d9dc8d395')
+ version('1.60.4', '060846c9fa03b1f3d7d5ce24a9491de2')
+ version('1.60.0', '3856cdc38a27dc17705844c4b9241a21')
+ version('1.58.0', 'ec0e6b79fa0ed06742212b1142e36b6a')
+ version('1.56.2', 'df7a4217d059a5d351d92e480ed14112')
+ version('1.54.4', '8f1a23af7d871317de93810b664ad3aa')
+ version('1.54.2', 'aeefee061255dbb36ca7e49378f63ad5')
+ version('1.52.3', '1862f2b2056cdf49ec4f746d45a7f1a6')
+ version('1.52.2', 'e406deb4c46176f1c15c226868bf61e2')
+ version('1.50.4', 'b06ff877257884e4fac321fb5a486266')
+ version('1.50.2', '171660b1bb5e57637f019fef055fb764')
+ version('1.50.1', '1da528b39da134f86f134432e8fada79')
+ version('1.47.0', '86f402651d440e05adc94168d6105da7')
+ version('1.45.3', '73b99a73dcbb1b5be9f66f3284750205')
+ version('1.45.1', '59e0c2583769b7586981c0d6ffa1b267')
+ version('1.45.0', '2c5bfbadfffd330c8c2fe294a10a08e4')
+ version('1.44.0', 'c46a2f0f68fe9229aa77779da188cea9')
+
+ depends_on('mpi')
+ depends_on('blas')
+ depends_on('scalapack')
+ depends_on('fftw')
+ depends_on('xerces-c')
+
+ build_directory = 'src'
+
+ def edit(self, spec, prefix):
+ with open('src/spack.mk', 'w') as mkfile:
+ mkfile.write('CXX = {0}\n'.format(spec['mpi'].mpicxx))
+ mkfile.write('LD = $(CXX)\n')
+ qbox_libs = spec['fftw'].libs + spec['xerces-c'].libs + \
+ spec['scalapack'].libs + spec['blas'].libs
+ mkfile.write('LDFLAGS = {0}\n'.format(qbox_libs.ld_flags))
+ mkfile.write('DFLAGS = {0}\n'.format(' -D'.join((
+ '',
+ '_LARGEFILE_SOURCE', 'USE_MPI', 'USE_XERCES',
+ 'XERCESC_3', 'MPICH_IGNORE_CXX_SEEK', 'SCALAPACK',
+ 'USE_FFTW3', 'FFTWMEASURE', 'FFTW3_2D', 'ADD_',
+ ))))
+ mkfile.write('CXXFLAGS = {0}\n'.format(' '.join((
+ '-g', '-O3', '$(DFLAGS)',
+ ))))
+ filter_file('$(TARGET)', 'spack', 'src/Makefile', string=True)
+
+ def install(self, spec, prefix):
+ mkdir(prefix.src)
+ install('src/qb', prefix.src)
+ shutil.move('test', prefix)
+ shutil.move('xml', prefix)
+ shutil.move('util', prefix)
diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py
index 308b0521fa..aaad704d66 100644
--- a/var/spack/repos/builtin/packages/qhull/package.py
+++ b/var/spack/repos/builtin/packages/qhull/package.py
@@ -43,4 +43,6 @@ class Qhull(CMakePackage):
version('2012.1', 'd0f978c0d8dfb2e919caefa56ea2953c',
url="http://www.qhull.org/download/qhull-2012.1-src.tgz")
+ patch('qhull-unused-intel-17.02.patch', when='@2015.2')
+
depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/qhull/qhull-unused-intel-17.02.patch b/var/spack/repos/builtin/packages/qhull/qhull-unused-intel-17.02.patch
new file mode 100644
index 0000000000..70eb3bd722
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qhull/qhull-unused-intel-17.02.patch
@@ -0,0 +1,18 @@
+--- a/src/libqhull_r/qhull_ra.h 2017-06-30 14:24:52.252635925 +0200
++++ b/src/libqhull_r/qhull_ra.h 2017-06-30 14:25:27.356635296 +0200
+@@ -101,13 +101,8 @@
+
+ */
+
+-#if defined(__cplusplus) && defined(__INTEL_COMPILER) && !defined(QHULL_OS_WIN)
+-template <typename T>
+-inline void qhullUnused(T &x) { (void)x; }
+-# define QHULL_UNUSED(x) qhullUnused(x);
+-#else
+-# define QHULL_UNUSED(x) (void)x;
+-#endif
++#define QHULL_UNUSED(x) (void)x;
++
+
+ /***** -libqhull_r.c prototypes (alphabetical after qhull) ********************/
+
diff --git a/var/spack/repos/builtin/packages/qmd-progress/package.py b/var/spack/repos/builtin/packages/qmd-progress/package.py
new file mode 100644
index 0000000000..09bb45e1a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qmd-progress/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2017, Los Alamos National Security, LLC
+# Produced at the Los Alamos National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class QmdProgress(CMakePackage):
+ """PROGRESS: Parallel, Rapid O(N) and Graph-based Recursive Electronic
+ Structure Solver.
+ This library is focused on the development of general solvers that are
+ commonly used in quantum chemistry packages."""
+
+ homepage = "https://github.com/lanl/qmd-progress"
+ url = "https://github.com/lanl/qmd-progress"
+
+ version('develop', git='https://github.com/lanl/qmd-progress', branch='master')
+ version('1.0.0', git='https://github.com/lanl/qmd-progress', tag='v1.0.0')
+
+ variant('graphlib', default=False, description='Build with Metis Suppport')
+ variant('mpi', default=True, description='Build with MPI Support')
+
+ depends_on('bml')
+ depends_on('mpi', when='+mpi')
+ depends_on('metis', when='+graphlib')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = ['-DCMAKE_Fortran_FLAGS=-ffree-line-length-none']
+ if '+mpi' in spec:
+ args.append('-DPROGRESS_MPI=yes')
+ args.append('-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc)
+ args.append('-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx)
+ args.append('-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc)
+ else:
+ args.append('-DPROGRESS_MPI=no')
+ if '+graphlib' in spec:
+ args.append('-DPROGRESS_GRAPHLIB=yes')
+ else:
+ args.append('-DPROGRESS_GRAPHLIB=no')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/qt-creator/package.py b/var/spack/repos/builtin/packages/qt-creator/package.py
index a3f50004ae..4b3054b7b6 100644
--- a/var/spack/repos/builtin/packages/qt-creator/package.py
+++ b/var/spack/repos/builtin/packages/qt-creator/package.py
@@ -23,24 +23,36 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
from spack import *
-import os
-class QtCreator(Package):
+class QtCreator(QMakePackage):
"""The Qt Creator IDE."""
homepage = 'https://www.qt.io/ide/'
- url = 'http://download.qt.io/official_releases/qtcreator/4.1/4.1.0/qt-creator-opensource-src-4.1.0.tar.gz'
+ url = 'http://download.qt.io/official_releases/qtcreator/4.3/4.3.1/qt-creator-opensource-src-4.3.1.tar.gz'
list_url = 'http://download.qt.io/official_releases/qtcreator/'
list_depth = 2
- version('4.1.0', '657727e4209befa4bf5889dff62d9e0a')
+ version('4.3.1', '6769ea47f287e2d9e30ff92acb899eef')
+ version('4.1.0', '657727e4209befa4bf5889dff62d9e0a')
- depends_on("qt")
+ depends_on('qt@5.6.0:+opengl')
+ # Qt Creator comes bundled with its own copy of sqlite. Qt has a build
+ # dependency on Python, which has a dependency on sqlite. If Python is
+ # built with a different version of sqlite than the bundled copy, it will
+ # cause symbol conflict. Force Spack to build with the same version of
+ # sqlite as the bundled copy.
+ depends_on('sqlite@3.8.10.2')
- def install(self, spec, prefix):
- os.environ['INSTALL_ROOT'] = self.prefix
- qmake = which('qmake')
- qmake('-r')
- make()
- make("install")
+ # Qt Creator 4.3.0+ requires a C++14 compiler
+ conflicts('%gcc@:4.8', when='@4.3.0:')
+
+ def url_for_version(self, version):
+ url = 'http://download.qt.io/official_releases/qtcreator/{0}/{1}/qt-creator-opensource-src-{1}.tar.gz'
+ return url.format(version.up_to(2), version)
+
+ def setup_environment(self, spack_env, run_env):
+ spack_env.set('INSTALL_ROOT', self.prefix)
+
+ def qmake_args(self):
+ return ['-r']
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index 088ac5d763..e872a53013 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -36,6 +36,7 @@ class Qt(Package):
list_url = 'http://download.qt.io/archive/qt/'
list_depth = 3
+ version('5.9.1', '77b4af61c49a09833d4df824c806acaf')
version('5.9.0', '9c8bc8b828c2b56721980368266df9d9')
version('5.8.0', 'a9f2494f75f966e2f22358ec367d8f41')
version('5.7.1', '031fb3fd0c3cc0f1082644492683f18d')
@@ -52,8 +53,6 @@ class Qt(Package):
# OpenSpeedShop project
variant('krellpatch', default=False,
description="Build with openspeedshop based patch.")
- variant('mesa', default=False,
- description="Depend on mesa.")
variant('gtk', default=False,
description="Build with gtkplus.")
variant('webkit', default=False,
@@ -64,7 +63,7 @@ class Qt(Package):
description="Build with D-Bus support.")
variant('phonon', default=False,
description="Build with phonon support.")
- variant('opengl', default=True,
+ variant('opengl', default=False,
description="Build with OpenGL support.")
patch('qt3krell.patch', when='@3.3.8b+krellpatch')
@@ -108,7 +107,7 @@ class Qt(Package):
depends_on("python", when='@5.7.0:', type='build')
# OpenGL hardware acceleration
- depends_on("mesa", when='@4:+mesa')
+ depends_on("mesa", when='@4:+opengl')
depends_on("libxcb", when=sys.platform != 'darwin')
depends_on("libx11", when=sys.platform != 'darwin')
@@ -130,9 +129,9 @@ class Qt(Package):
url = self.list_url
if version >= Version('4.0'):
- url += version.up_to(2) + '/'
+ url += str(version.up_to(2)) + '/'
else:
- url += version.up_to(1) + '/'
+ url += str(version.up_to(1)) + '/'
if version >= Version('4.8'):
url += str(version) + '/'
diff --git a/var/spack/repos/builtin/packages/qtgraph/package.py b/var/spack/repos/builtin/packages/qtgraph/package.py
new file mode 100644
index 0000000000..d80ee59bdd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qtgraph/package.py
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+##############################################################################
+# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Qtgraph(QMakePackage):
+ """The baseline library used in the CUDA-centric Open|SpeedShop Graphical
+ User Interface (GUI) which allows Graphviz DOT formatted data to be
+ imported into a Qt application by wrapping the Graphviz libcgraph and
+ libgvc within the Qt Graphics View Framework."""
+
+ homepage = "https://github.com/OpenSpeedShop/QtGraph"
+
+ url = "https://github.com/OpenSpeedShop/QtGraph.git"
+ version('1.0.0', branch='master',
+ git='https://github.com/OpenSpeedShop/QtGraph.git')
+
+ # qtgraph depends on these packages
+ depends_on('qt@4.8.6:')
+ depends_on('graphviz')
+
+ def setup_environment(self, spack_env, run_env):
+ """Set up the compile and runtime environments for a package."""
+ spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix)
+ spack_env.set('INSTALL_ROOT', self.prefix)
+
+ # The implementor has set up the library and include paths in
+ # a non-conventional way. We reflect that here.
+ run_env.prepend_path(
+ 'LD_LIBRARY_PATH', join_path(
+ self.prefix.lib64,
+ '{0}'.format(self.spec['qt'].version.up_to(3))))
+
+ run_env.prepend_path('CPATH', self.prefix.include.QtGraph)
diff --git a/var/spack/repos/builtin/packages/quinoa/package.py b/var/spack/repos/builtin/packages/quinoa/package.py
new file mode 100644
index 0000000000..de04e6407c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/quinoa/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2017, Los Alamos National Security, LLC
+# Produced at the Los Alamos National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Quinoa(CMakePackage):
+ """Quinoa is a set of computational tools that enables research and
+ numerical analysis in fluid dynamics. At this time it is a test-bed
+ to experiment with various algorithms using fully asynchronous runtime
+ systems.
+ """
+
+ homepage = "http://quinoacomputing.org"
+ url = "https://github.com/quinoacomputing/quinoa/tarball/quinoa_v0.1"
+
+ version('develop', git='https://github.com/quinoacomputing/quinoa', branch='master')
+
+ depends_on('hdf5+mpi')
+ depends_on("charm backend=mpi")
+ depends_on("trilinos+exodus")
+ depends_on("boost")
+ depends_on("hypre~internal-superlu")
+ depends_on("random123")
+ depends_on("netlib-lapack+lapacke")
+ depends_on("mad-numdiff")
+ depends_on("h5part")
+ depends_on("boostmplcartesianproduct")
+ depends_on("tut")
+ depends_on("pugixml")
+ depends_on("pstreams")
+ depends_on("pegtl")
+
+ root_cmakelists_dir = 'src'
diff --git a/var/spack/repos/builtin/packages/qwt/package.py b/var/spack/repos/builtin/packages/qwt/package.py
new file mode 100644
index 0000000000..10ca44e1c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/qwt/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Qwt(QMakePackage):
+ """The Qwt library contains GUI Components and utility classes which are
+ primarily useful for programs with a technical background. Beside a
+ framework for 2D plots it provides scales, sliders, dials, compasses,
+ thermometers, wheels and knobs to control or display values, arrays, or
+ ranges of type double.
+ """
+ homepage = "http://qwt.sourceforge.net/"
+ url = "https://sourceforge.net/projects/qwt/files/qwt/6.1.3/qwt-6.1.3.tar.bz2"
+
+ version('6.1.3', '19d1f5fa5e22054d22ee3accc37c54ba')
+ version('5.2.2', '70d77e4008a6cc86763737f0f24726ca')
+
+ depends_on('qt+opengl')
+ # Qwt 6.1.1 and older use a constant that was removed in Qt 5.4
+ # https://bugs.launchpad.net/ubuntu/+source/qwt-qt5/+bug/1485213
+ depends_on('qt@:5.3', when='@:6.1.1')
+
+ def patch(self):
+ # Subvert hardcoded prefix
+ filter_file(r'/usr/local/qwt-\$\$(QWT_)?VERSION.*',
+ self.prefix, 'qwtconfig.pri')
diff --git a/var/spack/repos/builtin/packages/r-ada/package.py b/var/spack/repos/builtin/packages/r-ada/package.py
new file mode 100644
index 0000000000..27b1f8c95a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-ada/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RAda(RPackage):
+ """Performs discrete, real, and gentle boost under both exponential
+ and logistic loss on a given data set."""
+
+ homepage = "https://cran.r-project.org/web/packages/ada/index.html"
+ url = "https://cran.r-project.org/src/contrib/ada_2.0-5.tar.gz"
+
+ version('2.0-5', '25ac0dc2650fba9e19f3d15c7c6721c1')
+
+ depends_on('r-rpart', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-corpcor/package.py b/var/spack/repos/builtin/packages/r-corpcor/package.py
new file mode 100644
index 0000000000..09798cbd2d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-corpcor/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RCorpcor(RPackage):
+ """Efficient Estimation of Covariance and (Partial) Correlation"""
+
+ homepage = "https://cran.r-project.org/package=corpcor"
+ url = "https://cran.r-project.org/src/contrib/corpcor_1.6.9.tar.gz"
+
+ version('1.6.9', '7f447d9f389e5d7dedb5fe5baedca925')
diff --git a/var/spack/repos/builtin/packages/r-mvtnorm/package.py b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
index 31933e70a3..2df9206a63 100644
--- a/var/spack/repos/builtin/packages/r-mvtnorm/package.py
+++ b/var/spack/repos/builtin/packages/r-mvtnorm/package.py
@@ -30,6 +30,7 @@ class RMvtnorm(RPackage):
deviates and densities."""
homepage = "http://mvtnorm.r-forge.r-project.org/"
- url = "https://cran.r-project.org/src/contrib/mvtnorm_1.0-5.tar.gz"
+ url = "https://cran.r-project.org/src/contrib/mvtnorm_1.0-6.tar.gz"
+ version('1.0-6', 'cb69426868fd3e330412b8491901d9d4')
version('1.0-5', '5894dd3969bbfa26f4862c45f9a48a52')
diff --git a/var/spack/repos/builtin/packages/r-rcpp/package.py b/var/spack/repos/builtin/packages/r-rcpp/package.py
index f89a378524..b77fffb1a0 100644
--- a/var/spack/repos/builtin/packages/r-rcpp/package.py
+++ b/var/spack/repos/builtin/packages/r-rcpp/package.py
@@ -39,6 +39,8 @@ class RRcpp(RPackage):
homepage = "http://dirk.eddelbuettel.com/code/rcpp.html"
url = "https://cran.r-project.org/src/contrib/Rcpp_0.12.9.tar.gz"
+ version('0.12.12', '97b36a3b567e3438067c4a7d0075fd90')
+ version('0.12.11', 'ea1710213cbb1d91b1d0318e6fa9aa37')
version('0.12.9', '691c49b12794507288b728ede03668a5')
version('0.12.6', 'db4280fb0a79cd19be73a662c33b0a8b')
version('0.12.5', 'f03ec05b4e391cc46e7ce330e82ff5e2')
diff --git a/var/spack/repos/builtin/packages/r-rjava/package.py b/var/spack/repos/builtin/packages/r-rjava/package.py
index 7baab54baa..55d8282cd7 100644
--- a/var/spack/repos/builtin/packages/r-rjava/package.py
+++ b/var/spack/repos/builtin/packages/r-rjava/package.py
@@ -34,4 +34,4 @@ class RRjava(RPackage):
version('0.9-8', '51ae0d690ceed056ebe7c4be71fc6c7a')
- depends_on('jdk')
+ depends_on('java')
diff --git a/var/spack/repos/builtin/packages/r-rpart/package.py b/var/spack/repos/builtin/packages/r-rpart/package.py
index ea857ad926..9d2ed2df4d 100644
--- a/var/spack/repos/builtin/packages/r-rpart/package.py
+++ b/var/spack/repos/builtin/packages/r-rpart/package.py
@@ -31,7 +31,9 @@ class RRpart(RPackage):
homepage = "https://cran.r-project.org/package=rpart"
url = "https://cran.r-project.org/src/contrib/rpart_4.1-10.tar.gz"
+ list_url = "https://cran.r-project.org/src/contrib/Archive/rpart"
+ version('4.1-11', 'f77b37cddf7e9a7b5993a52a750b8817')
version('4.1-10', '15873cded4feb3ef44d63580ba3ca46e')
depends_on('r@2.15.0:')
diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py
index a5e89cdfc1..886a238b06 100644
--- a/var/spack/repos/builtin/packages/r/package.py
+++ b/var/spack/repos/builtin/packages/r/package.py
@@ -40,6 +40,7 @@ class R(AutotoolsPackage):
extendable = True
+ version('3.4.1', '3a79c01dc0527c62e80ffb1c489297ea')
version('3.4.0', '75083c23d507b9c16d5c6afbd7a827e7')
version('3.3.3', '0ac211ec15e813a24f8f4a5a634029a4')
version('3.3.2', '2437014ef40641cdc9673e89c040b7a8')
@@ -83,7 +84,7 @@ class R(AutotoolsPackage):
depends_on('libxt', when='+X')
depends_on('curl')
depends_on('pcre')
- depends_on('jdk')
+ depends_on('java')
patch('zlib.patch', when='@:3.3.2')
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index b01f9570fe..0fba029cab 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -25,14 +25,10 @@
from spack import *
-class Raja(Package):
+class Raja(CMakePackage):
"""RAJA Parallel Framework."""
homepage = "http://software.llnl.gov/RAJA/"
version('git', git='https://github.com/LLNL/RAJA.git', branch="master")
- def install(self, spec, prefix):
- with working_dir('build', create=True):
- cmake('..', *std_cmake_args)
- make()
- make('install')
+ depends_on('cmake@3.3:', type='build')
diff --git a/var/spack/repos/builtin/packages/ravel/package.py b/var/spack/repos/builtin/packages/ravel/package.py
index 5875312a7b..e7ba7abb4a 100644
--- a/var/spack/repos/builtin/packages/ravel/package.py
+++ b/var/spack/repos/builtin/packages/ravel/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Ravel(Package):
+class Ravel(CMakePackage):
"""Ravel is a parallel communication trace visualization tool that
orders events according to logical time."""
@@ -41,7 +41,5 @@ class Ravel(Package):
depends_on('otf2')
depends_on('qt@5:')
- def install(self, spec, prefix):
- cmake('-Wno-dev', *std_cmake_args)
- make()
- make("install")
+ def cmake_args(self):
+ return ['-Wno-dev']
diff --git a/var/spack/repos/builtin/packages/raxml/package.py b/var/spack/repos/builtin/packages/raxml/package.py
new file mode 100644
index 0000000000..198347b0c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/raxml/package.py
@@ -0,0 +1,107 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class Raxml(Package):
+ """RAxML (Randomized Axelerated Maximum Likelihood) is a program for
+ sequential and parallel Maximum Likelihood based inference of large
+ phylogenetic trees."""
+
+ homepage = "https://sco.h-its.org/exelixis/web/software/raxml"
+ url = "https://github.com/stamatak/standard-RAxML/archive/v8.2.11.tar.gz"
+
+ version('8.2.11', '6bd5c4e1f93003ccf13c9b59a5d080ab')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+ variant('pthreads', default=False, description='Enable pthreads version')
+ variant('sse', default=True, description='Enable SSE in order to substantially speed up execution')
+ variant('avx', default=False, description='Enable AVX in order to substantially speed up execution')
+
+ depends_on('mpi', when='+mpi')
+
+ # Compiles with either GCC or ICC.
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ files = glob.iglob("Makefile.*")
+ for file in files:
+ makefile = FileFilter(file)
+ makefile.filter('gcc', spack_cc)
+
+ if '+mpi' and '+avx' and '+pthreads' in spec:
+ make('-f', 'Makefile.AVX.HYBRID.gcc')
+ install('raxmlHPC-HYBRID-AVX', prefix.bin)
+
+ elif '+mpi' and '+sse' and '+pthreads' in spec:
+ make('-f', 'Makefile.SSE3.HYBRID.gcc')
+ install('raxmlHPC-HYBRID-SSE3', prefix.bin)
+
+ elif '+mpi' and '+pthreads' in spec:
+ make('-f', 'Makefile.HYBRID.gcc')
+ install('raxmlHPC-HYBRID', prefix.bin)
+
+ elif '+mpi' and '+avx' in spec:
+ make('-f', 'Makefile.AVX.MPI.gcc')
+ install('raxmlHPC-MPI-AVX', prefix.bin)
+
+ elif '+mpi' and '+sse' in spec:
+ make('-f', 'Makefile.SSE3.MPI.gcc')
+ install('raxmlHPC-MPI-SSE3', prefix.bin)
+
+ elif '+mpi' in spec:
+ make('-f', 'Makefile.MPI.gcc')
+ install('raxmlHPC-MPI', prefix.bin)
+
+ elif '+pthreads' and '+avx' in spec:
+ make('-f', 'Makefile.AVX.PTHREADS.gcc')
+ install('raxmlHPC-PTHREADS-AVX', prefix.bin)
+
+ elif '+pthreads' and '+sse' in spec:
+ make('-f', 'Makefile.SSE3.PTHREADS.gcc')
+ install('raxmlHPC-PTHREADS-SSE3', prefix.bin)
+
+ elif '+pthreads' in spec:
+ make('-f', 'Makefile.PTHREADS.gcc')
+ install('raxmlHPC-PTHREADS', prefix.bin)
+
+ elif '+sse' in spec:
+ make('-f', 'Makefile.SSE3.gcc')
+ install('raxmlHPC-SSE3', prefix.bin)
+
+ elif '+avx' in spec:
+ make('-f', 'Makefile.AVX.gcc')
+ install('raxmlHPC-AVX', prefix.bin)
+
+ else:
+ make('-f', 'Makefile.gcc')
+ install('raxmlHPC', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/ray/package.py b/var/spack/repos/builtin/packages/ray/package.py
new file mode 100644
index 0000000000..7056b59454
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ray/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Ray(CMakePackage):
+ """Parallel genome assemblies for parallel DNA sequencing"""
+
+ homepage = "http://denovoassembler.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/denovoassembler/Ray-2.3.1.tar.bz2"
+
+ version('2.3.1', '82f693c4db60af4328263c9279701009')
+
+ depends_on('mpi')
+
+ @run_after('build')
+ def make(self):
+ mkdirp(prefix.bin)
+ make('PREFIX=%s' % prefix.bin)
+
+ def install(self, spec, prefix):
+ make('install')
diff --git a/var/spack/repos/builtin/packages/rdp-classifier/package.py b/var/spack/repos/builtin/packages/rdp-classifier/package.py
new file mode 100644
index 0000000000..49cc367c8d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rdp-classifier/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class RdpClassifier(Package):
+ """The RDP Classifier is a naive Bayesian classifier that can rapidly and
+ accurately provides taxonomic assignments from domain to genus, with
+ confidence estimates for each assignment. """
+
+ homepage = "http://rdp.cme.msu.edu/"
+ url = "https://downloads.sourceforge.net/project/rdp-classifier/rdp-classifier/rdp_classifier_2.12.zip"
+
+ version('2.12', '7fdfa33512629810f0ff06b905642ddd')
+
+ depends_on('java', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install(join_path('dist', 'classifier.jar'), prefix.bin)
+ install_tree(join_path('dist', 'lib'), prefix.bin.lib)
+ install(join_path('lib', 'junit-4.8.2.jar'), prefix.bin.lib)
+ install_tree('src', prefix.src)
diff --git a/var/spack/repos/builtin/packages/redundans/package.py b/var/spack/repos/builtin/packages/redundans/package.py
new file mode 100644
index 0000000000..0e801f556f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/redundans/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Redundans(Package):
+ """Redundans pipeline assists an assembly of heterozygous genomes."""
+
+ homepage = "https://github.com/Gabaldonlab/redundans"
+ url = "https://github.com/Gabaldonlab/redundans/archive/v0.13c.tar.gz"
+
+ version('0.13c', '2003fb7c70521f5e430553686fd1a594')
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-pyscaf', type=('build', 'run'))
+ depends_on('py-fastaindex', type=('build', 'run'))
+ depends_on('perl', type=('build', 'run'))
+ depends_on('sspace-standard')
+ depends_on('bwa')
+ depends_on('last')
+ depends_on('gapcloser')
+ depends_on('parallel')
+ depends_on('snap-berkeley')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('redundans.py', prefix.bin)
+ with working_dir('bin'):
+ install('fasta2homozygous.py', prefix.bin)
+ install('fasta2split.py', prefix.bin)
+ install('fastq2insert_size.py', prefix.bin)
+ install('fastq2mates.py', prefix.bin)
+ install('fastq2shuffled.py', prefix.bin)
+ install('fastq2sspace.py', prefix.bin)
+ install('filterReads.py', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/relion/package.py b/var/spack/repos/builtin/packages/relion/package.py
index dfb93cd943..23b1834fbc 100644
--- a/var/spack/repos/builtin/packages/relion/package.py
+++ b/var/spack/repos/builtin/packages/relion/package.py
@@ -40,6 +40,10 @@ class Relion(CMakePackage):
variant('cuda', default=False, description="enable compute on gpu")
variant('double', default=False, description="double precision (cpu) code")
variant('double-gpu', default=False, description="double precision (gpu) code")
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo',
+ 'Profiling', 'Benchmarking'))
depends_on('mpi')
depends_on('fftw+float+double')
diff --git a/var/spack/repos/builtin/packages/revbayes/package.py b/var/spack/repos/builtin/packages/revbayes/package.py
new file mode 100644
index 0000000000..3498ddd952
--- /dev/null
+++ b/var/spack/repos/builtin/packages/revbayes/package.py
@@ -0,0 +1,62 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Revbayes(CMakePackage):
+ """Bayesian phylogenetic inference using probabilistic graphical models
+ and an interpreted language."""
+
+ homepage = "https://revbayes.github.io"
+ url = "https://github.com/revbayes/revbayes/archive/v1.0.4-release.tar.gz"
+
+ version('1.0.4', '5d6de96bcb3b2686b270856de3555a58')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+
+ depends_on('boost')
+ depends_on('mpi', when='+mpi')
+
+ conflicts('%gcc@7.1.0:')
+
+ root_cmakelists_dir = 'projects/cmake/build'
+
+ @run_before('cmake')
+ def regenerate(self):
+ with working_dir(join_path('projects', 'cmake')):
+ mkdirp('build')
+ edit = FileFilter('regenerate.sh')
+ edit.filter('boost="true"', 'boost="false"')
+ if '+mpi' in self.spec:
+ edit.filter('mpi="false"', 'mpi="true"')
+ regenerate = Executable('./regenerate.sh')
+ regenerate()
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ if '+mpi' in spec:
+ install('rb-mpi', prefix.bin)
+ else:
+ install('rb', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rhash/package.py b/var/spack/repos/builtin/packages/rhash/package.py
new file mode 100644
index 0000000000..94af243ae5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rhash/package.py
@@ -0,0 +1,78 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+import glob
+from spack import *
+
+
+class Rhash(MakefilePackage):
+ """RHash is a console utility for computing and verifying hash sums of
+ files. It supports CRC32, MD4, MD5, SHA1, SHA256, SHA512, SHA3, Tiger,
+ TTH, Torrent BTIH, AICH, ED2K, GOST R 34.11-94, RIPEMD-160, HAS-160,
+ EDON-R 256/512, WHIRLPOOL and SNEFRU hash sums."""
+
+ homepage = "https://sourceforge.net/projects/rhash/"
+ url = "https://github.com/rhash/RHash/archive/v1.3.5.tar.gz"
+
+ version('1.3.5', 'f586644019c10c83c6b6835de4b99e74')
+
+ # For macOS build instructions, see:
+ # https://github.com/Homebrew/homebrew-core/blob/master/Formula/rhash.rb
+
+ def build(self, spec, prefix):
+ # Doesn't build shared libraries by default
+ make()
+
+ if spec.satisfies('platform=darwin'):
+ make('-C', 'librhash', 'dylib')
+ else:
+ make('lib-shared')
+
+ def check(self):
+ # Makefile has both `test` and `check` targets:
+ #
+ # * `test` - used to test that the build is working properly
+ # * `check` - used to check that the tarball is ready for upload
+ #
+ # Default implmentation is to run both `make test` and `make check`.
+ # `test` passes, but `check` fails, so only run `test`.
+ make('test')
+ make('test-static-lib')
+
+ if not self.spec.satisfies('platform=darwin'):
+ make('test-shared')
+ make('test-shared-lib')
+
+ def install(self, spec, prefix):
+ # Some things are installed to $(DESTDIR)$(PREFIX) while other things
+ # are installed to $DESTDIR/etc.
+ make('install', 'DESTDIR={0}'.format(prefix), 'PREFIX=')
+ make('install-lib-static', 'DESTDIR={0}'.format(prefix), 'PREFIX=')
+
+ if spec.satisfies('platform=darwin'):
+ libs = glob.glob('librhash/*.dylib')
+ for lib in libs:
+ install(lib, prefix.lib)
+ else:
+ make('install-lib-shared', 'DESTDIR={0}'.format(prefix), 'PREFIX=')
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
index b5f6ce89fe..dfd7ba3e25 100644
--- a/var/spack/repos/builtin/packages/root/package.py
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -99,12 +99,6 @@ class Root(CMakePackage):
# See https://sft.its.cern.ch/jira/browse/ROOT-7517
conflicts('%intel')
- def build_type(self):
- if '+debug' in self.spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
args = [
'-Dcocoa=OFF',
diff --git a/var/spack/repos/builtin/packages/rose/package.py b/var/spack/repos/builtin/packages/rose/package.py
index 0e2265f571..8ba397df55 100644
--- a/var/spack/repos/builtin/packages/rose/package.py
+++ b/var/spack/repos/builtin/packages/rose/package.py
@@ -60,7 +60,7 @@ class Rose(Package):
variant('fortran', default=False, description='Enable fortran language support')
variant('java', default=False, description='Enable java language support')
- depends_on('jdk', when='+java')
+ depends_on('java', when='+java')
variant('z3', default=False, description='Enable z3 theorem prover')
depends_on('z3', when='+z3')
diff --git a/var/spack/repos/builtin/packages/rr/package.py b/var/spack/repos/builtin/packages/rr/package.py
new file mode 100644
index 0000000000..5337d7eef4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rr/package.py
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rr(CMakePackage):
+ """Application execution recorder, player and debugger"""
+ homepage = "http://rr-project.org/"
+ url = "https://github.com/mozilla/rr/archive/4.5.0.tar.gz"
+
+ version('4.5.0', '1ec0aed0559b81143f59a200eeb302ef')
+ version('4.4.0', '6d1cbb4fafbf6711114369907cf1efb1')
+ version('4.3.0', '31470564e8b7eb317f619e4ef2244082')
+
+ depends_on('gdb')
+ depends_on('git')
+ depends_on('zlib')
+ # depends_on('capnproto', when='@4.6:') # not yet in spack
+ # depends_on('libcapnp') # needed for future releases
+ depends_on('pkg-config', type='build')
+ depends_on('py-pexpect', type='build') # actually tests
+
+ # rr needs architecture Nehalem and beyond, how can spack
+ # test this?
+
+ # Only 'Release' is supported at the moment
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Release'))
+
+ def patch(self):
+ # because otherwise CMake would try and fail to set RPATH of
+ # rr_exec_stub
+ filter_file(
+ r'^(install\(TARGETS .*)\s*rr_exec_stub', r'\1', 'CMakeLists.txt')
+
+ def cmake_args(self):
+ return ['-Ddisable32bit=ON']
+
+ @run_after('install')
+ def install_stub(self):
+ with working_dir(self.build_directory):
+ mkdirp(self.prefix.bin)
+ install('bin/rr_exec_stub', self.prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rsbench/package.py b/var/spack/repos/builtin/packages/rsbench/package.py
new file mode 100644
index 0000000000..7e4027d2d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rsbench/package.py
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Rsbench(MakefilePackage):
+ """A mini-app to represent the multipole resonance representation lookup
+ cross section algorithm."""
+
+ homepage = "https://github.com/ANL-CESAR/RSBench"
+ url = "https://github.com/ANL-CESAR/RSBench/archive/v2.tar.gz"
+
+ version('2', '15a3ac5ea72529ac1ed9ed016ee68b4f')
+ version('0', '3427634dc5e7cd904d88f9955b371757')
+
+ tags = ['proxy-app']
+
+ build_directory = 'src'
+
+ @property
+ def build_targets(self):
+ targets = []
+
+ cflags = '-std=gnu99'
+ ldflags = '-lm'
+
+ if self.compiler.name == 'gcc':
+ cflags += ' -ffast-math '
+ elif self.compiler.name == 'intel':
+ cflags += ' -xhost -ansi-alias -no-prec-div '
+ elif self.compiler.name == 'pgi':
+ cflags += ' -fastsse '
+
+ cflags += self.compiler.openmp_flag
+
+ targets.append('CFLAGS={0}'.format(cflags))
+ targets.append('LDFLAGS={0}'.format(ldflags))
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('src/rsbench', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/rsem/package.py b/var/spack/repos/builtin/packages/rsem/package.py
new file mode 100644
index 0000000000..805a71e0d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rsem/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rsem(MakefilePackage):
+ """RSEM is a software package for estimating gene and isoform expression
+ levels from RNA-Seq data."""
+
+ homepage = "http://deweylab.github.io/RSEM/"
+ url = "https://github.com/deweylab/RSEM/archive/v1.3.0.tar.gz"
+
+ version('1.3.0', '9728161625d339d022130e2428604bf5')
+
+ depends_on('r', type=('build', 'run'))
+ depends_on('perl', type=('build', 'run'))
+ depends_on('python', type=('build', 'run'))
+ depends_on('bowtie')
+ depends_on('bowtie2')
+ depends_on('star')
+
+ def install(self, spec, prefix):
+ make('install', 'DESTDIR=%s' % prefix, 'prefix=')
diff --git a/var/spack/repos/builtin/packages/rtags/add_string_iterator_erase_compile_check.patch b/var/spack/repos/builtin/packages/rtags/add_string_iterator_erase_compile_check.patch
new file mode 100644
index 0000000000..98ec67df5f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rtags/add_string_iterator_erase_compile_check.patch
@@ -0,0 +1,67 @@
+From e0cb0bfba240669e27d77ea4ac17a90fde1a03fd Mon Sep 17 00:00:00 2001
+From: Anders Bakken <agbakken@gmail.com>
+Date: Thu, 27 Jul 2017 20:55:19 -0700
+Subject: [PATCH] Add a compile test for proper c++11 support for std::string
+ and work around deficient stls.
+
+---
+ rct.cmake | 10 ++++++++++
+ rct/String.h | 10 ++++++++++
+ rct/rct-config.h.in | 1 +
+ 3 files changed, 21 insertions(+)
+
+diff --git a/src/rct/rct.cmake b/src/rct/rct.cmake
+index da102d2..30da945 100644
+--- a/src/rct/rct.cmake
++++ b/src/rct/rct.cmake
+@@ -287,6 +287,16 @@ check_cxx_source_runs("
+ return 0;
+ }" HAVE_UNORDERDED_MAP_WORKING_MOVE_CONSTRUCTOR)
+
++check_cxx_source_runs("
++ #include <string>
++
++ int main(int, char **)
++ {
++ std::string str = \"foobar testing\";
++ std::string::iterator it = str.erase(str.begin(), str.end());
++ return 0;
++ }" HAVE_STRING_ITERATOR_ERASE)
++
+ unset(CMAKE_REQUIRED_FLAGS)
+ unset(CMAKE_REQUIRED_LIBRARIES)
+
+diff --git a/src/rct/rct/String.h b/src/rct/rct/String.h
+index f8b9dbc..31b2012 100644
+--- a/src/rct/rct/String.h
++++ b/src/rct/rct/String.h
+@@ -454,7 +454,17 @@ class String
+
+ iterator erase(const_iterator begin, const_iterator end)
+ {
++#ifdef HAVE_STRING_ITERATOR_ERASE
+ return mString.erase(begin, end);
++#else
++ if (begin >= end) {
++ return mString.end();
++ }
++
++ const size_t offset = begin - mString.begin();
++ mString.erase(offset, end - begin);
++ return mString.begin() + offset;
++#endif
+ }
+
+ String& erase(size_t index = 0, size_t count = npos)
+diff --git a/src/rct/rct/rct-config.h.in b/src/rct/rct/rct-config.h.in
+index 9c67e2f..87c5b7c 100644
+--- a/src/rct/rct/rct-config.h.in
++++ b/src/rct/rct/rct-config.h.in
+@@ -20,6 +20,7 @@
+ #cmakedefine HAVE_SHMDEST
+ #cmakedefine HAVE_SCRIPTENGINE
+ #cmakedefine HAVE_UNORDERDED_MAP_WORKING_MOVE_CONSTRUCTOR
++#cmakedefine HAVE_HAVE_STRING_ITERATOR_ERASE
+ #if !defined(HAVE_EPOLL) && !defined(HAVE_KQUEUE)
+ #cmakedefine HAVE_SELECT
+ #endif
diff --git a/var/spack/repos/builtin/packages/rtags/package.py b/var/spack/repos/builtin/packages/rtags/package.py
new file mode 100644
index 0000000000..e212ea108c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rtags/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rtags(CMakePackage):
+ """RTags is a client/server application that indexes C/C++ code"""
+
+ homepage = "https://github.com/Andersbakken/rtags/"
+ url = "https://andersbakken.github.io/rtags-releases/rtags-2.12.tar.gz"
+
+ version('2.12', '84988aaff27915a79d4b4b57299f9a51')
+
+ depends_on("llvm@3.3: +clang")
+ depends_on("zlib")
+ depends_on("openssl")
+ depends_on("lua@5.3:")
+ depends_on("bash-completion")
+ depends_on("pkg-config", type='build')
+
+ patch("add_string_iterator_erase_compile_check.patch", when='@2.12')
+
+ def cmake_args(self):
+ args = ['-DCMAKE_EXPORT_COMPILE_COMMANDS=1',
+ '-DRTAGS_NO_ELISP_FILES=1',
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/rtax/package.py b/var/spack/repos/builtin/packages/rtax/package.py
new file mode 100644
index 0000000000..c2b917a81e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rtax/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Rtax(Package):
+ """Rapid and accurate taxonomic classification of short paired-end
+ sequence reads from the 16S ribosomal RNA gene"""
+
+ homepage = "https://github.com/davidsoergel/rtax"
+ url = "http://static.davidsoergel.com/rtax-0.984.tgz"
+
+ version('0.984', 'e9dbbe4b3c26b0f0f6c14a5fb46aa587')
+
+ depends_on('usearch')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('rtax', prefix.bin)
+ install_tree('scripts', prefix.bin.scripts)
+ install_tree('greengenes', prefix.bin.greengenes)
diff --git a/var/spack/repos/builtin/packages/sabre/package.py b/var/spack/repos/builtin/packages/sabre/package.py
new file mode 100644
index 0000000000..ecee1012f5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sabre/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Sabre(MakefilePackage):
+ """Sabre is a tool that will demultiplex barcoded reads into separate
+ files. It will work on both single-end and paired-end data in fastq
+ format. It simply compares the provided barcodes with each read and
+ separates the read into its appropriate barcode file, after stripping
+ the barcode from the read (and also stripping the quality values of
+ the barcode bases). If a read does not have a recognized barcode,
+ then it is put into the unknown file.
+ """
+
+ homepage = "https://github.com/najoshi/sabre"
+ url = "https://github.com/najoshi/sabre"
+
+ version('2013-09-27', git='https://github.com/najoshi/sabre.git', commit='039a55e500ba07b7e6432ea6ec2ddcfb3471d949')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('sabre', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/salmon/package.py b/var/spack/repos/builtin/packages/salmon/package.py
new file mode 100644
index 0000000000..413eb9aebe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salmon/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Salmon(CMakePackage):
+ """Salmon is a tool for quantifying the expression of transcripts using
+ RNA-seq data."""
+
+ homepage = "http://combine-lab.github.io/salmon/"
+ url = "https://github.com/COMBINE-lab/salmon/archive/v0.8.2.tar.gz"
+
+ version('0.8.2', 'ee512697bc44b13661a16d4e14cf0a00')
+
+ depends_on('boost')
+
+ def cmake_args(self):
+ args = ['-DBOOST_ROOT=%s' % self.spec['boost'].prefix]
+ return args
diff --git a/var/spack/repos/builtin/packages/sas/package.py b/var/spack/repos/builtin/packages/sas/package.py
index 5a7f1de1d5..050d6172d6 100644
--- a/var/spack/repos/builtin/packages/sas/package.py
+++ b/var/spack/repos/builtin/packages/sas/package.py
@@ -36,19 +36,10 @@ class Sas(CMakePackage):
version('0.1.4', '20d7311258f2a59c9367ae1576c392b6')
version('0.1.3', '1e6572afcc03318d16d7321d40eec0fd')
- variant('debug', default=False, description='Build debug version')
-
depends_on('python@2.7:')
depends_on('llvm@3.5:')
depends_on('cmake@2.8:', type='build')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
args = [
'-DLLVM_DEV_DIR=%s' % self.spec['llvm'].prefix
diff --git a/var/spack/repos/builtin/packages/satsuma2/package.py b/var/spack/repos/builtin/packages/satsuma2/package.py
new file mode 100644
index 0000000000..39abc714e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/satsuma2/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Satsuma2(CMakePackage):
+ """Satsuma2 is an optimsed version of Satsuma, a tool to reliably align
+ large and complex DNA sequences providing maximum sensitivity (to find
+ all there is to find), specificity (to only find real homology) and
+ speed (to accomodate the billions of base pairs in vertebrate genomes).
+ """
+
+ homepage = "https://github.com/bioinfologics/satsuma2"
+ url = "https://github.com/bioinfologics/satsuma2"
+
+ version('2016-11-22', git='https://github.com/bioinfologics/satsuma2.git', commit='da694aeecf352e344b790bea4a7aaa529f5b69e6')
+
+ def install(self, spec, prefix):
+ install_tree(join_path('spack-build', 'bin'), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/savanna/package.py b/var/spack/repos/builtin/packages/savanna/package.py
new file mode 100644
index 0000000000..b7cd94ece0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/savanna/package.py
@@ -0,0 +1,51 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+from distutils.dir_util import copy_tree
+
+
+class Savanna(MakefilePackage):
+ """CODARcode Savanna runtime framework for high performance,
+ workflow management using Swift/T and ADIOS.
+ """
+
+ homepage = "https://github.com/CODARcode/savanna"
+ url = "https://github.com/CODARcode/savanna/archive/v0.5.tar.gz"
+
+ version('develop', git='https://github.com/CODARcode/savanna.git',
+ branch='master', submodules=True)
+ version('0.5', git='https://github.com/CODARcode/savanna.git',
+ tag='0.5', submodules=True)
+
+ variant('tau', default=False, description='Enable TAU profiling support')
+
+ depends_on('mpi')
+ depends_on('stc')
+ depends_on('adios +fortran +zlib +sz +zfp +staging')
+ depends_on('mpix-launch-swift')
+ depends_on('tau', when='+tau')
+
+ def install(self, spec, prefix):
+ copy_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/sbt/package.py b/var/spack/repos/builtin/packages/sbt/package.py
index 27be7cc54c..6747e51b3f 100644
--- a/var/spack/repos/builtin/packages/sbt/package.py
+++ b/var/spack/repos/builtin/packages/sbt/package.py
@@ -34,7 +34,7 @@ class Sbt(Package):
version('0.13.12', 'cec3071d46ef13334c8097cc3467ff28')
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
shutil.copytree('bin', join_path(prefix, 'bin'), symlinks=True)
diff --git a/var/spack/repos/builtin/packages/scala/package.py b/var/spack/repos/builtin/packages/scala/package.py
index dd1ab78f6b..35a49f6be5 100644
--- a/var/spack/repos/builtin/packages/scala/package.py
+++ b/var/spack/repos/builtin/packages/scala/package.py
@@ -40,7 +40,7 @@ class Scala(Package):
version('2.11.11', '3f5b76001f60cbc31111ddb81de5ea07')
version('2.20.6', 'd79dc9fdc627b73289306bdaec81ca98')
- depends_on('jdk')
+ depends_on('java')
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/scalasca/package.py b/var/spack/repos/builtin/packages/scalasca/package.py
index 276cdf05a5..81c08802fa 100644
--- a/var/spack/repos/builtin/packages/scalasca/package.py
+++ b/var/spack/repos/builtin/packages/scalasca/package.py
@@ -63,4 +63,9 @@ class Scalasca(AutotoolsPackage):
config_args.append("--with-cube=%s" % spec['cube'].prefix.bin)
config_args.append("--with-otf2=%s" % spec['otf2'].prefix.bin)
+ if self.spec['mpi'].name == 'openmpi':
+ config_args.append("--with-mpi=openmpi")
+ elif self.spec.satisfies('^mpich@3:'):
+ config_args.append("--with-mpi=mpich3")
+
return config_args
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index 5bf35c071c..6b65528f3c 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -27,7 +27,12 @@ from spack import *
class Scons(PythonPackage):
"""SCons is a software construction tool"""
+
homepage = "http://scons.org"
- url = "http://downloads.sourceforge.net/project/scons/scons/2.5.0/scons-2.5.0.tar.gz"
+ url = "https://pypi.io/packages/source/s/scons/scons-2.5.1.tar.gz"
+
+ version('2.5.1', '3eac81e5e8206304a9b4683c57665aa4')
+ version('2.5.0', 'bda5530a70a41a7831d83c8b191c021e')
- version('2.5.0', '9e00fa0df8f5ca5c5f5975b40e0ed354')
+ # Python 3 is not supported
+ depends_on('python@:2.8', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/scorep/gcc7.patch b/var/spack/repos/builtin/packages/scorep/gcc7.patch
new file mode 100644
index 0000000000..7383ee15ba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/scorep/gcc7.patch
@@ -0,0 +1,42 @@
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h 2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_gcc_version_compatibility.h 2017-08-15 14:52:18.458118812 +0200
+@@ -27,6 +27,11 @@
+ DECL_SECTION_NAME( decl ) = build_string( strlen( section ), section )
+ #endif
+
++#if SCOREP_GCC_PLUGIN_TARGET_VERSION < 7000
++#define SET_DECL_ALIGN( decl, align ) \
++ DECL_ALIGN( decl ) = ( align )
++#endif
++
+ #if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 5000
+ #define varpool_finalize_decl( decl ) varpool_node::finalize_decl( decl )
+ #define cgraph_get_node( decl ) cgraph_node::get( decl )
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c 2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_inst_descriptor.inc.c 2017-08-15 14:52:56.220854113 +0200
+@@ -194,7 +194,7 @@
+ TREE_TYPE( region_descr_value ) );
+
+ /* Align the struct generously, so that it works for 32 and 64 bit */
+- DECL_ALIGN( region_descr_var ) = 64 * BITS_PER_UNIT;
++ SET_DECL_ALIGN( region_descr_var, 64 * BITS_PER_UNIT );
+ DECL_USER_ALIGN( region_descr_var ) = 1;
+
+ /* The struct is 64 bytes, because of reserved entries */
+diff -ru scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h
+--- scorep-3.1.orig/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h 2017-08-15 14:46:27.353875030 +0200
++++ scorep-3.1/src/adapters/compiler/gcc-plugin/scorep_plugin_tree-flow.h 2017-08-15 14:49:26.163888408 +0200
+@@ -23,6 +23,11 @@
+ #include "stringpool.h"
+ #include "basic-block.h"
+ #include "tree-ssa-alias.h"
++
++#if SCOREP_GCC_PLUGIN_TARGET_VERSION >= 7000
++#include "tree-vrp.h"
++#endif
++
+ #include "tree-ssanames.h"
+ #include "internal-fn.h"
+ #include "gimple-expr.h"
diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py
index d164c38f54..59665a482d 100644
--- a/var/spack/repos/builtin/packages/scorep/package.py
+++ b/var/spack/repos/builtin/packages/scorep/package.py
@@ -40,6 +40,8 @@ class Scorep(AutotoolsPackage):
version('1.4.2', '3b9a042b13bdd5836452354e6567f71e')
version('1.3', '9db6f957b7f51fa01377a9537867a55c')
+ patch('gcc7.patch')
+
##########
# Dependencies for SCORE-P are quite tight. See the homepage for more
# information.
@@ -88,5 +90,8 @@ class Scorep(AutotoolsPackage):
if '~shmem' in spec:
config_args.append("--without-shmem")
- config_args.extend(["CFLAGS=-fPIC", "CXXFLAGS=-fPIC"])
+ config_args.extend([
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
+ 'CXXFLAGS={0}'.format(self.compiler.pic_flag)
+ ])
return config_args
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py
index 8071a9765f..b5903c2789 100644
--- a/var/spack/repos/builtin/packages/scotch/package.py
+++ b/var/spack/repos/builtin/packages/scotch/package.py
@@ -129,7 +129,9 @@ class Scotch(Package):
if self.spec.satisfies('platform=darwin'):
makefile_inc.extend([
'LIB = .dylib',
- 'CLIBFLAGS = -dynamiclib -fPIC',
+ 'CLIBFLAGS = -dynamiclib {0}'.format(
+ self.compiler.pic_flag
+ ),
'RANLIB = echo',
'AR = $(CC)',
'ARFLAGS = -dynamiclib $(LDFLAGS) -Wl,-install_name -Wl,%s/$(notdir $@) -undefined dynamic_lookup -o ' % prefix.lib # noqa
@@ -137,12 +139,12 @@ class Scotch(Package):
else:
makefile_inc.extend([
'LIB = .so',
- 'CLIBFLAGS = -shared -fPIC',
+ 'CLIBFLAGS = -shared {0}'.format(self.compiler.pic_flag),
'RANLIB = echo',
'AR = $(CC)',
'ARFLAGS = -shared $(LDFLAGS) -o'
])
- cflags.append('-fPIC')
+ cflags.append(self.compiler.pic_flag)
else:
makefile_inc.extend([
'LIB = .a',
diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py
index f8fe72f110..1ab117721c 100644
--- a/var/spack/repos/builtin/packages/scr/package.py
+++ b/var/spack/repos/builtin/packages/scr/package.py
@@ -24,24 +24,123 @@
##############################################################################
from spack import *
+import os
+import shutil
-class Scr(Package):
+
+class Scr(CMakePackage):
"""SCR caches checkpoint data in storage on the compute nodes of a
Linux cluster to provide a fast, scalable checkpoint/restart
capability for MPI codes"""
- homepage = "https://computation.llnl.gov/project/scr/"
+ homepage = "http://computation.llnl.gov/projects/scalable-checkpoint-restart-for-mpi"
+
+ # NOTE: scr-v1.1.8 is built with autotools and is not properly build here.
+ # scr-v1.1.8 will be deprecated with the upcoming release of v1.2.0
+ # url = "https://github.com/LLNL/scr/releases/download/v1.1.8/scr-1.1.8.tar.gz"
+ # version('1.1.8', '6a0f11ad18e27fcfc00a271ff587b06e')
+
+ version('master', git='https://github.com/llnl/scr.git', branch='master')
+
+ depends_on('pdsh+static_modules', type=('build', 'run'))
+ depends_on('zlib')
+ depends_on('mpi')
+
+ variant('dtcmp', default=True,
+ description="Build with DTCMP. "
+ "Necessary to enable user directory naming at runtime")
+ depends_on('dtcmp', when="+dtcmp")
+
+ variant('libyogrt', default=True,
+ description="Build SCR with libyogrt for get_time_remaining.")
+ depends_on('libyogrt', when="+libyogrt")
+
+ # MySQL not yet in spack
+ # variant('mysql', default=True, decription="MySQL database for logging")
+ # depends_on('mysql', when="+mysql")
+
+ variant('scr_config', default='scr.conf',
+ description='Location for SCR to find its system config file. '
+ 'May be either absolute or relative to the install prefix')
+ variant('copy_config', default=None,
+ description='Location from which to copy SCR system config file. '
+ 'Must be an absolute path.')
+
+ variant('fortran', default=True,
+ description="Build SCR with fortran bindings")
+
+ variant('resource_manager', default='SLURM',
+ values=('SLURM', 'APRUN', 'PMIX', 'LSF', 'NONE'),
+ multi=False,
+ description="Resource manager for which to configure SCR.")
+
+ variant('async_api', default='NONE',
+ values=('NONE', 'CRAY_DW', 'IBM_BBAPI', 'INTEL_CPPR'),
+ multi=False,
+ description="Asynchronous data transfer API to use with SCR.")
+
+ variant('file_lock', default='FLOCK',
+ values=('FLOCK', 'FNCTL', 'NONE'),
+ multi=False,
+ description='File locking style for SCR.')
+
+ variant('cache_base', default='/tmp',
+ description='Compile time default location for checkpoint cache.')
+ variant('cntl_base', default='/tmp',
+ description='Compile time default location for control directory.')
+
+ def get_abs_path_rel_prefix(self, path):
+ # Return path if absolute, otherwise prepend prefix
+ if os.path.isabs(path):
+ return path
+ else:
+ return join_path(self.spec.prefix, path)
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+
+ args.append('-DENABLE_FORTRAN={0}'.format('+fortran' in spec))
+
+ conf_path = self.get_abs_path_rel_prefix(
+ self.spec.variants['scr_config'].value)
+ args.append('-DCMAKE_SCR_CONFIG_FILE={0}'.format(conf_path))
+
+ # We uppercase the values for these to avoid unnecessary user error.
+ args.append('-DSCR_RESOURCE_MANAGER={0}'.format(
+ spec.variants['resource_manager'].value.upper()))
+
+ args.append('-DSCR_ASYNC_API={0}'.format(
+ spec.variants['async_api'].value.upper()))
+
+ args.append('-DSCR_FILE_LOCK={0}'.format(
+ spec.variants['file_lock'].value.upper()))
+
+ args.append('-DSCR_CACHE_BASE={0}'.format(
+ spec.variants['cache_base'].value))
+
+ args.append('-DSCR_CNTL_BASE={0}'.format(
+ spec.variants['cntl_base'].value))
+
+ args.append('-DWITH_PDSH_PREFIX={0}'.format(spec['pdsh'].prefix))
+
+ if "+dtcmp" in spec:
+ args.append('-DWITH_DTCMP_PREFIX={0}'.format(spec['dtcmp'].prefix))
+
+ if "+libyogrt" in spec:
+ args.append('-DWITH_YOGRT_PREFIX={0}'.format(
+ spec['libyogrt'].prefix))
- depends_on("mpi")
-# depends_on("dtcmp")
+ # if "+mysql" in spec:
+ # args.append('-DWITH_MYSQL_PREFIX={0}'.format(
+ # spec['mysql'].prefix))
- version('1.1-7', 'a5930e9ab27d1b7049447c2fd7734ebd',
- url='http://downloads.sourceforge.net/project/scalablecr/releases/scr-1.1-7.tar.gz')
- version('1.1.8', '6a0f11ad18e27fcfc00a271ff587b06e',
- url='https://github.com/hpc/scr/releases/download/v1.1.8/scr-1.1.8.tar.gz')
+ return args
- def install(self, spec, prefix):
- configure("--prefix=" + prefix,
- "--with-scr-config-file=" + prefix + "/etc/scr.conf")
- make()
- make("install")
+ @run_after('install')
+ def copy_config(self):
+ spec = self.spec
+ if spec.variants['copy_config'].value:
+ dest_path = self.get_abs_path_rel_prefix(
+ spec.variants['scr_config'].value)
+ shutil.copyfile(spec.variants['copy_config'].value, dest_path)
diff --git a/var/spack/repos/builtin/packages/sdl2/package.py b/var/spack/repos/builtin/packages/sdl2/package.py
index e841cd4da4..bb7f46d036 100644
--- a/var/spack/repos/builtin/packages/sdl2/package.py
+++ b/var/spack/repos/builtin/packages/sdl2/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Sdl2(Package):
+class Sdl2(CMakePackage):
"""Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and
graphics hardware via OpenGL and Direct3D."""
@@ -35,11 +35,4 @@ class Sdl2(Package):
version('2.0.5', 'd4055424d556b4a908aa76fad63abd3c')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('..', *std_cmake_args)
-
- make()
- make('install')
+ depends_on('cmake@2.8.5:', type='build')
diff --git a/var/spack/repos/builtin/packages/seqprep/package.py b/var/spack/repos/builtin/packages/seqprep/package.py
new file mode 100644
index 0000000000..728b47167b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/seqprep/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Seqprep(MakefilePackage):
+ """SeqPrep is a program to merge paired end Illumina reads that are
+ overlapping into a single longer read."""
+
+ homepage = "https://github.com/jstjohn/SeqPrep"
+ url = "https://github.com/jstjohn/SeqPrep/archive/v1.3.2.tar.gz"
+
+ version('1.3.2', 'b6a4f5491dfdb0ce38bf791454151468')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('SeqPrep', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/serf/package.py b/var/spack/repos/builtin/packages/serf/package.py
index 3d8e228548..250a6f498f 100644
--- a/var/spack/repos/builtin/packages/serf/package.py
+++ b/var/spack/repos/builtin/packages/serf/package.py
@@ -25,31 +25,67 @@
from spack import *
-class Serf(Package):
+class Serf(SConsPackage):
"""Apache Serf - a high performance C-based HTTP client library
built upon the Apache Portable Runtime (APR) library"""
homepage = 'https://serf.apache.org/'
- url = 'https://archive.apache.org/dist/serf/serf-1.3.8.tar.bz2'
+ url = 'https://archive.apache.org/dist/serf/serf-1.3.9.tar.bz2'
+ version('1.3.9', '26015c63e3bbb108c1689bf2090e4c26351db674')
version('1.3.8', '1d45425ca324336ce2f4ae7d7b4cfbc5567c5446')
+ variant('debug', default=False,
+ description='Enable debugging info and strict compile warnings')
+
+ depends_on('scons@2.3.0:', type='build')
+
depends_on('apr')
depends_on('apr-util')
- depends_on('scons', type='build')
- depends_on('expat')
depends_on('openssl')
depends_on('zlib')
- def install(self, spec, prefix):
- options = ['PREFIX=%s' % prefix]
- options.append('APR=%s' % spec['apr'].prefix)
- options.append('APU=%s' % spec['apr-util'].prefix)
- options.append('OPENSSL=%s' % spec['openssl'].prefix)
- options.append('LINKFLAGS=-L%s/lib -L%s/lib' %
- (spec['expat'].prefix, spec['zlib'].prefix))
- options.append('CPPFLAGS=-I%s/include -I%s/include' %
- (spec['expat'].prefix, spec['zlib'].prefix))
-
- scons(*options)
- scons('install')
+ def build_args(self, spec, prefix):
+ args = [
+ 'PREFIX={0}'.format(prefix),
+ 'APR={0}'.format(spec['apr'].prefix),
+ 'APU={0}'.format(spec['apr-util'].prefix),
+ 'OPENSSL={0}'.format(spec['openssl'].prefix),
+ 'ZLIB={0}'.format(spec['zlib'].prefix),
+ ]
+
+ if '+debug' in spec:
+ args.append('DEBUG=yes')
+ else:
+ args.append('DEBUG=no')
+
+ # SCons doesn't pass Spack environment variables to the
+ # execution environment. Therefore, we can't use Spack's compiler
+ # wrappers. Use the actual compilers. SCons seems to RPATH things
+ # on its own anyway.
+ args.append('CC={0}'.format(self.compiler.cc))
+
+ return args
+
+ def test(self):
+ # FIXME: Several test failures:
+ #
+ # There were 14 failures:
+ # 1) test_ssl_trust_rootca
+ # 2) test_ssl_certificate_chain_with_anchor
+ # 3) test_ssl_certificate_chain_all_from_server
+ # 4) test_ssl_no_servercert_callback_allok
+ # 5) test_ssl_large_response
+ # 6) test_ssl_large_request
+ # 7) test_ssl_client_certificate
+ # 8) test_ssl_future_server_cert
+ # 9) test_setup_ssltunnel
+ # 10) test_ssltunnel_basic_auth
+ # 11) test_ssltunnel_basic_auth_server_has_keepalive_off
+ # 12) test_ssltunnel_basic_auth_proxy_has_keepalive_off
+ # 13) test_ssltunnel_basic_auth_proxy_close_conn_on_200resp
+ # 14) test_ssltunnel_digest_auth
+ #
+ # These seem to be related to:
+ # https://groups.google.com/forum/#!topic/serf-dev/YEFTTdF1Qwc
+ scons('check')
diff --git a/var/spack/repos/builtin/packages/shapeit/package.py b/var/spack/repos/builtin/packages/shapeit/package.py
new file mode 100644
index 0000000000..a3f79c6255
--- /dev/null
+++ b/var/spack/repos/builtin/packages/shapeit/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Shapeit(Package):
+ """SHAPEIT is a fast and accurate method for estimation of haplotypes (aka
+ phasing) from genotype or sequencing data."""
+
+ homepage = "https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.html"
+ url = "https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.v2.r837.GLIBCv2.12.Linux.dynamic.tgz"
+
+ version('2.837', '895873bb655a0a985cbfd870fdd1dd60')
+
+ def url_for_version(self, version):
+ url = 'https://mathgen.stats.ox.ac.uk/genetics_software/shapeit/shapeit.v{0}.r{1}.GLIBCv2.12.Linux.dynamic.tgz'
+ return url.format(version[0], version[1])
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir('bin'):
+ install('shapeit', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/shared-mime-info/package.py b/var/spack/repos/builtin/packages/shared-mime-info/package.py
index b7d9deb5f7..ef920c797b 100644
--- a/var/spack/repos/builtin/packages/shared-mime-info/package.py
+++ b/var/spack/repos/builtin/packages/shared-mime-info/package.py
@@ -39,6 +39,7 @@ class SharedMimeInfo(AutotoolsPackage):
depends_on('glib')
depends_on('libxml2')
depends_on('intltool', type='build')
+ depends_on('pkg-config@0.9.0:', type='build')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path("XDG_DATA_DIRS",
diff --git a/var/spack/repos/builtin/packages/shortstack/package.py b/var/spack/repos/builtin/packages/shortstack/package.py
new file mode 100644
index 0000000000..8feb671013
--- /dev/null
+++ b/var/spack/repos/builtin/packages/shortstack/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Shortstack(Package):
+ """ShortStack is a tool developed to process and analyze smallRNA-seq data
+ with respect to a reference genome, and output a comprehensive and
+ informative annotation of all discovered small RNA genes."""
+
+ homepage = "http://sites.psu.edu/axtell/software/shortstack/"
+ url = "https://github.com/MikeAxtell/ShortStack/archive/v3.8.3.tar.gz"
+
+ version('3.8.3', '3f21f494f799039f3fa88ea343f2d20d')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('samtools')
+ depends_on('viennarna')
+ depends_on('bowtie')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('ShortStack', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sickle/package.py b/var/spack/repos/builtin/packages/sickle/package.py
new file mode 100644
index 0000000000..eee50d39aa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sickle/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sickle(MakefilePackage):
+ """Sickle is a tool that uses sliding windows along with quality and
+ length thresholds to determine when quality is sufficiently low to trim
+ the 3'-end of reads and also determines when the quality is
+ sufficiently high enough to trim the 5'-end of reads."""
+
+ homepage = "https://github.com/najoshi/sickle"
+ url = "https://github.com/najoshi/sickle/archive/v1.33.tar.gz"
+
+ version('1.33', '9e2ba812183e1515198c9e15c4cd2cd7')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('sickle', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/signalp/package.py b/var/spack/repos/builtin/packages/signalp/package.py
new file mode 100644
index 0000000000..78caa33452
--- /dev/null
+++ b/var/spack/repos/builtin/packages/signalp/package.py
@@ -0,0 +1,61 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Signalp(Package):
+ """SignalP predicts the presence and location of signal peptide cleavage
+ sites in amino acid sequences from different organisms: Gram-positive
+ bacteria, Gram-negative bacteria, and eukaryotes.
+ Note: A manual download is required for SignalP.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "http://www.cbs.dtu.dk/services/SignalP/"
+ url = "file://{0}/signalp-4.1f.Linux.tar.gz".format(os.getcwd())
+
+ version('4.1f', 'a9aeb66259202649c959846f3f4d9744')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('gnuplot')
+
+ def patch(self):
+ edit = FileFilter('signalp')
+ edit.filter("ENV{SIGNALP} = .*",
+ "ENV{SIGNALP} = '%s'" % self.prefix)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.share.man)
+ install('signalp', prefix)
+ install('signalp.1', prefix.share.man)
+ install_tree('bin', prefix.bin)
+ install_tree('lib', prefix.lib)
+ install_tree('syn', prefix.syn)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PATH', prefix)
diff --git a/var/spack/repos/builtin/packages/simplemoc/package.py b/var/spack/repos/builtin/packages/simplemoc/package.py
new file mode 100644
index 0000000000..0472215800
--- /dev/null
+++ b/var/spack/repos/builtin/packages/simplemoc/package.py
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Simplemoc(MakefilePackage):
+ """The purpose of this mini-app is to demonstrate the performance
+ characterterics and viability of the Method of Characteristics (MOC)
+ for 3D neutron transport calculations in the context of full scale
+ light water reactor simulation."""
+
+ homepage = "https://github.com/ANL-CESAR/SimpleMOC/"
+ url = "https://github.com/ANL-CESAR/SimpleMOC/archive/master.tar.gz"
+
+ version('1.0', 'd8827221a4ae76e9766a32e16d143e60')
+
+ tags = ['proxy-app']
+
+ variant('mpi', default=True, description='Build with MPI support')
+
+ depends_on('mpi', when='+mpi')
+
+ build_directory = 'src'
+
+ @property
+ def build_targets(self):
+
+ targets = []
+
+ cflags = '-std=gnu99'
+ ldflags = '-lm'
+
+ if self.compiler.name == 'gcc' or self.compiler.name == 'intel':
+ cflags += ' ' + self.compiler.openmp_flag
+ if '+mpi' in self.spec:
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+
+ targets.append('CFLAGS={0}'.format(cflags))
+ targets.append('LDFLAGS={0}'.format(ldflags))
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('src/SimpleMOC', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py
new file mode 100644
index 0000000000..61acf56463
--- /dev/null
+++ b/var/spack/repos/builtin/packages/singularity/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Singularity(AutotoolsPackage):
+ """Singularity is a container platform focused on supporting 'Mobility of
+ Compute'"""
+
+ homepage = "http://singularity.lbl.gov/"
+ url = "https://github.com/singularityware/singularity/archive/2.3.1.tar.gz"
+
+ version('2.3.1', '292ff7fe3db09c854b8accf42f763f62')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py
index 934b173b2d..2b4b03147d 100644
--- a/var/spack/repos/builtin/packages/slepc/package.py
+++ b/var/spack/repos/builtin/packages/slepc/package.py
@@ -32,7 +32,7 @@ class Slepc(Package):
"""
homepage = "http://www.grycap.upv.es/slepc"
- url = "http://slepc.upv.es/download/download.php?filename=slepc-3.6.2.tar.gz"
+ url = "http://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz"
version('3.7.4', '2fb782844e3bc265a8d181c3c3e2632a4ca073111c874c654f1365d33ca2eb8a')
version('3.7.3', '3ef9bcc645a10c1779d56b3500472ceb66df692e389d635087d30e7c46424df9')
diff --git a/var/spack/repos/builtin/packages/slurm/package.py b/var/spack/repos/builtin/packages/slurm/package.py
new file mode 100644
index 0000000000..626f43c6c5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/slurm/package.py
@@ -0,0 +1,109 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Slurm(AutotoolsPackage):
+ """Slurm is an open source, fault-tolerant, and highly scalable cluster
+ management and job scheduling system for large and small Linux clusters.
+
+ Slurm requires no kernel modifications for its operation and is relatively
+ self-contained. As a cluster workload manager, Slurm has three key
+ functions. First, it allocates exclusive and/or non-exclusive access to
+ resources (compute nodes) to users for some duration of time so they can
+ perform work. Second, it provides a framework for starting, executing,
+ and monitoring work (normally a parallel job) on the set of allocated
+ nodes. Finally, it arbitrates contention for resources by managing a
+ queue of pending work.
+ """
+
+ homepage = 'https://slurm.schedmd.com'
+ url = 'https://github.com/SchedMD/slurm/archive/slurm-17-02-6-1.tar.gz'
+
+ version('17-02-6-1', '8edbb9ad41819464350d9de013367020')
+
+ variant('gtk', default=False, description='Enable GTK+ support')
+ variant('mariadb', default=False, description='Use MariaDB instead of MySQL')
+
+ variant('hwloc', default=False, description='Enable hwloc support')
+ variant('hdf5', default=False, description='Enable hdf5 support')
+ variant('readline', default=True, description='Enable readline support')
+
+ # TODO: add variant for BG/Q and Cray support
+
+ # TODO: add support for checkpoint/restart (BLCR)
+
+ # TODO: add support for lua
+
+ depends_on('curl')
+ depends_on('glib')
+ depends_on('json-c')
+ depends_on('lz4')
+ depends_on('munge')
+ depends_on('openssl')
+ depends_on('pkg-config', type='build')
+ depends_on('readline')
+ depends_on('zlib')
+
+ depends_on('gtkplus+X', when='+gtk')
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hwloc', when='+hwloc')
+ depends_on('mariadb', when='+mariadb')
+
+ def configure_args(self):
+
+ spec = self.spec
+
+ args = [
+ '--with-libcurl={0}'.format(spec['curl'].prefix),
+ '--with-json={0}'.format(spec['json-c'].prefix),
+ '--with-lz4={0}'.format(spec['lz4'].prefix),
+ '--with-munge={0}'.format(spec['munge'].prefix),
+ '--with-ssl={0}'.format(spec['openssl'].prefix),
+ '--with-zlib={0}'.format(spec['zlib'].prefix),
+ ]
+
+ if '~gtk' in spec:
+ args.append('--disable-gtktest')
+
+ if '+readline' in spec:
+ args.append('--with-readline={0}'.format(spec['readline'].prefix))
+ else:
+ args.append('--without-readline')
+
+ if '+hdf5' in spec:
+ args.append(
+ '--with-hdf5={0}'.format(spec['hdf5'].prefix.bin.h5cc)
+ )
+ else:
+ args.append('--without-hdf5')
+
+ if '+hwloc' in spec:
+ args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))
+ else:
+ args.append('--without-hwloc')
+
+ return args
diff --git a/var/spack/repos/builtin/packages/smalt/package.py b/var/spack/repos/builtin/packages/smalt/package.py
new file mode 100644
index 0000000000..c19f3d040a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/smalt/package.py
@@ -0,0 +1,34 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Smalt(AutotoolsPackage):
+ """SMALT aligns DNA sequencing reads with a reference genome."""
+
+ homepage = "http://www.sanger.ac.uk/science/tools/smalt-0"
+ url = "https://downloads.sourceforge.net/project/smalt/smalt-0.7.6.tar.gz"
+
+ version('0.7.6', 'c3215d70ba960c8fdc8e80191695c60b')
diff --git a/var/spack/repos/builtin/packages/smc/package.py b/var/spack/repos/builtin/packages/smc/package.py
new file mode 100644
index 0000000000..402c892b0f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/smc/package.py
@@ -0,0 +1,83 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import glob
+
+
+class Smc(MakefilePackage):
+ """A minimalist high-order finite difference algorithm
+ for combustion problems. It includes core discretizations
+ for advection, diffusive transport and chemical kinetics.
+ The models for computing diffusive transport coefficients
+ have been replaced by a simplified approximation
+ but the full structure of the discretization of
+ the diffusive terms have been preserved."""
+
+ homepage = "https://ccse.lbl.gov/ExaCT/index.html"
+ url = "https://ccse.lbl.gov/ExaCT/SMC.tar.gz"
+ tags = ['proxy-app']
+
+ version('master', '94a4ea94abbc5e61397c2a4d1fb56ed6')
+
+ variant(
+ 'mpi', default=True,
+ description='Build with MPI support')
+ variant(
+ 'openmp', default=True,
+ description='Build with OpenMP support')
+ variant(
+ 'debug', default=False,
+ description='Build with debugging')
+# variant(
+# 'mic', default=False,
+# description='Compile for Intel Xeon Phi')
+ variant(
+ 'k_use_automatic', default=True,
+ description='Some arrays in kernels.F90 will be automatic')
+
+ depends_on('mpi', when='+mpi')
+ depends_on('gmake', type='build')
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('GNUmakefile')
+ if '~mpi' in spec:
+ makefile.filter('MPI := t', '#')
+ if '~openmp' in spec:
+ makefile.filter('OMP := t', '#')
+ if '+debug' in spec:
+ makefile.filter('NDEBUG :=', '#')
+ if '~k_use_automatic' in spec:
+ makefile.filter('K_U.*:= t', '#')
+ if self.compiler.name == 'intel':
+ makefile.filter('COMP := .*', 'COMP := Intel')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ files = glob.glob(join_path(self.build_directory, '*.exe'))
+ for f in files:
+ install(f, prefix.bin)
+ install('inputs_SMC', prefix.bin)
+ install('README', prefix)
+ install('BoxLib.license.txt', prefix) \ No newline at end of file
diff --git a/var/spack/repos/builtin/packages/snap-berkeley/package.py b/var/spack/repos/builtin/packages/snap-berkeley/package.py
new file mode 100644
index 0000000000..9bd9cd961c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/snap-berkeley/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class SnapBerkeley(MakefilePackage):
+ """SNAP is a fast and accurate aligner for short DNA reads. It is
+ optimized for modern read lengths of 100 bases or higher, and takes
+ advantage of these reads to align data quickly through a hash-based
+ indexing scheme."""
+
+ homepage = "http://snap.cs.berkeley.edu/"
+ url = "https://github.com/amplab/snap/archive/v1.0beta.18.tar.gz"
+
+ version('1.0beta.18', '41e595fffa482e9eda1c3f69fb5dedeb')
+ version('0.15', 'a7d87cc822f052665a347ab0aa84d4de', preferred=True)
+
+ depends_on('zlib')
+
+ conflicts('%gcc@6:')
+ conflicts('%cce')
+ conflicts('%clang')
+ conflicts('%intel')
+ conflicts('%nag')
+ conflicts('%pgi')
+ conflicts('%xl')
+ conflicts('%xl_r')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ if self.spec.satisfies('@1.0beta.18:'):
+ install('snap-aligner', prefix.bin)
+ install('SNAPCommand', prefix.bin)
+ else:
+ install('snap', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/snap/package.py b/var/spack/repos/builtin/packages/snap/package.py
new file mode 100644
index 0000000000..2db4dc7afa
--- /dev/null
+++ b/var/spack/repos/builtin/packages/snap/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Snap(MakefilePackage):
+ """SNAP serves as a proxy application to model
+ the performance of a modern discrete ordinates
+ neutral particle transport application.
+ SNAP may be considered an update to Sweep3D,
+ intended for hybrid computing architectures.
+ It is modeled off the Los Alamos National Laboratory code PARTISN."""
+
+ homepage = "https://github.com/lanl/SNAP"
+ url = ""
+ tags = ['proxy-app']
+
+ version('master', git='https://github.com/lanl/SNAP.git')
+
+ variant('openmp', default=False, description='Build with OpenMP support')
+ variant('opt', default=True, description='Build with debugging')
+ variant('mpi', default=True, description='Build with MPI support')
+
+ depends_on('mpi', when='+mpi')
+
+ build_directory = 'src'
+
+ def edit(self, spec, prefix):
+ with working_dir(self.build_directory):
+ makefile = FileFilter('Makefile')
+ if '~opt' in spec:
+ makefile.filter('OPT = yes', 'OPT = no')
+ if '~mpi' in spec:
+ makefile.filter('MPI = yes', 'MPI = no')
+ if '~openmp' in spec:
+ makefile.filter('OPENMP = yes', 'OPENMP = no')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('src/gsnap', prefix.bin)
+ install_tree('qasnap', prefix.qasnap)
+ install('README.md', prefix)
diff --git a/var/spack/repos/builtin/packages/snbone/package.py b/var/spack/repos/builtin/packages/snbone/package.py
new file mode 100644
index 0000000000..b4d125a77e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/snbone/package.py
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Snbone(MakefilePackage):
+ """This application targets the primary computational solve burden of a SN,
+ continuous finite element based transport equation solver."""
+
+ homepage = "https://github.com/ANL-CESAR/"
+ url = "https://github.com/ANL-CESAR/SNbone.git"
+
+ version('develop', git='https://github.com/ANL-CESAR/SNbone.git')
+
+ tags = ['proxy-app']
+
+ depends_on('metis')
+
+ def build(self, spec, prefix):
+ working_dirs = ['src_c', 'src_fortran', 'src_makemesh',
+ 'src_processmesh']
+ for wdir in working_dirs:
+ with working_dir(wdir, create=False):
+ if self.compiler.name == 'gcc' and wdir == 'src_processmesh':
+ make('COMPILER=gfortran', 'METISLIB={0}'
+ .format(spec['metis'].prefix + '/lib/libmetis.so'))
+ elif self.compiler.name == 'intel':
+ make('COMPILER=intel', 'LDFLAGS=-lm')
+ else:
+ make('COMPILER=gfortran', 'LDFLAGS=-lm')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin.C)
+ mkdirp(prefix.bin.Fortran)
+ mkdirp(prefix.bin.MakeMesh)
+ mkdirp(prefix.bin.ProcessMesh)
+
+ install('src_c/SNaCFE.x', prefix.bin.C)
+ install('src_fortran/SNaCFE.x', prefix.bin.Fortran)
+ install('src_makemesh/makemesh.x', prefix.bin.MakeMesh)
+ install('src_processmesh/processmesh.x', prefix.bin.ProcessMesh)
diff --git a/var/spack/repos/builtin/packages/sniffles/package.py b/var/spack/repos/builtin/packages/sniffles/package.py
new file mode 100644
index 0000000000..9d890b03df
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sniffles/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sniffles(CMakePackage):
+ """Structural variation caller using third generation sequencing."""
+
+ homepage = "https://github.com/fritzsedlazeck/Sniffles/wiki"
+ url = "https://github.com/fritzsedlazeck/Sniffles/archive/v1.0.5.tar.gz"
+
+ version('1.0.5', 'c2f2350d00418ba4d82c074e7f0b1832')
+
+ # the build process doesn't actually install anything, do it by hand
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ src = "bin/sniffles-core-{0}".format(spec.version.dotted)
+ binaries = ['sniffles', 'sniffles-debug']
+ for b in binaries:
+ install(join_path(src, b), join_path(prefix.bin, b))
diff --git a/var/spack/repos/builtin/packages/snptest/package.py b/var/spack/repos/builtin/packages/snptest/package.py
new file mode 100644
index 0000000000..a60a15d054
--- /dev/null
+++ b/var/spack/repos/builtin/packages/snptest/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Snptest(Package):
+ """SNPTEST is a program for the analysis of single SNP association in
+ genome-wide studies."""
+
+ homepage = "https://mathgen.stats.ox.ac.uk/genetics_software/snptest/snptest.html"
+ url = "http://www.well.ox.ac.uk/~gav/resources/snptest_v2.5.2_linux_x86_64_dynamic.tgz"
+
+ version('2.5.2', 'e3f2cc0351f260cf29369dc4f79a660a')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('snptest_v{0}'.format(self.version), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/soap2/package.py b/var/spack/repos/builtin/packages/soap2/package.py
new file mode 100644
index 0000000000..5853bdf1e6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/soap2/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Soap2(Package):
+ """Software for short oligonucleotide alignment."""
+
+ homepage = "http://soap.genomics.org.cn/soapaligner.html"
+ url = "http://soap.genomics.org.cn/down/soap2.21release.tar.gz"
+
+ version('2.21', '563b8b7235463b68413f9e841aa40779')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.share.man)
+ install('soap', prefix.bin)
+ install('2bwt-builder', prefix.bin)
+ install('soap.1', prefix.share.man)
+ install('soap.man', prefix.share.man)
diff --git a/var/spack/repos/builtin/packages/soapindel/package.py b/var/spack/repos/builtin/packages/soapindel/package.py
new file mode 100644
index 0000000000..6d22660786
--- /dev/null
+++ b/var/spack/repos/builtin/packages/soapindel/package.py
@@ -0,0 +1,53 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Soapindel(MakefilePackage):
+ """SOAPindel is focusing on calling indels from the next-generation
+ paired-end sequencing data."""
+
+ homepage = "http://soap.genomics.org.cn/soapindel.html"
+
+ version('2.1.7.17', '317ef494173969cdc6a8244dd87d06bd',
+ url='http://soap.genomics.org.cn/down/SOAPindel_20130918_2.1.7.17.zip')
+
+ depends_on('perl', type=('build', 'run'))
+
+ build_directory = 'indel_detection.release'
+
+ def install(self, spec, prefix):
+ with working_dir('indel_detection.release'):
+ install_tree('tools', prefix.tools)
+ mkdirp(prefix.lib)
+ install('affine_align.pm', prefix.lib)
+ install('indel_lib.pm', prefix.lib)
+ mkdirp(prefix.bin)
+ install('assemble_align', prefix.bin)
+ install('cluster_reads', prefix.bin)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PERL5LIB', self.prefix.lib)
+ run_env.prepend_path('PATH', self.prefix.tools)
diff --git a/var/spack/repos/builtin/packages/gbenchmark/package.py b/var/spack/repos/builtin/packages/soapsnp/package.py
index 591a5403f0..3d22a579bf 100644
--- a/var/spack/repos/builtin/packages/gbenchmark/package.py
+++ b/var/spack/repos/builtin/packages/soapsnp/package.py
@@ -25,26 +25,18 @@
from spack import *
-class Gbenchmark(CMakePackage):
- """A microbenchmark support library"""
+class Soapsnp(MakefilePackage):
+ """SOAPsnp uses a method based on Bayes' theorem (the reverse probability
+ model) to call consensus genotype by carefully considering the data
+ quality, alignment, and recurring experimental errors."""
- homepage = "https://github.com/google/benchmark"
- url = "https://github.com/google/benchmark/archive/v1.0.0.tar.gz"
+ homepage = "http://soap.genomics.org.cn/soapsnp.html"
+ url = "http://soap.genomics.org.cn/down/SOAPsnp-v1.03.tar.gz"
- version('1.1.0', '8c539bbe2a212618fa87b6c38fba087100b6e4ae')
- version('1.0.0', '4f778985dce02d2e63262e6f388a24b595254a93')
+ version('1.03', '8d69e196013657357ff840b611762ebc')
- def build_type(self):
- return "Release"
+ depends_on('boost')
- def patch(self):
- filter_file(
- r'add_cxx_compiler_flag..fstrict.aliasing.',
- r'##### add_cxx_compiler_flag(-fstrict-aliasing)',
- 'CMakeLists.txt'
- )
- filter_file(
- r'add_cxx_compiler_flag..Werror',
- r'##### add_cxx_compiler_flag(-Werror',
- 'CMakeLists.txt'
- )
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('soapsnp', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/somatic-sniper/package.py b/var/spack/repos/builtin/packages/somatic-sniper/package.py
new file mode 100644
index 0000000000..4d5a17bcce
--- /dev/null
+++ b/var/spack/repos/builtin/packages/somatic-sniper/package.py
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class SomaticSniper(CMakePackage):
+ """A tool to call somatic single nucleotide variants."""
+
+ homepage = "http://gmt.genome.wustl.edu/packages/somatic-sniper"
+ url = "https://github.com/genome/somatic-sniper/archive/v1.0.5.0.tar.gz"
+
+ version('1.0.5.0', '64bc2b001c9a8089f2a05900f8a0abfe')
+
+ depends_on('ncurses')
+
+ parallel = False
diff --git a/var/spack/repos/builtin/packages/sortmerna/package.py b/var/spack/repos/builtin/packages/sortmerna/package.py
new file mode 100644
index 0000000000..fbf0f44ed8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sortmerna/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sortmerna(CMakePackage):
+ """SortMeRNA is a program tool for filtering, mapping and OTU-picking NGS
+ reads in metatranscriptomic and metagenomic data"""
+
+ homepage = "https://github.com/biocore/sortmerna"
+ url = "https://github.com/biocore/sortmerna"
+
+ version('2017-07-13', git='https://github.com/biocore/sortmerna.git', commit='8bde6fa113a5d99a23ae81b48eeea6760e966094')
+
+ depends_on('zlib')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir(join_path('spack-build', 'src', 'indexdb')):
+ install('indexdb', prefix.bin)
+ with working_dir(join_path('spack-build', 'src', 'sortmerna')):
+ install('sortmerna', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/spades/package.py b/var/spack/repos/builtin/packages/spades/package.py
new file mode 100644
index 0000000000..443436d3ae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/spades/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Spades(CMakePackage):
+ """SPAdes - St. Petersburg genome assembler - is intended for both
+ standard isolates and single-cell MDA bacteria assemblies."""
+
+ homepage = "http://cab.spbu.ru/software/spades/"
+ url = "http://cab.spbu.ru/files/release3.10.1/SPAdes-3.10.1.tar.gz"
+
+ version('3.10.1', 'dcab7d145af81b59cc867562f27536c3')
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('zlib')
+ depends_on('bzip2')
+
+ conflicts('%gcc@7.1.0:')
+
+ root_cmakelists_dir = 'src'
diff --git a/var/spack/repos/builtin/packages/spark/package.py b/var/spack/repos/builtin/packages/spark/package.py
index c625f6b82a..ddd825018e 100644
--- a/var/spack/repos/builtin/packages/spark/package.py
+++ b/var/spack/repos/builtin/packages/spark/package.py
@@ -39,7 +39,7 @@ class Spark(Package):
variant('hadoop', default=False,
description='Build with Hadoop')
- depends_on('jdk', type=('build', 'run'))
+ depends_on('java', type=('build', 'run'))
depends_on('hadoop', when='+hadoop', type=('build', 'run'))
version('2.1.0', '21d4471e78250775b1fa7c0e6c3a1326')
@@ -68,7 +68,7 @@ class Spark(Package):
@when('+hadoop')
def setup_environment(self, spack_env, run_env):
- env['JAVA_HOME'] = self.spec['jdk'].prefix
+ env['JAVA_HOME'] = self.spec['java'].prefix
# spack_env.set('JAVA_HOME', self.spec['jdk'].prefix)
hadoop = self.spec['hadoop'].command
diff --git a/var/spack/repos/builtin/packages/sparta/package.py b/var/spack/repos/builtin/packages/sparta/package.py
new file mode 100644
index 0000000000..361c0253e2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sparta/package.py
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sparta(Package):
+ """small RNA-PARE Target Analyzer (sPARTA) is a tool which utilizes
+ high-throughput sequencing to profile genome-wide cleavage
+ products."""
+
+ homepage = "https://github.com/atulkakrana/sPARTA.github"
+ url = "https://github.com/atulkakrana/sPARTA/archive/1.25.tar.gz"
+
+ version('1.25', '50fda66bf860f63ae8aef5e8fb997a75')
+
+ depends_on('bowtie2')
+ depends_on('python@3:', type=('build', 'run'))
+ depends_on('py-scipy', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('sPARTA.py', prefix.bin)
+ install('revFernoMap.py', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py
index 56062c1472..66b76e1be1 100644
--- a/var/spack/repos/builtin/packages/sqlite/package.py
+++ b/var/spack/repos/builtin/packages/sqlite/package.py
@@ -33,8 +33,12 @@ class Sqlite(AutotoolsPackage):
"""
homepage = "www.sqlite.org"
+ version('3.20.0', 'e262a28b73cc330e7e83520c8ce14e4d',
+ url='https://www.sqlite.org/2017/sqlite-autoconf-3200000.tar.gz')
version('3.18.0', 'a6687a8ae1f66abc8df739aeadecfd0c',
url='https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz')
+ version('3.8.10.2', 'a18bfc015cd49a1e7a961b7b77bc3b37',
+ url='https://www.sqlite.org/2015/sqlite-autoconf-3081002.tar.gz')
version('3.8.5', '0544ef6d7afd8ca797935ccc2685a9ed',
url='https://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz')
diff --git a/var/spack/repos/builtin/packages/sspace-longread/package.py b/var/spack/repos/builtin/packages/sspace-longread/package.py
new file mode 100644
index 0000000000..9f55ecdc6e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sspace-longread/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class SspaceLongread(Package):
+ """SSPACE-LongRead is a stand-alone program for scaffolding pre-assembled
+ contigs using long reads
+
+ Note: A manual download is required for SSPACE-LongRead.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/SSPACE-longread"
+
+ version('1.1', '0bb5d8603d7ead4ff1596135a520cc26')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ return "file://{0}/40SSPACE-LongRead_v{1}.tar.gz".format(
+ os.getcwd(), version.dashed)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('blasr', prefix.bin)
+ install('SSPACE-LongRead.pl', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sspace-standard/package.py b/var/spack/repos/builtin/packages/sspace-standard/package.py
new file mode 100644
index 0000000000..7b1de9c1b3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sspace-standard/package.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class SspaceStandard(Package):
+ """SSPACE standard is a stand-alone program for scaffolding pre-assembled
+ contigs using NGS paired-read data
+
+ Note: A manual download is required for SSPACE-Standard.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://www.baseclear.com/genomics/bioinformatics/basetools/SSPACE"
+ url = "file://{0}/41SSPACE-STANDARD-3.0_linux-x86_64.tar.gz".format(os.getcwd())
+
+ version('3.0', '7e171b4861b9d514e80aafc3d9cdf554')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install_tree('bowtie', prefix.bowtie)
+ install_tree('bwa', prefix.bwa)
+ install_tree('dotlib', prefix.dotlib)
+ install_tree('tools', prefix.tools)
+ install('SSPACE_Standard_v{0}.pl'.format(self.version), prefix)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('SSPACE_HOME', prefix)
+ run_env.prepend_path('PATH', prefix)
diff --git a/var/spack/repos/builtin/packages/stacks/package.py b/var/spack/repos/builtin/packages/stacks/package.py
new file mode 100644
index 0000000000..df0d486b0b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/stacks/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Stacks(AutotoolsPackage):
+ """Stacks is a software pipeline for building loci from short-read
+ sequences, such as those generated on the Illumina platform."""
+
+ homepage = "http://catchenlab.life.illinois.edu/stacks/"
+ url = "http://catchenlab.life.illinois.edu/stacks/source/stacks-1.46.tar.gz"
+
+ version('1.46', '18b0568a4bba44fb4e5be0eb7ee2c08d')
+
+ variant('sparsehash', default=True, description='Improve Stacks memory usage with SparseHash')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('sparsehash', when='+sparsehash')
+
+ def configure_args(self):
+ args = []
+ if '+sparsehash' in self.spec:
+ args.append('--enable-sparsehash')
+ else:
+ args.append('--disable-sparsehash')
+ return args
diff --git a/var/spack/repos/builtin/packages/stc/package.py b/var/spack/repos/builtin/packages/stc/package.py
index 7365943a14..2403767679 100644
--- a/var/spack/repos/builtin/packages/stc/package.py
+++ b/var/spack/repos/builtin/packages/stc/package.py
@@ -34,7 +34,7 @@ class Stc(AutotoolsPackage):
version('0.7.3', '6bf769f406f6c33d1c134521373718d3')
- depends_on('jdk')
+ depends_on('java')
depends_on('ant')
depends_on('turbine')
diff --git a/var/spack/repos/builtin/packages/stringtie/package.py b/var/spack/repos/builtin/packages/stringtie/package.py
new file mode 100644
index 0000000000..9baf545a4c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/stringtie/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Stringtie(MakefilePackage):
+ """StringTie is a fast and highly efficient assembler of RNA-Seq alignments
+ into potential transcripts."""
+
+ homepage = "https://ccb.jhu.edu/software/stringtie"
+ url = "https://github.com/gpertea/stringtie/archive/v1.3.3b.tar.gz"
+
+ version('1.3.3b', '11a43260b18e4272182380e922445d88')
+
+ depends_on('samtools')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('stringtie', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/structure/package.py b/var/spack/repos/builtin/packages/structure/package.py
new file mode 100644
index 0000000000..abe1ee76e8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/structure/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Structure(MakefilePackage):
+ """Structure is a free software package for using multi-locus genotype
+ data to investigate population structure."""
+
+ homepage = "http://web.stanford.edu/group/pritchardlab/structure.html"
+ url = "http://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v2.3.4/structure_kernel_source.tar.gz"
+
+ version('2.3.4', '4e0591678cdbfe79347d272b5dceeda1')
+
+ depends_on('jdk', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ url = "http://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v{0}/structure_kernel_source.tar.gz"
+ return url.format(version)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('structure', prefix.bin)
+ install('mainparams', prefix.bin)
+ install('extraparams', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sublime-text/package.py b/var/spack/repos/builtin/packages/sublime-text/package.py
index 3d7fb65005..e7605b40be 100644
--- a/var/spack/repos/builtin/packages/sublime-text/package.py
+++ b/var/spack/repos/builtin/packages/sublime-text/package.py
@@ -49,7 +49,7 @@ class SublimeText(Package):
depends_on('libxau', type='run')
def url_for_version(self, version):
- if version.up_to(1) == '2':
+ if version[0] == 2:
return "https://download.sublimetext.com/Sublime%20Text%20{0}%20x64.tar.bz2".format(version)
else:
return "https://download.sublimetext.com/sublime_text_3_build_{0}_x64.tar.bz2".format(version)
diff --git a/var/spack/repos/builtin/packages/subread/package.py b/var/spack/repos/builtin/packages/subread/package.py
new file mode 100644
index 0000000000..b09e398602
--- /dev/null
+++ b/var/spack/repos/builtin/packages/subread/package.py
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import sys
+
+
+class Subread(MakefilePackage):
+ """The Subread software package is a tool kit for processing next-gen
+ sequencing data."""
+
+ homepage = "http://subread.sourceforge.net/"
+ url = "https://downloads.sourceforge.net/project/subread/subread-1.5.2/subread-1.5.2-source.tar.gz"
+
+ version('1.5.2', '817d2a46d87fcef885c8832475b8b247')
+
+ depends_on('zlib')
+
+ def build(self, spec, prefix):
+ plat = sys.platform
+ with working_dir('src'):
+ if plat.startswith('linux'):
+ make('-f', 'Makefile.Linux')
+ elif plat.startswith('darwin'):
+ make('-f', 'Makefile.MacOS')
+ else:
+ raise InstallError("The communication mechanism %s is not"
+ "supported" % plat)
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sumaclust/package.py b/var/spack/repos/builtin/packages/sumaclust/package.py
new file mode 100644
index 0000000000..b1d7a94c5a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/sumaclust/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Sumaclust(MakefilePackage):
+ """Sumaclust aims to cluster sequences in a way that is fast and exact at
+ the same time."""
+
+ homepage = "https://git.metabarcoding.org/obitools/sumaclust"
+
+ version('1.0.20', '31c7583fbe2e3345d5fe3e9431d9b30c',
+ url="https://git.metabarcoding.org/obitools/sumaclust/uploads/69f757c42f2cd45212c587e87c75a00f/sumaclust_v1.0.20.tar.gz")
+
+ def build(self, spec, prefix):
+ make('CC={0}'.format(spack_cc))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('sumaclust', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py
index 98e2f8f009..b0ad1c1f42 100644
--- a/var/spack/repos/builtin/packages/sundials/package.py
+++ b/var/spack/repos/builtin/packages/sundials/package.py
@@ -24,6 +24,7 @@
##############################################################################
from spack import *
import os
+import sys
class Sundials(Package):
@@ -33,21 +34,28 @@ class Sundials(Package):
homepage = "http://computation.llnl.gov/casc/sundials/"
url = "http://computation.llnl.gov/projects/sundials-suite-nonlinear-differential-algebraic-equation-solvers/download/sundials-2.6.2.tar.gz"
+ version('2.7.0', 'c304631b9bc82877d7b0e9f4d4fd94d3')
version('2.6.2', '3deeb0ede9f514184c6bd83ecab77d95')
- variant('mpi', default=True, description='Enable MPI support')
+ variant('mpi', default=True,
+ description='Enable MPI parallelism')
variant('lapack', default=True,
- description='Build with external BLAS/LAPACK libraries')
+ description='Use external BLAS/LAPACK libraries')
variant('klu', default=False,
- description='Build with SuiteSparse KLU libraries')
+ description='Enable KLU sparse, direct solver')
variant('superlu', default=False,
- description='Build with SuperLU_MT libraries')
- variant('openmp', default=False, description='Enable OpenMP support')
+ description='Enable SuperLU_MT sparse, direct solver')
+ variant('openmp', default=False,
+ description='Enable OpenMP parallelism')
variant('pthread', default=True,
- description='Enable POSIX threads support')
+ description='Enable Pthreads parallelism')
+ variant('hypre', default=False,
+ description='Enable Hypre parallel vector for MPI parallelism')
- depends_on('cmake', type='build')
+ depends_on('cmake', type='build')
depends_on('mpi', when='+mpi')
+ depends_on('mpi', when='@2.7:+hypre')
+ depends_on('hypre', when='@2.7:+hypre')
depends_on('blas', when='+lapack')
depends_on('lapack', when='+lapack')
depends_on('suite-sparse', when='+klu')
@@ -55,54 +63,72 @@ class Sundials(Package):
depends_on('superlu-mt+pthread', when='+superlu+pthread')
def install(self, spec, prefix):
+
+ def on_off(varstr):
+ return 'ON' if varstr in self.spec else 'OFF'
+
cmake_args = std_cmake_args[:]
+
+ fortran_flag = self.compiler.pic_flag
+ if spec.satisfies('%clang platform=darwin'):
+ mpif77 = Executable(self.spec['mpi'].mpif77)
+ libgfortran = LibraryList(mpif77('--print-file-name',
+ 'libgfortran.a', output=str))
+ fortran_flag += ' ' + libgfortran.ld_flags
+
cmake_args.extend([
'-DBUILD_SHARED_LIBS=ON',
- '-DCMAKE_C_FLAGS=-fPIC',
- '-DCMAKE_Fortran_FLAGS=-fPIC',
+ '-DCMAKE_C_FLAGS={0}'.format(self.compiler.pic_flag),
+ '-DCMAKE_Fortran_FLAGS={0}'.format(fortran_flag),
'-DEXAMPLES_ENABLE=ON',
'-DEXAMPLES_INSTALL=ON',
- '-DFCMIX_ENABLE=ON'
+ '-DFCMIX_ENABLE=ON',
+ '-DMPI_ENABLE=%s' % on_off('+mpi'),
+ '-DLAPACK_ENABLE=%s' % on_off('+lapack'),
+ '-DKLU_ENABLE=%s' % on_off('+klu'),
+ '-DHYPRE_ENABLE=%s' % on_off('+hypre'),
+ '-DSUPERLUMT_ENABLE=%s' % on_off('+superlu'),
+ '-DOPENMP_ENABLE=%s' % on_off('+openmp'),
+ '-DPTHREAD_ENABLE=%s' % on_off('+pthread')
])
# MPI support
if '+mpi' in spec:
cmake_args.extend([
- '-DMPI_ENABLE=ON',
'-DMPI_MPICC={0}'.format(spec['mpi'].mpicc),
'-DMPI_MPIF77={0}'.format(spec['mpi'].mpif77)
])
- else:
- cmake_args.append('-DMPI_ENABLE=OFF')
+
+ # Building with Hypre
+ if '+hypre' in spec and spec.satisfies('@2.7:'):
+ cmake_args.extend([
+ '-DHYPRE_INCLUDE_DIR={0}'.format(
+ spec['hypre'].prefix.include),
+ '-DHYPRE_LIBRARY_DIR={0}'.format(
+ spec['hypre'].prefix.lib)
+ ])
# Building with LAPACK and BLAS
if '+lapack' in spec:
cmake_args.extend([
- '-DLAPACK_ENABLE=ON',
'-DLAPACK_LIBRARIES={0}'.format(
(spec['lapack'].libs +
spec['blas'].libs).joined(';')
)
])
- else:
- cmake_args.append('-DLAPACK_ENABLE=OFF')
# Building with KLU
if '+klu' in spec:
cmake_args.extend([
- '-DKLU_ENABLE=ON',
'-DKLU_INCLUDE_DIR={0}'.format(
spec['suite-sparse'].prefix.include),
'-DKLU_LIBRARY_DIR={0}'.format(
spec['suite-sparse'].prefix.lib)
])
- else:
- cmake_args.append('-DKLU_ENABLE=OFF')
# Building with SuperLU_MT
if '+superlu' in spec:
cmake_args.extend([
- '-DSUPERLUMT_ENABLE=ON',
'-DSUPERLUMT_INCLUDE_DIR={0}'.format(
spec['superlu-mt'].prefix.include),
'-DSUPERLUMT_LIBRARY_DIR={0}'.format(
@@ -116,20 +142,6 @@ class Sundials(Package):
msg = 'You must choose either +openmp or +pthread when '
msg += 'building with SuperLU_MT'
raise RuntimeError(msg)
- else:
- cmake_args.append('-DSUPERLUMT_ENABLE=OFF')
-
- # OpenMP support
- if '+openmp' in spec:
- cmake_args.append('-DOPENMP_ENABLE=ON')
- else:
- cmake_args.append('-DOPENMP_ENABLE=OFF')
-
- # POSIX threads support
- if '+pthread' in spec:
- cmake_args.append('-DPTHREAD_ENABLE=ON')
- else:
- cmake_args.append('-DPTHREAD_ENABLE=OFF')
with working_dir('build', create=True):
cmake('..', *cmake_args)
@@ -137,6 +149,9 @@ class Sundials(Package):
make()
make('install')
+ if (sys.platform == 'darwin'):
+ fix_darwin_install_name(prefix.lib)
+
install('LICENSE', prefix)
self.filter_compilers()
diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py
index 7cdf4315fc..c7ef1e3bae 100644
--- a/var/spack/repos/builtin/packages/superlu/package.py
+++ b/var/spack/repos/builtin/packages/superlu/package.py
@@ -38,7 +38,7 @@ class Superlu(Package):
version('5.2.1', '3a1a9bff20cb06b7d97c46d337504447')
version('4.3', 'b72c6309f25e9660133007b82621ba7c')
- variant('fpic', default=True,
+ variant('pic', default=True,
description='Build with position independent code')
depends_on('cmake', when='@5.2.1:', type='build')
@@ -51,7 +51,7 @@ class Superlu(Package):
'-DBLAS_blas_LIBRARY={0}'.format(spec['blas'].libs.joined())
]
- if '+fpic' in spec:
+ if '+pic' in spec:
cmake_args.extend([
'-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
])
@@ -89,7 +89,7 @@ class Superlu(Package):
'CDEFS = -DAdd_'
])
- if '+fpic' in spec:
+ if '+pic' in spec:
config.extend([
# Use these lines instead when pic_flag capability arrives
'CFLAGS = -O3 {0}'.format(self.compiler.pic_flag),
diff --git a/var/spack/repos/builtin/packages/swarm/package.py b/var/spack/repos/builtin/packages/swarm/package.py
new file mode 100644
index 0000000000..b752f52381
--- /dev/null
+++ b/var/spack/repos/builtin/packages/swarm/package.py
@@ -0,0 +1,41 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Swarm(MakefilePackage):
+ """A robust and fast clustering method for amplicon-based studies."""
+
+ homepage = "https://github.com/torognes/swarm"
+ url = "https://github.com/torognes/swarm/archive/v2.1.13.tar.gz"
+
+ version('2.1.13', 'ab6aff0ba5d20a53b9f13f8f3d85839f')
+
+ build_directory = 'src'
+
+ def install(self, spec, prefix):
+ install_tree('bin', prefix.bin)
+ install_tree('scripts', prefix.scripts)
+ install_tree('man', prefix.share.man)
diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py
index 50dd335ac7..a36cfc70b2 100644
--- a/var/spack/repos/builtin/packages/symengine/package.py
+++ b/var/spack/repos/builtin/packages/symengine/package.py
@@ -55,6 +55,9 @@ class Symengine(CMakePackage):
description='Enable thread safety option')
variant('shared', default=True,
description='Enables the build of shared libraries')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
# NOTE: mpir is a drop-in replacement for gmp
# NOTE: [mpc,mpfr,flint,piranha] could also be built against mpir
@@ -66,10 +69,6 @@ class Symengine(CMakePackage):
depends_on('flint', when='+flint~boostmp')
depends_on('piranha', when='+piranha~flint~boostmp')
- def build_type(self):
- # CMAKE_BUILD_TYPE should be Debug | Release
- return 'Release'
-
def cmake_args(self):
spec = self.spec
options = []
@@ -77,7 +76,6 @@ class Symengine(CMakePackage):
# See https://github.com/symengine/symengine/blob/master/README.md
# for build options
options.extend([
- '-DCMAKE_BUILD_TYPE=Release',
'-DWITH_SYMENGINE_RCP:BOOL=ON',
'-DWITH_SYMENGINE_THREAD_SAFE:BOOL=%s' % (
'ON' if ('+thread_safe' or '+openmp') in spec else 'OFF'),
diff --git a/var/spack/repos/builtin/packages/sympol/package.py b/var/spack/repos/builtin/packages/sympol/package.py
index 6385bd09da..3e129e68eb 100644
--- a/var/spack/repos/builtin/packages/sympol/package.py
+++ b/var/spack/repos/builtin/packages/sympol/package.py
@@ -26,14 +26,14 @@
from spack import *
-class Sympol(Package):
+class Sympol(CMakePackage):
"""SymPol is a C++ tool to work with symmetric polyhedra"""
homepage = "http://www.math.uni-rostock.de/~rehn/software/sympol.html"
url = "http://www.math.uni-rostock.de/~rehn/software/sympol-0.1.8.tar.gz"
version('0.1.8', '7cba1997f8532c754cb7259bf70caacb')
- depends_on("cmake", type='build')
+ depends_on("cmake@2.6:", type="build")
depends_on("bliss")
depends_on("boost")
@@ -41,8 +41,3 @@ class Sympol(Package):
depends_on("lrslib")
patch("lrs_mp_close.patch")
-
- def install(self, spec, prefix):
- cmake(".", *std_cmake_args)
- make()
- make("install")
diff --git a/var/spack/repos/builtin/packages/sz/package.py b/var/spack/repos/builtin/packages/sz/package.py
index 36bcdf1cfc..d914b0226d 100644
--- a/var/spack/repos/builtin/packages/sz/package.py
+++ b/var/spack/repos/builtin/packages/sz/package.py
@@ -30,11 +30,11 @@ class Sz(AutotoolsPackage):
"""Error-bounded Lossy Compressor for HPC Data."""
homepage = "https://collab.cels.anl.gov/display/ESR/SZ"
- url = "http://www.mcs.anl.gov/~shdi/download/sz-1.4.9-beta.tar.gz"
+ url = "https://github.com/disheng222/SZ/archive/v1.4.9.2.tar.gz"
version('develop', git='https://github.com/disheng222/SZ.git',
branch='master')
- version('1.4.9-beta', '8a00cddc39780c18d766215f69713f82')
+ version('1.4.9.2', '028ce90165b7a4c4051d4c0189f193c0')
variant('fortran', default=False,
description='Enable fortran compilation')
diff --git a/var/spack/repos/builtin/packages/tabix/package.py b/var/spack/repos/builtin/packages/tabix/package.py
new file mode 100644
index 0000000000..1e54dd4716
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tabix/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tabix(MakefilePackage):
+ """Generic indexer for TAB-delimited genome position files"""
+
+ homepage = "https://github.com/samtools/tabix"
+ url = "https://github.com/samtools/tabix"
+
+ version('2013-12-16', git='https://github.com/samtools/tabix.git', commit='1ae158ac79b459f5feeed7490c67519b14ce9f35')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('python', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.share.man.man1)
+ install('tabix', prefix.bin)
+ install('bgzip', prefix.bin)
+ install('tabix.py', prefix.bin)
+ install('tabix.1', prefix.share.man.man1)
+ install('tabix.tex', prefix.share)
+ install('TabixReader.java', prefix.bin)
+ install('libtabix.a', prefix.lib)
+ install_tree('perl', prefix.perl)
+ install_tree('python', prefix.python)
diff --git a/var/spack/repos/builtin/packages/task/package.py b/var/spack/repos/builtin/packages/task/package.py
index ac34bedd93..11cc280a9a 100644
--- a/var/spack/repos/builtin/packages/task/package.py
+++ b/var/spack/repos/builtin/packages/task/package.py
@@ -25,22 +25,15 @@
from spack import *
-class Task(Package):
+class Task(CMakePackage):
"""Feature-rich console based todo list manager"""
homepage = "http://www.taskwarrior.org"
url = "http://taskwarrior.org/download/task-2.4.4.tar.gz"
version('2.4.4', '517450c4a23a5842df3e9905b38801b3')
- depends_on('cmake', type='build')
- depends_on("gnutls")
- depends_on("libuuid")
- # depends_on("gcc@4.8:")
+ depends_on('cmake@2.8:', type='build')
+ depends_on('gnutls')
+ depends_on('libuuid')
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('-DCMAKE_BUILD_TYPE=release',
- '..',
- *std_cmake_args)
- make()
- make("install")
+ conflicts('%gcc@:4.7')
diff --git a/var/spack/repos/builtin/packages/taskd/package.py b/var/spack/repos/builtin/packages/taskd/package.py
index b14a507424..9a9e250011 100644
--- a/var/spack/repos/builtin/packages/taskd/package.py
+++ b/var/spack/repos/builtin/packages/taskd/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Taskd(Package):
+class Taskd(CMakePackage):
"""TaskWarrior task synchronization daemon"""
homepage = "http://www.taskwarrior.org"
@@ -33,14 +33,8 @@ class Taskd(Package):
version('1.1.0', 'ac855828c16f199bdbc45fbc227388d0')
- depends_on('cmake', type='build')
- depends_on("libuuid")
- depends_on("gnutls")
+ depends_on('libuuid')
+ depends_on('gnutls')
+ depends_on('cmake@2.8:', type='build')
- def install(self, spec, prefix):
- with working_dir('spack-build', create=True):
- cmake('-DCMAKE_BUILD_TYPE=release',
- '..',
- *std_cmake_args)
- make()
- make("install")
+ conflicts('%gcc@:4.7')
diff --git a/var/spack/repos/builtin/packages/tcoffee/package.py b/var/spack/repos/builtin/packages/tcoffee/package.py
new file mode 100644
index 0000000000..0f954b42c7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tcoffee/package.py
@@ -0,0 +1,57 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tcoffee(MakefilePackage):
+ """T-Coffee is a multiple sequence alignment program."""
+
+ homepage = "http://www.tcoffee.org/"
+ url = "https://github.com/cbcrg/tcoffee"
+
+ version('2017-08-17', git='https://github.com/cbcrg/tcoffee.git', commit='f389b558e91d0f82e7db934d9a79ce285f853a71')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('blast-plus')
+ depends_on('dialign-tx')
+ depends_on('viennarna')
+ depends_on('clustalw')
+ depends_on('tmalign')
+ depends_on('muscle')
+ depends_on('mafft')
+ depends_on('pcma')
+ depends_on('poamsa')
+ depends_on('probconsrna')
+
+ build_directory = 'compile'
+
+ def build(self, spec, prefix):
+ with working_dir(self.build_directory):
+ make('t_coffee')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir(self.build_directory):
+ install('t_coffee', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/tealeaf/package.py b/var/spack/repos/builtin/packages/tealeaf/package.py
new file mode 100644
index 0000000000..e8d60b4448
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tealeaf/package.py
@@ -0,0 +1,77 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+import glob
+
+from spack import *
+
+
+class Tealeaf(MakefilePackage):
+ """Proxy Application. TeaLeaf is a mini-app that solves
+ the linear heat conduction equation on a spatially decomposed
+ regularly grid using a 5 point stencil with implicit solvers.
+ """
+
+ homepage = "http://uk-mac.github.io/TeaLeaf/"
+ url = "http://mantevo.org/downloads/releaseTarballs/miniapps/TeaLeaf/TeaLeaf-1.0.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('1.0', '02a907281ad2d09e70ca0a17551c6d79')
+
+ depends_on('mpi')
+
+ @property
+ def build_targets(self):
+ targets = [
+ '--directory=TeaLeaf_ref',
+ 'MPI_COMPILER={0}'.format(self.spec['mpi'].mpifc),
+ 'C_MPI_COMPILER={0}'.format(self.spec['mpi'].mpicc),
+ ]
+
+ if '%gcc' in self.spec:
+ targets.append('COMPILER=GNU')
+ elif '%cce' in self.spec:
+ targets.append('COMPILER=CRAY')
+ elif '%intel' in self.spec:
+ targets.append('COMPILER=INTEL')
+ elif '%pgi' in self.spec:
+ targets.append('COMPILER=PGI')
+ elif '%xl' in self.spec:
+ targets.append('COMPILER=XL')
+
+ return targets
+
+ def install(self, spec, prefix):
+ # Manual Installation
+ mkdirp(prefix.bin)
+ mkdirp(prefix.doc.tests)
+
+ install('README.md', prefix.doc)
+ install('TeaLeaf_ref/tea_leaf', prefix.bin)
+ install('TeaLeaf_ref/tea.in', prefix.bin)
+
+ for f in glob.glob('TeaLeaf_ref/*.in'):
+ install(f, prefix.doc.tests)
diff --git a/var/spack/repos/builtin/packages/tethex/package.py b/var/spack/repos/builtin/packages/tethex/package.py
index d5d4ba891b..9429678661 100644
--- a/var/spack/repos/builtin/packages/tethex/package.py
+++ b/var/spack/repos/builtin/packages/tethex/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Tethex(Package):
+class Tethex(CMakePackage):
"""Tethex is designed to convert triangular (in 2D) or tetrahedral (in 3D)
Gmsh's mesh to quadrilateral or hexahedral one respectively. These meshes
can be used in software packages working with hexahedrals only - for
@@ -38,12 +38,13 @@ class Tethex(Package):
version('0.0.7', '6c9e4a18a6637deb4400c6d77ec03184')
version('develop', git='https://github.com/martemyev/tethex.git')
- depends_on('cmake', type='build')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release'))
- def install(self, spec, prefix):
- cmake('.')
- make()
+ depends_on('cmake@2.8:', type='build')
+ def install(self, spec, prefix):
# install by hand
mkdirp(prefix.bin)
install('tethex', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/thrift/package.py b/var/spack/repos/builtin/packages/thrift/package.py
index 306f8d9de5..c91d0096f3 100644
--- a/var/spack/repos/builtin/packages/thrift/package.py
+++ b/var/spack/repos/builtin/packages/thrift/package.py
@@ -38,6 +38,8 @@ class Thrift(Package):
homepage = "http://thrift.apache.org"
url = "http://apache.mirrors.ionfish.org/thrift/0.9.2/thrift-0.9.2.tar.gz"
+ version('0.10.0', '795c5dd192e310ffff38cfd9430d6b29')
+ version('0.9.3', '88d667a8ae870d5adeca8cb7d6795442')
version('0.9.2', '89f63cc4d0100912f4a1f8a9dee63678')
# Currently only support for c-family and python
@@ -46,7 +48,7 @@ class Thrift(Package):
variant('python', default=True,
description="Build support for python")
- depends_on('jdk')
+ depends_on('java')
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
@@ -63,7 +65,7 @@ class Thrift(Package):
def install(self, spec, prefix):
env['PY_PREFIX'] = prefix
- env['JAVA_HOME'] = spec['jdk'].prefix
+ env['JAVA_HOME'] = spec['java'].prefix
# configure options
options = ['--prefix=%s' % prefix]
diff --git a/var/spack/repos/builtin/packages/tig/package.py b/var/spack/repos/builtin/packages/tig/package.py
new file mode 100644
index 0000000000..da8482a21a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tig/package.py
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tig(AutotoolsPackage):
+ """Text-mode interface for git"""
+
+ homepage = "https://jonas.github.io/tig/"
+ url = "https://github.com/jonas/tig/releases/download/tig-2.2.2/tig-2.2.2.tar.gz"
+
+ version('2.2.2', '3b4a9f0fd8d18c1039863e6c4ace6e46')
+
+ depends_on('ncurses')
diff --git a/var/spack/repos/builtin/packages/tk/package.py b/var/spack/repos/builtin/packages/tk/package.py
index 69ea8a6a00..ab25ba1d5b 100644
--- a/var/spack/repos/builtin/packages/tk/package.py
+++ b/var/spack/repos/builtin/packages/tk/package.py
@@ -53,3 +53,8 @@ class Tk(AutotoolsPackage):
def configure_args(self):
spec = self.spec
return ['--with-tcl={0}'.format(spec['tcl'].prefix.lib)]
+
+ @run_after('install')
+ def symlink_wish(self):
+ with working_dir(self.prefix.bin):
+ symlink('wish{0}'.format(self.version.up_to(2)), 'wish')
diff --git a/var/spack/repos/builtin/packages/tmalign/package.py b/var/spack/repos/builtin/packages/tmalign/package.py
new file mode 100644
index 0000000000..5f08bb27fc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tmalign/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tmalign(Package):
+ """TM-align is an algorithm for sequence-order independent protein
+ structure comparisons."""
+
+ homepage = "http://zhanglab.ccmb.med.umich.edu/TM-align"
+ url = "http://zhanglab.ccmb.med.umich.edu/TM-align/TM-align-C/TMalignc.tar.gz"
+
+ version('2016-05-25', 'c1027e4b65c07d1c5df9717de7417118')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('TMalign', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py
index 63d6c943b8..a3a8e5ad89 100644
--- a/var/spack/repos/builtin/packages/tmux/package.py
+++ b/var/spack/repos/builtin/packages/tmux/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Tmux(Package):
+class Tmux(AutotoolsPackage):
"""Tmux is a terminal multiplexer.
What is a terminal multiplexer? It lets you switch easily between several
@@ -45,15 +45,5 @@ class Tmux(Package):
depends_on('libevent')
depends_on('ncurses')
- def install(self, spec, prefix):
- pkg_config_path = ':'.join([
- spec['libevent'].prefix,
- spec['ncurses'].prefix
- ])
-
- configure(
- "--prefix=%s" % prefix,
- "PKG_CONFIG_PATH=%s" % pkg_config_path)
-
- make()
- make("install")
+ def configure_args(self):
+ return ['LIBTINFO_LIBS=-lncurses']
diff --git a/var/spack/repos/builtin/packages/tophat/package.py b/var/spack/repos/builtin/packages/tophat/package.py
new file mode 100644
index 0000000000..116db56b32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tophat/package.py
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tophat(AutotoolsPackage):
+ """Spliced read mapper for RNA-Seq."""
+
+ homepage = "http://ccb.jhu.edu/software/tophat/index.shtml"
+ url = "https://github.com/infphilo/tophat/archive/v2.1.1.tar.gz"
+
+ version('2.1.1', 'ffd18de2f893a95eb7e9d0c5283d241f')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ depends_on('boost@1.47:')
+ depends_on('bowtie2', type='run')
+
+ parallel = False
+
+ def configure_args(self):
+ return ["--with-boost={0}".format(self.spec['boost'].prefix)]
diff --git a/var/spack/repos/builtin/packages/tppred/package.py b/var/spack/repos/builtin/packages/tppred/package.py
new file mode 100644
index 0000000000..919e15c3b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/tppred/package.py
@@ -0,0 +1,54 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Tppred(Package):
+ """TPPRED is a software package for the prediction of mitochondrial
+ targeting peptides from protein primary sequence."""
+
+ homepage = "https://tppred2.biocomp.unibo.it/tppred2/default/software"
+ url = "http://biocomp.unibo.it/savojard/tppred2.tar.gz"
+
+ version('2.0', 'cd848569f6a8aa51d18fbe55fe45d624')
+
+ depends_on('python@2.7:2.999', type='run')
+ depends_on('py-scikit-learn@0.13.1', type='run')
+ depends_on('emboss')
+
+ def url_for_version(self, version):
+ url = 'http://biocomp.unibo.it/savojard/tppred{0}.tar.gz'
+ return url.format(version.up_to(1))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ with working_dir('bin'):
+ install('tppred2.py', prefix.bin)
+ install_tree('data', prefix.data)
+ install_tree('example', prefix.example)
+ install_tree('tppred2modules', prefix.modules)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('TPPRED_ROOT', prefix)
diff --git a/var/spack/repos/builtin/packages/transabyss/package.py b/var/spack/repos/builtin/packages/transabyss/package.py
new file mode 100644
index 0000000000..10ee508899
--- /dev/null
+++ b/var/spack/repos/builtin/packages/transabyss/package.py
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Transabyss(Package):
+ """De novo assembly of RNAseq data using ABySS"""
+
+ homepage = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss"
+ url = "http://www.bcgsc.ca/platform/bioinfo/software/trans-abyss/releases/1.5.5/transabyss-1.5.5.zip"
+
+ version('1.5.5', '9ebe0394243006f167135cac4df9bee6')
+
+ depends_on('abyss@1.5.2')
+ depends_on('python@2.7.6:', type=('build', 'run'))
+ depends_on('py-igraph@0.7.0:', type=('build', 'run'))
+ depends_on('blat')
+
+ def install(self, spec, prefix):
+ install('transabyss', prefix)
+ install('transabyss-merge', prefix)
+ install_tree('bin', prefix.bin)
+ install_tree('utilities', prefix.utilities)
diff --git a/var/spack/repos/builtin/packages/transdecoder/package.py b/var/spack/repos/builtin/packages/transdecoder/package.py
new file mode 100644
index 0000000000..4c23afbf2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/transdecoder/package.py
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Transdecoder(MakefilePackage):
+ """TransDecoder identifies candidate coding regions within transcript
+ sequences, such as those generated by de novo RNA-Seq transcript
+ assembly using Trinity, or constructed based on RNA-Seq alignments to
+ the genome using Tophat and Cufflinks."""
+
+ homepage = "http://transdecoder.github.io/"
+ url = "https://github.com/TransDecoder/TransDecoder/archive/v3.0.1.tar.gz"
+
+ version('3.0.1', 'f62b86a15fcb78b1dada9f80cc25f300')
+
+ depends_on('perl', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('TransDecoder.LongOrfs', prefix)
+ install('TransDecoder.Predict', prefix)
+ install_tree('PerlLib', prefix.PerlLib)
+ install_tree('util', prefix.util)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.prepend_path('PATH', prefix.util.bin)
+ run_env.prepend_path('PATH', prefix)
diff --git a/var/spack/repos/builtin/packages/transposome/package.py b/var/spack/repos/builtin/packages/transposome/package.py
new file mode 100644
index 0000000000..01499290cf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/transposome/package.py
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Transposome(PerlPackage):
+ """A toolkit for annotation of transposable element families from
+ unassembled sequence reads."""
+
+ homepage = "https://sestaton.github.io/Transposome/"
+ url = "https://github.com/sestaton/Transposome/archive/v0.11.2.tar.gz"
+
+ version('0.11.2', '157c1fc090b0aa30050d03df885dcde0')
+
+ depends_on('blast-plus')
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 161b2ed52a..a0d0ccfa3c 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -93,8 +93,6 @@ class Trilinos(CMakePackage):
description='Build python wrappers')
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
variant('boost', default=True,
description='Compile with Boost')
variant('tpetra', default=True,
@@ -123,6 +121,8 @@ class Trilinos(CMakePackage):
description='Compile with Amesos')
variant('amesos2', default=True,
description='Compile with Amesos2')
+ variant('anasazi', default=True,
+ description='Compile with Anasazi')
variant('ifpack', default=True,
description='Compile with Ifpack')
variant('ifpack2', default=True,
@@ -147,16 +147,37 @@ class Trilinos(CMakePackage):
description='Compile with explicit instantiation for complex')
variant('dtk', default=False,
description='Enable DataTransferKit')
+ variant('fortrilinos', default=False,
+ description='Enable ForTrilinos')
+ variant('openmp', default=False,
+ description='Enable OpenMP')
+
resource(name='dtk',
git='https://github.com/ornl-cees/DataTransferKit',
tag='master',
placement='DataTransferKit',
when='+dtk')
+ resource(name='fortrilinos',
+ git='https://github.com/trilinos/ForTrilinos',
+ tag='develop',
+ placement='packages/ForTrilinos',
+ when='+fortrilinos')
+
conflicts('+dtk', when='~tpetra')
+ conflicts('+fortrilinos', when='~fortran')
+ conflicts('+fortrilinos', when='@:99')
+ conflicts('+fortrilinos', when='@master')
+ # Can only use one type of SuperLU
+ conflicts('+superlu-dist', when='+superlu')
+ # For Trilinos v11 we need to force SuperLUDist=OFF, since only the
+ # deprecated SuperLUDist v3.3 together with an Amesos patch is working.
+ conflicts('+superlu-dist', when='@11.4.1:11.14.3')
+ # PnetCDF was only added after v12.10.1
+ conflicts('+pnetcdf', when='@0:12.10.1')
# ###################### Dependencies ##########################
- # Everything should be compiled with -fpic
+ # Everything should be compiled position independent (-fpic)
depends_on('blas')
depends_on('lapack')
depends_on('boost', when='+boost')
@@ -169,9 +190,9 @@ class Trilinos(CMakePackage):
# MPI related dependencies
depends_on('mpi')
- depends_on('netcdf+mpi')
- depends_on('parallel-netcdf', when="+pnetcdf@master")
- depends_on('parallel-netcdf', when="+pnetcdf@12.10.2:")
+ depends_on('netcdf+mpi', when="~pnetcdf")
+ depends_on('netcdf+mpi+parallel-netcdf', when="+pnetcdf@master")
+ depends_on('netcdf+mpi+parallel-netcdf', when="+pnetcdf@12.10.2:")
depends_on('parmetis', when='+metis')
# Trilinos' Tribits config system is limited which makes it very tricky to
# link Amesos with static MUMPS, see
@@ -182,11 +203,11 @@ class Trilinos(CMakePackage):
# work at the end. But let's avoid all this by simply using shared libs
depends_on('mumps@5.0:+mpi+shared', when='+mumps')
depends_on('scalapack', when='+mumps')
+ depends_on('superlu-dist', when='+superlu-dist')
depends_on('superlu-dist@:4.3', when='@:12.6.1+superlu-dist')
- depends_on('superlu-dist', when='@12.6.2:+superlu-dist')
depends_on('superlu-dist@develop', when='@develop+superlu-dist')
depends_on('superlu-dist@xsdk-0.2.0', when='@xsdk-0.2.0+superlu-dist')
- depends_on('superlu+fpic@4.3', when='+superlu')
+ depends_on('superlu+pic@4.3', when='+superlu')
# Trilinos can not be built against 64bit int hypre
depends_on('hypre~internal-superlu~int64', when='+hypre')
depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
@@ -204,23 +225,8 @@ class Trilinos(CMakePackage):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
return url.format(version.dashed)
- # check that the combination of variants makes sense
- def variants_check(self):
- if ('+superlu-dist' in self.spec and
- self.spec.satisfies('@11.14.1:11.14.3')):
- # For Trilinos v11 we need to force SuperLUDist=OFF, since only the
- # deprecated SuperLUDist v3.3 together with an Amesos patch is
- # working.
- raise RuntimeError('The superlu-dist variant can only be used' +
- ' with Trilinos @12.0.1:')
- if '+superlu-dist' in self.spec and '+superlu' in self.spec:
- # Only choose one type of superlu
- raise RuntimeError('The superlu-dist and superlu variant' +
- ' cannot be used together')
-
def cmake_args(self):
spec = self.spec
- self.variants_check()
cxx_flags = []
options = []
@@ -233,8 +239,6 @@ class Trilinos(CMakePackage):
'-DTrilinos_ENABLE_TESTS:BOOL=OFF',
'-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF',
'-DTrilinos_ENABLE_CXX11:BOOL=ON',
- '-DCMAKE_BUILD_TYPE:STRING=%s' % (
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
'ON' if '+shared' in spec else 'OFF'),
@@ -293,6 +297,8 @@ class Trilinos(CMakePackage):
'ON' if '+gtest' in spec else 'OFF'),
'-DTrilinos_ENABLE_Teuchos:BOOL=%s' % (
'ON' if '+teuchos' in spec else 'OFF'),
+ '-DTrilinos_ENABLE_Anasazi:BOOL=%s' % (
+ 'ON' if '+anasazi' in spec else 'OFF'),
])
if '+xsdkflags' in spec:
@@ -330,7 +336,8 @@ class Trilinos(CMakePackage):
'-DTrilinos_ENABLE_SEACASEpu:BOOL=ON',
'-DTrilinos_ENABLE_SEACASExodiff:BOOL=ON',
'-DTrilinos_ENABLE_SEACASNemspread:BOOL=ON',
- '-DTrilinos_ENABLE_SEACASNemslice:BOOL=ON'
+ '-DTrilinos_ENABLE_SEACASNemslice:BOOL=ON',
+ '-DTrilinos_ENABLE_SEACASIoss:BOOL=ON'
])
else:
options.extend([
@@ -511,6 +518,17 @@ class Trilinos(CMakePackage):
# ################# Miscellaneous Stuff ######################
+ # OpenMP
+ if '+openmp' in spec:
+ options.extend([
+ '-DTrilinos_ENABLE_OpenMP:BOOL=ON',
+ '-DKokkos_ENABLE_OpenMP:BOOL=ON'
+ ])
+ if '+tpetra' in spec:
+ options.extend([
+ '-DTpetra_INST_OPENMP:BOOL=ON'
+ ])
+
# Fortran lib
if '+fortran' in spec:
if spec.satisfies('%gcc') or spec.satisfies('%clang'):
diff --git a/var/spack/repos/builtin/packages/trimgalore/package.py b/var/spack/repos/builtin/packages/trimgalore/package.py
new file mode 100644
index 0000000000..9dd8be11e9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/trimgalore/package.py
@@ -0,0 +1,44 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Trimgalore(Package):
+ """Trim Galore! is a wrapper around Cutadapt and FastQC to consistently
+ apply adapter and quality trimming to FastQ files, with extra
+ functionality for RRBS data."""
+
+ homepage = "https://github.com/FelixKrueger/TrimGalore"
+ url = "https://github.com/FelixKrueger/TrimGalore/archive/0.4.4.tar.gz"
+
+ version('0.4.4', 'aae1b807b48e38bae7074470203997bb')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('py-cutadapt', type=('build', 'run'))
+ depends_on('fastqc')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('trim_galore', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/trimmomatic/package.py b/var/spack/repos/builtin/packages/trimmomatic/package.py
index 54c80d2ba0..42f0e68973 100644
--- a/var/spack/repos/builtin/packages/trimmomatic/package.py
+++ b/var/spack/repos/builtin/packages/trimmomatic/package.py
@@ -39,7 +39,7 @@ class Trimmomatic(Package):
version('0.36', '8549130d86b6f0382b1a71a2eb45de39')
version('0.33', '924fc8eb38fdff71740a0e05d32d6a2b')
- depends_on('jdk@8:', type='run')
+ depends_on('java@8:', type='run')
def install(self, spec, prefix):
mkdirp(prefix.bin)
@@ -58,7 +58,7 @@ class Trimmomatic(Package):
# Munge the helper script to explicitly point to java and the
# jar file.
- java = join_path(self.spec['jdk'].prefix, 'bin', 'java')
+ java = join_path(self.spec['java'].prefix, 'bin', 'java')
kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
filter_file('^java', java, script, **kwargs)
filter_file('trimmomatic.jar', join_path(prefix.bin, jar_file),
diff --git a/var/spack/repos/builtin/packages/udunits2/package.py b/var/spack/repos/builtin/packages/udunits2/package.py
index ad16fb04fb..2658674992 100644
--- a/var/spack/repos/builtin/packages/udunits2/package.py
+++ b/var/spack/repos/builtin/packages/udunits2/package.py
@@ -29,7 +29,7 @@ class Udunits2(AutotoolsPackage):
"""Automated units conversion"""
homepage = "http://www.unidata.ucar.edu/software/udunits"
- url = "ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.2.24.tar.gz"
+ url = "https://www.gfd-dennou.org/arch/ucar/unidata/pub/udunits/udunits-2.2.24.tar.gz"
version('2.2.24', '898b90dc1890f172c493406d0f26f531')
version('2.2.23', '9f66006accecd621a4c3eda4ba9fa7c9')
diff --git a/var/spack/repos/builtin/packages/unixodbc/package.py b/var/spack/repos/builtin/packages/unixodbc/package.py
index df7c80b2bd..a1ca765a56 100644
--- a/var/spack/repos/builtin/packages/unixodbc/package.py
+++ b/var/spack/repos/builtin/packages/unixodbc/package.py
@@ -34,3 +34,6 @@ class Unixodbc(AutotoolsPackage):
url = "http://www.unixodbc.org/unixODBC-2.3.4.tar.gz"
version('2.3.4', 'bd25d261ca1808c947cb687e2034be81')
+
+ depends_on('libiconv')
+ depends_on('libtool')
diff --git a/var/spack/repos/builtin/packages/usearch/package.py b/var/spack/repos/builtin/packages/usearch/package.py
new file mode 100644
index 0000000000..87ea6798ca
--- /dev/null
+++ b/var/spack/repos/builtin/packages/usearch/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class Usearch(Package):
+ """USEARCH is a unique sequence analysis tool with thousands of users
+ world-wide.
+
+ Note: A manual download is required for USEARCH.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "http://www.drive5.com/usearch/"
+
+ version('10.0.240', '05192b6d5e291530c190a19a3cc82b53', expand=False)
+
+ def url_for_version(self, version):
+ return "file://{0}/usearch{1}_i86linux32".format(os.getcwd(), version)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('usearch{0}_i86linux32'.format(self.version),
+ prefix.bin.usearch)
diff --git a/var/spack/repos/builtin/packages/varscan/package.py b/var/spack/repos/builtin/packages/varscan/package.py
new file mode 100644
index 0000000000..f4c2ae029d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/varscan/package.py
@@ -0,0 +1,59 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os.path
+
+
+class Varscan(Package):
+ """Variant calling and somatic mutation/CNV detection for next-generation
+ sequencing data"""
+
+ homepage = "http://dkoboldt.github.io/varscan/"
+ url = "https://github.com/dkoboldt/varscan/releases/download/2.4.2/VarScan.v2.4.2.jar"
+
+ version('2.4.2', '4b810741505a8145a7f8f9f6791bbacf', expand=False)
+
+ depends_on('java', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ mkdirp(prefix.jar)
+ jar_file = 'VarScan.v{v}.jar'.format(v=self.version.dotted)
+ install(jar_file, prefix.jar)
+
+ script_sh = join_path(os.path.dirname(__file__), "varscan.sh")
+ script = prefix.bin.varscan
+ install(script_sh, script)
+ set_executable(script)
+
+ java = join_path(self.spec['java'].prefix, 'bin', 'java')
+ kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
+ filter_file('^java', java, script, **kwargs)
+ filter_file('varscan.jar', join_path(prefix.jar, jar_file),
+ script, **kwargs)
+
+ def setup_environment(self, spack_env, run_env):
+ run_env.set('VARSCAN_HOME', self.prefix)
+ run_env.set('CLASSPATH', self.prefix.jar)
diff --git a/var/spack/repos/builtin/packages/varscan/varscan.sh b/var/spack/repos/builtin/packages/varscan/varscan.sh
new file mode 100644
index 0000000000..71824a46c6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/varscan/varscan.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+# convenience wrapper for the astral jar file
+java $JAVA_ARGS $JAVA_OPTS -jar varscan.jar "$@"
diff --git a/var/spack/repos/builtin/packages/vc/package.py b/var/spack/repos/builtin/packages/vc/package.py
index e41a385947..67ced036b2 100644
--- a/var/spack/repos/builtin/packages/vc/package.py
+++ b/var/spack/repos/builtin/packages/vc/package.py
@@ -35,11 +35,7 @@ class Vc(CMakePackage):
version('1.2.0', 'a5236df286b845d2fee5ef1e4d27549f')
version('1.1.0', 'e354c1e3ea1d674b6f2af9c6fd230d81')
- variant('debug', default=False)
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
+ variant('build_type', default='RelWithDebInfo',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebug',
+ 'RelWithDebInfo', 'MinSizeRel'))
diff --git a/var/spack/repos/builtin/packages/vcftools/package.py b/var/spack/repos/builtin/packages/vcftools/package.py
index f84ea1ed7c..bb2721e353 100644
--- a/var/spack/repos/builtin/packages/vcftools/package.py
+++ b/var/spack/repos/builtin/packages/vcftools/package.py
@@ -45,7 +45,7 @@ class Vcftools(AutotoolsPackage):
# this needs to be in sync with what setup_environment adds to
# PERL5LIB below
def configure_args(self):
- return ['--with-pmdir=lib']
+ return ['--with-pmdir={0}'.format(self.prefix.lib)]
@run_before('install')
def filter_sbang(self):
@@ -72,4 +72,4 @@ class Vcftools(AutotoolsPackage):
filter_file(match, substitute, *files, **kwargs)
def setup_environment(self, spack_env, run_env):
- run_env.prepend_path('PERL5LIB', join_path(self.prefix, 'lib'))
+ run_env.prepend_path('PERL5LIB', self.prefix.lib)
diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py
index d514f13c17..9843840e5b 100644
--- a/var/spack/repos/builtin/packages/vecgeom/package.py
+++ b/var/spack/repos/builtin/packages/vecgeom/package.py
@@ -36,17 +36,8 @@ class Vecgeom(CMakePackage):
version('0.3.rc', git='https://gitlab.cern.ch/VecGeom/VecGeom.git',
tag='v0.3.rc')
- variant('debug', default=False, description='Build debug version')
-
depends_on('cmake@3.5:', type='build')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = [
'-DBACKEND=Scalar',
diff --git a/var/spack/repos/builtin/packages/vegas2/package.py b/var/spack/repos/builtin/packages/vegas2/package.py
new file mode 100644
index 0000000000..1c091a568c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vegas2/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Vegas2(Package):
+ """"VEGAS2 is an extension that uses 1,000 Genomes data to model SNP
+ correlations across the autosomes and chromosome X"""
+
+ homepage = "https://vegas2.qimrberghofer.edu.au/"
+ url = "https://vegas2.qimrberghofer.edu.au/vegas2v2"
+
+ version('2', '815d80b86e9e294f99332bb5181e897a', expand=False)
+
+ depends_on('perl', type='run')
+ depends_on('r', type='run')
+ depends_on('plink')
+ depends_on('r-mvtnorm', type='run')
+ depends_on('r-corpcor', type='run')
+
+ def url_for_version(self, version):
+ url = 'https://vegas2.qimrberghofer.edu.au/vegas2v{0}'
+ return url.format(version)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('vegas2v{0}'.format(self.version), prefix.bin)
diff --git a/var/spack/repos/builtin/packages/velvet/package.py b/var/spack/repos/builtin/packages/velvet/package.py
new file mode 100644
index 0000000000..48e0e04d1a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/velvet/package.py
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Velvet(MakefilePackage):
+ """Velvet is a de novo genomic assembler specially designed for short read
+ sequencing technologies."""
+
+ homepage = "http://www.ebi.ac.uk/~zerbino/velvet/"
+ url = "http://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz"
+
+ version('1.2.10', '6e28c4b9bedc5f7ab2b947e7266a02f6')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('velvetg', prefix.bin)
+ install('velveth', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/viennarna/package.py b/var/spack/repos/builtin/packages/viennarna/package.py
new file mode 100644
index 0000000000..548aacb56f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/viennarna/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Viennarna(AutotoolsPackage):
+ """The ViennaRNA Package consists of a C code library and several
+ stand-alone programs for the prediction and comparison of RNA secondary
+ structures."""
+
+ homepage = "https://www.tbi.univie.ac.at/RNA/"
+ url = "https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_3_x/ViennaRNA-2.3.5.tar.gz"
+
+ version('2.3.5', '4542120adae9b7abb605e2304c2a1326')
+
+ variant('sse', default=True, description='Enable SSE in order to substantially speed up execution')
+ variant('perl', default=True, description='Build ViennaRNA with Perl interface')
+ variant('python', default=True, description='Build ViennaRNA with Python interface')
+
+ depends_on('perl', type=('build', 'run'))
+ depends_on('python', type=('build', 'run'))
+ depends_on('libsvm')
+ depends_on('gsl')
+
+ def url_for_version(self, version):
+ url = 'https://www.tbi.univie.ac.at/RNA/download/sourcecode/{0}_x/ViennaRNA-{1}.tar.gz'
+ return url.format(version.up_to(2).underscored, version)
+
+ def configure_args(self):
+ args = []
+ if '+sse' in self.spec:
+ args.append('--enable-sse')
+ else:
+ args.append('--disable-sse')
+ if '~python' in self.spec:
+ args.append('--without-python')
+ else:
+ args.append('--with-python')
+ if '~perl' in self.spec:
+ args.append('--without-perl')
+ else:
+ args.append('--with-perl')
+ if 'python@3:' in self.spec:
+ args.append('--with-python3')
+ return args
diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py
index 17efe0eb80..2c08c73a3c 100644
--- a/var/spack/repos/builtin/packages/visit/package.py
+++ b/var/spack/repos/builtin/packages/visit/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Visit(Package):
+class Visit(CMakePackage):
"""VisIt is an Open Source, interactive, scalable, visualization,
animation and analysis tool."""
homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/"
@@ -36,29 +36,26 @@ class Visit(Package):
version('2.10.2', '253de0837a9d69fb689befc98ea4d068')
version('2.10.1', '3cbca162fdb0249f17c4456605c4211e')
- depends_on('cmake', type='build')
+ depends_on('cmake@3.0:', type='build')
depends_on('vtk@6.1.0~opengl2')
depends_on('qt@4.8.6')
depends_on('python')
depends_on('silo+shared')
depends_on('hdf5~mpi')
- def install(self, spec, prefix):
- qt_bin = spec['qt'].prefix.bin
+ root_cmakelists_dir = 'src'
- with working_dir('spack-build', create=True):
- cmake_args = std_cmake_args[:]
- cmake_args.extend([
- '-DVTK_MAJOR_VERSION=6',
- '-DVTK_MINOR_VERSION=1',
- '-DVISIT_USE_GLEW=OFF',
- '-DVISIT_LOC_QMAKE_EXE:FILEPATH={0}/qmake-qt4'.format(qt_bin),
- '-DPYTHON_DIR:PATH={0}'.format(spec['python'].home),
- '-DVISIT_SILO_DIR:PATH={0}'.format(spec['silo'].prefix),
- '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix),
- '-DVISIT_VTK_DIR:PATH={0}'.format(spec['vtk'].prefix),
- ])
+ def cmake_args(self):
+ spec = self.spec
+ qt_bin = spec['qt'].prefix.bin
- cmake(join_path('..', 'src'), *cmake_args)
- make()
- make('install')
+ return [
+ '-DVTK_MAJOR_VERSION={0}'.format(spec['vtk'].version[0]),
+ '-DVTK_MINOR_VERSION={0}'.format(spec['vtk'].version[1]),
+ '-DVISIT_USE_GLEW=OFF',
+ '-DVISIT_LOC_QMAKE_EXE:FILEPATH={0}/qmake-qt4'.format(qt_bin),
+ '-DPYTHON_DIR:PATH={0}'.format(spec['python'].home),
+ '-DVISIT_SILO_DIR:PATH={0}'.format(spec['silo'].prefix),
+ '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix),
+ '-DVISIT_VTK_DIR:PATH={0}'.format(spec['vtk'].prefix),
+ ]
diff --git a/var/spack/repos/builtin/packages/vmatch/package.py b/var/spack/repos/builtin/packages/vmatch/package.py
new file mode 100644
index 0000000000..bc09c0b70d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vmatch/package.py
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Vmatch(Package):
+ """Vmatch is a versatile software tool for efficiently solving large scale
+ sequence matching tasks"""
+
+ homepage = "http://www.vmatch.de/"
+ url = "http://www.vmatch.de/distributions/vmatch-2.3.0-Linux_x86_64-64bit.tar.gz"
+
+ version('2.3.0', '592a4f941239494d892f3c6ff21a1423')
+
+ def url_for_version(self, version):
+ url = 'http://www.vmatch.de/distributions/vmatch-{0}-Linux_x86_64-64bit.tar.gz'
+ return url.format(version)
+
+ def install(self, spec, prefix):
+ install_tree(self.stage.source_path, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/votca-csg/package.py b/var/spack/repos/builtin/packages/votca-csg/package.py
index 6756d0427b..bd5879e68a 100644
--- a/var/spack/repos/builtin/packages/votca-csg/package.py
+++ b/var/spack/repos/builtin/packages/votca-csg/package.py
@@ -39,16 +39,7 @@ class VotcaCsg(CMakePackage):
version('develop', git='https://github.com/votca/csg', branch='master')
version('1.4', 'd009e761e5e3afd51eed89c420610a67')
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@2.8:", type='build')
depends_on("votca-tools@1.4:1.4.999", when='@1.4:1.4.999')
depends_on("votca-tools@develop", when='@develop')
depends_on("gromacs~mpi@5.1:")
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/votca-ctp/package.py b/var/spack/repos/builtin/packages/votca-ctp/package.py
index 81586b18e6..8ace180487 100644
--- a/var/spack/repos/builtin/packages/votca-ctp/package.py
+++ b/var/spack/repos/builtin/packages/votca-ctp/package.py
@@ -39,16 +39,7 @@ class VotcaCtp(CMakePackage):
version('develop', git='https://github.com/votca/ctp', branch='master')
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@2.8:", type='build')
depends_on("votca-tools@develop", when='@develop')
depends_on("votca-csg@develop", when='@develop')
depends_on("votca-moo@develop", when='@develop')
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/votca-moo/package.py b/var/spack/repos/builtin/packages/votca-moo/package.py
index a596ba1c9c..dfbef140eb 100644
--- a/var/spack/repos/builtin/packages/votca-moo/package.py
+++ b/var/spack/repos/builtin/packages/votca-moo/package.py
@@ -39,14 +39,5 @@ class VotcaMoo(CMakePackage):
version('develop', git='https://github.com/votca/moo', branch='master')
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@2.8:", type='build')
depends_on("votca-tools@develop", when='@develop')
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py
index 39055c45a3..d2acac8736 100644
--- a/var/spack/repos/builtin/packages/votca-tools/package.py
+++ b/var/spack/repos/builtin/packages/votca-tools/package.py
@@ -39,18 +39,9 @@ class VotcaTools(CMakePackage):
version('develop', git='https://github.com/votca/tools', branch='master')
version('1.4', 'cd47868e9f28e2c7b9d01f95aa0185ca')
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@2.8:", type='build')
depends_on("expat")
depends_on("fftw")
depends_on("gsl")
depends_on("boost")
depends_on("sqlite")
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/votca-xtp/package.py b/var/spack/repos/builtin/packages/votca-xtp/package.py
index 951df7b8c6..80cd4802e3 100644
--- a/var/spack/repos/builtin/packages/votca-xtp/package.py
+++ b/var/spack/repos/builtin/packages/votca-xtp/package.py
@@ -39,17 +39,8 @@ class VotcaXtp(CMakePackage):
version('develop', git='https://github.com/votca/xtp', branch='master')
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@2.8:", type='build')
depends_on("votca-tools@develop", when='@develop')
depends_on("votca-csg@develop", when='@develop')
depends_on("votca-ctp@develop", when='@develop')
depends_on("votca-moo@develop", when='@develop')
-
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
diff --git a/var/spack/repos/builtin/packages/vpfft/package.py b/var/spack/repos/builtin/packages/vpfft/package.py
new file mode 100644
index 0000000000..8d4ef7defe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vpfft/package.py
@@ -0,0 +1,67 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Vpfft(MakefilePackage):
+ """Proxy Application. VPFFT is an implementation of a mesoscale
+ micromechanical materials model. By solving the viscoplasticity
+ model, VPFFT simulates the evolution of a material under deformation.
+ The solution time to the viscoplasticity model, described by a set
+ of partial differential equations, is significantly reduced by the
+ application of Fast Fourier Transform in the VPFFT algorithm.
+ """
+
+ homepage = "http://www.exmatex.org/vpfft.html"
+ url = "https://github.com/exmatex/VPFFT/archive/master.tar.gz"
+ tag = ['proxy-app']
+
+ version('develop', git='https://github.com/exmatex/VPFFT.git')
+
+ depends_on('eigen')
+ depends_on('fftw')
+ depends_on('mpi')
+
+ @property
+ def build_targets(self):
+ targets = [
+ "--file=Makefile.make",
+ "EIGEN_PATH={0}".format(
+ join_path(
+ self.spec['eigen'].prefix.include,
+ 'eigen{0}'.format(
+ self.spec['eigen'].version.up_to(1)))),
+ "FFTW_PATH={0}".format(self.spec['fftw'].prefix),
+ "CC={0}".format(self.spec['mpi'].mpicxx)
+ ]
+ return targets
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('VPFFT++', prefix.bin)
+ install('README.md', prefix)
+ install('README.make', prefix)
+ install('README-license.txt', prefix)
+ install_tree('docs', prefix.docs)
diff --git a/var/spack/repos/builtin/packages/vpic/package.py b/var/spack/repos/builtin/packages/vpic/package.py
index e24aa9e530..43083d813e 100644
--- a/var/spack/repos/builtin/packages/vpic/package.py
+++ b/var/spack/repos/builtin/packages/vpic/package.py
@@ -40,18 +40,9 @@ class Vpic(CMakePackage):
version('develop', git='https://github.com/lanl/vpic', branch='master', submodules=True)
- variant('debug', default=False, description='Build debug version')
-
depends_on("cmake@3.1:", type='build')
depends_on('mpi')
- def build_type(self):
- spec = self.spec
- if '+debug' in spec:
- return 'Debug'
- else:
- return 'Release'
-
def cmake_args(self):
options = ['-DENABLE_INTEGRATED_TESTS=ON', '-DENABLE_UNIT_TESTS=ON']
diff --git a/var/spack/repos/builtin/packages/vsearch/package.py b/var/spack/repos/builtin/packages/vsearch/package.py
new file mode 100644
index 0000000000..07ed838654
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vsearch/package.py
@@ -0,0 +1,39 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Vsearch(AutotoolsPackage):
+ """VSEARCH is a versatile open-source tool for metagenomics."""
+
+ homepage = "https://github.com/torognes/vsearch"
+ url = "https://github.com/torognes/vsearch/archive/v2.4.3.tar.gz"
+
+ version('2.4.3', '8f57210fe447a781078fde06e6402650')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
diff --git a/var/spack/repos/builtin/packages/xplor-nih/package.py b/var/spack/repos/builtin/packages/xplor-nih/package.py
new file mode 100644
index 0000000000..4ae0ea519f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xplor-nih/package.py
@@ -0,0 +1,48 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+import os
+
+
+class XplorNih(Package):
+ """XPLOR-NIH is a structure determination program.
+
+ Note: A manual download is required for XPLOR-NIH.
+ Spack will search your current directory for the download file.
+ Alternatively, add this file to a mirror so that Spack can find it.
+ For instructions on how to set up a mirror, see
+ http://spack.readthedocs.io/en/latest/mirrors.html"""
+
+ homepage = "https://nmr.cit.nih.gov/xplor-nih/"
+
+ version('2.45', 'ab3e046604beb0effc89a1adb7bab438')
+
+ depends_on('python', type=('build', 'run'))
+
+ def url_for_version(self, version):
+ return "file://{0}/xplor-nih-{1}-Linux_x86_64.tar.gz".format(os.getcwd(), version)
+
+ def install(self, spec, prefix):
+ install_tree(self.stage.source_path, prefix.bin)
diff --git a/var/spack/repos/builtin/packages/xproto/package.py b/var/spack/repos/builtin/packages/xproto/package.py
index de91cf0c95..2bb1df326c 100644
--- a/var/spack/repos/builtin/packages/xproto/package.py
+++ b/var/spack/repos/builtin/packages/xproto/package.py
@@ -43,3 +43,8 @@ class Xproto(AutotoolsPackage):
depends_on('pkg-config@0.9.0:', type='build')
depends_on('util-macros', type='build')
+
+ def install(self, spec, prefix):
+ # Installation fails in parallel
+ # See https://github.com/LLNL/spack/issues/4805
+ make('install', parallel=False)
diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py
index d377c68968..6388c006a7 100644
--- a/var/spack/repos/builtin/packages/xrootd/package.py
+++ b/var/spack/repos/builtin/packages/xrootd/package.py
@@ -26,7 +26,7 @@
from spack import *
-class Xrootd(Package):
+class Xrootd(CMakePackage):
"""The XROOTD project aims at giving high performance, scalable fault
tolerant access to data repositories of many kinds."""
homepage = "http://xrootd.org"
@@ -38,19 +38,4 @@ class Xrootd(Package):
version('4.4.0', '58f55e56801d3661d753ff5fd33dbcc9')
version('4.3.0', '39c2fab9f632f35e12ff607ccaf9e16c')
- depends_on('cmake', type='build')
-
- def install(self, spec, prefix):
- options = []
- options.extend(std_cmake_args)
-
- build_directory = join_path(self.stage.path, 'spack-build')
- source_directory = self.stage.source_path
-
- if '+debug' in spec:
- options.append('-DCMAKE_BUILD_TYPE:STRING=Debug')
-
- with working_dir(build_directory, create=True):
- cmake(source_directory, *options)
- make()
- make("install")
+ depends_on('cmake@2.6:', type='build')
diff --git a/var/spack/repos/builtin/packages/xsbench/package.py b/var/spack/repos/builtin/packages/xsbench/package.py
new file mode 100644
index 0000000000..db84ec5b3d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xsbench/package.py
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+
+from spack import *
+
+
+class Xsbench(MakefilePackage):
+ """XSBench is a mini-app representing a key computational
+ kernel of the Monte Carlo neutronics application OpenMC.
+ A full explanation of the theory and purpose of XSBench
+ is provided in docs/XSBench_Theory.pdf."""
+
+ homepage = "https://github.com/ANL-CESAR/XSBench/"
+ url = "https://github.com/ANL-CESAR/XSBench/archive/v13.tar.gz"
+
+ tags = ['proxy-app']
+
+ version('13', '72a92232d2f5777fb52f5ea4082aff37')
+
+ variant('mpi', default=False, description='Build with MPI support')
+
+ depends_on('mpi', when='+mpi')
+
+ build_directory = 'src'
+
+ @property
+ def build_targets(self):
+
+ targets = []
+
+ cflags = '-std=gnu99'
+ if '+mpi' in self.spec:
+ targets.append('CC={0}'.format(self.spec['mpi'].mpicc))
+
+ cflags += ' ' + self.compiler.openmp_flag
+ targets.append('CFLAGS={0}'.format(cflags))
+ targets.append('LDFLAGS=-lm')
+
+ return targets
+
+ def install(self, spec, prefix):
+ mkdir(prefix.bin)
+ install('src/XSBench', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py
index 583de80f3a..4d27b5a79f 100644
--- a/var/spack/repos/builtin/packages/xsdk/package.py
+++ b/var/spack/repos/builtin/packages/xsdk/package.py
@@ -53,9 +53,9 @@ class Xsdk(Package):
depends_on('trilinos@develop+xsdkflags+hypre+superlu-dist+metis+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan2~amesos2~exodus',
when='@develop')
- depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost',
+ depends_on('petsc@xsdk-0.2.0+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64',
when='@xsdk-0.2.0')
- depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost',
+ depends_on('petsc@develop+trilinos+mpi+hypre+superlu-dist+metis+hdf5~mumps~boost+double~int64',
when='@develop')
depends_on('pflotran@xsdk-0.2.0', when='@xsdk-0.2.0')
diff --git a/var/spack/repos/builtin/packages/xsdktrilinos/package.py b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
index 0d70baabcd..cf3d425313 100644
--- a/var/spack/repos/builtin/packages/xsdktrilinos/package.py
+++ b/var/spack/repos/builtin/packages/xsdktrilinos/package.py
@@ -45,20 +45,18 @@ class Xsdktrilinos(CMakePackage):
description='Compile with PETSc solvers')
variant('shared', default=True,
description='Enables the build of shared libraries')
- variant('debug', default=False,
- description='Builds a debug version of the libraries')
# MPI related dependencies
depends_on('mpi')
depends_on('hypre~internal-superlu', when='+hypre')
depends_on('hypre@xsdk-0.2.0~internal-superlu', when='@xsdk-0.2.0+hypre')
- depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
+ depends_on('hypre@develop~internal-superlu', when='@develop+hypre')
depends_on('petsc@xsdk-0.2.0+mpi~complex', when='@xsdk-0.2.0+petsc')
- depends_on('petsc@develop+mpi~complex', when='@develop+petsc')
+ depends_on('petsc@develop+mpi~complex', when='@develop+petsc')
depends_on('trilinos@12.6.4', when='@12.6.4')
depends_on('trilinos@12.8.1', when='@12.8.1')
depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0')
- depends_on('trilinos@develop', when='@develop')
+ depends_on('trilinos@develop', when='@develop')
def url_for_version(self, version):
url = "https://github.com/trilinos/xSDKTrilinos/archive/trilinos-release-{0}.tar.gz"
@@ -75,8 +73,6 @@ class Xsdktrilinos(CMakePackage):
'-DxSDKTrilinos_ENABLE_TESTS:BOOL=ON',
'-DxSDKTrilinos_ENABLE_EXAMPLES:BOOL=ON',
'-DTrilinos_INSTALL_DIR=%s' % spec['trilinos'].prefix,
- '-DCMAKE_BUILD_TYPE:STRING=%s' % (
- 'DEBUG' if '+debug' in spec else 'RELEASE'),
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
'ON' if '+shared' in spec else 'OFF'),
'-DTPL_ENABLE_MPI:BOOL=ON',
diff --git a/var/spack/repos/builtin/packages/yaml-cpp/package.py b/var/spack/repos/builtin/packages/yaml-cpp/package.py
index e537af6b41..59228ec4cb 100644
--- a/var/spack/repos/builtin/packages/yaml-cpp/package.py
+++ b/var/spack/repos/builtin/packages/yaml-cpp/package.py
@@ -36,7 +36,7 @@ class YamlCpp(CMakePackage):
variant('shared', default=True,
description='Enable build of shared libraries')
- variant('fpic', default=True,
+ variant('pic', default=True,
description='Build with position independent code')
depends_on('boost', when='@:0.5.3')
@@ -49,7 +49,7 @@ class YamlCpp(CMakePackage):
'-DBUILD_SHARED_LIBS:BOOL=%s' % (
'ON' if '+shared' in spec else 'OFF'),
'-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=%s' % (
- 'ON' if '+fpic' in spec else 'OFF'),
+ 'ON' if '+pic' in spec else 'OFF'),
])
return options
diff --git a/var/spack/repos/builtin/packages/zeromq/package.py b/var/spack/repos/builtin/packages/zeromq/package.py
index 680d67c7b0..945459b948 100644
--- a/var/spack/repos/builtin/packages/zeromq/package.py
+++ b/var/spack/repos/builtin/packages/zeromq/package.py
@@ -30,6 +30,10 @@ class Zeromq(AutotoolsPackage):
homepage = "http://zguide.zeromq.org/"
url = "http://download.zeromq.org/zeromq-4.1.2.tar.gz"
+ version('develop', branch='master',
+ git='https://github.com/zeromq/libzmq.git')
+ version('4.2.2', '52499909b29604c1e47a86f1cb6a9115',
+ url='https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz')
version('4.1.4', 'a611ecc93fffeb6d058c0e6edf4ad4fb')
version('4.1.2', '159c0c56a895472f02668e692d122685')
version('4.1.1', '0a4b44aa085644f25c177f79dc13f253')
@@ -40,6 +44,16 @@ class Zeromq(AutotoolsPackage):
depends_on("libsodium")
depends_on("libsodium@:1.0.3", when='@:4.1.2')
+ depends_on('autoconf', type='build', when='@develop')
+ depends_on('automake', type='build', when='@develop')
+ depends_on('libtool', type='build', when='@develop')
+ depends_on('pkg-config', type='build', when='@develop')
+
+ @when('@develop')
+ def autoreconf(self, spec, prefix):
+ bash = which('bash')
+ bash('./autogen.sh')
+
def configure_args(self):
config_args = ['--with-libsodium']
if 'clang' in self.compiler.cc:
diff --git a/var/spack/repos/builtin/packages/zfp/package.py b/var/spack/repos/builtin/packages/zfp/package.py
index b51426347f..b5e3c7c2bc 100644
--- a/var/spack/repos/builtin/packages/zfp/package.py
+++ b/var/spack/repos/builtin/packages/zfp/package.py
@@ -35,8 +35,8 @@ class Zfp(MakefilePackage):
of zfp 0.5.1 or newer also support compression of integer data.
"""
- homepage = "http://computation.llnl.gov/projects/floating-point-compression"
- url = "http://computation.llnl.gov/projects/floating-point-compression/download/zfp-0.5.1.tar.gz"
+ homepage = 'http://computation.llnl.gov/projects/floating-point-compression'
+ url = 'http://computation.llnl.gov/projects/floating-point-compression/download/zfp-0.5.1.tar.gz'
version('0.5.1', '0ed7059a9b480635e0dd33745e213d17')
version('0.5.0', '2ab29a852e65ad85aae38925c5003654')
@@ -45,8 +45,11 @@ class Zfp(MakefilePackage):
default='64',
values=('8', '16', '32', '64'),
multi=False,
- description='Bit stream word size: use smaller for finer \
- rate granularity. Use 8 for H5Z-ZFP filter.')
+ description='Bit stream word size: use smaller for finer ' \
+ 'rate granularity. Use 8 for H5Z-ZFP filter.')
+
+ variant('shared', default=True,
+ description='Build shared versions of the library')
def edit(self, spec, prefix):
config_file = FileFilter('Config')
@@ -56,15 +59,23 @@ class Zfp(MakefilePackage):
spec.variants['bsws'].value)
def build(self, spec, prefix):
- make("shared")
+ with working_dir('src'):
+ if '~shared' in spec:
+ make('static')
+ else:
+ make('shared')
def install(self, spec, prefix):
incdir = 'include' if spec.satisfies('@0.5.1:') else 'inc'
- # No install provided
+ # Note: ZFP package does not provide an install target
mkdirp(prefix.lib)
mkdirp(prefix.include)
- install('lib/libzfp.so', prefix.lib)
+ # Note: ZFP package builds .so files even on OSX
+ if '~shared' in spec:
+ install('lib/libzfp.a', prefix.lib)
+ else:
+ install('lib/libzfp.so', prefix.lib)
install('%s/zfp.h' % incdir, prefix.include)
install('%s/bitstream.h' % incdir, prefix.include)
if spec.satisfies('@0.5.1:'):
diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py
index 0d9822f287..30fcef95e1 100644
--- a/var/spack/repos/builtin/packages/zlib/package.py
+++ b/var/spack/repos/builtin/packages/zlib/package.py
@@ -57,7 +57,7 @@ class Zlib(Package):
def setup_environment(self, spack_env, run_env):
if '+pic' in self.spec:
- spack_env.set('CFLAGS', self.compiler.pic_flag)
+ spack_env.append_flags('CFLAGS', self.compiler.pic_flag)
def install(self, spec, prefix):
config_args = []
diff --git a/var/spack/repos/builtin/packages/zoltan/package.py b/var/spack/repos/builtin/packages/zoltan/package.py
index 008bea9c27..6404cadbe1 100644
--- a/var/spack/repos/builtin/packages/zoltan/package.py
+++ b/var/spack/repos/builtin/packages/zoltan/package.py
@@ -76,7 +76,7 @@ class Zoltan(Package):
if '+shared' in spec:
config_args.append('RANLIB=echo')
config_args.append('--with-ar=$(CXX) -shared $(LDFLAGS) -o')
- config_cflags.append('-fPIC')
+ config_cflags.append(self.compiler.pic_flag)
if spec.satisfies('%gcc'):
config_args.append('--with-libs={0}'.format('-lgfortran'))
diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py
index 24bb9ec896..7225418363 100644
--- a/var/spack/repos/builtin/packages/zsh/package.py
+++ b/var/spack/repos/builtin/packages/zsh/package.py
@@ -34,7 +34,24 @@ class Zsh(AutotoolsPackage):
homepage = "http://www.zsh.org"
url = "http://downloads.sourceforge.net/project/zsh/zsh/5.1.1/zsh-5.1.1.tar.gz"
+ version('5.3.1', checksum='d583fbca0c2410bf9542ce8a651c26ca')
version('5.1.1', checksum='8ba28a9ef82e40c3a271602f18343b2f')
+ # Testing for terminal related things causes failures in e.g. Jenkins.
+ # See e.g. https://www.zsh.org/mla/users/2003/msg00845.html,
+ # although the name of the option has evolved since then.
+ variant('skip-tcsetpgrp-test', default=True,
+ description="Skip configure's tcsetpgrp test")
+
depends_on("pcre")
depends_on("ncurses")
+
+ def configure_args(self):
+ if '+skip-tcsetpgrp-test' in self.spec:
+ # assert that we have a functional tcsetpgrp
+ args = ['--with-tcsetpgrp']
+ else:
+ # let configure run it's test and see what's what
+ args = []
+
+ return args
diff --git a/var/spack/repos/builtin/packages/zstd/package.py b/var/spack/repos/builtin/packages/zstd/package.py
index 7cd5d6785d..0551ff8163 100644
--- a/var/spack/repos/builtin/packages/zstd/package.py
+++ b/var/spack/repos/builtin/packages/zstd/package.py
@@ -25,7 +25,7 @@
from spack import *
-class Zstd(Package):
+class Zstd(MakefilePackage):
"""Zstandard, or zstd as short version, is a fast lossless compression
algorithm, targeting real-time compression scenarios at zlib-level and
better compression ratios."""
@@ -33,10 +33,8 @@ class Zstd(Package):
homepage = "http://facebook.github.io/zstd/"
url = "https://github.com/facebook/zstd/archive/v1.1.2.tar.gz"
+ version('1.3.0', '888660a850e33c2dcc7c4f9d0b04d347')
version('1.1.2', '4c57a080d194bdaac83f2d3251fc7ffc')
def install(self, spec, prefix):
- make()
- if self.run_tests:
- make('test')
make('install', 'PREFIX={0}'.format(prefix))