From 8058c6755ab2feef68fb671089ec3c088bcbd4f8 Mon Sep 17 00:00:00 2001 From: Tristan de Lataillade Date: Mon, 13 Nov 2017 13:57:01 -0600 Subject: [PATCH 1/4] chrono pkg to stable version 3.0.0 --- pkgs/chrono/chrono.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/chrono/chrono.yaml b/pkgs/chrono/chrono.yaml index 20e4075ac..a88fff4cb 100644 --- a/pkgs/chrono/chrono.yaml +++ b/pkgs/chrono/chrono.yaml @@ -1,8 +1,8 @@ extends: [cmake_package] sources: -- key: tar.gz:pjfezodbo34npjl5morbfyta6un3ar2n - url: https://github.com/projectchrono/chrono/archive/259b16507b19f1c769f848da5c91c7b67f024078.tar.gz +- key: tar.gz:fewerd5wmhfc6evvlgnjineosbh6gyaz + url: https://github.com/projectchrono/chrono/archive/3.0.0.tar.gz defaults: relocatable: false @@ -50,4 +50,4 @@ build_stages: - '-DPYTHON_EXECUTABLE:PATH=${PYTHON}' - '-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_DIR}/include/python2.7' - '-DPYTHON_LIBRARY:PATH=${PYTHON_DIR}/lib/libpython2.7.so' - - '-DUSE_PARALLEL_SIMD:BOOL=ON' \ No newline at end of file + - '-DUSE_PARALLEL_SIMD:BOOL=ON' From 938241bb7bd0a9bc95947843c642076d66037c12 Mon Sep 17 00:00:00 2001 From: Chris Kees Date: Sat, 9 Dec 2017 11:52:04 -0600 Subject: [PATCH 2/4] updated adh package --- examples/adh-stack.yaml | 33 ++++++++++ pkgs/adh.yaml | 116 ---------------------------------- pkgs/adh/adh.yaml | 57 +++++++++++++++-- pkgs/adh/configure-linux.py | 121 ------------------------------------ pkgs/adh/fix_link.patch | 12 ++++ 5 files changed, 96 insertions(+), 243 deletions(-) create mode 100644 examples/adh-stack.yaml delete mode 100644 pkgs/adh.yaml delete mode 100755 pkgs/adh/configure-linux.py create mode 100644 pkgs/adh/fix_link.patch diff --git a/examples/adh-stack.yaml b/examples/adh-stack.yaml new file mode 100644 index 000000000..2c6bc805e --- /dev/null +++ b/examples/adh-stack.yaml @@ -0,0 +1,33 @@ +# This profile file controls your <#> (HashDist) build environment. + +# In the future, we'll provide better incorporation of +# automatic environment detection. For now, have a look +# at the YAML files in the top-level directory and choose +# the most *specific* file that matches your environment. + +extends: +- file: debian.yaml + +# The packages list specifies all the packages that you +# require installed. <#> will ensure that all packages +# and their dependencies are installed when you build this +# profile. + +packages: + cmake: + openssl: + use: host-openssl + python: + host: false + link: shared + build_with: | + bzip2, sqlite, openssl + blas: + use: openblas + lapack: + use: openblas-lapack + mpi: + use: mpich + parmetis: + sympy: + adh: \ No newline at end of file diff --git a/pkgs/adh.yaml b/pkgs/adh.yaml deleted file mode 100644 index ccda01063..000000000 --- a/pkgs/adh.yaml +++ /dev/null @@ -1,116 +0,0 @@ -extends: [cmake_package] - -dependencies: - build: [python,mpi,parmetis,umfpack3] - -sources: -- url: https://github.com/cekees/adh.git - key: git:ab5024c569e8bac972d706a3d354e43cce319ac3 - -build_stages: - -- name: setup_builddir - after: prologue - handler: bash - bash: | - mkdir -p _build - cd _build - -- when: platform == 'Darwin' - name: configure - mode: override - extra: [ - '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', - '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', - '-DCMAKE_Fortran_COMPILER:FILEPATH=${MPIF90}', - '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', - '-DPACKAGE_MPI:BOOL=True', - '-DPACKAGE_PARMETIS:BOOL=True', - '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', - '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.dylib', - '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.dylib', - '-DPACKAGE_UMFPACK:BOOL=True', - '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', - '-DUMFPACK_VERSION:STRING=3', - '-DUMFPACK_INT_SIZE:STRING=32', - '-DUMFPACK_LIBRARY:FILEPATH=${UMFPACK_LIBRARY}' - ] - -- when: platform == 'linux' - name: configure - mode: override - extra: [ - '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', - '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', - '-DCMAKE_Fortran_COMPILER:FILEPATH=${MPIF90}', - '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', - '-DPACKAGE_MPI:BOOL=True', - '-DPACKAGE_PARMETIS:BOOL=True', - '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', - '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.so', - '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.so', - '-DPACKAGE_UMFPACK:BOOL=True', - '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', - '-DUMFPACK_VERSION:STRING=3', - '-DUMFPACK_INT_SIZE:STRING=32', - '-DUMFPACK_LIBRARY:FILEPATH=${UMFPACK_LIBRARY}' - ] - -- when: machine == 'CrayXE6' - name: configure - mode: override - extra: [ - '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', - '-DCMAKE_C_FLAGS:STRING="-fPIC"', - '-DCMAKE_C_FLAGS_DEBUG:STRING="-g -fPIC"', - '-DCMAKE_C_FLAGS_OPT:STRING="-03 -fPIC"', - '-DCMAKE_C_FLAGS_RELEASE:STRING="-O3 -fPIC"', - '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', - '-DCMAKE_CXX_FLAGS:STRING="-fPIC"', - '-DCMAKE_CXX_FLAGS_DEBUG:STRING="-g -fPIC"', - '-DCMAKE_CXX_FLAGS_RELEASE:STRING="-O3 -fPIC"', - '-DCMAKE_Fortran_COMPILER:FILEPATH=${MPIF90}', - '-DCMAKE_Fortran_FLAGS:STRING="-fPIC"', - '-DCMAKE_Fortran_FLAGS_DEBUG:STRING="-g -fPIC"', - '-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-O3 -fPIC"', - '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', - '-DCMAKE_EXE_LINKER_FLAGS:STRING="-static"', - '-DPACKAGE_MPI:BOOL=True', - '-DPACKAGE_PARMETIS:BOOL=True', - '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', - '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.so', - '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.so', - '-DPACKAGE_UMFPACK:BOOL=True', - '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', - '-DUMFPACK_VERSION:STRING=3', - '-DUMFPACK_INT_SIZE:STRING=32', - '-DUMFPACK_LIBRARY:FILEPATH=${UMFPACK_LIBRARY}' - ] - -# Disable metis/parmetis on Cygwin for now -- when: platform == 'Cygwin' - name: configure - mode: override - extra: [ - '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', - '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', - '-DCMAKE_Fortran_COMPILER:FILEPATH=${MPIF90}', - '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', - '-DPACKAGE_MPI:BOOL=True', - '-DPACKAGE_PARMETIS:BOOL=False', - '-DPACKAGE_UMFPACK:BOOL=True', - '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', - '-DUMFPACK_VERSION:STRING=3', - '-DUMFPACK_INT_SIZE:STRING=32', - '-DUMFPACK_LIBRARY:FILEPATH=${UMFPACK_LIBRARY}' - ] - -- name: install - handler: bash - mode: replace - after: make - bash: | - mkdir ${ARTIFACT}/bin - mkdir ${ARTIFACT}/lib - cp bin/* ${ARTIFACT}/bin - cp lib/* ${ARTIFACT}/lib diff --git a/pkgs/adh/adh.yaml b/pkgs/adh/adh.yaml index 04575f046..20a69fc99 100644 --- a/pkgs/adh/adh.yaml +++ b/pkgs/adh/adh.yaml @@ -1,13 +1,20 @@ extends: [cmake_package] dependencies: - build: [python,mpi,parmetis,umfpack3] + build: [python,mpi,parmetis,lapack,blas] sources: -- url: https://github.com/cekees/adh.git - key: git:ab5024c569e8bac972d706a3d354e43cce319ac3 +- url: git@public.git.erdc.dren.mil:adh/adh.git + key: git:01f9fba7f6f95b77be3560cce8bfaa87f174431e build_stages: +- name: fix_link + files: + - fix_link.patch + before: configure + handler: bash + bash: | + patch -p1 < _hashdist/fix_link.patch - name: setup_builddir after: prologue @@ -29,7 +36,7 @@ build_stages: '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.dylib', '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.dylib', - '-DPACKAGE_UMFPACK:BOOL=True', + '-DPACKAGE_UMFPACK:BOOL=False', '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', '-DUMFPACK_VERSION:STRING=3', '-DUMFPACK_INT_SIZE:STRING=32', @@ -42,14 +49,52 @@ build_stages: extra: [ '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', + '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', + '-DCMAKE_VERBOSE_MAKEFILE:BOOL=True', + '-DCMAKE_EXE_LINKER_FLAGS:STRING="-L${PARMETIS_DIR}/lib -Wl,-rpath=${PARMETIS_DIR}/lib -L${OPENBLAS_DIR}/lib -lm -Wl,-rpath=${OPENBLAS_DIR}/lib"', + '-DUSE_MPI:BOOL=ON', + '-DPACKAGE_MPI:BOOL=ON', + '-DUSE_BLAS:BOOL=ON', + '-DUSE_LAPACK:BOOL=ON', + '-DBLAS_openblas_LIBRARY:FILEPATH=${OPENBLAS_DIR}/lib/libopenblas.so', + '-DUSE_PARMETIS:BOOL=ON', + '-DPACKAGE_PARMETIS:BOOL=ON', + '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', + '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.so', + '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.so', + '-DUSE_SUPER_LIBRARY:BOOL=False', + '-DPACKAGE_UMFPACK:BOOL=False', + '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', + '-DUMFPACK_VERSION:STRING=3', + '-DUMFPACK_INT_SIZE:STRING=32', + '-DUMFPACK_LIBRARY:FILEPATH=${UMFPACK_LIBRARY}' + ] + +- when: machine == 'CrayXE6' + name: configure + mode: override + extra: [ + '-DCMAKE_C_COMPILER:FILEPATH=${MPICC}', + '-DCMAKE_C_FLAGS:STRING="-fPIC"', + '-DCMAKE_C_FLAGS_DEBUG:STRING="-g -fPIC"', + '-DCMAKE_C_FLAGS_OPT:STRING="-03 -fPIC"', + '-DCMAKE_C_FLAGS_RELEASE:STRING="-O3 -fPIC"', + '-DCMAKE_CXX_COMPILER:FILEPATH=${MPICXX}', + '-DCMAKE_CXX_FLAGS:STRING="-fPIC"', + '-DCMAKE_CXX_FLAGS_DEBUG:STRING="-g -fPIC"', + '-DCMAKE_CXX_FLAGS_RELEASE:STRING="-O3 -fPIC"', '-DCMAKE_Fortran_COMPILER:FILEPATH=${MPIF90}', + '-DCMAKE_Fortran_FLAGS:STRING="-fPIC"', + '-DCMAKE_Fortran_FLAGS_DEBUG:STRING="-g -fPIC"', + '-DCMAKE_Fortran_FLAGS_RELEASE:STRING="-O3 -fPIC"', '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', + '-DCMAKE_EXE_LINKER_FLAGS:STRING="-static"', '-DPACKAGE_MPI:BOOL=True', '-DPACKAGE_PARMETIS:BOOL=True', '-DPARMETIS_INCLUDE_DIR:PATH=${PARMETIS_DIR}/include', '-DPARMETIS_LIBRARY:FILEPATH=${PARMETIS_DIR}/lib/libparmetis.so', '-DMETIS_LIBRARY=${PARMETIS_DIR}/lib/libmetis.so', - '-DPACKAGE_UMFPACK:BOOL=True', + '-DPACKAGE_UMFPACK:BOOL=False', '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', '-DUMFPACK_VERSION:STRING=3', '-DUMFPACK_INT_SIZE:STRING=32', @@ -67,7 +112,7 @@ build_stages: '-DCMAKE_INSTALL_PREFIX:PATH=${ARTIFACT}', '-DPACKAGE_MPI:BOOL=True', '-DPACKAGE_PARMETIS:BOOL=False', - '-DPACKAGE_UMFPACK:BOOL=True', + '-DPACKAGE_UMFPACK:BOOL=False', '-DUMFPACK_INCLUDE_DIR:PATH=${UMFPACK_INCLUDE}', '-DUMFPACK_VERSION:STRING=3', '-DUMFPACK_INT_SIZE:STRING=32', diff --git a/pkgs/adh/configure-linux.py b/pkgs/adh/configure-linux.py deleted file mode 100755 index 4e480e31f..000000000 --- a/pkgs/adh/configure-linux.py +++ /dev/null @@ -1,121 +0,0 @@ -#! /usr/bin/env python -import os - -#set convenience variables for proteus -prefix = os.getenv('ARTIFACT') -#define adh-specific variables that are needed -adh_dir = os.getenv('PWD') -#adh requires parmetis 3.2 -parmetis_dir = os.getenv('PARMETIS_DIR') #'adh-ParMetis-3.2.0') -#adh requires UMFPACK 3.2 -#umfpack_dir = os.getenv('UMFPACK_DIR') #'adh-UMFPACK3.2') - -CMAKE = 'cmake' #os.path.join(proteus,proteus_arch,'bin','cmake') - -print os.path.join(os.getenv('MPI_DIR'),'lib') - -adh_config_variables = {'MPI_LIBRARY':os.path.join(os.getenv('MPI_DIR'),'lib'), - 'CMAKE_C_COMPILER':os.getenv('MPICC'), - 'CMAKE_CXX_COMPILER':os.getenv('MPICXX'), - 'CMAKE_Fortran_COMPILER':os.getenv('MPIF90'), - 'BUILD_PRE_ADH':'ON', - 'CMAKE_BUILD_TYPE':'Debug', - 'DEBUG_LEVEL':'1', - 'OUTPUT_FILE_FORMAT':'XMS', - 'USE_PACKAGE_MPI':'OFF', - 'USE_PACKAGE_PARMETIS':'OFF', - 'USE_PACKAGE_UMFPACK':'OFF', - '_ADH_SEDIMENT':'OFF', -# 'UMFPACK_INCLUDE_DIR':os.path.join(umfpack_dir), -# 'UMFPACK_LIBRARY':os.path.join(umfpack_dir, 'umfpack.a'), #'libumfpack.a'), - 'METIS_INCLUDE_DIR':os.path.join(parmetis_dir,'METISLib'), - 'METIS_LIBRARY':os.path.join(parmetis_dir,'libmetis.a'), - 'PARMETIS_LIBRARY':os.path.join(parmetis_dir,'libparmetis.a'), - 'PARMETIS_INCLUDE_DIR':os.path.join(parmetis_dir), - } - -def configure_preadh(): - print "configure pre_adh",os.path.join(os.getenv('MPI_DIR'),'lib') - - adh_config_variables['BUILD_PRE_ADH'] ='ON' - adh_config_variables['USE_PACKAGE_MPI'] ='OFF' - adh_config_variables['USE_PACKAGE_PARMETIS']='OFF' - - from string import Template - temp = "{cmake} ".format(cmake=CMAKE) - for key,val in adh_config_variables.iteritems(): - temp += " -D{name}=${name} ".format(name=key) - # - temp += " .." - command_temp = Template(temp) - - command = command_temp.substitute(adh_config_variables) - - return command - -def configure_adh(): - print "configure adh",os.path.join(os.getenv('MPI_DIR'),'lib') - - adh_config_variables['BUILD_PRE_ADH'] ='OFF' - adh_config_variables['USE_PACKAGE_MPI'] ='OFF' - adh_config_variables['USE_PACKAGE_PARMETIS']='ON' - adh_config_variables['USE_PACKAGE_UMFPACK'] ='OFF' - adh_config_variables['MPI_LIBRARY'] = os.path.join(os.getenv('MPI_DIR'),'lib'), - - from string import Template - temp = "{cmake} ".format(cmake=CMAKE) - for key,val in adh_config_variables.iteritems(): - temp += " -D{name}=${name} ".format(name=key) - # - temp += " .." - command_temp = Template(temp) - - command = command_temp.substitute(adh_config_variables) - - return command - -if __name__ == '__main__': - import optparse, sys - - usage = "usage: %prog [options]" - parser = optparse.OptionParser(usage=usage) - parser.add_option("--pre-adh", - help="configure pre-adh", - action="store_true", - dest="pre_adh", - default=False) - parser.add_option("-V","--verbose", - help="print out some information about what's being attempted", - action="store_true", - default=False) - - (opts,args) =parser.parse_args() - - import subprocess - - echo = opts.verbose - print "opts.pre_adh",opts.pre_adh - if opts.pre_adh: - #first build pre_adh - command = configure_preadh() - build_dir = os.path.join(adh_dir,'build_preadh') - if echo: - print "Trying to configure pre_adh with {command} ".format(command=command) - else: - command = configure_adh() - build_dir = os.path.join(adh_dir,'build') - if echo: - print "Trying to configure adh with {command} ".format(command=command) - - if not os.path.exists(build_dir): - os.mkdir(build_dir) - os.chdir(build_dir) - - - fail = subprocess.call(command.split()) - - if echo: - print "configure returned fail = {0} ".format(fail) - - sys.exit(fail) - diff --git a/pkgs/adh/fix_link.patch b/pkgs/adh/fix_link.patch new file mode 100644 index 000000000..845ba23c2 --- /dev/null +++ b/pkgs/adh/fix_link.patch @@ -0,0 +1,12 @@ +diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt +index d6224e4..0d45b9d 100644 +--- a/main/CMakeLists.txt ++++ b/main/CMakeLists.txt +@@ -81,6 +81,7 @@ add_executable(adh ${adh_sources}) + set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "") + endif(USE_NSM) + ++ target_link_libraries(adh m) + + ############################################################################## + From 6953b52b4a28496a38a9d2049e4bc249fdf3e0d0 Mon Sep 17 00:00:00 2001 From: Chris Kees Date: Sat, 9 Dec 2017 14:19:28 -0600 Subject: [PATCH 3/4] updated mpich version --- pkgs/mpich.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/mpich.yaml b/pkgs/mpich.yaml index de2990f3b..7ffbb4d98 100644 --- a/pkgs/mpich.yaml +++ b/pkgs/mpich.yaml @@ -13,8 +13,8 @@ build_stages: extra: ['--disable-f77', '--disable-fc', '--disable-fortran'] sources: -- key: tar.gz:a54gpgtlne6xw7fp6n77tuufnxbl7rit - url: http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz +- key: tar.gz:lw2tx4xn7krchdvwucs3ypjmftf7xmn2 + url: http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz defaults: # bin/mpicc contains hard-coded path From a1b0aee32e85623649d0b3d6a7ad5684aabbe2f9 Mon Sep 17 00:00:00 2001 From: Chris Kees Date: Sat, 9 Dec 2017 19:02:33 -0600 Subject: [PATCH 4/4] switch hash for linux --- pkgs/python/python-from-conda.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/python/python-from-conda.yaml b/pkgs/python/python-from-conda.yaml index 3cabee0f2..42a1afe13 100644 --- a/pkgs/python/python-from-conda.yaml +++ b/pkgs/python/python-from-conda.yaml @@ -5,7 +5,7 @@ extends: [ conda_package ] when pyver == '2.7': build_stages: - name: conda_install - pkgspec: python=2.7.14=h001abdc_23 + pkgspec: python=2.7.14=hf918d8d_16 when pyver == '3.3': build_stages: - name: conda_install