Howdy all,

OK, thanks to a lot of help from others at the EB hackathon
two weeks ago, I'm redeploying/rebuilding my XL toolchains
in order to clean them up (the early ones were quite ugly).

I've modified systemcompiler.py for xlc/xlf (PR forthcoming once
I review my .bash_history from the hackathon again [I save a copy :) ]).

Now then, the base xlc and xlf modules depend upon xlsmp and xlmass
libraries (RPMs) that are also installed. All I really need to do for them is to
add some paths to the module.  Unfortunately, as much as I've cleaned it
up it is still a bit inelegant.

Here's what I have for xlsmp at the moment:

# Author:: Jack Perdue <[email protected]> - TAMU HPRC - http://sc.tamu.edu

easyblock = "Bundle"

name = 'xlsmp'
version = '4.1.0'
xlroot = '/opt/ibm/%(name)s/%(version)s'

homepage = 'http://www.ibm.com/us/en/'
description = """IBM SMP support packages (SLES10)"""

toolchain = {'name': 'dummy', 'version': 'dummy'}

modextrapaths = {
    'CPATH': '.:%s/include' % xlroot,
    'LIBRARY_PATH': '.:%s/lib64:%s/lib'
        % (xlroot, xlroot),
    'LD_LIBRARY_PATH': '.:/opt/ibmcmp/lib64:/opt/ibmcmp/lib',
}
# EOF

As you can see, this adds some extraneous (empty) paths of
the form "$EBROOTXLSMP/."   to the paths and I trick EB by
including a colon and appending the real paths (xlroot) needed.

I have a similar build for xlmass except it doesn't have the
LD_LIBRARY_PATH with non-xlroot directories so is a bit cleaner
(don't ask me to explain IBMs logic when it comes to packaging).

Is there a way to accomplish the above without the
extraneous "$EBROOTwhatver/.:" being added?
i.e. if there was an easyblock i could say "THIS IS EBROOT!" and
then use modextrapaths the normal way it would be cleaner
(even if not entirely satisfactory for xlsmp's LD_LIBRARY_PATH issue).
Is there such a creature on the horizon?

--
Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
[email protected]    http://sc.tamu.edu
SC Helpdesk: [email protected]

Reply via email to