Skip to content

Commit

Permalink
Integrate JAliEn (#1084)
Browse files Browse the repository at this point in the history
* Add libwebsockets and JSON-C as static libraries
* Add JAliEn-ROOT
* Use ROOT_PLUGIN_PATH to load TJAlien
* Add JAliEn-ROOT dep in AliRoot for ROOT6
  • Loading branch information
dberzano committed Aug 28, 2018
1 parent 53a9320 commit 9754ee6
Show file tree
Hide file tree
Showing 5 changed files with 172 additions and 1 deletion.
2 changes: 1 addition & 1 deletion aliroot.sh
Expand Up @@ -99,7 +99,7 @@ proc ModulesHelp { } {
set version $PKGVERSION-@@PKGREVISION@$PKGHASH@@
module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
# Dependencies
module load BASE/1.0 ${ROOT_VERSION:+ROOT/$ROOT_VERSION-$ROOT_REVISION} ${DPMJET_VERSION:+DPMJET/$DPMJET_VERSION-$DPMJET_REVISION} ${FASTJET_VERSION:+fastjet/$FASTJET_VERSION-$FASTJET_REVISION} ${GEANT3_VERSION:+GEANT3/$GEANT3_VERSION-$GEANT3_REVISION} ${GEANT4_VMC_VERSION:+GEANT4_VMC/$GEANT4_VMC_VERSION-$GEANT4_VMC_REVISION} ${VC_VERSION:+Vc/$VC_VERSION-$VC_REVISION}
module load BASE/1.0 ${ROOT_VERSION:+ROOT/$ROOT_VERSION-$ROOT_REVISION} ${DPMJET_VERSION:+DPMJET/$DPMJET_VERSION-$DPMJET_REVISION} ${FASTJET_VERSION:+fastjet/$FASTJET_VERSION-$FASTJET_REVISION} ${GEANT3_VERSION:+GEANT3/$GEANT3_VERSION-$GEANT3_REVISION} ${GEANT4_VMC_VERSION:+GEANT4_VMC/$GEANT4_VMC_VERSION-$GEANT4_VMC_REVISION} ${VC_VERSION:+Vc/$VC_VERSION-$VC_REVISION} ${JALIEN_ROOT_VERSION:+JAliEn-ROOT/$JALIEN_ROOT_VERSION-$JALIEN_ROOT_REVISION}
# Our environment
setenv ALIROOT_VERSION \$version
setenv ALICE \$::env(BASEDIR)/$PKGNAME
Expand Down
46 changes: 46 additions & 0 deletions defaults-jalien-root6.sh
@@ -0,0 +1,46 @@
package: defaults-jalien-root6
version: v1
env:
CXXFLAGS: "-fPIC -g -O2 -std=c++11"
CFLAGS: "-fPIC -g -O2"
CMAKE_BUILD_TYPE: "RELWITHDEBINFO"
overrides:
CMake:
version: "%(tag_basename)s"
tag: "v3.11.0"
prefer_system_check: |
which cmake && case `cmake --version | sed -e 's/.* //' | cut -d. -f1,2,3 | head -n1` in [0-2]*|3.[0-9].*|3.10.*) exit 1 ;; esac
AliRoot:
version: "%(tag_basename)s"
tag: v5-09-36
requires:
- JAliEn-ROOT
- ROOT
- fastjet:(?!.*ppc64)
- Vc
AliPhysics:
version: "%(tag_basename)s"
tag: v5-09-36-01
GCC-Toolchain:
tag: v7.3.0-alice1
prefer_system_check: |
set -e
which gfortran || { echo "gfortran missing"; exit 1; }
which cc && test -f $(dirname $(which cc))/c++ && printf "#define GCCVER ((__GNUC__ << 16)+(__GNUC_MINOR__ << 8)+(__GNUC_PATCHLEVEL__))\n#if (GCCVER < 0x070300)\n#error \"System's GCC cannot be used: we need at least GCC 7.X. We are going to compile our own version.\"\n#endif\n" | cc -xc++ - -c -o /dev/null
ROOT:
tag: "v6-14-04"
source: https://github.com/root-mirror/root
requires:
- AliEn-Runtime:(?!.*ppc64)
- GSL
- opengl:(?!osx)
- Xdevel:(?!osx)
- FreeType:(?!osx)
- Python-modules
- "GCC-Toolchain:(?!osx)"
GSL:
prefer_system_check: |
printf "#include \"gsl/gsl_version.h\"\n#define GSL_V GSL_MAJOR_VERSION * 100 + GSL_MINOR_VERSION\n# if (GSL_V < 116)\n#error \"Cannot use system's gsl. Notice we only support versions from 1.16 (included)\"\n#endif\nint main(){}" | gcc -I$(brew --prefix gsl)/include -xc++ - -o /dev/null
---
# To be used with aliBuild option `--defaults jalien-root6`.
# Use ROOT 6 built with the JAliEn client.
47 changes: 47 additions & 0 deletions jalien-root.sh
@@ -0,0 +1,47 @@
package: JAliEn-ROOT
version: "%(tag_basename)s"
tag: "integration"
source: https://gitlab.cern.ch/dberzano/jalien-root
requires:
- ROOT
build_requires:
- libwebsockets
- json-c
- CMake
- "GCC-Toolchain:(?!osx)"
append_path:
ROOT_PLUGIN_PATH: "$JALIEN_ROOT_ROOT/etc/plugins"
---
#!/bin/bash -e
case $ARCHITECTURE in
osx*) [[ ! $OPENSSL_ROOT ]] && OPENSSL_ROOT=$(brew --prefix openssl) ;;
esac
cmake $SOURCEDIR \
-DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \
-DROOTSYS="$ROOTSYS" \
-DJSONC="$JSON_C_ROOT" \
${OPENSSL_ROOT:+-DOPENSSL_ROOT_DIR=$OPENSSL_ROOT} \
-DLWS="$LIBWEBSOCKETS_ROOT"
make ${JOBS:+-j $JOBS} install

# Modulefile
mkdir -p etc/modulefiles
cat > etc/modulefiles/$PKGNAME <<EoF
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
}
set version $PKGVERSION-@@PKGREVISION@$PKGHASH@@
module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
# Dependencies
module load BASE/1.0 ${GCC_TOOLCHAIN_VERSION:+GCC-Toolchain/$GCC_TOOLCHAIN_VERSION-$GCC_TOOLCHAIN_REVISION} ROOT/${ROOT_VERSION}-${ROOT_REVISION}
# Our environment
setenv JALIEN_ROOT_ROOT \$::env(BASEDIR)/$PKGNAME/\$version
prepend-path PATH \$::env(JALIEN_ROOT_ROOT)/bin
prepend-path LD_LIBRARY_PATH \$::env(JALIEN_ROOT_ROOT)/lib
append-path ROOT_PLUGIN_PATH \$::env(JALIEN_ROOT_ROOT)/etc/plugins
$([[ ${ARCHITECTURE:0:3} == osx ]] && echo "prepend-path DYLD_LIBRARY_PATH \$::env(JALIEN_ROOT_ROOT)/lib")
EoF
mkdir -p $INSTALLROOT/etc/modulefiles && rsync -a --delete etc/modulefiles/ $INSTALLROOT/etc/modulefiles
33 changes: 33 additions & 0 deletions json-c.sh
@@ -0,0 +1,33 @@
package: json-c
version: "v0.13.1"
tag: "json-c-0.13.1-20180305"
source: https://github.com/json-c/json-c
build_requires:
- autotools
- "GCC-Toolchain:(?!osx)"
---
#!/bin/bash -e
rsync -a --delete --exclude '**/.git' --delete-excluded $SOURCEDIR/ ./
autoreconf -ivf
./configure --disable-shared --enable-static --prefix="$INSTALLROOT"
make ${JOBS+-j $JOBS} install

# Modulefile
mkdir -p etc/modulefiles
cat > etc/modulefiles/$PKGNAME <<EoF
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
}
set version $PKGVERSION-@@PKGREVISION@$PKGHASH@@
module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
# Dependencies
module load BASE/1.0 ${GCC_TOOLCHAIN_VERSION:+GCC-Toolchain/$GCC_TOOLCHAIN_VERSION-$GCC_TOOLCHAIN_REVISION}
# Our environment
setenv JSON_C_ROOT \$::env(BASEDIR)/$PKGNAME/\$version
prepend-path PATH \$::env(JSON_C_ROOT)/bin
prepend-path LD_LIBRARY_PATH \$::env(JSON_C_ROOT)/lib
$([[ ${ARCHITECTURE:0:3} == osx ]] && echo "prepend-path DYLD_LIBRARY_PATH \$::env(JSON_C_ROOT)/lib")
EoF
mkdir -p $INSTALLROOT/etc/modulefiles && rsync -a --delete etc/modulefiles/ $INSTALLROOT/etc/modulefiles
45 changes: 45 additions & 0 deletions libwebsockets.sh
@@ -0,0 +1,45 @@
package: libwebsockets
version: "%(tag_basename)s"
tag: "v2.4.2"
source: https://github.com/warmcat/libwebsockets
build_requires:
- CMake
- "GCC-Toolchain:(?!osx)"
- "OpenSSL:(?!osx)"
---
#!/bin/bash -e
case $ARCHITECTURE in
osx*) [[ ! $OPENSSL_ROOT ]] && OPENSSL_ROOT=$(brew --prefix openssl) ;;
esac
cmake $SOURCEDIR/ \
-DCMAKE_INSTALL_PREFIX="$INSTALLROOT" \
-DCMAKE_BUILD_TYPE=RELEASE \
-DLWS_WITH_STATIC=ON \
-DLWS_WITH_SHARED=OFF \
${OPENSSL_ROOT:+-DOPENSSL_ROOT_DIR=$OPENSSL_ROOT} \
${OPENSSL_ROOT:+-DOPENSSL_INCLUDE_DIRS=$OPENSSL_ROOT/include} \
${OPENSSL_ROOT:+-DOPENSSL_LIBRARIES=$OPENSSL_ROOT/lib} \
-DLWS_HAVE_OPENSSL_ECDH_H=OFF \
-DLWS_WITHOUT_TESTAPPS=ON
make ${JOBS+-j $JOBS} install
rm -rf $INSTALLROOT/share

# Modulefile
mkdir -p etc/modulefiles
cat > etc/modulefiles/$PKGNAME <<EoF
#%Module1.0
proc ModulesHelp { } {
global version
puts stderr "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
}
set version $PKGVERSION-@@PKGREVISION@$PKGHASH@@
module-whatis "ALICE Modulefile for $PKGNAME $PKGVERSION-@@PKGREVISION@$PKGHASH@@"
# Dependencies
module load BASE/1.0 ${GCC_TOOLCHAIN_VERSION:+GCC-Toolchain/$GCC_TOOLCHAIN_VERSION-$GCC_TOOLCHAIN_REVISION} ${OPENSSL_VERSION:+OpenSSL/$OPENSSL_VERSION-$OPENSSL_REVISION}
# Our environment
setenv LIBWEBSOCKETS_ROOT \$::env(BASEDIR)/$PKGNAME/\$version
prepend-path PATH \$::env(LIBWEBSOCKETS_ROOT)/bin
prepend-path LD_LIBRARY_PATH \$::env(LIBWEBSOCKETS_ROOT)/lib
$([[ ${ARCHITECTURE:0:3} == osx ]] && echo "prepend-path DYLD_LIBRARY_PATH \$::env(LIBWEBSOCKETS_ROOT)/lib")
EoF
mkdir -p $INSTALLROOT/etc/modulefiles && rsync -a --delete etc/modulefiles/ $INSTALLROOT/etc/modulefiles

0 comments on commit 9754ee6

Please sign in to comment.