cannam@140: import os.path, sys
cannam@140: 
cannam@140: class ConfigurationError(Exception):
cannam@140:     def __init__(self, reason):
cannam@140:         Exception.__init__(self, "Configuration failed: %s" % reason)
cannam@140: 
cannam@140: env = Environment()
cannam@140: 
cannam@140: # sunos, aix, hpux, irix, sunos appear to be platforms known by SCons, assuming they're POSIX compliant
cannam@140: Posix = ("linux", "darwin", "sunos", "aix", "hpux", "irix", "sunos", "netbsd")
cannam@140: Windows = ("win32", "cygwin")
cannam@140: 
cannam@140: if env["PLATFORM"] == "posix":
cannam@140:     if sys.platform[:5] == "linux":
cannam@140:         Platform = "linux"
cannam@140:     elif sys.platform[:6] == "netbsd":
cannam@140: 	Platform = "netbsd"
cannam@140:     else:
cannam@140:         raise ConfigurationError("Unknown platform %s" % sys.platform)
cannam@140: else:
cannam@140:     if not env["PLATFORM"] in ("win32", "cygwin") + Posix:
cannam@140:         raise ConfigurationError("Unknown platform %s" % env["PLATFORM"])
cannam@140:     Platform = env["PLATFORM"]
cannam@140: 
cannam@140: # Inspired by the versioning scheme followed by Qt, it seems sensible enough. There are three components: major, minor
cannam@140: # and micro. Major changes with each subtraction from the API (backward-incompatible, i.e. V19 vs. V18), minor changes
cannam@140: # with each addition to the API (backward-compatible), micro changes with each revision of the source code.
cannam@140: ApiVer = "2.0.0"
cannam@140: 
cannam@140: Export("Platform", "Posix", "ConfigurationError", "ApiVer")