forked from easybuilders/easybuild-easyblocks
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'contrib_Chapel' of github.com:fgeorgatos/easybuild-easy…
…blocks into contrib_Chapel
- Loading branch information
Showing
2 changed files
with
121 additions
and
0 deletions.
There are no files selected for viewing
57 changes: 57 additions & 0 deletions
57
easybuild/easyblocks/c/Chapel-1.6.0-goalf-1.1.0-no-OFED.eb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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, | ||
}] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'], | ||
} | ||
|