""" Script to build PyNES, a library wrapping (hacked) NESTopia """ # python BuildPyNES.py build import os import sys import distutils.core class DistributionMaster(): def __init__(self): self.IncludeDirectories = ["PyNES/source"] self.IncludeDirectories.append(r"c:\dxtemp\include") self.DebugFlag = 0 if sys.platform == "win32" or sys.platform == "cygwin": self.OS = "windows" else: self.OS = "UNKNOWN" # LinkLibraries has the NAMES of libraries we link against: self.LinkLibraries = [] # BuildLibraries DEFINES a series of static libraries which we build (and then link against): self.BuildLibraries = [] self.SourceFileNames = [] def ListSourceFiles(self): File = open(os.path.join("PyNES", "SourceFileList.txt"), "rb") for FileLine in File.xreadlines(): if FileLine[0] == "#": continue self.SourceFileNames.append(FileLine.strip()) def SetupMacros(self): self.Macros = {} self.Macros["WIN32"] = "1" self.Macros["UNICODE"] = "1" self.Macros["_UNICODE"] = "1" self.Macros["_MSC_VER"] = "1400" def BuildMacroList(self): self.MacroList = [] for (Name, Value) in self.Macros.items(): self.MacroList.append((Name, Value)) def ListLibraries(self): self.LinkLibraries.append("user32") self.LinkLibraries.append("gdi32") self.LinkLibraries.append("comdlg32") self.LinkLibraries.append("advapi32") self.LinkLibraries.append("shell32") self.LinkLibraries.append("ole32") self.LinkLibraries.append("oleaut32") #self.LinkLibraries.append("uuid") #self.LinkLibraries.append("ddraw") #self.LinkLibraries.append("dinput8") #self.LinkLibraries.append("kernel32") def SetupOSSpecific(self): print "SetupOSSpecific(%s)"%self.OS if self.OS == "windows": pass def Build(self): """ Main method for preparing PyVBA.pyd """ self.ListSourceFiles() self.SetupMacros() self.SetupOSSpecific() # Macros have all been set; list them now. self.BuildMacroList() # List all external libraries (.a files) to be built: self.ListLibraries() # Now, create the Extension object, and call setup: PyNESExtension = distutils.core.Extension("PyNES", sources = self.SourceFileNames, include_dirs = self.IncludeDirectories, define_macros = self.MacroList, libraries = self.LinkLibraries, library_dirs = [r"c:\dxtemp\Lib\x86",r"PyNES\lib"]) distutils.core.setup(name="PyNES", version='1.0', ext_modules=[PyNESExtension], libraries = self.BuildLibraries, ) if __name__ == "__main__": Builder = DistributionMaster() for Arg in sys.argv[1:]: if Arg == "-g": Builder.DebugFlag = 1 Builder.Build()