diff options
author | Nathan Binkert <binkertn@umich.edu> | 2006-06-17 18:14:16 -0400 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2006-06-17 18:14:16 -0400 |
commit | 78ea17ea30bbc67ffafcb0e23462b0968ebe188e (patch) | |
tree | 936fed6af970c668241ea32cc30eeedf765567a2 | |
parent | cd6da4569e9c6ed86357cfcf4eed53535c713e02 (diff) | |
download | gem5-78ea17ea30bbc67ffafcb0e23462b0968ebe188e.tar.xz |
Make the system paths more configurable
configs/test/SysPaths.py:
Make the paths more configurable
--HG--
extra : convert_revision : c426b102dfe55e4b601a23e980e1b01140e0ee93
-rw-r--r-- | configs/test/SysPaths.py | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/configs/test/SysPaths.py b/configs/test/SysPaths.py index c7c7db4e7..9acfedc8b 100644 --- a/configs/test/SysPaths.py +++ b/configs/test/SysPaths.py @@ -1,32 +1,42 @@ -from m5 import * - -import os.path -import sys - -# Edit the following list to include the possible paths to the binary -# and disk image directories. The first directory on the list that -# exists will be selected. -SYSTEMDIR_PATH = ['/n/poolfs/z/dist/m5/system'] - -SYSTEMDIR = None -for d in SYSTEMDIR_PATH: - if os.path.exists(d): - SYSTEMDIR = d - break - -if not SYSTEMDIR: - print >>sys.stderr, "Can't find a path to system files." - sys.exit(1) - -BINDIR = SYSTEMDIR + '/binaries' -DISKDIR = SYSTEMDIR + '/disks' +import os, sys +from os.path import isdir, join as joinpath +from os import environ as env + +systemdir = None +bindir = None +diskdir = None +scriptdir = None + +def load_defaults(): + global systemdir, bindir, diskdir, scriptdir + if not systemdir: + try: + path = env['M5_PATH'].split(':') + except KeyError: + path = [ '/dist/m5/system' ] + + for systemdir in path: + if os.path.isdir(systemdir): + break + else: + raise ImportError, "Can't find a path to system files." + + if not bindir: + bindir = joinpath(systemdir, 'binaries') + if not diskdir: + diskdir = joinpath(systemdir, 'disks') + if not scriptdir: + scriptdir = joinpath(systemdir, 'boot') def disk(file): - return os.path.join(DISKDIR, file) + load_defaults() + return joinpath(diskdir, file) def binary(file): - return os.path.join(BINDIR, file) + load_defaults() + return joinpath(bindir, file) def script(file): - return os.path.join(SYSTEMDIR, 'boot', file) + load_defaults() + return joinpath(scriptdir, file) |