# to get the Python executable path import sys # pulls in the variables set in the 'master' SConstruct file Import("vars") # these should match up with the source code vars.Add("HEAP_SIZE", "Size of the VM's heap.", 0x2000) vars.Add("IPM", "Add the interactive library to the standard lib", True) CFLAGS = "/DHEAP_SIZE=$HEAP_SIZE /D_CONSOLE" if "DEBUG" in vars.args.keys(): CFLAGS = "-D_DEBUG=1 " + CFLAGS SOURCES = ["main.c", "plat.c"] PY_SOURCES = ["main.py"] PM_LIB_ROOT = ["pmvm_%s" % vars.args["PLATFORM"], "user32"] # should scons include the user32? env = Environment(variables = vars, CPPPATH = ["#src/vm", "#src/platform/%s" % vars.args["PLATFORM"]], TARGET_ARCH='x86') # this is the 'magic' that I have been looking for for a long time... # debug #print env.Dump() vmlib = SConscript(["../../vm/SConscript"], ["env", "vars"]) pmfeatures = env.Command(["pmfeatures.h"], ["pmfeatures.py"], "%s src/tools/pmGenPmFeatures.py $SOURCE > $TARGET" % sys.executable) img_sources = env.Command(["main_img.c", "main_nat.c"], [PY_SOURCES], "%s src/tools/pmImgCreator.py -f src/platform/windows/pmfeatures.py " \ "-c -u -o src/platform/%s/main_img.c " \ "--native-file=src/platform/%s/main_nat.c $SOURCES" % (sys.executable, vars.args["PLATFORM"], vars.args["PLATFORM"])) main = env.Program("main.exe", SOURCES + img_sources, LIBS = PM_LIB_ROOT, LIBPATH = ["../../vm"])