Skip to content

Commit

Permalink
Merge branch 'contrib_Chapel' of github.com:fgeorgatos/easybuild-easy…
Browse files Browse the repository at this point in the history
…blocks into contrib_Chapel
  • Loading branch information
boegel committed Dec 28, 2012
2 parents 78320b5 + 95f9a13 commit 3f3e8d5
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 0 deletions.
57 changes: 57 additions & 0 deletions easybuild/easyblocks/c/Chapel-1.6.0-goalf-1.1.0-no-OFED.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Built with 0.9-r33bd38316ee74908e98e294486c590916db09a43 on 2012-10-19_10-26-20
# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright (c) 2012 University of Luxembourg / Luxembourg Centre for Systems Biomedicine
# Author:: Fotis Georgatos <fotis.georgatos@uni.lu>
# License:: MIT/GPL
# File:: $File$
# Date:: $Date$


name = 'Chapel'
version = '1.6.0'

homepage = 'http://chapel.cray.com'

description = """ Chapel is an emerging parallel programming language whose design and development
is being led by Cray Inc. Chapel is being developed as an open-source effort with contributions
from academia, industry, and scientific computing centers.
Chapel is designed to improve the productivity of high-end computer users while also serving
as a portable parallel programming model that can be used on commodity clusters or desktop multicore
systems. Chapel strives to vastly improve the programmability of large-scale parallel computers
while matching or beating the performance and portability of current programming models like MPI."""


unpackOptions='--strip-components=1'

toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'}
toolchainopts = {'optarch': True, 'pic': True}

sources = ['%s-%s.tar.gz' % (name.lower(), version)]
sourceURLs = [('http://sourceforge.net/projects/%s/files/%s/%s/' % (name.lower(), name.lower(), version) , 'download')]

# better safe than sorry, the build can fail at parallel runs
maxparallel=1

_libpath='lib/linux64/gnu/comm-none/substrate-none/seg-none/mem-default/tasks-fifo/threads-pthreads/atomics-intrinsics/'
sanityCheckPaths = {
'files': ['bin/linux64/chpl',
'bin/linux64/chpldoc',
_libpath + 'libchpl.a',
_libpath + 'main.o'],
'dirs': ['bin', 'lib']
}


# Build statistics
buildstats = [{
'easybuild_version': '0.9-r33bd38316ee74908e98e294486c590916db09a43',
'host': 'gaia-41',
'platform': 'Linux-2.6.32-5-amd64-x86_64-with-debian-6.0.5',
'cpu_model': 'Intel(R) Xeon(R) CPU L5640 @ 2.27GHz',
'core_count': 12,
'timestamp': 1350635180,
'build_time': 149.02,
'install_size': 89366795,
}]
64 changes: 64 additions & 0 deletions easybuild/easyblocks/c/chapel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright (c) 2012 University of Luxembourg / Luxembourg Centre for Systems Biomedicine
# Author:: Fotis Georgatos <fotis.georgatos@uni.lu>
# License:: MIT/GPL
# File:: $File$
# Date:: $Date$

"""
EasyBuild support for Chapel, implemented as an easyblock
"""
import os
import shutil

import easybuild.tools.toolkit as toolchain
from easybuild.framework.easyblock import EasyBlock
from easybuild.tools.filetools import run_cmd


class EB_Chapel(EasyBlock):
"""Support for building Chapel."""


def __init__(self, *args, **kwargs):
"""Initialize Chapel-specific variables."""
super(EB_Chapel, self).__init__(*args, **kwargs)
self.build_in_installdir = True


def configure_step(self):
"""Configure Chapel build using custom tools"""

pass


def build_step(self):
"""Build and install Chapel"""

# enable parallel build
p = self.cfg['parallel']
self.par = ""
if p:
self.par = "-j %s" % p

# build chapel
cmd = "make %s" % self.par
run_cmd(cmd, log_all=True, simple=True, log_output=True)


def install_step(self):
"""Installation of Chapel has alredy been done as part of the build procedure"""

pass


def make_module_req_guess(self):
"""
A dictionary of possible directories to look for; this is needed since bin/linux64 of chapel is non standard
"""
return {
'PATH':['bin', 'bin/linux64', 'bin64'],
'LD_LIBRARY_PATH':['lib', 'lib/linux64', 'lib64'],
}

0 comments on commit 3f3e8d5

Please sign in to comment.