Loading bin/ncp_paths_charm.py +47 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading Loading @@ -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, Loading @@ -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() runtime_environment/Crusher/charm++/default/multicore-linux-x86_64-gfortran-gcc.lua +19 −15 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading
bin/ncp_paths_charm.py +47 −3 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading Loading @@ -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, Loading @@ -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()
runtime_environment/Crusher/charm++/default/multicore-linux-x86_64-gfortran-gcc.lua +19 −15 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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)