Commit efb176e1 authored by Tharrington, Arnold's avatar Tharrington, Arnold
Browse files

Updating scripts to build charm++.

parent 3d5c6e96
Loading
Loading
Loading
Loading
+47 −3
Original line number Diff line number Diff line
@@ -19,11 +19,15 @@ where
For a list of the available path keys run the help option

    ncp_paths_charm.py --help

Invoking this script will print, for a given *pathkey*, the fully qualified
installation path to stdout.
"""

# System imports
import string
import argparse # Needed for parsing command line arguments.
import os

# Local imports
from loggerutils.logger import create_logger_description
@@ -42,15 +46,37 @@ def main():
    #   A function reference that when invoked will return the installation path for <pathkey>
    #   A description of <pathkey>
    
    # Registering path function for --path prefix
    pathkey = "prefix"
    function_reference = __prefix_path
    pathkey_description = "The top-level installation directory for Charm++."  
    pathoption.register_pathoption(charm_pathoption,pathkey,function_reference,pathkey_description)

    pathkey = "charmbasedir"
    function_reference = __prefix_path
    pathkey_description = "The CHARMBASEDIR for Charm++."  
    pathoption.register_pathoption(charm_pathoption,pathkey,function_reference,pathkey_description)

    pathkey = "bindir"
    function_reference = __prefix_bindir
    pathkey_description = "The Charm++ bin directory."  
    pathoption.register_pathoption(charm_pathoption,pathkey,function_reference,pathkey_description)

    pathkey = "libdir"
    function_reference = __prefix_libdir
    pathkey_description = "The Charm++ lib directory."  
    pathoption.register_pathoption(charm_pathoption,pathkey,function_reference,pathkey_description)

    pathkey = "incdir"
    function_reference = __prefix_incdir
    pathkey_description = "The Charm++ lib directory."  
    pathoption.register_pathoption(charm_pathoption,pathkey,function_reference,pathkey_description)

    # Parse the command line arugments of this script.
    args = __parse_arguments(charm_pathoption)

    # Instantiate a logging object.
    logger = create_logger(log_id='Default',
                           log_level=args.log_level)
    logger.info("Start of main program")

    # Print the installation path. The arguments to the function reference 
@@ -60,7 +86,8 @@ def main():
              args.machine_name,
              args.software_name,
              args.software_version,
              args.ncp_pe_key)
              args.ncp_pe_key,
              args.charmarch)
    pathoption.print_path(charm_pathoption,
                          args.path,
                          *values)
@@ -120,6 +147,12 @@ def __parse_arguments(charm_pathoption):
                           type=str,
                           metavar='<ncp pe key>')
                           
    mandatory_args_group.add_argument("--charmarch",
                           help="The Charm++ architecture.",
                           required=True,
                           type=str,
                           metavar='<ncp charm arch>')
                           
    mandatory_args_group.add_argument("--path",
                                      help=pathoption.create_path_description(charm_pathoption),
                                      required=True,
@@ -131,9 +164,20 @@ def __parse_arguments(charm_pathoption):
    return my_args 

def __prefix_path(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch):
    import os
    tmp_path = os.path.join(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch)
    return tmp_path

def __prefix_bindir(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch):
    tmp_path = os.path.join(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch,"bin")
    return tmp_path

def __prefix_libdir(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch):
    tmp_path = os.path.join(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch,"lib")
    return tmp_path

def __prefix_incdir(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch):
    tmp_path = os.path.join(ncp_prefix,machine_name,software_name,software_version,ncp_pe_key,charmarch,"include")
    return tmp_path

if __name__ == "__main__":
    main()
+19 −15
Original line number Diff line number Diff line
@@ -6,20 +6,20 @@ This module loads charm++ 7.0.0, arch=multicore-linux-x86_64-gfortran and define
installation paths.
]])

local function compute_path(machine_name,charmarch)
local function compute_path(machine_name,charmarch,pathkey)
    local software_name = "charm"
    local tcl_version = "v7.0.0-rc2"
    local charm_version = "v7.0.0-rc2"
    local ncp_pe_key = os.getenv("NCP_PE_KEY")
    local ncp_prefix = os.getenv("NCP_PREFIX") 
    local program = "ncp_paths_tcl.py "
    local program = "ncp_paths_charm.py "
    local options = {}
    table.insert(options," " .. "--machine-name " .. machine_name)
    table.insert(options," " .. "--software-name " .. software_name)
    table.insert(options," " .. "--software-version " .. tcl_version)
    table.insert(options," " .. "--software-version " .. charm_version)
    table.insert(options," " .. "--charmarch " .. charmarch)
    table.insert(options," " .. "--ncp-pe-key " .. ncp_pe_key)
    table.insert(options," " .. "--ncp-prefix " .. ncp_prefix)
    table.insert(options," " .. "--path " .. "prefix")
    table.insert(options," " .. "--path " .. pathkey)

    local command = "ncp_paths_charm.py"
    for i,v in ipairs(options) do
@@ -40,26 +40,30 @@ prereq(crusher_core_module)
-- Define the charmarch
local charmarch="multicore-linux-x86_64-gcc"

-- In this section we compute the new charm base dir.
local new_charm_base_dir = compute_path(machine_name,charmarch)
-- Define the charm_installation_directory
local charm_installation_directory = compute_path(machine_name,charmarch,"prefix")

-- Define the location to Charm++ bin directory.
local charm_bindir = compute_path(machine_name,charmarch,"bindir")

-- Define the location to Charm++ lib directory.
local charm_libdir = compute_path(machine_name,charmarch,"libdir")

local charm_include_dir = compute_path(machine_name,charmarch,"incdir")

local charm_build_target = 'multicore-linux-x86_64:gnu'

-- Set the path to the charm++ top level directory.
local ncp_top_level = os.getenv("NCP_TOP_LEVEL")
local old_charm_base_dir = pathJoin(ncp_top_level,"sw","sources","charm")

-- Set the paths to the charm++ lib, bin, and include directory.
local charm_bin_dir=pathJoin(new_charm_base_dir,charmarch,'bin')
local charm_lib_dir=pathJoin(new_charm_base_dir,charmarch,'lib')
local charm_include_dir=pathJoin(new_charm_base_dir,charmarch,'include')

-- No modfications needed below this line

setenv("ORIGINALCHARMBASE",old_charm_base_dir)
setenv("CHARMARCH",charmarch)
setenv("CHARMBASE",charm_installation_directory)
setenv("CHARM_TARGET_BUILD",charm_build_target)
prepend_path('PATH',charm_bin_dir)
prepend_path('LD_LIBRARY_PATH',charm_lib_dir)
prepend_path('PATH',charm_bindir)
prepend_path('LD_LIBRARY_PATH',charm_libdir)
prepend_path('C_INCLUDE_PATH',charm_include_dir)
prepend_path('CPLUS_INCLUDE_PATH',charm_include_dir)