Browse Source

Move makepanda to root

rdb 16 years ago
parent
commit
125c82d23b

BIN
makepanda/Panda3D-tpl.dmg


+ 107 - 0
makepanda/confauto.in

@@ -0,0 +1,107 @@
+###########################################################
+###                                                     ###
+### Panda3D Configuration File - Auto-Generated Portion ###
+###                                                     ###
+### Editing this file is not recommended. Most of these ###
+### directives can be overriden in Config.prc           ###
+###                                                     ###
+###########################################################
+
+# The egg loader is handy to have available by default.  This allows
+# clients to load egg files.  (The bam loader is built-in so bam files
+# are always loadable).
+
+# By qualifying with the extension "egg", we indicate the egg loader
+# should be made available only if you explicitly name a file with an
+# .egg extension.
+
+# Also see ptloader, which is built as part of pandatool; it allows
+# files of more exotic types (like .flt, .mb, .lwo, and .dxf) to be
+# loaded directly into Panda.
+
+load-file-type egg pandaegg
+
+# The following lines define some handy object types to use within the
+# egg syntax.  This remaps <ObjectType> { name } into whatever egg
+# syntax is given by egg-object-type-name, which makes a handy
+# abbreviation for modeling packages (like Maya) to insert
+# sophisticated egg syntax into the generated egg file, using a single
+# object type string.
+
+egg-object-type-portal          <Scalar> portal { 1 }
+egg-object-type-polylight       <Scalar> polylight { 1 }
+egg-object-type-seq24           <Switch> { 1 } <Scalar> fps { 24 }
+egg-object-type-seq12           <Switch> { 1 } <Scalar> fps { 12 }
+egg-object-type-indexed         <Scalar> indexed { 1 }
+
+egg-object-type-binary          <Scalar> alpha { binary }
+egg-object-type-dual            <Scalar> alpha { dual }
+egg-object-type-glass           <Scalar> alpha { blend_no_occlude }
+
+# These are just shortcuts to define the Model and DCS flags, which
+# indicate nodes that should not be flattened out of the hierarchy
+# during the conversion process.  DCS goes one step further and
+# indicates that the node's transform is important and should be
+# preserved (DCS stands for Dynamic Coordinate System).  Notouch is
+# even stronger, and means not to do any flattening below the node at
+# all.
+egg-object-type-model           <Model> { 1 }
+egg-object-type-dcs             <DCS> { 1 }
+egg-object-type-notouch         <DCS> { no_touch }
+
+# The following define various kinds of collision geometry.  These
+# mark the geometry at this level and below as invisible collision
+# polygons, which can be used by Panda's collision system to detect
+# collisions more optimally than regular visible polygons.
+egg-object-type-barrier         <Collide> { Polyset descend }
+egg-object-type-sphere          <Collide> { Sphere descend }
+egg-object-type-invsphere       <Collide> { InvSphere descend }
+egg-object-type-tube            <Collide> { Tube descend }
+
+# As above, but these are flagged to be "intangible", so that they
+# will trigger an event but not stop an object from passing through.
+egg-object-type-trigger         <Collide> { Polyset descend intangible }
+egg-object-type-trigger-sphere  <Collide> { Sphere descend intangible }
+
+# "floor" and "dupefloor" define the nodes in question as floor
+# polygons.  dupefloor means to duplicate the geometry first so that
+# the same polygons serve both as visible geometry and as collision
+# polygons.
+egg-object-type-floor           <Collide> { Polyset descend level }
+egg-object-type-dupefloor       <Collide> { Polyset keep descend level }
+
+# "bubble" puts an invisible bubble around an object, but does not
+# otherwise remove the geometry.
+egg-object-type-bubble          <Collide> { Sphere keep descend }
+
+# "ghost" turns off the normal collide bit that is set on visible
+# geometry by default, so that if you are using visible geometry for
+# collisions, this particular geometry will not be part of those
+# collisions--it is ghostlike.
+egg-object-type-ghost           <Scalar> collide-mask { 0 }
+
+# "glow" is useful for halo effects and things of that ilk.  It
+# renders the object in add mode instead of the normal opaque mode.
+egg-object-type-glow            <Scalar> blend { add }
+
+# This module allows direct loading of formats like .flt, .mb, or .dxf
+
+load-file-type p3ptloader
+
+# Define a new egg object type.  See the comments in _panda.prc about this.
+
+egg-object-type-direct-widget   <Scalar> collide-mask { 0x80000000 } <Collide> { Polyset descend }
+
+# Define a new cull bin that will render on top of everything else.
+
+cull-bin gui-popup 60 unsorted
+
+# The following two lines are a fix for flaky hardware clocks.
+
+lock-to-one-cpu #t
+paranoid-clock 1
+
+# This default only comes into play if you try to load a model
+# and don't specify an extension.
+
+default-model-extension .egg

+ 86 - 0
makepanda/config.in

@@ -0,0 +1,86 @@
+###########################################################
+###                                                     ###
+### Panda3D Configuration File -  User-Editable Portion ###
+###                                                     ###
+###########################################################
+
+# Uncomment one of the following lines to choose whether you should
+# run using OpenGL or DirectX rendering.
+
+load-display pandagl
+
+# These control the placement and size of the default rendering window.
+
+win-origin 50 50
+win-size 800 600
+
+# Uncomment this line if you want to run Panda fullscreen instead of
+# in a window.
+
+fullscreen #f
+
+# The framebuffer-hardware flag forces it to use an accelerated driver.
+# The framebuffer-software flag forces it to use a software renderer.
+# If you don't set either, it will use whatever's available.
+
+framebuffer-hardware #t
+framebuffer-software #f
+
+# These set the minimum requirements for the framebuffer.
+
+depth-bits 16
+color-bits 16
+alpha-bits 0
+stencil-bits 0
+multisamples 0
+
+# These control the amount of output Panda gives for some various
+# categories.  The severity levels, in order, are "spam", "debug",
+# "info", "warning", and "error"; the default is "info".  Uncomment
+# one (or define a new one for the particular category you wish to
+# change) to control this output.
+
+notify-level warning
+default-directnotify-level warning
+
+# These specify where model files may be loaded from.  You probably
+# want to set this to a sensible path for yourself.  $THIS_PRC_DIR is
+# a special variable that indicates the same directory as this
+# particular Config.prc file.
+
+model-path    $MAIN_DIR
+model-path    $THIS_PRC_DIR/..
+model-path    $THIS_PRC_DIR/../models
+
+# This enable the automatic creation of a TK window when running
+# Direct.
+
+want-directtools  #f
+want-tk           #f
+
+# Enable/disable performance profiling tool and frame-rate meter
+
+want-pstats            #f
+show-frame-rate-meter  #f
+
+# Enable audio using the FMOD audio library by default:
+
+audio-library-name p3fmod_audio
+
+# Enable the use of the new movietexture class.
+
+use-movietexture #t
+
+# The new version of panda supports hardware vertex animation, but it's not quite ready
+
+hardware-animated-vertices 0
+
+# Enable the model-cache, but only for models, not textures.
+
+model-cache-dir $THIS_PRC_DIR/../modelcache
+model-cache-textures #f
+
+# Limit the use of advanced shader profiles.
+# Currently, advanced profiles are not reliable under Cg.
+
+basic-shaders-only #t

+ 26 - 0
makepanda/expandimports.bat

@@ -0,0 +1,26 @@
+@echo off
+
+REM
+REM Verify that we can find the 'expandimports' python script
+REM and the python interpreter.  If we can find both, then
+REM run 'expandimports'.
+REM
+
+if not exist makepanda\expandimports.py goto :missing1
+if not exist thirdparty\win-python\python.exe goto :missing2
+thirdparty\win-python\python.exe makepanda\expandimports.py %*
+goto done
+
+:missing1
+  echo You need to change directory to the root of the panda source tree
+  echo before invoking expandimports.
+  goto done
+
+:missing2
+  echo You seem to be missing the 'thirdparty' directory.  You probably checked
+  echo the source code out from sourceforge.  The sourceforge repository is
+  echo missing the 'thirdparty' directory.  You will need to supplement the
+  echo code by downloading the 'thirdparty' directory from panda3d.etc.cmu.edu
+  goto done
+
+:done

+ 21 - 0
makepanda/expandimports.py

@@ -0,0 +1,21 @@
+########################################################################
+##
+## Win32 Usage: makepanda\expandimports.bat
+## Linux Usage: makepanda/expandimports.py
+##
+########################################################################
+
+import sys,os,re
+sys.path = ["direct/src/directscripts"] + sys.path
+import gendocs
+
+########################################################################
+##
+## Make sure panda has been built.
+##
+########################################################################
+
+if (os.path.isfile("built/pandac/input/libpgraph.in")==0) or (os.path.isfile("built/pandac/input/libputil.in")==0):
+    sys.exit("Cannot read the interrogate-output files in built/pandac/input")
+
+gendocs.expandImports("built/pandac/input", "direct", "samples")

+ 26 - 0
makepanda/makechm.bat

@@ -0,0 +1,26 @@
+@echo off
+
+REM
+REM Verify that we can find the 'makechm' python script
+REM and the python interpreter.  If we can find both, then
+REM run 'makechm'.
+REM
+
+if not exist makepanda\makechm.py goto :missing1
+if not exist thirdparty\win-python\python.exe goto :missing2
+thirdparty\win-python\python.exe makepanda\makechm.py %*
+goto done
+
+:missing1
+  echo You need to change directory to the root of the panda source tree
+  echo before invoking makechm.
+  goto done
+
+:missing2
+  echo You seem to be missing the 'thirdparty' directory.  You probably checked
+  echo the source code out from sourceforge.  The sourceforge repository is
+  echo missing the 'thirdparty' directory.  You will need to supplement the
+  echo code by downloading the 'thirdparty' directory from panda3d.etc.cmu.edu
+  goto done
+
+:done

+ 278 - 0
makepanda/makechm.py

@@ -0,0 +1,278 @@
+########################################################################
+##
+## Win32 Usage: makepanda\makechm.bat
+## Linux Usage: makepanda/makechm.py
+##
+## To use this script, you will need to have hhc.exe on your system.
+## For verbose output, run with -v or --verbose option.
+## To keep the temporary .hhc, .hhk, .hhp, .chw files use -k or --keep.
+##
+## You can also import this file as a python module. You will then have
+## access to three functions: makeCHM, makeManualCHM, makeReferenceCHM.
+## This is how you call them:
+##   makeCHM(outputfile, dirname, title)
+## where outputfile is the filename where the .chm file will be written,
+## and dirname is the directory containing the html files to include.
+## Title will be the title of the CHM file.
+## The functions makeManualCHM and makeReferenceCHM work exactly the
+## same, except that they work with a structure resembling that of the
+## Panda3D manual and reference, respectively.
+## Note: outputfile should not contain spaces.
+##
+########################################################################
+
+__all__ = ["makeCHM", "makeManualCHM", "makeReferenceCHM"]
+import os, re
+from sys import exit
+import xml.dom.minidom
+from xml.dom.minidom import Node
+
+VERBOSE = False
+KEEPTEMP = False
+
+if __name__ == "__main__":
+    from sys import argv
+    VERBOSE  = ("-v" in argv) or ("-vk" in argv) or ("-kv" in argv) or ("--verbose" in argv)
+    KEEPTEMP = ("-k" in argv) or ("-kv" in argv) or ("-vk" in argv) or ("--keep"    in argv)
+
+OPTIONBLOCK = """
+Binary TOC=Yes
+Compatibility=1.1 or later
+Compiled file=%s
+Contents file=%s.hhc
+Default Font=Arial,10,0
+Default topic=%s
+Display compile progress=VERBOSE
+Full-text search=Yes
+Index file=%s.hhk
+Language=0x409 English (United States)
+Title=%s""".replace("VERBOSE", VERBOSE and "Yes" or "No")
+
+HTMLBLOCK = """<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <meta name="generator" content="Panda3D - makechm.py">
+  </head>
+  <body>
+    <object type="text/site properties">
+      <param name="Window Styles" value="0x800025">
+      <param name="ImageType" value="Folder">
+      <param name="Font" value="Arial,8,0">
+    </object>
+    <ul>\n"""
+
+REFERENCEITEMS = [
+    ("index.html",     "Main Page"),
+    ("methods.html",   "Methods"),
+    ("functions.html", "Global Functions"),
+    ("classes.html",   "Classes"),
+]
+
+def urldecode(url): 
+    regex = re.compile("%([0-9a-hA-H][0-9a-hA-H])", re.M) 
+    return regex.sub(lambda x: chr(int(x.group(1), 16)), url) 
+
+def ireplace(string, target, replacement):
+    """Case-insensitive replace."""
+    index = string.lower().find(target.lower())
+    if index >= 0:
+        result = string[:index] + replacement + string[index + len(target):]
+        return result
+    else:
+        return string
+
+def parseAnchor(node):
+    """Parses an XML minidom node representing an anchor and returns a tuple
+    containing the href and the content of the link."""
+    assert node.nodeType == Node.ELEMENT_NODE
+    assert node.localName == "a"
+    href = ""
+    title = ""
+    for localName, a in node.attributes.items():
+        if localName.lower() == "href":
+            href = a
+    for e in node.childNodes:
+        if e.nodeType == Node.TEXT_NODE:
+            title += e.data
+    return href, title
+
+def parseManualTree(node):
+    """Parses a tree of the manual Main_Page and returns it through a list containing tuples:
+    [(title, href, [(title, href, [...]), ...]), ...]"""
+    if node.nodeType != Node.ELEMENT_NODE: return []
+    result = []
+    lastadded = None
+    for e in node.childNodes:
+        if e.nodeType == Node.ELEMENT_NODE:
+            if e.localName == "ol":
+                assert lastadded != None
+                for i in xrange(len(result)):
+                    if result[i][:2] == lastadded:
+                        result[i] = lastadded + (parseManualTree(e),)
+            elif e.localName == "a":
+                href, title = parseAnchor(e)
+                lastadded = title, href
+                result.append((title, href, None))
+    return result
+
+def parseManualTOC(filename):
+    """Reads the manual's Main_Page file and returns a list of all the trees found."""
+    filename = open(filename)
+    text = filename.read()
+    filename.close()
+    text = text.split("<h2>Table of Contents</h2>")[1].split("</td>")[0]
+    text = "<root>" + text.replace("<li>", "") + "</root>"
+    text = re.sub(re.compile("<!--([^>]+)>"), "", text)
+    result = []
+    for e in xml.dom.minidom.parseString(text).childNodes[0].childNodes:
+        if e.nodeType == Node.ELEMENT_NODE:
+            result.append(parseManualTree(e))
+    return result
+
+def treeToHTML(tree, dirname, indent = ""):
+    """Converts a tree into HTML code suitable for .hhc or .hhk files. The tree should be like:
+    [(title, href, [(title, href, [...]), ...]), ...]"""
+    html = ""
+    for title, href, sub in tree:
+        html += indent + "<li><object type=\"text/sitemap\">\n"
+        html += indent + "  <param name=\"Name\" value=\"%s\">\n" % title.replace("CXX", "C++").replace("\"", "&quot;")
+        html += indent + "  <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, href))
+        html += indent + "</object>\n"
+        if sub != None:
+            html += indent + "<ul>\n"
+            html += treeToHTML(sub, dirname, indent + "  ")
+            html += indent + "</ul>\n"
+    return html            
+
+def makeCHM(outputfile, dirname, title, special = None):
+    """Creates a CHM file based on a directory of HTML files. See the top of this file for more info."""
+    assert special == None or special in ["manual", "reference"]
+    reference = (special == "reference")
+    manual = (special == "manual")
+    base = ireplace(outputfile, ".chm", "")
+    if os.path.isfile(base + ".chm"): os.remove(base + ".chm")
+    # Create the hhp file
+    hhp = open(base + ".hhp", "w")
+    hhp.write("[OPTIONS]\n")
+    hhp.write(OPTIONBLOCK % (base + ".chm", base, urldecode(os.path.join(dirname, "index.html")), base, title))
+    hhp.write("\n[FILES]\n")
+    # Create the TOC file and Index file
+    hhk = open(base + ".hhk", "w")
+    hhc = open(base + ".hhc", "w")
+    hhk.write(HTMLBLOCK)
+    hhc.write(HTMLBLOCK)
+    # The manual should be treated as a special case.
+    if manual:
+        hhc.write("      <li><object type=\"text/sitemap\">\n")
+        hhc.write("        <param name=\"Name\" value=\"Main Page\">\n")
+        hhc.write("        <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, "index.html")))
+        hhc.write("      </object>\n")
+        for item in parseManualTOC("manual/index.html"):
+            hhc.write(treeToHTML(item, dirname, "      "))
+        for i in os.listdir(dirname):
+            hhp.write(os.path.join(dirname, i) + "\n")
+            if i != "index.html":
+                hhk.write("      <li><object type=\"text/sitemap\">\n")
+                hhk.write("        <param name=\"Name\" value=\"%s\">\n" % ireplace(urldecode(i).replace(".1", "").replace("_", " ").replace("CXX", "C++"), ".html", "").replace("\"", "&quot;"))
+                hhk.write("        <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, i)))
+                hhk.write("      </object>\n")
+    else:
+        idt = "      "
+        # If we are writing out the reference, write some extra stuff.
+        if reference:
+            idt = "        "
+            for i, desc in REFERENCEITEMS:
+                hhk.write("      <li><object type=\"text/sitemap\">\n")
+                hhk.write("        <param name=\"Name\" value=\"%s\">\n" % desc.replace("\"", "&quot;"))
+                hhk.write("        <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, i)))
+                hhk.write("      </object>\n")
+                hhc.write("      <li><object type=\"text/sitemap\">\n")
+                hhc.write("        <param name=\"Name\" value=\"%s\">\n" % desc.replace("\"", "&quot;"))
+                hhc.write("        <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, i)))
+                hhc.write("      </object>\n")
+            hhc.write("      <ul>\n")
+        # Loop through the directories and write out relevant data.
+        for i in os.listdir(dirname):
+            hhp.write(os.path.join(dirname, i) + "\n")
+            if i != "index.html" and ((not reference) or (not i  in ["classes.html", "methods.html", "functions.html"])):
+                hhk.write("      <li><object type=\"text/sitemap\">\n")
+                hhk.write("        <param name=\"Name\" value=\"%s\">\n" % ireplace(urldecode(i).replace(".1", ""), ".html", "").replace("\"", "&quot;"))
+                hhk.write("        <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, i)))
+                hhk.write("      </object>\n")
+                hhc.write(idt + "<li><object type=\"text/sitemap\">\n")
+                hhc.write(idt + "  <param name=\"Name\" value=\"%s\">\n" % ireplace(urldecode(i).replace(".1", ""), ".html", "").replace("\"", "&quot;"))
+                hhc.write(idt + "  <param name=\"Local\" value=\"%s\">\n" % urldecode(os.path.join(dirname, i)))
+                hhc.write(idt + "</object>\n")
+    # Close the files.
+    if reference: hhc.write("      </ul>\n")
+    hhk.write("    </ul>\n  </body>\n</html>")
+    hhc.write("    </ul>\n  </body>\n</html>")
+    hhk.close()
+    hhc.close()
+    hhp.close()
+    # Now, execute the command to compile the files.
+    if os.path.isdir("C:\Program Files\HTML Help Workshop"):
+        cmd = "\"C:\Program Files\HTML Help Workshop\hhc.exe\" %s.hhp" % base
+    else:
+        cmd = "hhc \"%s.hhp\"" % base
+    print cmd
+    os.system(cmd)
+    if not KEEPTEMP:
+        if os.path.isfile("%s.hhp" % base): os.remove("%s.hhp" % base)
+        if os.path.isfile("%s.hhc" % base): os.remove("%s.hhc" % base)
+        if os.path.isfile("%s.hhk" % base): os.remove("%s.hhk" % base)
+        if os.path.isfile("%s.chw" % base): os.remove("%s.chw" % base)
+    if not os.path.isfile(base + ".chm"):
+        print "An error has occurred!"
+        if __name__ == "__main__":
+            exit(1)
+        else:
+            return False
+    if __name__ != "__main__":
+        return True
+
+def makeManualCHM(outputfile, dirname, title):
+    """Same as makeCHM, but suitable for converting the Panda3D manual."""
+    return makeCHM(outputfile, dirname, title, special = "manual")
+
+def makeReferenceCHM(outputfile, dirname, title):
+    """Same as makeCHM, but converts a structure resembling that of the Panda3D reference."""
+    return makeCHM(outputfile, dirname, title, special = "reference")
+
+if __name__ == "__main__":
+    # Extract a version number, if we have one.
+    VERSION = None
+    try:
+        f = file("built/include/pandaVersion.h","r")
+        pattern = re.compile('^\s*[#]\s*define\s+PANDA_VERSION_STR\s+["]([0-9.]+)["]')
+        for line in f:
+            match = pattern.match(line,0)
+            if (match):
+                VERSION = match.group(1)
+                break
+        f.close()
+    except:
+        # If not, we don't care at all.
+        pass
+    
+    # Now, make CHM's for both the manual and reference, if we have them.
+    if not os.path.isdir("manual"):
+        print "No directory named 'manual' found"
+    else:
+        print "Making CHM file for manual..."
+        if VERSION == None:
+            makeManualCHM("manual.chm", "manual", "Panda3D Manual")
+        else:
+            makeManualCHM("manual-%s.chm" % VERSION, "manual", "Panda3D %s Manual" % VERSION)
+    
+    if not os.path.isdir("reference"):
+        print "No directory named 'reference' found"
+    else:
+        print "Making CHM file for API reference..."
+        if VERSION == None:
+            makeReferenceCHM("reference.chm", "reference", "Panda3D Reference")
+        else:
+            makeReferenceCHM("reference-%s.chm" % VERSION, "reference", "Panda3D %s Reference" % VERSION)
+    
+    print "Done!"
+

+ 26 - 0
makepanda/makedocs.bat

@@ -0,0 +1,26 @@
+@echo off
+
+REM
+REM Verify that we can find the 'makedocs' python script
+REM and the python interpreter.  If we can find both, then
+REM run 'makedocs'.
+REM
+
+if not exist makepanda\makedocs.py goto :missing1
+if not exist thirdparty\win-python\python.exe goto :missing2
+thirdparty\win-python\python.exe makepanda\makedocs.py %*
+goto done
+
+:missing1
+  echo You need to change directory to the root of the panda source tree
+  echo before invoking makedocs.
+  goto done
+
+:missing2
+  echo You seem to be missing the 'thirdparty' directory.  You probably checked
+  echo the source code out from sourceforge.  The sourceforge repository is
+  echo missing the 'thirdparty' directory.  You will need to supplement the
+  echo code by downloading the 'thirdparty' directory from panda3d.etc.cmu.edu
+  goto done
+
+:done

+ 77 - 0
makepanda/makedocs.py

@@ -0,0 +1,77 @@
+########################################################################
+##
+## Win32 Usage: makepanda\makedocs.bat
+## Linux Usage: makepanda/makedocs.py
+##
+########################################################################
+
+import sys,os,re
+sys.path = ["direct/src/directscripts"] + sys.path
+import gendocs
+
+########################################################################
+##
+## Some handy utility functions.
+##
+########################################################################
+
+def MakeDirectory(path):
+    if os.path.isdir(path): return 0
+    os.mkdir(path)
+
+########################################################################
+##
+## Read the version number from built/include/pandaVersion.h
+##
+########################################################################
+
+VERSION="0.0.0"
+try:
+    f = file("built/include/pandaVersion.h","r")
+    pattern = re.compile('^\s*[#]\s*define\s+PANDA_VERSION_STR\s+["]([0-9.]+)["]')
+    for line in f:
+        match = pattern.match(line,0)
+        if (match):
+            VERSION = match.group(1)
+            break
+    f.close()
+except: sys.exit("Cannot read version number from built/include/pandaVersion.h")
+
+print "Generating docs for "+VERSION
+
+########################################################################
+##
+## Make sure panda has been built.
+##
+########################################################################
+
+if (os.path.isfile("built/pandac/input/libpgraph.in")==0) or (os.path.isfile("built/pandac/input/libputil.in")==0):
+    sys.exit("Cannot read the interrogate-output files in built/pandac/input")
+
+########################################################################
+##
+## Generate the PHP version.
+##
+## The manual is in the form of a bunch of HTML files that can be
+## included by a PHP script called "/apiref.php".
+##
+########################################################################
+
+MakeDirectory("referphp")
+gendocs.generate(VERSION, "built/pandac/input", "direct", "referphp", "", "", "/apiref.php?page=", "")
+
+########################################################################
+##
+## Generate the HTML version.
+##
+## The manual is in the form of a bunch of standalone HTML files
+## that contain links to each other.
+##
+########################################################################
+
+HEADER = "<html><head></head><body>\n"
+FOOTER = "</body></html>\n"
+
+MakeDirectory("reference")
+gendocs.generate(VERSION, "built/pandac/input", "direct", "reference", HEADER, FOOTER, "", ".html")
+

+ 28 - 0
makepanda/makepanda.bat

@@ -0,0 +1,28 @@
+@echo off
+
+REM
+REM Verify that we can find the 'makepanda' python script
+REM and the python interpreter.  If we can find both, then
+REM run 'makepanda'.
+REM
+
+if not exist makepanda\makepanda.py goto :missing1
+if not exist thirdparty\win-python\python.exe goto :missing2
+thirdparty\win-python\python.exe makepanda\makepanda.py %*
+if errorlevel 1 if x%1 == x--slavebuild exit 1
+goto done
+
+:missing1
+  echo You need to change directory to the root of the panda source tree
+  echo before invoking makepanda.  For further install instructions, read 
+  echo the installation instructions in the file doc/INSTALL-MK.
+  goto done
+
+:missing2
+  echo You seem to be missing the 'thirdparty' directory.  You probably checked
+  echo the source code out from sourceforge.  The sourceforge repository is
+  echo missing the 'thirdparty' directory.  You will need to supplement the
+  echo code by downloading the 'thirdparty' directory from panda3d.etc.cmu.edu
+  goto done
+
+:done

+ 3839 - 0
makepanda/makepanda.py

@@ -0,0 +1,3839 @@
+#!/usr/bin/python
+########################################################################
+#
+# Caution: there are two separate, independent build systems:
+# 'makepanda', and 'ppremake'.  Use one or the other, do not attempt
+# to use both.  This file is part of the 'makepanda' system.
+#
+# To build panda using this script, type 'makepanda.py' on unix
+# or 'makepanda.bat' on windows, and examine the help-text.
+# Then run the script again with the appropriate options to compile
+# panda3d.
+#
+########################################################################
+
+import sys,os,platform,time,stat,string,re,getopt,cPickle,fnmatch,threading,Queue,signal,shutil
+
+from makepandacore import *
+
+########################################################################
+##
+## PARSING THE COMMAND LINE OPTIONS
+##
+## You might be tempted to change the defaults by editing them
+## here.  Don't do it.  Instead, create a script that compiles
+## panda with your preferred options.  Or, create
+## a 'makepandaPreferences' file and put it into your python path.
+##
+########################################################################
+
+COMPILER=0
+THIRDPARTYLIBS=0
+VC90CRTVERSION=""
+OPTIMIZE="3"
+INSTALLER=0
+GENMAN=0
+VERBOSE=1
+COMPRESSOR="zlib"
+THREADCOUNT=0
+
+PkgListSet(MAYAVERSIONS + MAXVERSIONS + DXVERSIONS + [
+  "PYTHON","ZLIB","PNG","JPEG","TIFF","VRPN",
+  "FMODEX","OPENAL","NVIDIACG","OPENSSL","FREETYPE",
+  "FFTW","ARTOOLKIT","SQUISH","ODE","DIRECTCAM",
+  "OPENCV","FFMPEG","FCOLLADA","PANDATOOL"
+])
+
+CheckPandaSourceTree()
+
+VERSION=ParsePandaVersion("dtool/PandaVersion.pp")
+
+LoadDependencyCache()
+
+def keyboardInterruptHandler(x,y):
+    exit("keyboard interrupt")
+
+signal.signal(signal.SIGINT, keyboardInterruptHandler)
+
+########################################################################
+##
+## Command-line parser.
+##
+## You can type "makepanda --help" to see all the options.
+##
+########################################################################
+
+def usage(problem):
+    if (problem):
+        print ""
+        print problem
+    print ""
+    print "Makepanda generates a 'built' subdirectory containing a"
+    print "compiled copy of Panda3D.  Command-line arguments are:"
+    print ""
+    print "  --help            (print the help message you're reading now)"
+    print "  --optimize X      (optimization level can be 1,2,3,4)"
+    print "  --installer       (build an installer)"
+    print "  --version         (set the panda version number)"
+    print "  --lzma            (use lzma compression when building installer)"
+    print "  --threads N       (use the multithreaded build system. see manual)"
+    print ""
+    for pkg in PkgListGet():
+        p = pkg.lower()
+        print "  --use-%-9s   --no-%-9s (enable/disable use of %s)"%(p, p, pkg)
+    print ""
+    print "  --nothing         (disable every third-party lib)"
+    print "  --everything      (enable every third-party lib)"
+    print ""
+    print "The simplest way to compile panda is to just type:"
+    print ""
+    print "  makepanda --everything"
+    print ""
+    exit("")
+
+def parseopts(args):
+    global OPTIMIZE,INSTALLER,GENMAN
+    global VERSION,COMPRESSOR,VERBOSE,THREADCOUNT
+    longopts = [
+        "help",
+        "optimize=","everything","nothing","installer",
+        "version=","lzma","no-python","threads=","outputdir="]
+    anything = 0
+    for pkg in PkgListGet(): longopts.append("no-"+pkg.lower())
+    for pkg in PkgListGet(): longopts.append("use-"+pkg.lower())
+    try:
+        opts, extras = getopt.getopt(args, "", longopts)
+        for option,value in opts:
+            if (option=="--help"): raise "usage"
+            elif (option=="--optimize"): OPTIMIZE=value
+            elif (option=="--installer"): INSTALLER=1
+            elif (option=="--genman"): GENMAN=1
+            elif (option=="--everything"): PkgEnableAll()
+            elif (option=="--nothing"): PkgDisableAll()
+            elif (option=="--threads"): THREADCOUNT=int(value)
+            elif (option=="--outputdir"): SetOutputDir(value.strip())
+            elif (option=="--version"):
+                VERSION=value
+                if (len(VERSION.split(".")) != 3): raise "usage"
+            elif (option=="--lzma"): COMPRESSOR="lzma"
+            else:
+                for pkg in PkgListGet():
+                    if (option=="--use-"+pkg.lower()):
+                        PkgEnable(pkg)
+                        break
+                for pkg in PkgListGet():
+                    if (option=="--no-"+pkg.lower()):
+                        PkgDisable(pkg)
+                        break
+            anything = 1
+    except: usage(0)
+    if (anything==0): usage(0)
+    if   (OPTIMIZE=="1"): OPTIMIZE=1
+    elif (OPTIMIZE=="2"): OPTIMIZE=2
+    elif (OPTIMIZE=="3"): OPTIMIZE=3
+    elif (OPTIMIZE=="4"): OPTIMIZE=4
+    else: usage("Invalid setting for OPTIMIZE")
+
+parseopts(sys.argv[1:])
+
+########################################################################
+##
+## Locate various SDKs.
+##
+########################################################################
+
+MakeBuildTree()
+
+SdkLocateDirectX()
+SdkLocateMaya()
+SdkLocateMax()
+SdkLocateMacOSX()
+SdkLocatePython()
+SdkLocateVisualStudio()
+SdkLocateMSPlatform()
+
+SdkAutoDisableDirectX()
+SdkAutoDisableMaya()
+SdkAutoDisableMax()
+
+########################################################################
+##
+## Choose a Compiler.
+##
+## This should also set up any environment variables needed to make
+## the compiler work.
+##
+########################################################################
+
+if (sys.platform == "win32"):
+    SetupVisualStudioEnviron()
+    COMPILER="MSVC"
+    THIRDPARTYLIBS="thirdparty/win-libs-vc9/"
+    VC90CRTVERSION = GetVC90CRTVersion(THIRDPARTYLIBS+"extras/bin/Microsoft.VC90.CRT.manifest")
+else:
+    CheckLinkerLibraryPath()
+    COMPILER="LINUX"
+    if (sys.platform == "darwin"):
+        THIRDPARTYLIBS="thirdparty/darwin-libs-a/"
+    elif (platform.architecture()[0] == "64bit"):
+        THIRDPARTYLIBS="thirdparty/linux-libs-x64/"
+    else:
+        THIRDPARTYLIBS="thirdparty/linux-libs-a/"
+    VC90CRTVERSION = 0
+
+##########################################################################################
+#
+# Disable packages that are currently broken or not supported.
+#
+##########################################################################################
+
+if (sys.platform == "win32"):
+     os.environ["BISON_SIMPLE"] = "thirdparty/win-util/bison.simple"
+
+if (INSTALLER) and (PkgSkip("PYTHON")):
+    exit("Cannot build installer without python")
+
+########################################################################
+##
+## External includes, external libraries, and external defsyms.
+##
+########################################################################
+
+if (COMPILER=="MSVC"):
+    if (PkgSkip("PYTHON")==0):
+        IncDirectory("ALWAYS", "thirdparty/win-python/include")
+        LibDirectory("ALWAYS", "thirdparty/win-python/libs")
+    for pkg in PkgListGet():
+        if (PkgSkip(pkg)==0):
+            if (pkg[:4]=="MAYA"):
+                IncDirectory(pkg, SDK[pkg]      + "/include")
+                DefSymbol(pkg, "MAYAVERSION", pkg)
+            elif (pkg[:3]=="MAX"):
+                IncDirectory(pkg, SDK[pkg]      + "/include")
+                IncDirectory(pkg, SDK[pkg+"CS"] + "/include")
+                DefSymbol(pkg, "MAX", pkg)
+            elif (pkg[:2]=="DX"):
+                IncDirectory(pkg, SDK[pkg]      + "/include")
+            else:
+                IncDirectory(pkg, "thirdparty/win-libs-vc9/" + pkg.lower() + "/include")
+    for pkg in DXVERSIONS:
+        if (PkgSkip(pkg)==0):
+            vnum=pkg[2:]
+            LibDirectory(pkg, SDK[pkg] + '/lib/x86')
+            LibDirectory(pkg, SDK[pkg] + '/lib')
+            LibName(pkg, 'd3dVNUM.lib'.replace("VNUM", vnum))
+            LibName(pkg, 'd3dxVNUM.lib'.replace("VNUM", vnum))
+            LibName(pkg, 'dxerrVNUM.lib'.replace("VNUM", vnum))
+            LibName(pkg, 'ddraw.lib')
+            LibName(pkg, 'dxguid.lib')
+    LibName("WINSOCK", "wsock32.lib")
+    LibName("WINSOCK2", "wsock32.lib")
+    LibName("WINSOCK2", "ws2_32.lib")
+    LibName("WINCOMCTL", "comctl32.lib")
+    LibName("WINCOMDLG", "comdlg32.lib")
+    LibName("WINUSER", "user32.lib")
+    LibName("WINMM", "winmm.lib")
+    LibName("WINIMM", "imm32.lib")
+    LibName("WINKERNEL", "kernel32.lib")
+    LibName("WINOLDNAMES", "oldnames.lib")
+    LibName("WINSHELL", "shell32.lib")
+    LibName("WINGDI", "gdi32.lib")
+    LibName("ADVAPI", "advapi32.lib")
+    LibName("GLUT", "opengl32.lib")
+    LibName("GLUT", "glu32.lib")
+    if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "strmiids.lib")
+    if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "quartz.lib")
+    if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbc32.lib")
+    if (PkgSkip("DIRECTCAM")==0): LibName("DIRECTCAM", "odbccp32.lib")
+    if (PkgSkip("PNG")==0):      LibName("PNG",      "thirdparty/win-libs-vc9/png/lib/libpandapng.lib")
+    if (PkgSkip("JPEG")==0):     LibName("JPEG",     "thirdparty/win-libs-vc9/jpeg/lib/libpandajpeg.lib")
+    if (PkgSkip("TIFF")==0):     LibName("TIFF",     "thirdparty/win-libs-vc9/tiff/lib/libpandatiff.lib")
+    if (PkgSkip("ZLIB")==0):     LibName("ZLIB",     "thirdparty/win-libs-vc9/zlib/lib/libpandazlib1.lib")
+    if (PkgSkip("VRPN")==0):     LibName("VRPN",     "thirdparty/win-libs-vc9/vrpn/lib/vrpn.lib")
+    if (PkgSkip("VRPN")==0):     LibName("VRPN",     "thirdparty/win-libs-vc9/vrpn/lib/quat.lib")
+    if (PkgSkip("FMODEX")==0):   LibName("FMODEX",   "thirdparty/win-libs-vc9/fmodex/lib/fmodex_vc.lib")
+    if (PkgSkip("OPENAL")==0):   LibName("OPENAL",   "thirdparty/win-libs-vc9/openal/lib/pandaopenal32.lib")
+    if (PkgSkip("NVIDIACG")==0): LibName("CGGL",     "thirdparty/win-libs-vc9/nvidiacg/lib/cgGL.lib")
+    if (PkgSkip("NVIDIACG")==0): LibName("CGDX9",    "thirdparty/win-libs-vc9/nvidiacg/lib/cgD3D9.lib")
+    if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", "thirdparty/win-libs-vc9/nvidiacg/lib/cg.lib")
+    if (PkgSkip("OPENSSL")==0):  LibName("OPENSSL",  "thirdparty/win-libs-vc9/openssl/lib/libpandassl.lib")
+    if (PkgSkip("OPENSSL")==0):  LibName("OPENSSL",  "thirdparty/win-libs-vc9/openssl/lib/libpandaeay.lib")
+    if (PkgSkip("FREETYPE")==0): LibName("FREETYPE", "thirdparty/win-libs-vc9/freetype/lib/freetype.lib")
+    if (PkgSkip("FFTW")==0):     LibName("FFTW",     "thirdparty/win-libs-vc9/fftw/lib/rfftw.lib")        
+    if (PkgSkip("FFTW")==0):     LibName("FFTW",     "thirdparty/win-libs-vc9/fftw/lib/fftw.lib")        
+    if (PkgSkip("FFMPEG")==0):   LibName("FFMPEG",   "thirdparty/win-libs-vc9/ffmpeg/lib/avcodec-51-panda.lib")
+    if (PkgSkip("FFMPEG")==0):   LibName("FFMPEG",   "thirdparty/win-libs-vc9/ffmpeg/lib/avformat-50-panda.lib")
+    if (PkgSkip("FFMPEG")==0):   LibName("FFMPEG",   "thirdparty/win-libs-vc9/ffmpeg/lib/avutil-49-panda.lib")
+    if (PkgSkip("ARTOOLKIT")==0):LibName("ARTOOLKIT","thirdparty/win-libs-vc9/artoolkit/lib/libAR.lib")
+    if (PkgSkip("ODE")==0):      LibName("ODE",      "thirdparty/win-libs-vc9/ode/lib/ode.lib")
+    if (PkgSkip("FCOLLADA")==0): LibName("FCOLLADA", "thirdparty/win-libs-vc9/fcollada/lib/FCollada.lib")
+    if (PkgSkip("SQUISH")==0):   LibName("SQUISH",   "thirdparty/win-libs-vc9/squish/lib/squish.lib")
+    if (PkgSkip("OPENCV")==0):   LibName("OPENCV",   "thirdparty/win-libs-vc9/opencv/lib/cv.lib")
+    if (PkgSkip("OPENCV")==0):   LibName("OPENCV",   "thirdparty/win-libs-vc9/opencv/lib/highgui.lib")
+    if (PkgSkip("OPENCV")==0):   LibName("OPENCV",   "thirdparty/win-libs-vc9/opencv/lib/cvaux.lib")
+    if (PkgSkip("OPENCV")==0):   LibName("OPENCV",   "thirdparty/win-libs-vc9/opencv/lib/ml.lib")
+    if (PkgSkip("OPENCV")==0):   LibName("OPENCV",   "thirdparty/win-libs-vc9/opencv/lib/cxcore.lib")
+    for pkg in MAYAVERSIONS:
+        if (PkgSkip(pkg)==0):
+            LibName(pkg, SDK[pkg] + '/lib/Foundation.lib')
+            LibName(pkg, SDK[pkg] + '/lib/OpenMaya.lib')
+            LibName(pkg, SDK[pkg] + '/lib/OpenMayaAnim.lib')
+            LibName(pkg, SDK[pkg] + '/lib/OpenMayaUI.lib')
+    for pkg in MAXVERSIONS:
+        if (PkgSkip(pkg)==0):
+            LibName(pkg, SDK[pkg] +  '/lib/core.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/edmodel.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/gfx.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/geom.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/mesh.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/maxutil.lib')
+            LibName(pkg, SDK[pkg] +  '/lib/paramblk2.lib')
+
+if (COMPILER=="LINUX"):
+    if (PkgSkip("PYTHON")==0):
+        IncDirectory("ALWAYS", SDK["PYTHON"])
+    if (sys.platform == "darwin"):
+        if (PkgSkip("FREETYPE")==0):
+          IncDirectory("FREETYPE", "/usr/X11R6/include")
+          IncDirectory("FREETYPE", "/usr/X11/include/freetype2/")
+        IncDirectory("GLUT", "/usr/X11R6/include")
+    else:
+        if (PkgSkip("FREETYPE")==0): IncDirectory("FREETYPE", "/usr/include/freetype2")
+        if (os.path.exists("/usr/lib64")):
+            IncDirectory("GTK2", "/usr/lib64/glib-2.0/include")
+            IncDirectory("GTK2", "/usr/lib64/gtk-2.0/include")
+    PkgConfigEnable("GTK2", "gtk+-2.0")
+    
+    if (sys.platform == "darwin"):
+        pkgs = ["VRPN", "FFTW", "FMODEX", "ARTOOLKIT", "ODE", "OPENCV", "FCOLLADA", "SQUISH", "FFMPEG", "PNG", "JPEG", "TIFF"]
+    else:
+        pkgs = ["VRPN", "FFTW", "FMODEX", "ARTOOLKIT", "ODE", "OPENCV", "FCOLLADA", "SQUISH", "NVIDIACG", "FFMPEG", "OPENAL"]
+    for pkg in pkgs:
+        if (PkgSkip(pkg)==0):
+            if (os.path.isdir(THIRDPARTYLIBS + pkg.lower())):
+                IncDirectory(pkg, THIRDPARTYLIBS + pkg.lower() + "/include")
+                LibDirectory(pkg, THIRDPARTYLIBS + pkg.lower() + "/lib")
+            else:
+                WARNINGS.append("I cannot locate SDK for " + pkg + " in thirdparty directory.")
+                WARNINGS.append("I have automatically added this command-line option: --no-"+pkg.lower())
+                PkgDisable(pkg)
+    
+    for pkg in MAYAVERSIONS:
+        if (PkgSkip(pkg)==0):
+            LibDirectory(pkg, SDK[pkg] + '/lib')
+            IncDirectory(pkg, SDK[pkg] + "/include")
+            DefSymbol(pkg, "MAYAVERSION", pkg)
+    
+    if (sys.platform == "darwin"):
+      if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", "-framework Cg")
+      if (PkgSkip("OPENAL")==0):   LibName("OPENAL", "-framework OpenAL")
+      if (PkgSkip("OPENSSL")==0):  LibName("OPENSSL",  "-lcrypto")
+      if (PkgSkip("TIFF")==0):     LibName("TIFF",  "-lpandatiff")
+    else:
+      if (PkgSkip("NVIDIACG")==0): LibName("CGGL", "-lCgGL")
+      if (PkgSkip("NVIDIACG")==0): LibName("NVIDIACG", "-lCg")
+      if (PkgSkip("OPENAL")==0):   LibName("OPENAL", "-lpandaopenal")
+      if (PkgSkip("TIFF")==0):     LibName("TIFF", "-ltiff")
+    if (PkgSkip("SQUISH")==0):     LibName("SQUISH", "-lsquish")
+    if (PkgSkip("FCOLLADA")==0):   LibName("FCOLLADA", "-lFCollada")
+    if (PkgSkip("FMODEX")==0):     LibName("FMODEX", "-lfmodex")
+    if (PkgSkip("FFMPEG")==0):     LibName("FFMPEG", "-lavutil")
+    if (PkgSkip("FFMPEG")==0):     LibName("FFMPEG", "-lavformat")
+    if (PkgSkip("FFMPEG")==0):     LibName("FFMPEG", "-lavcodec")
+    if (PkgSkip("FFMPEG")==0):     LibName("FFMPEG", "-lavformat")
+    if (PkgSkip("FFMPEG")==0):     LibName("FFMPEG", "-lavutil")
+    if (PkgSkip("ZLIB")==0):       LibName("ZLIB", "-lz")
+    if (PkgSkip("PNG")==0):        LibName("PNG", "-lpng")
+    if (PkgSkip("JPEG")==0):       LibName("JPEG", "-ljpeg")
+    if (PkgSkip("OPENSSL")==0):    LibName("OPENSSL",  "-lssl")
+    if (PkgSkip("FREETYPE")==0):   LibName("FREETYPE", "-lfreetype")
+    if (PkgSkip("VRPN")==0):       LibName("VRPN", "-lvrpn")
+    if (PkgSkip("VRPN")==0):       LibName("VRPN", "-lquat")
+    if (PkgSkip("FFTW")==0):       LibName("FFTW", "-lrfftw")
+    if (PkgSkip("FFTW")==0):       LibName("FFTW", "-lfftw")
+    if (PkgSkip("ARTOOLKIT")==0):  LibName("ARTOOLKIT", "-lAR")
+    if (PkgSkip("ODE")==0):        LibName("ODE", "-lode")
+    if (PkgSkip("OPENCV")==0):     LibName("OPENCV", "-lcv")
+    if (PkgSkip("OPENCV")==0):     LibName("OPENCV", "-lhighgui")
+    if (PkgSkip("OPENCV")==0):     LibName("OPENCV", "-lcvaux")
+    if (PkgSkip("OPENCV")==0):     LibName("OPENCV", "-lml")
+    if (PkgSkip("OPENCV")==0):     LibName("OPENCV", "-lcxcore")
+    if (sys.platform == "darwin"):
+        if (PkgSkip("OPENCV")==0):   LibName("OPENCV", "-framework QuickTime")
+        LibName("AGL", "-framework AGL")
+        LibName("CARBON", "-framework Carbon")
+        LibName("COCOA", "-framework Cocoa")
+        LibName("GLUT", "-framework OpenGL")
+        LibName("GLUT", "-lOSMesa")
+        # Fix for a bug in OSX:
+        LibName("GLUT", "-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib")
+    else:
+        LibName("GLUT", "-lGL")
+        LibName("GLUT", "-lGLU")
+    
+    for pkg in MAYAVERSIONS:
+        if (PkgSkip(pkg)==0):
+            LibName(pkg, "-Wl,-rpath," + SDK[pkg] + "/lib")
+            if (sys.platform != "darwin"):
+                LibName(pkg, "-lOpenMayalib")
+            LibName(pkg, "-lOpenMaya")
+            LibName(pkg, "-lOpenMayaAnim")
+            LibName(pkg, "-lAnimSlice")
+            LibName(pkg, "-lDeformSlice")
+            LibName(pkg, "-lModifiers")
+            LibName(pkg, "-lDynSlice")
+            LibName(pkg, "-lKinSlice")
+            LibName(pkg, "-lModelSlice")
+            LibName(pkg, "-lNurbsSlice")
+            LibName(pkg, "-lPolySlice")
+            LibName(pkg, "-lProjectSlice")
+            LibName(pkg, "-lImage")
+            LibName(pkg, "-lShared")
+            LibName(pkg, "-lTranslators")
+            LibName(pkg, "-lDataModel")
+            LibName(pkg, "-lRenderModel")
+            LibName(pkg, "-lNurbsEngine")
+            LibName(pkg, "-lDependEngine")
+            LibName(pkg, "-lCommandEngine")
+            LibName(pkg, "-lFoundation")
+            LibName(pkg, "-lIMFbase")
+            if (sys.platform == "darwin"):
+                LibName(pkg, "-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib")
+
+DefSymbol("WITHINPANDA", "WITHIN_PANDA", "1")
+IncDirectory("ALWAYS", GetOutputDir()+"/tmp")
+IncDirectory("ALWAYS", GetOutputDir()+"/include")
+
+########################################################################
+##
+## Give a Status Report on Command-Line Options
+##
+########################################################################
+
+def printStatus(header,warnings):
+    global VERBOSE
+    if VERBOSE >= -2:
+        print ""
+        print "-------------------------------------------------------------------"
+        print header
+        tkeep = ""
+        tomit = ""
+        for x in PkgListGet():
+            if (PkgSkip(x)==0): tkeep = tkeep + x + " "
+            else:                  tomit = tomit + x + " "
+        print "Makepanda: Compiler:",COMPILER
+        print "Makepanda: Optimize:",OPTIMIZE
+        print "Makepanda: Keep Pkg:",tkeep
+        print "Makepanda: Omit Pkg:",tomit
+        print "Makepanda: Verbose vs. Quiet Level:",VERBOSE
+        if (GENMAN): print "Makepanda: Generate API reference manual"
+        else       : print "Makepanda: Don't generate API reference manual"
+        if (sys.platform == "win32"):
+            if INSTALLER:  print "Makepanda: Build installer, using",COMPRESSOR
+            else        :  print "Makepanda: Don't build installer"
+        print "Makepanda: Version ID: "+VERSION
+        for x in warnings: print "Makepanda: "+x
+        print "-------------------------------------------------------------------"
+        print ""
+        sys.stdout.flush()
+
+printStatus("Makepanda Initial Status Report", WARNINGS)
+
+########################################################################
+##
+## CompileCxx
+##
+########################################################################
+
+def CompileCxx(obj,src,opts):
+    ipath = GetListOption(opts, "DIR:")
+    if (COMPILER=="MSVC"):
+        cmd = "cl /wd4996 /Fo" + obj + " /nologo /c "
+        for x in ipath: cmd = cmd + " /I" + x
+        for (opt,dir) in INCDIRECTORIES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' /I"' + dir + '"'
+        for (opt,var,val) in DEFSYMBOLS:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' /D' + var + "=" + val
+        if (opts.count('NOFLOATWARN')): cmd = cmd + ' /wd4244 /wd4305'
+        if (opts.count('MSFORSCOPE')): cmd = cmd + ' /Zc:forScope-'
+        optlevel = GetOptimizeOption(opts,OPTIMIZE)
+        if (optlevel==1): cmd = cmd + " /MD /Zi /RTCs /GS"
+        if (optlevel==2): cmd = cmd + " /MD /Zi "
+        if (optlevel==3): cmd = cmd + " /MD /Zi /O2 /Ob2 /DFORCE_INLINING "
+        if (optlevel==4): cmd = cmd + " /MD /Zi /Ox /Ob2 /DFORCE_INLINING /DNDEBUG /GL "
+        cmd = cmd + " /Fd" + obj[:-4] + ".pdb"
+        building = GetValueOption(opts, "BUILDING:")
+        if (building): cmd = cmd + " /DBUILDING_" + building
+        cmd = cmd + " /EHsc /Zm300 /DWIN32_VC /DWIN32 /W3 " + src
+        oscmd(cmd)
+    if (COMPILER=="LINUX"):
+        if (src.endswith(".c")): cmd = 'gcc -fPIC -c -o ' + obj
+        else:                    cmd = 'g++ -ftemplate-depth-30 -fPIC -c -o ' + obj
+        for (opt, dir) in INCDIRECTORIES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' -I"' + dir + '"'
+        for (opt,var,val) in DEFSYMBOLS:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' -D' + var + '=' + val
+        for x in ipath: cmd = cmd + ' -I' + x
+        if (sys.platform == "darwin"):
+            cmd = cmd + " -isysroot " + SDK["MACOSX"] + " -arch i386 -arch ppc"
+        optlevel = GetOptimizeOption(opts,OPTIMIZE)
+        if (optlevel==1): cmd = cmd + " -g"
+        if (optlevel==2): cmd = cmd + " -O1"
+        if (optlevel==3): cmd = cmd + " -O2"
+        if (optlevel==4): cmd = cmd + " -O2 -DNDEBUG"
+        building = GetValueOption(opts, "BUILDING:")
+        if (building): cmd = cmd + " -DBUILDING_" + building
+        cmd = cmd + ' ' + src
+        oscmd(cmd)
+
+########################################################################
+##
+## CompileBison
+##
+########################################################################
+
+def CompileBison(wobj, wsrc, opts):
+    ifile = os.path.basename(wsrc)
+    wdsth = GetOutputDir()+"/include/" + ifile[:-4] + ".h"
+    wdstc = GetOutputDir()+"/tmp/" + ifile + ".cxx"
+    pre = GetValueOption(opts, "BISONPREFIX_")
+    if (COMPILER == "MSVC"):
+        oscmd('thirdparty/win-util/bison -y -d -o'+GetOutputDir()+'/tmp/'+ifile+'.c -p '+pre+' '+wsrc)
+        CopyFile(wdstc, GetOutputDir()+"/tmp/"+ifile+".c")
+        CopyFile(wdsth, GetOutputDir()+"/tmp/"+ifile+".h")
+    if (COMPILER == "LINUX"):
+        oscmd("bison -y -d -o"+GetOutputDir()+"/tmp/"+ifile+".c -p "+pre+" "+wsrc)
+        CopyFile(wdstc, GetOutputDir()+"/tmp/"+ifile+".c")
+        CopyFile(wdsth, GetOutputDir()+"/tmp/"+ifile+".h")
+    CompileCxx(wobj,wdstc,opts)
+
+########################################################################
+##
+## CompileFlex
+##
+########################################################################
+
+def CompileFlex(wobj,wsrc,opts):
+    ifile = os.path.basename(wsrc)
+    wdst = GetOutputDir()+"/tmp/"+ifile+".cxx"
+    pre = GetValueOption(opts, "BISONPREFIX_")
+    dashi = opts.count("FLEXDASHI")
+    if (COMPILER == "MSVC"):
+        if (dashi): oscmd("thirdparty/win-util/flex -i -P" + pre + " -o"+wdst+" "+wsrc)
+        else:       oscmd("thirdparty/win-util/flex    -P" + pre + " -o"+wdst+" "+wsrc)
+    if (COMPILER == "LINUX"):
+        if (dashi): oscmd("flex -i -P" + pre + " -o"+wdst+" "+wsrc)
+        else:       oscmd("flex    -P" + pre + " -o"+wdst+" "+wsrc)
+    CompileCxx(wobj,wdst,opts)
+
+########################################################################
+##
+## CompileIgate
+##
+########################################################################
+
+def CompileIgate(woutd,wsrc,opts):
+    outbase = os.path.basename(woutd)[:-3]
+    woutc = GetOutputDir()+"/tmp/"+outbase+"_igate.cxx"
+    wobj = FindLocation(outbase + "_igate.obj", [])
+    srcdir = GetValueOption(opts, "SRCDIR:")
+    module = GetValueOption(opts, "IMOD:")
+    library = GetValueOption(opts, "ILIB:")
+    ipath = GetListOption(opts, "DIR:")
+    if (PkgSkip("PYTHON")):
+        WriteFile(woutc,"")
+        WriteFile(woutd,"")
+        CompileCxx(wobj,woutc,opts)
+        ConditionalWriteFile(woutd,"")
+        return
+    cmd = GetOutputDir()+"/bin/interrogate -srcdir "+srcdir+" -I"+srcdir
+    if (COMPILER=="MSVC"):
+        cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
+        #NOTE: this 1500 value is the version number for VC2008.
+        cmd = cmd + ' -D_MSC_VER=1500 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
+    if (COMPILER=="LINUX") and (platform.architecture()[0]=="64bit"):
+        cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const -D_LP64'
+    if (COMPILER=="LINUX") and (platform.architecture()[0]=="32bit"):
+        cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -D__const=const -D__i386__'
+    optlevel=GetOptimizeOption(opts,OPTIMIZE)
+    if (optlevel==1): cmd = cmd + ' '
+    if (optlevel==2): cmd = cmd + ' '
+    if (optlevel==3): cmd = cmd + ' -DFORCE_INLINING'
+    if (optlevel==4): cmd = cmd + ' -DNDEBUG -DFORCE_INLINING'
+    cmd = cmd + ' -oc ' + woutc + ' -od ' + woutd
+    cmd = cmd + ' -fnames -string -refcount -assert -python-native'
+    cmd = cmd + ' -S' + GetOutputDir() + '/include/parser-inc'
+    for x in ipath: cmd = cmd + ' -I' + x
+    for (opt,dir) in INCDIRECTORIES:
+        if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' -S"' + dir + '"'
+    for (opt,var,val) in DEFSYMBOLS:
+        if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' -D' + var + '=' + val
+    building = GetValueOption(opts, "BUILDING:")
+    if (building): cmd = cmd + " -DBUILDING_"+building
+    cmd = cmd + ' -module ' + module + ' -library ' + library
+    for x in wsrc: cmd = cmd + ' ' + os.path.basename(x)
+    oscmd(cmd)
+    CompileCxx(wobj,woutc,opts)
+    return
+
+########################################################################
+##
+## CompileImod
+##
+########################################################################
+
+def CompileImod(wobj, wsrc, opts):
+    module = GetValueOption(opts, "IMOD:")
+    library = GetValueOption(opts, "ILIB:")
+    if (COMPILER=="MSVC"):
+        woutc = wobj[:-4]+".cxx"
+    if (COMPILER=="LINUX"):
+        woutc = wobj[:-2]+".cxx"
+    if (PkgSkip("PYTHON")):
+        WriteFile(woutc,"")
+        CompileCxx(wobj,woutc,opts)
+        return
+    cmd = GetOutputDir() + '/bin/interrogate_module '
+    cmd = cmd + ' -oc ' + woutc + ' -module ' + module + ' -library ' + library + ' -python-native '
+    for x in wsrc: cmd = cmd + ' ' + x
+    oscmd(cmd)
+    CompileCxx(wobj,woutc,opts)
+    return
+
+########################################################################
+##
+## CompileLib
+##
+########################################################################
+
+def CompileLib(lib, obj, opts):
+    if (COMPILER=="MSVC"):
+        cmd = 'link /lib /nologo /OUT:' + lib
+        for x in obj: cmd = cmd + ' ' + x
+        oscmd(cmd)
+    if (COMPILER=="LINUX"):
+        if sys.platform == 'darwin':
+            cmd = 'libtool -static -o ' + lib
+        else:
+            cmd = 'ar cru ' + lib
+        for x in obj: cmd=cmd + ' ' + x
+        oscmd(cmd)
+
+########################################################################
+##
+## CompileLink
+##
+########################################################################
+
+def CompileLink(dll, obj, opts):
+    if (COMPILER=="MSVC"):
+        cmd = 'link /nologo /NOD:MFC80.LIB /NOD:MFC90.LIB /NOD:LIBCI.LIB /NOD:MSVCRTD.LIB /DEBUG '
+        cmd = cmd + " /nod:libc /nod:libcmtd /nod:atlthunk"
+        if (GetOrigExt(dll) != ".exe"): cmd = cmd + " /DLL"
+        optlevel = GetOptimizeOption(opts,OPTIMIZE)
+        if (optlevel==1): cmd = cmd + " /MAP /MAPINFO:EXPORTS"
+        if (optlevel==2): cmd = cmd + " /MAP:NUL "
+        if (optlevel==3): cmd = cmd + " /MAP:NUL "
+        if (optlevel==4): cmd = cmd + " /MAP:NUL /LTCG "
+        cmd = cmd + " /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO "
+        cmd = cmd + ' /OUT:' + dll
+        if (dll.endswith(".dll")):
+            cmd = cmd + ' /IMPLIB:' + GetOutputDir() + '/lib/'+dll[10:-4]+".lib"
+        for (opt, dir) in LIBDIRECTORIES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' /LIBPATH:"' + dir + '"'
+        for x in obj:
+            if (x.endswith(".dll")):
+                cmd = cmd + ' ' + GetOutputDir() + '/lib/' + x[10:-4] + ".lib"
+            elif (x.endswith(".lib")):
+                dname = x[:-4]+".dll"
+                if (os.path.exists(GetOutputDir()+"/bin/" + x[10:-4] + ".dll")):
+                    exit("Error: in makepanda, specify "+dname+", not "+x)
+                cmd = cmd + ' ' + x
+            elif (x.endswith(".def")):
+                cmd = cmd + ' /DEF:"' + x + '"'
+            elif (x.endswith(".dat")):
+                pass
+            else: cmd = cmd + ' ' + x
+        if (GetOrigExt(dll)==".exe"):
+            cmd = cmd + ' panda/src/configfiles/pandaIcon.obj'
+        for (opt, name) in LIBNAMES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' ' + name
+        oscmd(cmd)
+        SetVC90CRTVersion(dll+".manifest", VC90CRTVERSION)
+        mtcmd = 'mt -manifest ' + dll + '.manifest -outputresource:' + dll
+        if (dll.endswith(".exe")==0): mtcmd = mtcmd + ';2'
+        else:                          mtcmd = mtcmd + ';1'
+        oscmd(mtcmd)
+    if (COMPILER=="LINUX"):
+        if (GetOrigExt(dll)==".exe"): cmd = 'g++ -o ' + dll + ' -L' + GetOutputDir() + '/lib -L/usr/X11R6/lib'
+        else:
+            if (sys.platform == "darwin"):
+                cmd = 'g++ -undefined dynamic_lookup -dynamic -dynamiclib -o ' + dll + ' -install_name ' + GetOutputDir() + '/lib/' + os.path.basename(dll) + ' -L' + GetOutputDir() + '/lib -L/usr/X11R6/lib'
+            else:
+                cmd = 'g++ -shared -o ' + dll + ' -L' + GetOutputDir() + '/lib -L/usr/X11R6/lib'
+        for x in obj:
+            if (GetOrigExt(x) != ".dat"):
+                base = os.path.basename(x)
+                if (base[-3:]==".so") and (base[:3]=="lib"):
+                    cmd = cmd + ' -l' + base[3:-3]
+                else:
+                    cmd = cmd + ' ' + x
+        for (opt, dir) in LIBDIRECTORIES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' -L"' + dir + '"'
+        for (opt, name) in LIBNAMES:
+            if (opt=="ALWAYS") or (opts.count(opt)): cmd = cmd + ' ' + name
+        cmd = cmd + " -lpthread -ldl"
+        if (sys.platform == "darwin"):
+            cmd = cmd + " -isysroot " + SDK["MACOSX"] + " -Wl,-syslibroot," + SDK["MACOSX"] + " -arch ppc -arch i386"
+        
+        oscmd(cmd)
+
+##########################################################################################
+#
+# CompileEggPZ
+#
+##########################################################################################
+
+def CompileEggPZ(eggpz, src, opts):
+    if (src.endswith(".egg")):
+        CopyFile(eggpz[:-3], src)
+    elif (src.endswith(".flt")):
+        oscmd(GetOutputDir()+"/bin/flt2egg -ps keep -o " + eggpz[:-3] + " " + src)
+    oscmd(GetOutputDir()+"/bin/pzip " + eggpz[:-3])
+
+##########################################################################################
+#
+# CompileAnything
+#
+##########################################################################################
+
+def CompileAnything(target, inputs, opts):
+    if (opts.count("DEPENDENCYONLY")):
+        return
+    if (len(inputs)==0):
+        exit("No input files for target "+target)
+    infile = inputs[0]
+    origsuffix = GetOrigExt(target)
+    if SUFFIX_LIB.count(origsuffix):
+        return CompileLib(target, inputs, opts)
+    elif SUFFIX_DLL.count(origsuffix):
+        return CompileLink(target, inputs, opts)
+    elif (origsuffix==".in"):
+        return CompileIgate(target, inputs, opts)
+    elif (origsuffix==".pz"):
+        return CompileEggPZ(target, infile, opts)
+    elif (origsuffix==".obj"):
+        if (infile.endswith(".cxx") or infile.endswith(".c") or infile.endswith(".mm")):
+            return CompileCxx(target, infile, opts)
+        elif (infile.endswith(".yxx")):
+            return CompileBison(target, infile, opts)
+        elif (infile.endswith(".lxx")):
+            return CompileFlex(target, infile, opts)
+        elif (infile.endswith(".in")):
+            return CompileImod(target, inputs, opts)
+    exit("Don't know how to compile: "+target)
+
+##########################################################################################
+#
+# Generate dtool_config.h, prc_parameters.h, and dtool_have_xxx.dat
+#
+##########################################################################################
+
+DTOOL_CONFIG=[
+    #_Variable_________________________Windows___________________Unix__________
+    ("HAVE_PYTHON",                    '1',                      '1'),
+    ("PYTHON_FRAMEWORK",               'UNDEF',                  'UNDEF'),
+    ("COMPILE_IN_DEFAULT_FONT",        '1',                      '1'),
+    ("HAVE_MAYA",                      '1',                      '1'),
+    ("MAYA_PRE_5_0",                   'UNDEF',                  'UNDEF'),
+    ("HAVE_SOFTIMAGE",                 'UNDEF',                  'UNDEF'),
+    ("SSL_097",                        'UNDEF',                  'UNDEF'),
+    ("REPORT_OPENSSL_ERRORS",          '1',                      '1'),
+    ("HAVE_GL",                        '1',                      '1'),
+    ("HAVE_MESA",                      'UNDEF',                  'UNDEF'),
+    ("MESA_MGL",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_SGIGL",                     'UNDEF',                  'UNDEF'),
+    ("HAVE_GLX",                       'UNDEF',                  '1'),
+    ("HAVE_WGL",                       '1',                      'UNDEF'),
+    ("HAVE_DX8",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_DX9",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_CHROMIUM",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_THREADS",                   'UNDEF',                  'UNDEF'),
+    ("SIMPLE_THREADS",                 '1',                      '1'),
+    ("HAVE_AUDIO",                     '1',                      '1'),
+    ("NOTIFY_DEBUG",                   'UNDEF',                  'UNDEF'),
+    ("DO_PSTATS",                      'UNDEF',                  'UNDEF'),
+    ("DO_COLLISION_RECORDING",         'UNDEF',                  'UNDEF'),
+    ("SUPPORT_IMMEDIATE_MODE",         '1',                      '1'),
+    ("TRACK_IN_INTERPRETER",           'UNDEF',                  'UNDEF'),
+    ("DO_MEMORY_USAGE",                'UNDEF',                  'UNDEF'),
+    ("DO_PIPELINING",                  'UNDEF',                  'UNDEF'),
+    ("EXPORT_TEMPLATES",               'yes',                    'yes'),
+    ("LINK_IN_GL",                     'UNDEF',                  'UNDEF'),
+    ("LINK_IN_PHYSICS",                'UNDEF',                  'UNDEF'),
+    ("DEFAULT_PATHSEP",                '";"',                    '":"'),
+    ("WORDS_BIGENDIAN",                'UNDEF',                  'UNDEF'),
+    ("HAVE_NAMESPACE",                 '1',                      '1'),
+    ("HAVE_OPEN_MASK",                 'UNDEF',                  'UNDEF'),
+    ("HAVE_WCHAR_T",                   '1',                      '1'),
+    ("HAVE_WSTRING",                   '1',                      '1'),
+    ("HAVE_TYPENAME",                  '1',                      '1'),
+    ("SIMPLE_STRUCT_POINTERS",         '1',                      'UNDEF'),
+    ("HAVE_DINKUM",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_STL_HASH",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_GETTIMEOFDAY",              'UNDEF',                  '1'),
+    ("GETTIMEOFDAY_ONE_PARAM",         'UNDEF',                  'UNDEF'),
+    ("HAVE_GETOPT",                    'UNDEF',                  '1'),
+    ("HAVE_GETOPT_LONG_ONLY",          'UNDEF',                  '1'),
+    ("HAVE_GETOPT_H",                  'UNDEF',                  '1'),
+    ("HAVE_LINUX_INPUT_H",             'UNDEF',                  '1'),
+    ("IOCTL_TERMINAL_WIDTH",           'UNDEF',                  '1'),
+    ("HAVE_STREAMSIZE",                '1',                      '1'),
+    ("HAVE_IOS_TYPEDEFS",              '1',                      '1'),
+    ("HAVE_IOS_BINARY",                '1',                      '1'),
+    ("STATIC_INIT_GETENV",             '1',                      'UNDEF'),
+    ("HAVE_PROC_SELF_EXE",             'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_MAPS",            'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_ENVIRON",         'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_CMDLINE",         'UNDEF',                  '1'),
+    ("HAVE_GLOBAL_ARGV",               '1',                      'UNDEF'),
+    ("PROTOTYPE_GLOBAL_ARGV",          'UNDEF',                  'UNDEF'),
+    ("GLOBAL_ARGV",                    '__argv',                 'UNDEF'),
+    ("GLOBAL_ARGC",                    '__argc',                 'UNDEF'),
+    ("HAVE_IO_H",                      '1',                      'UNDEF'),
+    ("HAVE_IOSTREAM",                  '1',                      '1'),
+    ("HAVE_STRING_H",                  'UNDEF',                  '1'),
+    ("HAVE_LIMITS_H",                  'UNDEF',                  '1'),
+    ("HAVE_STDLIB_H",                  'UNDEF',                  '1'),
+    ("HAVE_MALLOC_H",                  '1',                      '1'),
+    ("HAVE_SYS_MALLOC_H",              'UNDEF',                  'UNDEF'),
+    ("HAVE_ALLOCA_H",                  'UNDEF',                  '1'),
+    ("HAVE_LOCALE_H",                  'UNDEF',                  '1'),
+    ("HAVE_MINMAX_H",                  '1',                      'UNDEF'),
+    ("HAVE_SSTREAM",                   '1',                      '1'),
+    ("HAVE_NEW",                       '1',                      '1'),
+    ("HAVE_SYS_TYPES_H",               '1',                      '1'),
+    ("HAVE_SYS_TIME_H",                'UNDEF',                  '1'),
+    ("HAVE_UNISTD_H",                  'UNDEF',                  '1'),
+    ("HAVE_UTIME_H",                   'UNDEF',                  '1'),
+    ("HAVE_GLOB_H",                    'UNDEF',                  '1'),
+    ("HAVE_DIRENT_H",                  'UNDEF',                  '1'),
+    ("HAVE_SYS_SOUNDCARD_H",           'UNDEF',                  '1'),
+    ("HAVE_RTTI",                      '1',                      '1'),
+    ("IS_LINUX",                       'UNDEF',                  '1'),
+    ("IS_OSX",                         'UNDEF',                  'UNDEF'),
+    ("GLOBAL_OPERATOR_NEW_EXCEPTIONS", 'UNDEF',                  '1'),
+    ("USE_STL_ALLOCATOR",              '1',                      '1'),
+    ("USE_MEMORY_DLMALLOC",            '1',                      'UNDEF'),
+    ("USE_MEMORY_PTMALLOC",            'UNDEF',                  'UNDEF'),
+    ("USE_MEMORY_MALLOC",              'UNDEF',                  '1'),
+    ("HAVE_ZLIB",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_PNG",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_JPEG",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_TIFF",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_VRPN",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_FMODEX",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_OPENAL",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_NVIDIACG",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_FREETYPE",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_FFTW",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_OPENSSL",                   'UNDEF',                  'UNDEF'),
+    ("HAVE_NET",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_CG",                        'UNDEF',                  'UNDEF'),
+    ("HAVE_CGGL",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_CGDX9",                     'UNDEF',                  'UNDEF'),
+    ("HAVE_FFMPEG",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_ARTOOLKIT",                 'UNDEF',                  'UNDEF'),
+    ("HAVE_ODE",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_OPENCV",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_DIRECTCAM",                 'UNDEF',                  'UNDEF'),
+    ("HAVE_SQUISH",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_FCOLLADA",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_OPENAL_FRAMEWORK",          'UNDEF',                  'UNDEF'),
+    ("PRC_SAVE_DESCRIPTIONS",          '1',                      '1'),
+]
+
+PRC_PARAMETERS=[
+    ("DEFAULT_PRC_DIR",                '"<auto>etc"',            '"<auto>etc"'),
+    ("PRC_DIR_ENVVARS",                '"PANDA_PRC_DIR"',        '"PANDA_PRC_DIR"'),
+    ("PRC_PATH_ENVVARS",               '"PANDA_PRC_PATH"',       '"PANDA_PRC_PATH"'),
+    ("PRC_PATTERNS",                   '"*.prc"',                '"*.prc"'),
+    ("PRC_ENCRYPTED_PATTERNS",         '"*.prc.pe"',             '"*.prc.pe"'),
+    ("PRC_ENCRYPTION_KEY",             '""',                     '""'),
+    ("PRC_EXECUTABLE_PATTERNS",        '""',                     '""'),
+    ("PRC_EXECUTABLE_ARGS_ENVVAR",     '"PANDA_PRC_XARGS"',      '"PANDA_PRC_XARGS"'),
+    ("PRC_PUBLIC_KEYS_FILENAME",       '""',                     '""'),
+    ("PRC_RESPECT_TRUST_LEVEL",        'UNDEF',                  'UNDEF'),
+    ("PRC_DCONFIG_TRUST_LEVEL",        '0',                      '0'),
+    ("PRC_INC_TRUST_LEVEL",            '0',                      '0'),
+]
+
+def WriteConfigSettings():
+    dtool_config={}
+    prc_parameters={}
+
+    if (sys.platform == "win32"):
+        for key,win,unix in DTOOL_CONFIG:
+            dtool_config[key] = win
+        for key,win,unix in PRC_PARAMETERS:
+            prc_parameters[key] = win
+    else:
+        for key,win,unix in DTOOL_CONFIG:
+            dtool_config[key] = unix
+        for key,win,unix in PRC_PARAMETERS:
+            prc_parameters[key] = unix
+
+    for x in PkgListGet():
+        if (dtool_config.has_key("HAVE_"+x)):
+            if (PkgSkip(x)==0):
+                dtool_config["HAVE_"+x] = '1'
+            else:
+                dtool_config["HAVE_"+x] = 'UNDEF'
+    
+    dtool_config["HAVE_NET"] = '1'
+    
+    if (PkgSkip("NVIDIACG")==0):
+        dtool_config["HAVE_CG"] = '1'
+        dtool_config["HAVE_CGGL"] = '1'
+        dtool_config["HAVE_CGDX9"] = '1'
+    
+    if (sys.platform == "darwin"):
+        dtool_config["PYTHON_FRAMEWORK"] = 'Python'
+        dtool_config["HAVE_MALLOC_H"] = 'UNDEF'
+        dtool_config["HAVE_SYS_MALLOC_H"] = '1'
+        dtool_config["HAVE_OPENAL_FRAMEWORK"] = '1'
+        dtool_config["IS_LINUX"] = 'UNDEF'
+        dtool_config["IS_OSX"] = '1'
+        dtool_config["HAVE_PROC_SELF_EXE"] = 'UNDEF'
+        dtool_config["HAVE_PROC_SELF_MAPS"] = 'UNDEF'
+        dtool_config["HAVE_PROC_SELF_CMDLINE"] = 'UNDEF'
+        dtool_config["HAVE_PROC_SELF_ENVIRON"] = 'UNDEF'
+        # OSX still doesn't always recognize the <auto> correctly.
+        prc_parameters["DEFAULT_PRC_DIR"] = '"/Applications/Panda3D/' + VERSION + '/etc"'
+    
+    if (OPTIMIZE <= 3):
+        if (dtool_config["HAVE_NET"] != 'UNDEF'):
+            dtool_config["DO_PSTATS"] = '1'
+    
+    if (OPTIMIZE <= 3):
+        dtool_config["DO_COLLISION_RECORDING"] = '1'
+    
+    #if (OPTIMIZE <= 2):
+    #    dtool_config["TRACK_IN_INTERPRETER"] = '1'
+    
+    if (OPTIMIZE <= 3):
+        dtool_config["DO_MEMORY_USAGE"] = '1'
+    
+    #if (OPTIMIZE <= 1):
+    #    dtool_config["DO_PIPELINING"] = '1'
+    
+    if (OPTIMIZE <= 3):
+        dtool_config["NOTIFY_DEBUG"] = '1'
+
+    conf = "/* prc_parameters.h.  Generated automatically by makepanda.py */\n"
+    for key in prc_parameters.keys():
+        if ((key == "DEFAULT_PRC_DIR") or (key[:4]=="PRC_")):
+            val = prc_parameters[key]
+            if (val == 'UNDEF'): conf = conf + "#undef " + key + "\n"
+            else:                conf = conf + "#define " + key + " " + val + "\n"
+            del prc_parameters[key]
+    ConditionalWriteFile(GetOutputDir() + '/include/prc_parameters.h', conf)
+
+    conf = "/* dtool_config.h.  Generated automatically by makepanda.py */\n"
+    for key in dtool_config.keys():
+        val = dtool_config[key]
+        if (val == 'UNDEF'): conf = conf + "#undef " + key + "\n"
+        else:                conf = conf + "#define " + key + " " + val + "\n"
+        del dtool_config[key]
+    ConditionalWriteFile(GetOutputDir() + '/include/dtool_config.h', conf)
+
+    for x in PkgListGet():
+        if (PkgSkip(x)): ConditionalWriteFile(GetOutputDir() + '/tmp/dtool_have_'+x.lower()+'.dat',"0\n")
+        else:            ConditionalWriteFile(GetOutputDir() + '/tmp/dtool_have_'+x.lower()+'.dat',"1\n")
+
+WriteConfigSettings()
+
+
+##########################################################################################
+#
+# Generate pandaVersion.h, pythonversion, null.cxx
+#
+##########################################################################################
+
+PANDAVERSION_H="""
+#define PANDA_MAJOR_VERSION VERSION1
+#define PANDA_MINOR_VERSION VERSION2
+#define PANDA_SEQUENCE_VERSION VERSION2
+#undef  PANDA_OFFICIAL_VERSION
+#define PANDA_VERSION NVERSION
+#define PANDA_VERSION_STR "VERSION1.VERSION2.VERSION3"
+#define PANDA_DISTRIBUTOR "makepanda"
+"""
+
+CHECKPANDAVERSION_CXX="""
+# include "dtoolbase.h"
+EXPCL_DTOOL int panda_version_VERSION1_VERSION2_VERSION3 = 0;
+"""
+
+CHECKPANDAVERSION_H="""
+# include "dtoolbase.h"
+extern EXPCL_DTOOL int panda_version_VERSION1_VERSION2_VERSION3;
+# ifndef WIN32
+/* For Windows, exporting the symbol from the DLL is sufficient; the
+      DLL will not load unless all expected public symbols are defined.
+      Other systems may not mind if the symbol is absent unless we
+      explictly write code that references it. */
+static int check_panda_version = panda_version_VERSION1_VERSION2_VERSION3;
+# endif
+"""
+def CreatePandaVersionFiles():
+    # First, move any conflicting files out of the way.
+    if os.path.isfile("dtool/src/dtoolutil/pandaVersion.h"):
+      os.rename("dtool/src/dtoolutil/pandaVersion.h", "dtool/src/dtoolutil/pandaVersion.h.moved")
+    if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.h"):
+      os.rename("dtool/src/dtoolutil/checkPandaVersion.h", "dtool/src/dtoolutil/checkPandaVersion.h.moved")
+    if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.cxx"):
+      os.rename("dtool/src/dtoolutil/checkPandaVersion.cxx", "dtool/src/dtoolutil/checkPandaVersion.cxx.moved")
+    
+    version1=int(VERSION.split(".")[0])
+    version2=int(VERSION.split(".")[1])
+    version3=int(VERSION.split(".")[2])
+    nversion=version1*1000000+version2*1000+version3
+    
+    pandaversion_h = PANDAVERSION_H.replace("VERSION1",str(version1))
+    pandaversion_h = pandaversion_h.replace("VERSION2",str(version2))
+    pandaversion_h = pandaversion_h.replace("VERSION3",str(version3))
+    pandaversion_h = pandaversion_h.replace("NVERSION",str(nversion))
+    
+    checkpandaversion_cxx = CHECKPANDAVERSION_CXX.replace("VERSION1",str(version1))
+    checkpandaversion_cxx = checkpandaversion_cxx.replace("VERSION2",str(version2))
+    checkpandaversion_cxx = checkpandaversion_cxx.replace("VERSION3",str(version3))
+    checkpandaversion_cxx = checkpandaversion_cxx.replace("NVERSION",str(nversion))
+    
+    checkpandaversion_h = CHECKPANDAVERSION_H.replace("VERSION1",str(version1))
+    checkpandaversion_h = checkpandaversion_h.replace("VERSION2",str(version2))
+    checkpandaversion_h = checkpandaversion_h.replace("VERSION3",str(version3))
+    checkpandaversion_h = checkpandaversion_h.replace("NVERSION",str(nversion))
+
+    ConditionalWriteFile(GetOutputDir()+'/include/pandaVersion.h',        pandaversion_h)
+    ConditionalWriteFile(GetOutputDir()+'/include/checkPandaVersion.cxx', checkpandaversion_cxx)
+    ConditionalWriteFile(GetOutputDir()+'/include/checkPandaVersion.h',   checkpandaversion_h)
+    ConditionalWriteFile(GetOutputDir()+"/tmp/null.cxx","")
+
+
+CreatePandaVersionFiles()
+
+##########################################################################################
+#
+# Generate direct/__init__.py
+#
+##########################################################################################
+
+DIRECTINIT="""
+import os,sys
+srcdir1 = os.path.join(__path__[0], 'src')
+srcdir2 = os.path.join(__path__[0], '..', '..', 'direct', 'src')
+if    (os.path.isdir(srcdir1)): __path__[0] = srcdir1
+elif  (os.path.isdir(srcdir2)): __path__[0] = srcdir2
+else: sys.exit("Cannot find the 'direct' tree")
+"""
+
+if (PkgSkip("PYTHON")==0):
+    ConditionalWriteFile(GetOutputDir()+'/direct/__init__.py', DIRECTINIT)
+
+##########################################################################################
+#
+# Generate the PRC files into the ETC directory.
+#
+##########################################################################################
+
+confautoprc=ReadFile("makepanda/confauto.in")
+if (os.path.isfile("makepanda/myconfig.in")):
+  configprc=ReadFile("makepanda/myconfig.in")
+else:
+  configprc=ReadFile("makepanda/config.in")
+
+if (sys.platform != "win32"):
+    confautoprc = confautoprc.replace("aux-display pandadx9","")
+    confautoprc = confautoprc.replace("aux-display pandadx8","")
+    confautoprc = confautoprc.replace("aux-display pandadx7","")
+
+ConditionalWriteFile(GetOutputDir()+"/etc/Config.prc", configprc)
+ConditionalWriteFile(GetOutputDir()+"/etc/Confauto.prc", confautoprc)
+
+##########################################################################################
+#
+# Copy the precompiled binaries and DLLs into the build.
+#
+##########################################################################################
+
+for pkg in PkgListGet():
+    if (PkgSkip(pkg)==0):
+        if (COMPILER == "MSVC"):
+            if (os.path.exists(THIRDPARTYLIBS+pkg.lower()+"/bin")):
+                CopyAllFiles(GetOutputDir()+"/bin/",THIRDPARTYLIBS+pkg.lower()+"/bin/")
+        if (COMPILER == "LINUX"):
+            if (os.path.exists(THIRDPARTYLIBS+pkg.lower()+"/lib")):
+                CopyAllFiles(GetOutputDir()+"/lib/",THIRDPARTYLIBS+pkg.lower()+"/lib/")
+if (COMPILER=="MSVC"):
+    CopyAllFiles(GetOutputDir()+"/bin/", THIRDPARTYLIBS+"extras"+"/bin/")
+if (sys.platform == "win32"):
+    if (PkgSkip("PYTHON")==0):
+        CopyFile(GetOutputDir()+'/bin/python25.dll', 'thirdparty/win-python/python25.dll')
+        CopyTree(GetOutputDir()+'/python', 'thirdparty/win-python')
+        ConditionalWriteFile(GetOutputDir()+'/python/panda.pth',"..\n../bin\n")
+
+########################################################################
+##
+## Copy various stuff into the build.
+##
+########################################################################
+
+CopyFile(GetOutputDir()+"/", "doc/LICENSE")
+CopyFile(GetOutputDir()+"/", "doc/ReleaseNotes")
+CopyAllFiles(GetOutputDir()+"/plugins/",  "pandatool/src/scripts/", ".mel")
+CopyAllFiles(GetOutputDir()+"/plugins/",  "pandatool/src/scripts/", ".ms")
+if (PkgSkip("PYTHON")==0 and os.path.isdir("thirdparty/Pmw")):
+    CopyTree(GetOutputDir()+'/Pmw',         'thirdparty/Pmw')
+ConditionalWriteFile(GetOutputDir()+'/include/ctl3d.h', '/* dummy file to make MAX happy */')
+
+########################################################################
+#
+# Copy header files to the built/include/parser-inc directory.
+#
+########################################################################
+
+CopyAllFiles(GetOutputDir()+'/include/parser-inc/','dtool/src/parser-inc/')
+CopyAllFiles(GetOutputDir()+'/include/parser-inc/openssl/','dtool/src/parser-inc/')
+CopyAllFiles(GetOutputDir()+'/include/parser-inc/netinet/','dtool/src/parser-inc/')
+CopyFile(GetOutputDir()+'/include/parser-inc/Cg/','dtool/src/parser-inc/cg.h')
+CopyFile(GetOutputDir()+'/include/parser-inc/Cg/','dtool/src/parser-inc/cgGL.h')
+
+########################################################################
+#
+# Transfer all header files to the built/include directory.
+#
+########################################################################
+
+CopyAllHeaders('dtool/src/dtoolbase')
+CopyAllHeaders('dtool/src/dtoolutil', skip=["pandaVersion.h", "checkPandaVersion.h"])
+CopyAllHeaders('dtool/metalibs/dtool')
+CopyAllHeaders('dtool/src/cppparser')
+CopyAllHeaders('dtool/src/prc')
+CopyAllHeaders('dtool/src/dconfig')
+CopyAllHeaders('dtool/src/interrogatedb')
+CopyAllHeaders('dtool/metalibs/dtoolconfig')
+CopyAllHeaders('dtool/src/pystub')
+CopyAllHeaders('dtool/src/interrogate')
+CopyAllHeaders('dtool/src/test_interrogate')
+CopyAllHeaders('panda/src/putil')
+CopyAllHeaders('panda/src/pandabase')
+CopyAllHeaders('panda/src/express')
+CopyAllHeaders('panda/src/downloader')
+CopyAllHeaders('panda/metalibs/pandaexpress')
+CopyAllHeaders('panda/src/pipeline')
+CopyAllHeaders('panda/src/putil')
+CopyAllHeaders('dtool/src/prckeys')
+CopyAllHeaders('panda/src/audio')
+CopyAllHeaders('panda/src/event')
+CopyAllHeaders('panda/src/linmath')
+CopyAllHeaders('panda/src/mathutil')
+CopyAllHeaders('panda/src/gsgbase')
+CopyAllHeaders('panda/src/pnmimage')
+CopyAllHeaders('panda/src/nativenet')
+CopyAllHeaders('panda/src/net')
+CopyAllHeaders('panda/src/pstatclient')
+CopyAllHeaders('panda/src/gobj')
+CopyAllHeaders('panda/src/movies')
+CopyAllHeaders('panda/src/lerp')
+CopyAllHeaders('panda/src/pgraphnodes')
+CopyAllHeaders('panda/src/pgraph')
+CopyAllHeaders('panda/src/cull')
+CopyAllHeaders('panda/src/effects')
+CopyAllHeaders('panda/src/chan')
+CopyAllHeaders('panda/src/char')
+CopyAllHeaders('panda/src/dgraph')
+CopyAllHeaders('panda/src/display')
+CopyAllHeaders('panda/src/device')
+CopyAllHeaders('panda/src/pnmtext')
+CopyAllHeaders('panda/src/text')
+CopyAllHeaders('panda/src/grutil')
+CopyAllHeaders('panda/src/tform')
+CopyAllHeaders('panda/src/collide')
+CopyAllHeaders('panda/src/parametrics')
+CopyAllHeaders('panda/src/pgui')
+CopyAllHeaders('panda/src/pnmimagetypes')
+CopyAllHeaders('panda/src/recorder')
+CopyAllHeaders('panda/src/vrpn')
+CopyAllHeaders('panda/src/glgsg')
+CopyAllHeaders('panda/src/wgldisplay')
+CopyAllHeaders('panda/src/ode')
+CopyAllHeaders('panda/metalibs/pandaode')
+CopyAllHeaders('panda/src/physics')
+CopyAllHeaders('panda/src/particlesystem')
+CopyAllHeaders('panda/metalibs/panda')
+CopyAllHeaders('panda/src/audiotraits')
+CopyAllHeaders('panda/src/audiotraits')
+CopyAllHeaders('panda/src/distort')
+CopyAllHeaders('panda/src/downloadertools')
+CopyAllHeaders('panda/src/windisplay')
+CopyAllHeaders('panda/src/dxgsg8')
+CopyAllHeaders('panda/metalibs/pandadx8')
+CopyAllHeaders('panda/src/dxgsg9')
+CopyAllHeaders('panda/metalibs/pandadx9')
+CopyAllHeaders('panda/src/egg')
+CopyAllHeaders('panda/src/egg2pg')
+CopyAllHeaders('panda/src/framework')
+CopyAllHeaders('panda/metalibs/pandafx')
+CopyAllHeaders('panda/src/glstuff')
+CopyAllHeaders('panda/src/glgsg')
+CopyAllHeaders('panda/metalibs/pandaegg')
+if (sys.platform == "win32"):
+    CopyAllHeaders('panda/src/wgldisplay')
+elif (sys.platform == "darwin"):
+    CopyAllHeaders('panda/src/osxdisplay')
+else:
+    CopyAllHeaders('panda/src/glxdisplay')
+CopyAllHeaders('panda/metalibs/pandagl')
+
+CopyAllHeaders('panda/src/physics')
+CopyAllHeaders('panda/src/particlesystem')
+CopyAllHeaders('panda/metalibs/pandaphysics')
+CopyAllHeaders('panda/src/testbed')
+
+CopyAllHeaders('direct/src/directbase')
+CopyAllHeaders('direct/src/dcparser')
+CopyAllHeaders('direct/src/deadrec')
+CopyAllHeaders('direct/src/distributed')
+CopyAllHeaders('direct/src/interval')
+CopyAllHeaders('direct/src/showbase')
+CopyAllHeaders('direct/metalibs/direct')
+CopyAllHeaders('direct/src/dcparse')
+CopyAllHeaders('direct/src/heapq')
+
+CopyAllHeaders('pandatool/src/pandatoolbase')
+CopyAllHeaders('pandatool/src/converter')
+CopyAllHeaders('pandatool/src/progbase')
+CopyAllHeaders('pandatool/src/eggbase')
+CopyAllHeaders('pandatool/src/bam')
+CopyAllHeaders('pandatool/src/cvscopy')
+CopyAllHeaders('pandatool/src/daeegg')
+CopyAllHeaders('pandatool/src/daeprogs')
+CopyAllHeaders('pandatool/src/dxf')
+CopyAllHeaders('pandatool/src/dxfegg')
+CopyAllHeaders('pandatool/src/dxfprogs')
+CopyAllHeaders('pandatool/src/palettizer')
+CopyAllHeaders('pandatool/src/egg-mkfont')
+CopyAllHeaders('pandatool/src/eggcharbase')
+CopyAllHeaders('pandatool/src/egg-optchar')
+CopyAllHeaders('pandatool/src/egg-palettize')
+CopyAllHeaders('pandatool/src/egg-qtess')
+CopyAllHeaders('pandatool/src/eggprogs')
+CopyAllHeaders('pandatool/src/flt')
+CopyAllHeaders('pandatool/src/fltegg')
+CopyAllHeaders('pandatool/src/fltprogs')
+CopyAllHeaders('pandatool/src/imagebase')
+CopyAllHeaders('pandatool/src/imageprogs')
+CopyAllHeaders('pandatool/src/lwo')
+CopyAllHeaders('pandatool/src/lwoegg')
+CopyAllHeaders('pandatool/src/lwoprogs')
+CopyAllHeaders('pandatool/src/maya')
+CopyAllHeaders('pandatool/src/mayaegg')
+CopyAllHeaders('pandatool/src/maxegg')
+CopyAllHeaders('pandatool/src/maxprogs')
+CopyAllHeaders('pandatool/src/vrml')
+CopyAllHeaders('pandatool/src/vrmlegg')
+CopyAllHeaders('pandatool/src/xfile')
+CopyAllHeaders('pandatool/src/xfileegg')
+CopyAllHeaders('pandatool/src/ptloader')
+CopyAllHeaders('pandatool/src/miscprogs')
+CopyAllHeaders('pandatool/src/pstatserver')
+CopyAllHeaders('pandatool/src/softprogs')
+CopyAllHeaders('pandatool/src/text-stats')
+CopyAllHeaders('pandatool/src/vrmlprogs')
+CopyAllHeaders('pandatool/src/win-stats')
+CopyAllHeaders('pandatool/src/xfileprogs')
+CopyFile(GetOutputDir()+'/include/','dtool/src/dtoolutil/vector_src.cxx')
+
+########################################################################
+# 
+# These definitions are syntactic shorthand.  They make it easy
+# to link with the usual libraries without listing them all.
+#
+########################################################################
+
+COMMON_DTOOL_LIBS=[
+    'libp3dtool.dll',
+    'libp3dtoolconfig.dll',
+]
+
+COMMON_PANDA_LIBS=[
+    'libpanda.dll',
+    'libpandaexpress.dll'
+] + COMMON_DTOOL_LIBS
+
+COMMON_EGG2X_LIBS=[
+    'libeggbase.lib',
+    'libprogbase.lib',
+    'libconverter.lib',
+    'libpandatoolbase.lib',
+    'libpandaegg.dll',
+] + COMMON_PANDA_LIBS
+
+COMMON_DTOOL_LIBS_PYSTUB = COMMON_DTOOL_LIBS + ['libp3pystub.dll']
+COMMON_PANDA_LIBS_PYSTUB = COMMON_PANDA_LIBS + ['libp3pystub.dll']
+COMMON_EGG2X_LIBS_PYSTUB = COMMON_EGG2X_LIBS + ['libp3pystub.dll']
+
+########################################################################
+#
+# This section contains a list of all the files that need to be compiled.
+#
+########################################################################
+
+print "Generating dependencies..."
+sys.stdout.flush()
+
+#
+# DIRECTORY: dtool/src/dtoolbase/
+#
+
+OPTS=['DIR:dtool/src/dtoolbase', 'BUILDING:DTOOL']
+TargetAdd('dtoolbase_composite1.obj', opts=OPTS, input='dtoolbase_composite1.cxx')
+TargetAdd('dtoolbase_composite2.obj', opts=OPTS, input='dtoolbase_composite2.cxx')
+TargetAdd('dtoolbase_lookup3.obj',    opts=OPTS, input='lookup3.c')
+TargetAdd('dtoolbase_indent.obj',     opts=OPTS, input='indent.cxx')
+
+#
+# DIRECTORY: dtool/src/dtoolutil/
+#
+
+OPTS=['DIR:dtool/src/dtoolutil', 'BUILDING:DTOOL']
+TargetAdd('dtoolutil_gnu_getopt.obj',  opts=OPTS, input='gnu_getopt.c')
+TargetAdd('dtoolutil_gnu_getopt1.obj', opts=OPTS, input='gnu_getopt1.c')
+TargetAdd('dtoolutil_composite.obj',   opts=OPTS, input='dtoolutil_composite.cxx')
+
+#
+# DIRECTORY: dtool/metalibs/dtool/
+#
+
+OPTS=['DIR:dtool/metalibs/dtool', 'BUILDING:DTOOL']
+TargetAdd('dtool_dtool.obj', opts=OPTS, input='dtool.cxx')
+TargetAdd('libp3dtool.dll', input='dtool_dtool.obj')
+TargetAdd('libp3dtool.dll', input='dtoolutil_gnu_getopt.obj')
+TargetAdd('libp3dtool.dll', input='dtoolutil_gnu_getopt1.obj')
+TargetAdd('libp3dtool.dll', input='dtoolutil_composite.obj')
+TargetAdd('libp3dtool.dll', input='dtoolbase_composite1.obj')
+TargetAdd('libp3dtool.dll', input='dtoolbase_composite2.obj')
+TargetAdd('libp3dtool.dll', input='dtoolbase_indent.obj')
+TargetAdd('libp3dtool.dll', input='dtoolbase_lookup3.obj')
+TargetAdd('libp3dtool.dll', opts=['ADVAPI','WINSHELL'])
+
+#
+# DIRECTORY: dtool/src/cppparser/
+#
+
+OPTS=['DIR:dtool/src/cppparser', 'BISONPREFIX_cppyy']
+CreateFile(GetOutputDir()+"/include/cppBison.h")
+TargetAdd('cppParser_cppBison.obj',  opts=OPTS, input='cppBison.yxx')
+TargetAdd('cppBison.h', input='cppParser_cppBison.obj', opts=['DEPENDENCYONLY'])
+TargetAdd('cppParser_composite.obj', opts=OPTS, input='cppParser_composite.cxx')
+TargetAdd('libcppParser.ilb', input='cppParser_composite.obj')
+TargetAdd('libcppParser.ilb', input='cppParser_cppBison.obj')
+
+#
+# DIRECTORY: dtool/src/prc/
+#
+
+OPTS=['DIR:dtool/src/prc', 'BUILDING:DTOOLCONFIG', 'OPENSSL']
+TargetAdd('prc_composite.obj', opts=OPTS, input='prc_composite.cxx')
+
+#
+# DIRECTORY: dtool/src/dconfig/
+#
+
+OPTS=['DIR:dtool/src/dconfig', 'BUILDING:DTOOLCONFIG']
+TargetAdd('dconfig_composite.obj', opts=OPTS, input='dconfig_composite.cxx')
+
+#
+# DIRECTORY: dtool/src/interrogatedb/
+#
+
+OPTS=['DIR:dtool/src/interrogatedb', 'BUILDING:DTOOLCONFIG']
+TargetAdd('interrogatedb_composite.obj', opts=OPTS, input='interrogatedb_composite.cxx')
+
+#
+# DIRECTORY: dtool/metalibs/dtoolconfig/
+#
+
+OPTS=['DIR:dtool/metalibs/dtoolconfig', 'BUILDING:DTOOLCONFIG']
+if (PkgSkip("PYTHON")): 
+    TargetAdd('dtoolconfig_pydtool.obj', opts=OPTS, input="null.cxx")
+else:
+    TargetAdd('dtoolconfig_pydtool.obj', opts=OPTS, input="pydtool.cxx")
+TargetAdd('dtoolconfig_dtoolconfig.obj', opts=OPTS, input='dtoolconfig.cxx')
+TargetAdd('dtoolconfig_pydtool.obj', dep='dtool_have_python.dat')
+TargetAdd('libp3dtoolconfig.dll', input='dtoolconfig_dtoolconfig.obj')
+TargetAdd('libp3dtoolconfig.dll', input='dtoolconfig_pydtool.obj')
+TargetAdd('libp3dtoolconfig.dll', input='interrogatedb_composite.obj')
+TargetAdd('libp3dtoolconfig.dll', input='dconfig_composite.obj')
+TargetAdd('libp3dtoolconfig.dll', input='prc_composite.obj')
+TargetAdd('libp3dtoolconfig.dll', input='libp3dtool.dll')
+TargetAdd('libp3dtoolconfig.dll', opts=['ADVAPI',  'OPENSSL'])
+
+#
+# DIRECTORY: dtool/src/pystub/
+#
+
+OPTS=['DIR:dtool/src/pystub', 'BUILDING:DTOOLCONFIG']
+TargetAdd('pystub_pystub.obj', opts=OPTS, input='pystub.cxx')
+TargetAdd('libp3pystub.dll', input='pystub_pystub.obj')
+TargetAdd('libp3pystub.dll', input='libp3dtool.dll')
+TargetAdd('libp3pystub.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: dtool/src/interrogate/
+#
+
+OPTS=['DIR:dtool/src/interrogate', 'DIR:dtool/src/cppparser', 'DIR:dtool/src/interrogatedb']
+TargetAdd('interrogate_composite.obj', opts=OPTS, input='interrogate_composite.cxx')
+TargetAdd('interrogate.exe', input='interrogate_composite.obj')
+TargetAdd('interrogate.exe', input='libcppParser.ilb')
+TargetAdd('interrogate.exe', input=COMMON_DTOOL_LIBS_PYSTUB)
+TargetAdd('interrogate.exe', opts=['ADVAPI',  'OPENSSL'])
+
+TargetAdd('interrogate_module_interrogate_module.obj', opts=OPTS, input='interrogate_module.cxx')
+TargetAdd('interrogate_module.exe', input='interrogate_module_interrogate_module.obj')
+TargetAdd('interrogate_module.exe', input='libcppParser.ilb')
+TargetAdd('interrogate_module.exe', input=COMMON_DTOOL_LIBS_PYSTUB)
+TargetAdd('interrogate_module.exe', opts=['ADVAPI',  'OPENSSL'])
+
+TargetAdd('parse_file_parse_file.obj', opts=OPTS, input='parse_file.cxx')
+TargetAdd('parse_file.exe', input='parse_file_parse_file.obj')
+TargetAdd('parse_file.exe', input='libcppParser.ilb')
+TargetAdd('parse_file.exe', input=COMMON_DTOOL_LIBS_PYSTUB)
+TargetAdd('parse_file.exe', opts=['ADVAPI',  'OPENSSL'])
+
+#
+# DIRECTORY: dtool/src/prckeys/
+#
+
+if (PkgSkip("OPENSSL")==0):
+    OPTS=['DIR:dtool/src/prckeys', 'OPENSSL']
+    TargetAdd('make-prc-key_makePrcKey.obj', opts=OPTS, input='makePrcKey.cxx')
+    TargetAdd('make-prc-key.exe', input='make-prc-key_makePrcKey.obj')
+    TargetAdd('make-prc-key.exe', input=COMMON_DTOOL_LIBS_PYSTUB)
+    TargetAdd('make-prc-key.exe', opts=['ADVAPI',  'OPENSSL'])
+
+#
+# DIRECTORY: dtool/src/test_interrogate/
+#
+
+OPTS=['DIR:dtool/src/test_interrogate']
+TargetAdd('test_interrogate_test_interrogate.obj', opts=OPTS, input='test_interrogate.cxx')
+TargetAdd('test_interrogate.exe', input='test_interrogate_test_interrogate.obj')
+TargetAdd('test_interrogate.exe', input=COMMON_DTOOL_LIBS_PYSTUB)
+TargetAdd('test_interrogate.exe', opts=['ADVAPI',  'OPENSSL'])
+
+#
+# DIRECTORY: panda/src/pandabase/
+#
+
+OPTS=['DIR:panda/src/pandabase', 'BUILDING:PANDAEXPRESS']
+TargetAdd('pandabase_pandabase.obj', opts=OPTS, input='pandabase.cxx')
+
+#
+# DIRECTORY: panda/src/express/
+#
+
+OPTS=['DIR:panda/src/express', 'BUILDING:PANDAEXPRESS', 'OPENSSL', 'ZLIB']
+TargetAdd('express_composite1.obj', opts=OPTS, input='express_composite1.cxx')
+TargetAdd('express_composite2.obj', opts=OPTS, input='express_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/express', ["*.h", "*_composite.cxx"])
+TargetAdd('libexpress.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libexpress.in', opts=['IMOD:pandaexpress', 'ILIB:libexpress', 'SRCDIR:panda/src/express'])
+TargetAdd('libexpress_igate.obj', input='libexpress.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/downloader/
+#
+
+OPTS=['DIR:panda/src/downloader', 'BUILDING:PANDAEXPRESS', 'OPENSSL', 'ZLIB']
+TargetAdd('downloader_composite.obj', opts=OPTS, input='downloader_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/downloader', ["*.h", "*_composite.cxx"])
+TargetAdd('libdownloader.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libdownloader.in', opts=['IMOD:pandaexpress', 'ILIB:libdownloader', 'SRCDIR:panda/src/downloader'])
+TargetAdd('libdownloader_igate.obj', input='libdownloader.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/metalibs/pandaexpress/
+#
+
+OPTS=['DIR:panda/metalibs/pandaexpress', 'BUILDING:PANDAEXPRESS', 'ZLIB']
+TargetAdd('pandaexpress_pandaexpress.obj', opts=OPTS, input='pandaexpress.cxx')
+TargetAdd('libpandaexpress_module.obj', input='libdownloader.in')
+TargetAdd('libpandaexpress_module.obj', input='libexpress.in')
+TargetAdd('libpandaexpress_module.obj', opts=['ADVAPI',  'OPENSSL'])
+TargetAdd('libpandaexpress_module.obj', opts=['IMOD:pandaexpress', 'ILIB:libpandaexpress'])
+
+TargetAdd('libpandaexpress.dll', input='pandaexpress_pandaexpress.obj')
+TargetAdd('libpandaexpress.dll', input='libpandaexpress_module.obj')
+TargetAdd('libpandaexpress.dll', input='downloader_composite.obj')
+TargetAdd('libpandaexpress.dll', input='libdownloader_igate.obj')
+TargetAdd('libpandaexpress.dll', input='express_composite1.obj')
+TargetAdd('libpandaexpress.dll', input='express_composite2.obj')
+TargetAdd('libpandaexpress.dll', input='libexpress_igate.obj')
+TargetAdd('libpandaexpress.dll', input='pandabase_pandabase.obj')
+TargetAdd('libpandaexpress.dll', input=COMMON_DTOOL_LIBS)
+TargetAdd('libpandaexpress.dll', opts=['ADVAPI', 'WINSOCK2',  'OPENSSL', 'ZLIB'])
+
+#
+# DIRECTORY: panda/src/pipeline/
+#
+
+OPTS=['DIR:panda/src/pipeline', 'BUILDING:PANDA']
+TargetAdd('pipeline_composite.obj', opts=OPTS, input='pipeline_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pipeline', ["*.h", "*_composite.cxx"])
+TargetAdd('libpipeline.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpipeline.in', opts=['IMOD:panda', 'ILIB:libpipeline', 'SRCDIR:panda/src/pipeline'])
+TargetAdd('libpipeline_igate.obj', input='libpipeline.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/putil/
+#
+
+OPTS=['DIR:panda/src/putil', 'BUILDING:PANDA',  'ZLIB']
+TargetAdd('putil_composite1.obj', opts=OPTS, input='putil_composite1.cxx')
+TargetAdd('putil_composite2.obj', opts=OPTS, input='putil_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/putil', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove("test_bam.h")
+TargetAdd('libputil.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libputil.in', opts=['IMOD:panda', 'ILIB:libputil', 'SRCDIR:panda/src/putil'])
+TargetAdd('libputil_igate.obj', input='libputil.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/audio/
+#
+
+OPTS=['DIR:panda/src/audio', 'BUILDING:PANDA']
+TargetAdd('audio_composite.obj', opts=OPTS, input='audio_composite.cxx')
+IGATEFILES=["audio.h"]
+TargetAdd('libaudio.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libaudio.in', opts=['IMOD:panda', 'ILIB:libaudio', 'SRCDIR:panda/src/audio'])
+TargetAdd('libaudio_igate.obj', input='libaudio.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/event/
+#
+
+OPTS=['DIR:panda/src/event', 'BUILDING:PANDA']
+TargetAdd('event_composite.obj', opts=OPTS, input='event_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/event', ["*.h", "*_composite.cxx"])
+TargetAdd('libevent.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libevent.in', opts=['IMOD:panda', 'ILIB:libevent', 'SRCDIR:panda/src/event'])
+TargetAdd('libevent_igate.obj', input='libevent.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/linmath/
+#
+
+OPTS=['DIR:panda/src/linmath', 'BUILDING:PANDA']
+TargetAdd('linmath_composite.obj', opts=OPTS, input='linmath_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/linmath', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove('lmat_ops_src.h')
+IGATEFILES.remove('cast_to_double.h')
+IGATEFILES.remove('lmat_ops.h')
+IGATEFILES.remove('cast_to_float.h')
+TargetAdd('liblinmath.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('liblinmath.in', opts=['IMOD:panda', 'ILIB:liblinmath', 'SRCDIR:panda/src/linmath'])
+TargetAdd('liblinmath_igate.obj', input='liblinmath.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/mathutil/
+#
+
+OPTS=['DIR:panda/src/mathutil', 'BUILDING:PANDA', 'FFTW']
+TargetAdd('mathutil_composite.obj', opts=OPTS, input='mathutil_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/mathutil', ["*.h", "*_composite.cxx"])
+TargetAdd('libmathutil.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libmathutil.in', opts=['IMOD:panda', 'ILIB:libmathutil', 'SRCDIR:panda/src/mathutil'])
+TargetAdd('libmathutil_igate.obj', input='libmathutil.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/gsgbase/
+#
+
+OPTS=['DIR:panda/src/gsgbase', 'BUILDING:PANDA']
+TargetAdd('gsgbase_composite.obj', opts=OPTS, input='gsgbase_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/gsgbase', ["*.h", "*_composite.cxx"])
+TargetAdd('libgsgbase.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libgsgbase.in', opts=['IMOD:panda', 'ILIB:libgsgbase', 'SRCDIR:panda/src/gsgbase'])
+TargetAdd('libgsgbase_igate.obj', input='libgsgbase.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pnmimage/
+#
+
+OPTS=['DIR:panda/src/pnmimage', 'BUILDING:PANDA',  'ZLIB']
+TargetAdd('pnmimage_composite.obj', opts=OPTS, input='pnmimage_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pnmimage', ["*.h", "*_composite.cxx"])
+TargetAdd('libpnmimage.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpnmimage.in', opts=['IMOD:panda', 'ILIB:libpnmimage', 'SRCDIR:panda/src/pnmimage'])
+TargetAdd('libpnmimage_igate.obj', input='libpnmimage.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/nativenet/
+#
+ 
+OPTS=['DIR:panda/src/nativenet', 'OPENSSL', 'BUILDING:PANDA']
+TargetAdd('nativenet_composite.obj', opts=OPTS, input='nativenet_composite1.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/nativenet', ["*.h", "*_composite.cxx"])
+TargetAdd('libnativenet.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libnativenet.in', opts=['IMOD:panda', 'ILIB:libnativenet', 'SRCDIR:panda/src/nativenet'])
+TargetAdd('libnativenet_igate.obj', input='libnativenet.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/net/
+#
+
+OPTS=['DIR:panda/src/net', 'BUILDING:PANDA']
+TargetAdd('net_composite.obj', opts=OPTS, input='net_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/net', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove("datagram_ui.h")
+TargetAdd('libnet.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libnet.in', opts=['IMOD:panda', 'ILIB:libnet', 'SRCDIR:panda/src/net'])
+TargetAdd('libnet_igate.obj', input='libnet.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pstatclient/
+#
+
+OPTS=['DIR:panda/src/pstatclient', 'BUILDING:PANDA']
+TargetAdd('pstatclient_composite.obj', opts=OPTS, input='pstatclient_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pstatclient', ["*.h", "*_composite.cxx"])
+TargetAdd('libpstatclient.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpstatclient.in', opts=['IMOD:panda', 'ILIB:libpstatclient', 'SRCDIR:panda/src/pstatclient'])
+TargetAdd('libpstatclient_igate.obj', input='libpstatclient.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/gobj/
+#
+
+OPTS=['DIR:panda/src/gobj', 'BUILDING:PANDA',  'NVIDIACG', 'ZLIB', 'SQUISH']
+TargetAdd('gobj_composite1.obj', opts=OPTS, input='gobj_composite1.cxx')
+TargetAdd('gobj_composite2.obj', opts=OPTS, input='gobj_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/gobj', ["*.h", "*_composite.cxx"])
+TargetAdd('libgobj.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libgobj.in', opts=['IMOD:panda', 'ILIB:libgobj', 'SRCDIR:panda/src/gobj'])
+TargetAdd('libgobj_igate.obj', input='libgobj.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/lerp/
+#
+
+OPTS=['DIR:panda/src/lerp', 'BUILDING:PANDA']
+TargetAdd('lerp_composite.obj', opts=OPTS, input='lerp_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/lerp', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove("lerpchans.h")
+TargetAdd('liblerp.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('liblerp.in', opts=['IMOD:panda', 'ILIB:liblerp', 'SRCDIR:panda/src/lerp'])
+TargetAdd('liblerp_igate.obj', input='liblerp.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pgraphnodes/
+#
+
+OPTS=['DIR:panda/src/pgraphnodes', 'BUILDING:PANDA']
+TargetAdd('pgraphnodes_composite1.obj', opts=OPTS, input='pgraphnodes_composite1.cxx')
+TargetAdd('pgraphnodes_composite2.obj', opts=OPTS, input='pgraphnodes_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pgraphnodes', ["*.h", "*_composite.cxx"])
+TargetAdd('libpgraphnodes.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpgraphnodes.in', opts=['IMOD:panda', 'ILIB:libpgraphnodes', 'SRCDIR:panda/src/pgraphnodes'])
+TargetAdd('libpgraphnodes_igate.obj', input='libpgraphnodes.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pgraph/
+#
+
+OPTS=['DIR:panda/src/pgraph', 'BUILDING:PANDA']
+TargetAdd('pgraph_nodePath.obj', opts=OPTS, input='nodePath.cxx')
+TargetAdd('pgraph_composite1.obj', opts=OPTS, input='pgraph_composite1.cxx')
+TargetAdd('pgraph_composite2.obj', opts=OPTS, input='pgraph_composite2.cxx')
+TargetAdd('pgraph_composite3.obj', opts=OPTS, input='pgraph_composite3.cxx')
+TargetAdd('pgraph_composite4.obj', opts=OPTS, input='pgraph_composite4.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pgraph', ["*.h", "nodePath.cxx", "*_composite.cxx"])
+# IGATEFILES.remove("antialiasAttrib.h")
+TargetAdd('libpgraph.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpgraph.in', opts=['IMOD:panda', 'ILIB:libpgraph', 'SRCDIR:panda/src/pgraph'])
+TargetAdd('libpgraph_igate.obj', input='libpgraph.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/cull/
+#
+
+OPTS=['DIR:panda/src/cull', 'BUILDING:PANDA']
+TargetAdd('cull_composite.obj', opts=OPTS, input='cull_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/cull', ["*.h", "*_composite.cxx"])
+TargetAdd('libcull.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libcull.in', opts=['IMOD:panda', 'ILIB:libcull', 'SRCDIR:panda/src/cull'])
+TargetAdd('libcull_igate.obj', input='libcull.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/chan/
+#
+
+OPTS=['DIR:panda/src/chan', 'BUILDING:PANDA']
+TargetAdd('chan_composite.obj', opts=OPTS, input='chan_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/chan', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove('movingPart.h')
+IGATEFILES.remove('animChannelFixed.h')
+TargetAdd('libchan.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libchan.in', opts=['IMOD:panda', 'ILIB:libchan', 'SRCDIR:panda/src/chan'])
+TargetAdd('libchan_igate.obj', input='libchan.in', opts=["DEPENDENCYONLY"])
+
+
+# DIRECTORY: panda/src/char/
+#
+
+OPTS=['DIR:panda/src/char', 'BUILDING:PANDA']
+TargetAdd('char_composite.obj', opts=OPTS, input='char_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/char', ["*.h", "*_composite.cxx"])
+TargetAdd('libchar.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libchar.in', opts=['IMOD:panda', 'ILIB:libchar', 'SRCDIR:panda/src/char'])
+TargetAdd('libchar_igate.obj', input='libchar.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/dgraph/
+#
+
+OPTS=['DIR:panda/src/dgraph', 'BUILDING:PANDA']
+TargetAdd('dgraph_composite.obj', opts=OPTS, input='dgraph_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/dgraph', ["*.h", "*_composite.cxx"])
+TargetAdd('libdgraph.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libdgraph.in', opts=['IMOD:panda', 'ILIB:libdgraph', 'SRCDIR:panda/src/dgraph'])
+TargetAdd('libdgraph_igate.obj', input='libdgraph.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/display/
+#
+
+OPTS=['DIR:panda/src/display', 'BUILDING:PANDA']
+TargetAdd('display_composite.obj', opts=OPTS, input='display_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/display', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove("renderBuffer.h")
+TargetAdd('libdisplay.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libdisplay.in', opts=['IMOD:panda', 'ILIB:libdisplay', 'SRCDIR:panda/src/display'])
+TargetAdd('libdisplay_igate.obj', input='libdisplay.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/device/
+#
+
+OPTS=['DIR:panda/src/device', 'BUILDING:PANDA']
+TargetAdd('device_composite.obj', opts=OPTS, input='device_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/device', ["*.h", "*_composite.cxx"])
+TargetAdd('libdevice.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libdevice.in', opts=['IMOD:panda', 'ILIB:libdevice', 'SRCDIR:panda/src/device'])
+TargetAdd('libdevice_igate.obj', input='libdevice.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pnmtext/
+#
+
+if (PkgSkip("FREETYPE")==0):
+    OPTS=['DIR:panda/src/pnmtext', 'BUILDING:PANDA',  'FREETYPE']
+    TargetAdd('pnmtext_composite.obj', opts=OPTS, input='pnmtext_composite.cxx')
+    IGATEFILES=GetDirectoryContents('panda/src/pnmtext', ["*.h", "*_composite.cxx"])
+    TargetAdd('libpnmtext.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libpnmtext.in', opts=['IMOD:panda', 'ILIB:libpnmtext', 'SRCDIR:panda/src/pnmtext'])
+    TargetAdd('libpnmtext_igate.obj', input='libpnmtext.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/text/
+#
+
+OPTS=['DIR:panda/src/text', 'BUILDING:PANDA', 'ZLIB',  'FREETYPE']
+TargetAdd('text_composite.obj', opts=OPTS, input='text_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/text', ["*.h", "*_composite.cxx"])
+TargetAdd('libtext.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libtext.in', opts=['IMOD:panda', 'ILIB:libtext', 'SRCDIR:panda/src/text'])
+TargetAdd('libtext_igate.obj', input='libtext.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/movies/
+#
+
+OPTS=['DIR:panda/src/movies', 'BUILDING:PANDA', 'FFMPEG', 'DX9', 'DIRECTCAM']
+TargetAdd('movies_composite1.obj', opts=OPTS, input='movies_composite1.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/movies', ["*.h", "*_composite.cxx"])
+TargetAdd('libmovies.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libmovies.in', opts=['IMOD:panda', 'ILIB:libmovies', 'SRCDIR:panda/src/movies'])
+TargetAdd('libmovies_igate.obj', input='libmovies.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/grutil/
+#
+
+OPTS=['DIR:panda/src/grutil', 'BUILDING:PANDA',  'FFMPEG', 'ARTOOLKIT', 'OPENCV']
+TargetAdd('grutil_multitexReducer.obj', opts=OPTS, input='multitexReducer.cxx')
+TargetAdd('grutil_composite1.obj', opts=OPTS, input='grutil_composite1.cxx')
+TargetAdd('grutil_composite2.obj', opts=OPTS, input='grutil_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/grutil', ["*.h", "*_composite.cxx"])
+TargetAdd('libgrutil.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libgrutil.in', opts=['IMOD:panda', 'ILIB:libgrutil', 'SRCDIR:panda/src/grutil'])
+TargetAdd('libgrutil_igate.obj', input='libgrutil.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/tform/
+#
+
+OPTS=['DIR:panda/src/tform', 'BUILDING:PANDA']
+TargetAdd('tform_composite.obj', opts=OPTS, input='tform_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/tform', ["*.h", "*_composite.cxx"])
+TargetAdd('libtform.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libtform.in', opts=['IMOD:panda', 'ILIB:libtform', 'SRCDIR:panda/src/tform'])
+TargetAdd('libtform_igate.obj', input='libtform.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/collide/
+#
+
+OPTS=['DIR:panda/src/collide', 'BUILDING:PANDA']
+TargetAdd('collide_composite.obj', opts=OPTS, input='collide_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/collide', ["*.h", "*_composite.cxx"])
+TargetAdd('libcollide.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libcollide.in', opts=['IMOD:panda', 'ILIB:libcollide', 'SRCDIR:panda/src/collide'])
+TargetAdd('libcollide_igate.obj', input='libcollide.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/parametrics/
+#
+
+OPTS=['DIR:panda/src/parametrics', 'BUILDING:PANDA']
+TargetAdd('parametrics_composite.obj', opts=OPTS, input='parametrics_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/parametrics', ["*.h", "*_composite.cxx"])
+TargetAdd('libparametrics.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libparametrics.in', opts=['IMOD:panda', 'ILIB:libparametrics', 'SRCDIR:panda/src/parametrics'])
+TargetAdd('libparametrics_igate.obj', input='libparametrics.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pgui/
+#
+
+OPTS=['DIR:panda/src/pgui', 'BUILDING:PANDA']
+TargetAdd('pgui_composite.obj', opts=OPTS, input='pgui_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/pgui', ["*.h", "*_composite.cxx"])
+TargetAdd('libpgui.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libpgui.in', opts=['IMOD:panda', 'ILIB:libpgui', 'SRCDIR:panda/src/pgui'])
+TargetAdd('libpgui_igate.obj', input='libpgui.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/pnmimagetypes/
+#
+
+OPTS=['DIR:panda/src/pnmimagetypes', 'DIR:panda/src/pnmimage', 'BUILDING:PANDA', 'PNG', 'ZLIB', 'JPEG', 'ZLIB',  'JPEG', 'TIFF']
+TargetAdd('pnmimagetypes_composite.obj', opts=OPTS, input='pnmimagetypes_composite.cxx')
+
+#
+# DIRECTORY: panda/src/recorder/
+#
+
+OPTS=['DIR:panda/src/recorder', 'BUILDING:PANDA']
+TargetAdd('recorder_composite.obj', opts=OPTS, input='recorder_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/recorder', ["*.h", "*_composite.cxx"])
+TargetAdd('librecorder.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('librecorder.in', opts=['IMOD:panda', 'ILIB:librecorder', 'SRCDIR:panda/src/recorder'])
+TargetAdd('librecorder_igate.obj', input='librecorder.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/vrpn/
+#
+
+if (PkgSkip("VRPN")==0):
+    OPTS=['DIR:panda/src/vrpn', 'BUILDING:PANDA',  'VRPN']
+    TargetAdd('vrpn_composite.obj', opts=OPTS, input='vrpn_composite.cxx')
+    IGATEFILES=GetDirectoryContents('panda/src/vrpn', ["*.h", "*_composite.cxx"])
+    TargetAdd('libvrpn.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libvrpn.in', opts=['IMOD:panda', 'ILIB:libvrpn', 'SRCDIR:panda/src/vrpn'])
+    TargetAdd('libvrpn_igate.obj', input='libvrpn.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/metalibs/panda/
+#
+
+OPTS=['DIR:panda/metalibs/panda', 'BUILDING:PANDA', 'VRPN', 'JPEG', 'PNG',
+      'TIFF', 'ZLIB', 'OPENSSL', 'FREETYPE', 'FFTW', 'ADVAPI', 'WINSOCK2','SQUISH',
+      'NVIDIACG', 'WINUSER', 'WINMM', 'FFMPEG', 'DIRECTCAM', 'ARTOOLKIT', 'OPENCV']
+
+TargetAdd('panda_panda.obj', opts=OPTS, input='panda.cxx')
+
+TargetAdd('libpanda_module.obj', input='librecorder.in')
+TargetAdd('libpanda_module.obj', input='libpgraphnodes.in')
+TargetAdd('libpanda_module.obj', input='libpgraph.in')
+TargetAdd('libpanda_module.obj', input='libcull.in')
+TargetAdd('libpanda_module.obj', input='libgrutil.in')
+TargetAdd('libpanda_module.obj', input='libchan.in')
+TargetAdd('libpanda_module.obj', input='libpstatclient.in')
+TargetAdd('libpanda_module.obj', input='libchar.in')
+TargetAdd('libpanda_module.obj', input='libcollide.in')
+TargetAdd('libpanda_module.obj', input='libdevice.in')
+TargetAdd('libpanda_module.obj', input='libdgraph.in')
+TargetAdd('libpanda_module.obj', input='libdisplay.in')
+TargetAdd('libpanda_module.obj', input='libpipeline.in')
+TargetAdd('libpanda_module.obj', input='libevent.in')
+TargetAdd('libpanda_module.obj', input='libgobj.in')
+TargetAdd('libpanda_module.obj', input='libgsgbase.in')
+TargetAdd('libpanda_module.obj', input='liblinmath.in')
+TargetAdd('libpanda_module.obj', input='libmathutil.in')
+TargetAdd('libpanda_module.obj', input='libparametrics.in')
+TargetAdd('libpanda_module.obj', input='libpnmimage.in')
+TargetAdd('libpanda_module.obj', input='libtext.in')
+TargetAdd('libpanda_module.obj', input='libtform.in')
+TargetAdd('libpanda_module.obj', input='liblerp.in')
+TargetAdd('libpanda_module.obj', input='libputil.in')
+TargetAdd('libpanda_module.obj', input='libaudio.in')
+TargetAdd('libpanda_module.obj', input='libnativenet.in')
+TargetAdd('libpanda_module.obj', input='libnet.in')
+TargetAdd('libpanda_module.obj', input='libpgui.in')
+TargetAdd('libpanda_module.obj', input='libmovies.in')
+
+TargetAdd('libpanda.dll', input='panda_panda.obj')
+TargetAdd('libpanda.dll', input='libpanda_module.obj')
+TargetAdd('libpanda.dll', input='recorder_composite.obj')
+TargetAdd('libpanda.dll', input='librecorder_igate.obj')
+TargetAdd('libpanda.dll', input='pgraphnodes_composite1.obj')
+TargetAdd('libpanda.dll', input='pgraphnodes_composite2.obj')
+TargetAdd('libpanda.dll', input='libpgraphnodes_igate.obj')
+TargetAdd('libpanda.dll', input='pgraph_nodePath.obj')
+TargetAdd('libpanda.dll', input='pgraph_composite1.obj')
+TargetAdd('libpanda.dll', input='pgraph_composite2.obj')
+TargetAdd('libpanda.dll', input='pgraph_composite3.obj')
+TargetAdd('libpanda.dll', input='pgraph_composite4.obj')
+TargetAdd('libpanda.dll', input='libpgraph_igate.obj')
+TargetAdd('libpanda.dll', input='cull_composite.obj')
+TargetAdd('libpanda.dll', input='movies_composite1.obj')
+TargetAdd('libpanda.dll', input='libmovies_igate.obj')
+TargetAdd('libpanda.dll', input='grutil_multitexReducer.obj')
+TargetAdd('libpanda.dll', input='grutil_composite1.obj')
+TargetAdd('libpanda.dll', input='grutil_composite2.obj')
+TargetAdd('libpanda.dll', input='libgrutil_igate.obj')
+TargetAdd('libpanda.dll', input='chan_composite.obj')
+TargetAdd('libpanda.dll', input='libchan_igate.obj')
+TargetAdd('libpanda.dll', input='pstatclient_composite.obj')
+TargetAdd('libpanda.dll', input='libpstatclient_igate.obj')
+TargetAdd('libpanda.dll', input='char_composite.obj')
+TargetAdd('libpanda.dll', input='libchar_igate.obj')
+TargetAdd('libpanda.dll', input='collide_composite.obj')
+TargetAdd('libpanda.dll', input='libcollide_igate.obj')
+TargetAdd('libpanda.dll', input='device_composite.obj')
+TargetAdd('libpanda.dll', input='libdevice_igate.obj')
+TargetAdd('libpanda.dll', input='dgraph_composite.obj')
+TargetAdd('libpanda.dll', input='libdgraph_igate.obj')
+TargetAdd('libpanda.dll', input='display_composite.obj')
+TargetAdd('libpanda.dll', input='libdisplay_igate.obj')
+TargetAdd('libpanda.dll', input='pipeline_composite.obj')
+TargetAdd('libpanda.dll', input='libpipeline_igate.obj')
+TargetAdd('libpanda.dll', input='event_composite.obj')
+TargetAdd('libpanda.dll', input='libevent_igate.obj')
+TargetAdd('libpanda.dll', input='gobj_composite1.obj')
+TargetAdd('libpanda.dll', input='gobj_composite2.obj')
+TargetAdd('libpanda.dll', input='libgobj_igate.obj')
+TargetAdd('libpanda.dll', input='gsgbase_composite.obj')
+TargetAdd('libpanda.dll', input='libgsgbase_igate.obj')
+TargetAdd('libpanda.dll', input='linmath_composite.obj')
+TargetAdd('libpanda.dll', input='liblinmath_igate.obj')
+TargetAdd('libpanda.dll', input='mathutil_composite.obj')
+TargetAdd('libpanda.dll', input='libmathutil_igate.obj')
+TargetAdd('libpanda.dll', input='parametrics_composite.obj')
+TargetAdd('libpanda.dll', input='libparametrics_igate.obj')
+TargetAdd('libpanda.dll', input='pnmimagetypes_composite.obj')
+TargetAdd('libpanda.dll', input='pnmimage_composite.obj')
+TargetAdd('libpanda.dll', input='libpnmimage_igate.obj')
+TargetAdd('libpanda.dll', input='text_composite.obj')
+TargetAdd('libpanda.dll', input='libtext_igate.obj')
+TargetAdd('libpanda.dll', input='tform_composite.obj')
+TargetAdd('libpanda.dll', input='libtform_igate.obj')
+TargetAdd('libpanda.dll', input='lerp_composite.obj')
+TargetAdd('libpanda.dll', input='liblerp_igate.obj')
+TargetAdd('libpanda.dll', input='putil_composite1.obj')
+TargetAdd('libpanda.dll', input='putil_composite2.obj')
+TargetAdd('libpanda.dll', input='libputil_igate.obj')
+TargetAdd('libpanda.dll', input='audio_composite.obj')
+TargetAdd('libpanda.dll', input='libaudio_igate.obj')
+TargetAdd('libpanda.dll', input='pgui_composite.obj')
+TargetAdd('libpanda.dll', input='libpgui_igate.obj')
+TargetAdd('libpanda.dll', input='net_composite.obj')
+TargetAdd('libpanda.dll', input='libnet_igate.obj')
+TargetAdd('libpanda.dll', input='nativenet_composite.obj')
+TargetAdd('libpanda.dll', input='libnativenet_igate.obj')
+TargetAdd('libpanda.dll', input='pandabase_pandabase.obj')
+TargetAdd('libpanda.dll', input='libpandaexpress.dll')
+TargetAdd('libpanda.dll', input='libp3dtoolconfig.dll')
+TargetAdd('libpanda.dll', input='libp3dtool.dll')
+
+if PkgSkip("VRPN")==0:
+    TargetAdd('libpanda.dll', input="vrpn_composite.obj")
+    TargetAdd('libpanda.dll', input="libvrpn_igate.obj")
+    TargetAdd('libpanda_module.obj', input='libvrpn.in')
+
+if PkgSkip("FREETYPE")==0:
+    TargetAdd('libpanda.dll', input="pnmtext_composite.obj")
+    TargetAdd('libpanda.dll', input="libpnmtext_igate.obj")
+    TargetAdd('libpanda_module.obj', input='libpnmtext.in')
+
+TargetAdd('libpanda_module.obj', opts=OPTS)
+TargetAdd('libpanda_module.obj', opts=['IMOD:panda', 'ILIB:libpanda'])
+
+TargetAdd('libpanda.dll', dep='dtool_have_vrpn.dat')
+TargetAdd('libpanda.dll', dep='dtool_have_freetype.dat')
+TargetAdd('libpanda.dll', opts=OPTS)
+
+#
+# DIRECTORY: panda/src/skel
+#
+
+OPTS=['DIR:panda/src/skel', 'BUILDING:PANDASKEL', 'ADVAPI']
+TargetAdd('skel_composite.obj', opts=OPTS, input='skel_composite.cxx')
+IGATEFILES=GetDirectoryContents("panda/src/skel", ["*.h", "*_composite.cxx"])
+TargetAdd('libskel.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libskel.in', opts=['IMOD:pandaskel', 'ILIB:libskel', 'SRCDIR:panda/src/skel'])
+TargetAdd('libskel_igate.obj', input='libskel.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/skel
+#
+
+OPTS=['BUILDING:PANDASKEL', 'ADVAPI']
+
+TargetAdd('libpandaskel_module.obj', input='libskel.in')
+TargetAdd('libpandaskel_module.obj', opts=OPTS)
+TargetAdd('libpandaskel_module.obj', opts=['IMOD:pandaskel', 'ILIB:libpandaskel'])
+
+TargetAdd('libpandaskel.dll', input='skel_composite.obj')
+TargetAdd('libpandaskel.dll', input='libskel_igate.obj')
+TargetAdd('libpandaskel.dll', input='libpandaskel_module.obj')
+TargetAdd('libpandaskel.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libpandaskel.dll', opts=OPTS)
+
+#
+# DIRECTORY: panda/src/distort/
+#
+
+OPTS=['DIR:panda/src/distort', 'BUILDING:PANDAFX']
+TargetAdd('distort_composite.obj', opts=OPTS, input='distort_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/distort', ["*.h", "*_composite.cxx"])
+TargetAdd('libdistort.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libdistort.in', opts=['IMOD:pandafx', 'ILIB:libdistort', 'SRCDIR:panda/src/distort'])
+TargetAdd('libdistort_igate.obj', input='libdistort.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/effects/
+#
+
+OPTS=['DIR:panda/src/effects', 'BUILDING:PANDAFX',  'NVIDIACG']
+TargetAdd('effects_composite.obj', opts=OPTS, input='effects_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/effects', ["*.h", "*_composite.cxx"])
+TargetAdd('libeffects.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libeffects.in', opts=['IMOD:pandafx', 'ILIB:libeffects', 'SRCDIR:panda/src/effects'])
+TargetAdd('libeffects_igate.obj', input='libeffects.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/metalibs/pandafx/
+#
+
+OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'BUILDING:PANDAFX',  'NVIDIACG']
+TargetAdd('pandafx_pandafx.obj', opts=OPTS, input='pandafx.cxx')
+
+TargetAdd('libpandafx_module.obj', input='libdistort.in')
+TargetAdd('libpandafx_module.obj', input='libeffects.in')
+TargetAdd('libpandafx_module.obj', opts=OPTS)
+TargetAdd('libpandafx_module.obj', opts=['IMOD:pandfx', 'ILIB:libpandafx'])
+
+TargetAdd('libpandafx.dll', input='pandafx_pandafx.obj')
+TargetAdd('libpandafx.dll', input='libpandafx_module.obj')
+TargetAdd('libpandafx.dll', input='distort_composite.obj')
+TargetAdd('libpandafx.dll', input='libdistort_igate.obj')
+TargetAdd('libpandafx.dll', input='effects_composite.obj')
+TargetAdd('libpandafx.dll', input='libeffects_igate.obj')
+TargetAdd('libpandafx.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libpandafx.dll', opts=['ADVAPI',  'NVIDIACG'])
+
+
+#
+# DIRECTORY: panda/src/audiotraits/
+#
+
+if PkgSkip("FMODEX") == 0:
+  OPTS=['DIR:panda/src/audiotraits', 'BUILDING:FMOD_AUDIO',  'FMODEX']
+  TargetAdd('fmod_audio_fmod_audio_composite.obj', opts=OPTS, input='fmod_audio_composite.cxx')
+  TargetAdd('libp3fmod_audio.dll', input='fmod_audio_fmod_audio_composite.obj')
+  TargetAdd('libp3fmod_audio.dll', input=COMMON_PANDA_LIBS)
+  TargetAdd('libp3fmod_audio.dll', opts=['ADVAPI', 'WINUSER', 'WINMM', 'FMODEX'])
+
+if PkgSkip("OPENAL") == 0:
+  OPTS=['DIR:panda/src/audiotraits', 'BUILDING:OPENAL_AUDIO',  'OPENAL']
+  TargetAdd('openal_audio_openal_audio_composite.obj', opts=OPTS, input='openal_audio_composite.cxx')
+  TargetAdd('libp3openal_audio.dll', input='openal_audio_openal_audio_composite.obj')
+  TargetAdd('libp3openal_audio.dll', input=COMMON_PANDA_LIBS)
+  TargetAdd('libp3openal_audio.dll', opts=['ADVAPI', 'WINUSER', 'WINMM', 'OPENAL'])
+
+#
+# DIRECTORY: panda/src/downloadertools/
+#
+
+if PkgSkip("OPENSSL")==0:
+    OPTS=['DIR:panda/src/downloadertools', 'OPENSSL', 'ZLIB', 'ADVAPI']
+
+    TargetAdd('apply_patch_apply_patch.obj', opts=OPTS, input='apply_patch.cxx')
+    TargetAdd('apply_patch.exe', input=['apply_patch_apply_patch.obj'])
+    TargetAdd('apply_patch.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('apply_patch.exe', opts=OPTS)
+
+    TargetAdd('build_patch_build_patch.obj', opts=OPTS, input='build_patch.cxx')
+    TargetAdd('build_patch.exe', input=['build_patch_build_patch.obj'])
+    TargetAdd('build_patch.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('build_patch.exe', opts=OPTS)
+
+    TargetAdd('check_adler_check_adler.obj', opts=OPTS, input='check_adler.cxx')
+    TargetAdd('check_adler.exe', input=['check_adler_check_adler.obj'])
+    TargetAdd('check_adler.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('check_adler.exe', opts=OPTS)
+
+    TargetAdd('check_crc_check_crc.obj', opts=OPTS, input='check_crc.cxx')
+    TargetAdd('check_crc.exe', input=['check_crc_check_crc.obj'])
+    TargetAdd('check_crc.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('check_crc.exe', opts=OPTS)
+
+    TargetAdd('check_md5_check_md5.obj', opts=OPTS, input='check_md5.cxx')
+    TargetAdd('check_md5.exe', input=['check_md5_check_md5.obj'])
+    TargetAdd('check_md5.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('check_md5.exe', opts=OPTS)
+
+    TargetAdd('pdecrypt_pdecrypt.obj', opts=OPTS, input='pdecrypt.cxx')
+    TargetAdd('pdecrypt.exe', input=['pdecrypt_pdecrypt.obj'])
+    TargetAdd('pdecrypt.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('pdecrypt.exe', opts=OPTS)
+
+    TargetAdd('pencrypt_pencrypt.obj', opts=OPTS, input='pencrypt.cxx')
+    TargetAdd('pencrypt.exe', input=['pencrypt_pencrypt.obj'])
+    TargetAdd('pencrypt.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('pencrypt.exe', opts=OPTS)
+
+    TargetAdd('show_ddb_show_ddb.obj', opts=OPTS, input='show_ddb.cxx')
+    TargetAdd('show_ddb.exe', input=['show_ddb_show_ddb.obj'])
+    TargetAdd('show_ddb.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('show_ddb.exe', opts=OPTS)
+
+#
+# DIRECTORY: panda/src/downloadertools/
+#
+
+OPTS=['DIR:panda/src/downloadertools', 'ZLIB', 'ADVAPI']
+
+TargetAdd('multify_multify.obj', opts=OPTS, input='multify.cxx')
+TargetAdd('multify.exe', input=['multify_multify.obj'])
+TargetAdd('multify.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+TargetAdd('multify.exe', opts=OPTS)
+
+TargetAdd('pzip_pzip.obj', opts=OPTS, input='pzip.cxx')
+TargetAdd('pzip.exe', input=['pzip_pzip.obj'])
+TargetAdd('pzip.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+TargetAdd('pzip.exe', opts=OPTS)
+
+TargetAdd('punzip_punzip.obj', opts=OPTS, input='punzip.cxx')
+TargetAdd('punzip.exe', input=['punzip_punzip.obj'])
+TargetAdd('punzip.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+TargetAdd('punzip.exe', opts=OPTS)
+
+#
+# DIRECTORY: panda/src/windisplay/
+#
+
+if (sys.platform == "win32"):
+    OPTS=['DIR:panda/src/windisplay', 'BUILDING:PANDAWIN']
+    TargetAdd('windisplay_composite.obj', opts=OPTS, input='windisplay_composite.cxx')
+    TargetAdd('windisplay_windetectdx8.obj', opts=OPTS + ["DX8"], input='winDetectDx8.cxx')
+    TargetAdd('windisplay_windetectdx9.obj', opts=OPTS + ["DX9"], input='winDetectDx9.cxx')
+    TargetAdd('libp3windisplay.dll', input='windisplay_composite.obj')
+    TargetAdd('libp3windisplay.dll', input='windisplay_windetectdx8.obj')
+    TargetAdd('libp3windisplay.dll', input='windisplay_windetectdx9.obj')
+    TargetAdd('libp3windisplay.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libp3windisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM'])
+
+#
+# DIRECTORY: panda/metalibs/pandadx8/
+#
+
+if PkgSkip("DX8")==0:
+    OPTS=['DIR:panda/src/dxgsg8', 'DIR:panda/metalibs/pandadx8', 'BUILDING:PANDADX', 'DX8']
+    TargetAdd('dxgsg8_dxGraphicsStateGuardian8.obj', opts=OPTS, input='dxGraphicsStateGuardian8.cxx')
+    TargetAdd('dxgsg8_composite.obj', opts=OPTS, input='dxgsg8_composite.cxx')
+    TargetAdd('pandadx8_pandadx8.obj', opts=OPTS, input='pandadx8.cxx')
+    TargetAdd('libpandadx8.dll', input='pandadx8_pandadx8.obj')
+    TargetAdd('libpandadx8.dll', input='dxgsg8_dxGraphicsStateGuardian8.obj')
+    TargetAdd('libpandadx8.dll', input='dxgsg8_composite.obj')
+    TargetAdd('libpandadx8.dll', input='libp3windisplay.dll')
+    TargetAdd('libpandadx8.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandadx8.dll', opts=['ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DX8'])
+
+#
+# DIRECTORY: panda/metalibs/pandadx9/
+#
+
+if PkgSkip("DX9")==0:
+    OPTS=['DIR:panda/src/dxgsg9', 'BUILDING:PANDADX', 'DX9',  'NVIDIACG', 'CGDX9']
+    TargetAdd('dxgsg9_dxGraphicsStateGuardian9.obj', opts=OPTS, input='dxGraphicsStateGuardian9.cxx')
+    TargetAdd('dxgsg9_composite.obj', opts=OPTS, input='dxgsg9_composite.cxx')
+    OPTS=['DIR:panda/metalibs/pandadx9', 'BUILDING:PANDADX', 'DX9',  'NVIDIACG', 'CGDX9']
+    TargetAdd('pandadx9_pandadx9.obj', opts=OPTS, input='pandadx9.cxx')
+    TargetAdd('libpandadx9.dll', input='pandadx9_pandadx9.obj')
+    TargetAdd('libpandadx9.dll', input='dxgsg9_dxGraphicsStateGuardian9.obj')
+    TargetAdd('libpandadx9.dll', input='dxgsg9_composite.obj')
+    TargetAdd('libpandadx9.dll', input='libp3windisplay.dll')
+    TargetAdd('libpandadx9.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandadx9.dll', opts=['ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DX9',  'NVIDIACG', 'CGDX9'])
+
+#
+# DIRECTORY: panda/src/egg/
+#
+
+OPTS=['DIR:panda/src/egg', 'BUILDING:PANDAEGG',  'ZLIB', 'BISONPREFIX_eggyy', 'FLEXDASHI']
+CreateFile(GetOutputDir()+"/include/parser.h")
+TargetAdd('egg_parser.obj', opts=OPTS, input='parser.yxx')
+TargetAdd('parser.h', input='egg_parser.obj', opts=['DEPENDENCYONLY'])
+TargetAdd('egg_lexer.obj', opts=OPTS, input='lexer.lxx')
+TargetAdd('egg_composite1.obj', opts=OPTS, input='egg_composite1.cxx')
+TargetAdd('egg_composite2.obj', opts=OPTS, input='egg_composite2.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/egg', ["*.h", "*_composite.cxx"])
+TargetAdd('libegg.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libegg.in', opts=['IMOD:pandaegg', 'ILIB:libegg', 'SRCDIR:panda/src/egg'])
+TargetAdd('libegg_igate.obj', input='libegg.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/egg2pg/
+#
+
+OPTS=['DIR:panda/src/egg2pg', 'BUILDING:PANDAEGG']
+TargetAdd('egg2pg_composite.obj', opts=OPTS, input='egg2pg_composite.cxx')
+IGATEFILES=['load_egg_file.h']
+TargetAdd('libegg2pg.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libegg2pg.in', opts=['IMOD:pandaegg', 'ILIB:libegg2pg', 'SRCDIR:panda/src/egg2pg'])
+TargetAdd('libegg2pg_igate.obj', input='libegg2pg.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/framework/
+#
+
+OPTS=['DIR:panda/src/framework', 'BUILDING:FRAMEWORK']
+TargetAdd('framework_composite.obj', opts=OPTS, input='framework_composite.cxx')
+TargetAdd('libp3framework.dll', input='framework_composite.obj')
+TargetAdd('libp3framework.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libp3framework.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: panda/src/glstuff/
+#
+
+OPTS=['DIR:panda/src/glstuff',  'NVIDIACG', 'CGGL']
+TargetAdd('glstuff_glpure.obj', opts=OPTS, input='glpure.cxx')
+TargetAdd('libp3glstuff.dll', input='glstuff_glpure.obj')
+TargetAdd('libp3glstuff.dll', input='libpandafx.dll')
+TargetAdd('libp3glstuff.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libp3glstuff.dll', opts=['ADVAPI', 'GLUT',  'NVIDIACG', 'CGGL'])
+
+#
+# DIRECTORY: panda/src/glgsg/
+#
+
+OPTS=['DIR:panda/src/glgsg', 'DIR:panda/src/glstuff', 'DIR:panda/src/gobj', 'BUILDING:PANDAGL',  'NVIDIACG']
+TargetAdd('glgsg_config_glgsg.obj', opts=OPTS, input='config_glgsg.cxx')
+TargetAdd('glgsg_glgsg.obj', opts=OPTS, input='glgsg.cxx')
+
+#
+# DIRECTORY: panda/metalibs/pandaegg/
+#
+
+OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg', 'BUILDING:PANDAEGG']
+TargetAdd('pandaegg_pandaegg.obj', opts=OPTS, input='pandaegg.cxx')
+
+TargetAdd('libpandaegg_module.obj', input='libegg2pg.in')
+TargetAdd('libpandaegg_module.obj', input='libegg.in')
+TargetAdd('libpandaegg_module.obj', opts=OPTS)
+TargetAdd('libpandaegg_module.obj', opts=['IMOD:pandaegg', 'ILIB:libpandaegg'])
+
+TargetAdd('libpandaegg.dll', input='pandaegg_pandaegg.obj')
+TargetAdd('libpandaegg.dll', input='libpandaegg_module.obj')
+TargetAdd('libpandaegg.dll', input='egg2pg_composite.obj')
+TargetAdd('libpandaegg.dll', input='libegg2pg_igate.obj')
+TargetAdd('libpandaegg.dll', input='egg_composite1.obj')
+TargetAdd('libpandaegg.dll', input='egg_composite2.obj')
+TargetAdd('libpandaegg.dll', input='egg_parser.obj')
+TargetAdd('libpandaegg.dll', input='egg_lexer.obj')
+TargetAdd('libpandaegg.dll', input='libegg_igate.obj')
+TargetAdd('libpandaegg.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libpandaegg.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: panda/metalibs/panda/
+#
+
+OPTS=['DIR:panda/metalibs/panda', 'BUILDING:PANDA',  'FFTW', 'PNG', 'JPEG', 'TIFF', 'ZLIB', 'OPENSSL', 'ADVAPI', 'WINSOCK2', 'WINUSER', 'WINMM']
+TargetAdd('libpandastripped.dll', input='pipeline_composite.obj')
+TargetAdd('libpandastripped.dll', input='event_composite.obj')
+TargetAdd('libpandastripped.dll', input='net_composite.obj')
+TargetAdd('libpandastripped.dll', input='nativenet_composite.obj')
+TargetAdd('libpandastripped.dll', input='pstatclient_composite.obj')
+TargetAdd('libpandastripped.dll', input='linmath_composite.obj')
+TargetAdd('libpandastripped.dll', input='mathutil_composite.obj')
+TargetAdd('libpandastripped.dll', input='putil_composite1.obj')
+TargetAdd('libpandastripped.dll', input='putil_composite2.obj')
+TargetAdd('libpandastripped.dll', input='pnmimagetypes_composite.obj')
+TargetAdd('libpandastripped.dll', input='pnmimage_composite.obj')
+TargetAdd('libpandastripped.dll', input='pandabase_pandabase.obj')
+TargetAdd('libpandastripped.dll', input='libpandaexpress.dll')
+TargetAdd('libpandastripped.dll', input='libp3dtoolconfig.dll')
+TargetAdd('libpandastripped.dll', input='libp3dtool.dll')
+TargetAdd('libpandastripped.dll', input='dtool_have_vrpn.dat')
+TargetAdd('libpandastripped.dll', input='dtool_have_freetype.dat')
+TargetAdd('libpandastripped.dll', opts=OPTS)
+
+#
+# DIRECTORY: panda/metalibs/pandaegg/
+#
+
+OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg', 'BUILDING:PANDAEGG']
+TargetAdd('pandaegg_pandaeggnopg.obj', opts=OPTS, input='pandaeggnopg.cxx')
+TargetAdd('libpandaeggstripped.dll', input='pandaegg_pandaeggnopg.obj')
+TargetAdd('libpandaeggstripped.dll', input='egg_composite1.obj')
+TargetAdd('libpandaeggstripped.dll', input='egg_composite2.obj')
+TargetAdd('libpandaeggstripped.dll', input='egg_parser.obj')
+TargetAdd('libpandaeggstripped.dll', input='egg_lexer.obj')
+TargetAdd('libpandaeggstripped.dll', input='libpandastripped.dll')
+TargetAdd('libpandaeggstripped.dll', input='libpandaexpress.dll')
+TargetAdd('libpandaeggstripped.dll', input='libp3dtoolconfig.dll')
+TargetAdd('libpandaeggstripped.dll', input='libp3dtool.dll')
+TargetAdd('libpandaeggstripped.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: panda/src/mesadisplay/
+#
+
+if (sys.platform != "win32"):
+    OPTS=['DIR:panda/src/mesadisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLUT', 'NVIDIACG', 'GLUT']
+    TargetAdd('mesadisplay_composite.obj', opts=OPTS, input='mesadisplay_composite.cxx')
+    OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT', 'NVIDIACG', 'GLUT']
+    TargetAdd('libpandamesa.dll', input='mesadisplay_composite.obj')
+    TargetAdd('libpandamesa.dll', input='libp3glstuff.dll')
+    TargetAdd('libpandamesa.dll', input='libpandafx.dll')
+    TargetAdd('libpandamesa.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandamesa.dll', opts=['GLUT'])
+
+#
+# DIRECTORY: panda/src/glxdisplay/
+#
+
+if (sys.platform != "win32" and sys.platform != "darwin"):
+    OPTS=['DIR:panda/src/glxdisplay', 'BUILDING:PANDAGLUT',  'GLUT', 'NVIDIACG', 'CGGL']
+    TargetAdd('glxdisplay_composite.obj', opts=OPTS, input='glxdisplay_composite.cxx')
+    OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT',  'GLUT', 'NVIDIACG', 'CGGL']
+    TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx')
+    TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_config_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='glxdisplay_composite.obj')
+    TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
+    TargetAdd('libpandagl.dll', input='libpandafx.dll')
+    TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandagl.dll', opts=['GLUT', 'NVIDIACG', 'CGGL'])
+
+#
+# DIRECTORY: panda/src/osxdisplay/
+#
+
+if (sys.platform == 'darwin'):
+    OPTS=['DIR:panda/src/osxdisplay', 'BUILDING:PANDAGLUT',  'GLUT', 'NVIDIACG', 'CGGL']
+    TargetAdd('osxdisplay_composite.obj', opts=OPTS, input='osxdisplay_composite.mm')
+    OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGLUT',  'GLUT', 'NVIDIACG', 'CGGL']
+    TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx')
+    TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_config_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='osxdisplay_composite.obj')
+    TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
+    TargetAdd('libpandagl.dll', input='libpandafx.dll')
+    TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandagl.dll', opts=['GLUT', 'NVIDIACG', 'CGGL', 'CARBON', 'AGL', 'COCOA'])
+
+#
+# DIRECTORY: panda/src/wgldisplay/
+#
+
+if (sys.platform == "win32"):
+    OPTS=['DIR:panda/src/wgldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL',  'NVIDIACG', 'CGGL']
+    TargetAdd('wgldisplay_composite.obj', opts=OPTS, input='wgldisplay_composite.cxx')
+    OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL',  'NVIDIACG', 'CGGL']
+    TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx')
+    TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_config_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='glgsg_glgsg.obj')
+    TargetAdd('libpandagl.dll', input='wgldisplay_composite.obj')
+    TargetAdd('libpandagl.dll', input='libp3windisplay.dll')
+    TargetAdd('libpandagl.dll', input='libp3glstuff.dll')
+    TargetAdd('libpandagl.dll', input='libpandafx.dll')
+    TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandagl.dll', opts=['WINGDI', 'GLUT', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM',  'NVIDIACG', 'CGGL'])
+
+#
+# DIRECTORY: panda/src/ode/
+#
+if (PkgSkip("ODE")==0):
+    OPTS=['DIR:panda/src/ode', 'BUILDING:PANDAODE', 'ODE']
+    TargetAdd('pode_composite1.obj', opts=OPTS, input='pode_composite1.cxx')
+    TargetAdd('pode_composite2.obj', opts=OPTS, input='pode_composite2.cxx')
+    TargetAdd('pode_composite3.obj', opts=OPTS, input='pode_composite3.cxx')
+    IGATEFILES=GetDirectoryContents('panda/src/ode', ["*.h", "*_composite.cxx"])
+    IGATEFILES.remove("odeConvexGeom.h")
+    IGATEFILES.remove("odeHeightFieldGeom.h")
+    IGATEFILES.remove("odeHelperStructs.h")
+    TargetAdd('libpandaode.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libpandaode.in', opts=['IMOD:pandaode', 'ILIB:libpandaode', 'SRCDIR:panda/src/ode'])
+    TargetAdd('libpandaode_igate.obj', input='libpandaode.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/metalibs/pandaode/
+#
+if (PkgSkip("ODE")==0):
+    OPTS=['DIR:panda/metalibs/pandaode', 'BUILDING:PANDAODE', 'ODE']
+    TargetAdd('pandaode_pandaode.obj', opts=OPTS, input='pandaode.cxx')
+    
+    TargetAdd('libpandaode_module.obj', input='libpandaode.in')
+    TargetAdd('libpandaode_module.obj', opts=OPTS)
+    TargetAdd('libpandaode_module.obj', opts=['IMOD:pandaode', 'ILIB:libpandaode'])
+    
+    TargetAdd('libpandaode.dll', input='pandaode_pandaode.obj')
+    TargetAdd('libpandaode.dll', input='libpandaode_module.obj')
+    TargetAdd('libpandaode.dll', input='pode_composite1.obj')
+    TargetAdd('libpandaode.dll', input='pode_composite2.obj')
+    TargetAdd('libpandaode.dll', input='pode_composite3.obj')
+    TargetAdd('libpandaode.dll', input='libpandaode_igate.obj')
+    TargetAdd('libpandaode.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libpandaode.dll', opts=['WINUSER', 'ODE'])
+
+#
+# DIRECTORY: panda/src/physics/
+#
+
+OPTS=['DIR:panda/src/physics', 'BUILDING:PANDAPHYSICS']
+TargetAdd('physics_composite.obj', opts=OPTS, input='physics_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/physics', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove("forces.h")
+TargetAdd('libphysics.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libphysics.in', opts=['IMOD:pandaphysics', 'ILIB:libphysics', 'SRCDIR:panda/src/physics'])
+TargetAdd('libphysics_igate.obj', input='libphysics.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: panda/src/particlesystem/
+#
+
+OPTS=['DIR:panda/src/particlesystem', 'BUILDING:PANDAPHYSICS']
+TargetAdd('particlesystem_composite.obj', opts=OPTS, input='particlesystem_composite.cxx')
+IGATEFILES=GetDirectoryContents('panda/src/particlesystem', ["*.h", "*_composite.cxx"])
+IGATEFILES.remove('orientedParticle.h')
+IGATEFILES.remove('orientedParticleFactory.h')
+IGATEFILES.remove('particlefactories.h')
+IGATEFILES.remove('emitters.h')
+IGATEFILES.remove('particles.h')
+TargetAdd('libparticlesystem.in', opts=OPTS, input=IGATEFILES)
+TargetAdd('libparticlesystem.in', opts=['IMOD:pandaphysics', 'ILIB:libparticlesystem', 'SRCDIR:panda/src/particlesystem'])
+
+#
+# DIRECTORY: panda/metalibs/pandaphysics/
+#
+
+OPTS=['DIR:panda/metalibs/pandaphysics', 'BUILDING:PANDAPHYSICS']
+TargetAdd('pandaphysics_pandaphysics.obj', opts=OPTS, input='pandaphysics.cxx')
+
+TargetAdd('libpandaphysics_module.obj', input='libphysics.in')
+TargetAdd('libpandaphysics_module.obj', input='libparticlesystem.in')
+TargetAdd('libpandaphysics_module.obj', opts=OPTS)
+TargetAdd('libpandaphysics_module.obj', opts=['IMOD:pandaphysics', 'ILIB:libpandaphysics'])
+
+TargetAdd('libpandaphysics.dll', input='pandaphysics_pandaphysics.obj')
+TargetAdd('libpandaphysics.dll', input='libpandaphysics_module.obj')
+TargetAdd('libpandaphysics.dll', input='physics_composite.obj')
+TargetAdd('libpandaphysics.dll', input='libphysics_igate.obj')
+TargetAdd('libpandaphysics.dll', input='particlesystem_composite.obj')
+TargetAdd('libpandaphysics.dll', input='libparticlesystem_igate.obj')
+TargetAdd('libpandaphysics.dll', input=COMMON_PANDA_LIBS)
+TargetAdd('libpandaphysics.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: panda/src/testbed/
+#
+
+OPTS=['DIR:panda/src/testbed']
+TargetAdd('pview_pview.obj', opts=OPTS, input='pview.cxx')
+TargetAdd('pview.exe', input='pview_pview.obj')
+TargetAdd('pview.exe', input='libp3framework.dll')
+TargetAdd('pview.exe', input='libpandafx.dll')
+TargetAdd('pview.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+TargetAdd('pview.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: panda/src/tinydisplay/
+#
+
+OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY']
+TargetAdd('tinydisplay_composite1.obj', opts=OPTS, input='tinydisplay_composite1.cxx')
+TargetAdd('tinydisplay_composite2.obj', opts=OPTS, input='tinydisplay_composite2.cxx')
+TargetAdd('tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx')
+TargetAdd('tinydisplay_ztriangle_2.obj', opts=OPTS, input='ztriangle_2.cxx')
+TargetAdd('tinydisplay_ztriangle_3.obj', opts=OPTS, input='ztriangle_3.cxx')
+TargetAdd('tinydisplay_ztriangle_4.obj', opts=OPTS, input='ztriangle_4.cxx')
+TargetAdd('tinydisplay_ztriangle_table.obj', opts=OPTS, input='ztriangle_table.cxx')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_composite1.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_composite2.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_ztriangle_1.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_ztriangle_2.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_ztriangle_3.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_ztriangle_4.obj')
+TargetAdd('libtinydisplay.dll', input='tinydisplay_ztriangle_table.obj')
+TargetAdd('libtinydisplay.dll', input=COMMON_PANDA_LIBS)
+if (sys.platform == "win32"):
+    TargetAdd('libtinydisplay.dll', input='libp3windisplay.dll')
+    TargetAdd('libtinydisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM'])
+
+#
+# DIRECTORY: direct/src/directbase/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/directbase']
+
+    TargetAdd('genpycode.obj', opts=OPTS+['BUILDING:GENPYCODE'], input='ppython.cxx')
+    TargetAdd('genpycode.exe', input='genpycode.obj')
+    TargetAdd('genpycode.exe', opts=['WINUSER'])
+
+    TargetAdd('packpanda.obj', opts=OPTS+['BUILDING:PACKPANDA'], input='ppython.cxx')
+    TargetAdd('packpanda.exe', input='packpanda.obj')
+    TargetAdd('packpanda.exe', opts=['WINUSER'])
+
+    TargetAdd('eggcacher.obj', opts=OPTS+['BUILDING:EGGCACHER'], input='ppython.cxx')
+    TargetAdd('eggcacher.exe', input='eggcacher.obj')
+    TargetAdd('eggcacher.exe', opts=['WINUSER'])
+
+    OPTS=['DIR:direct/src/directbase', 'BUILDING:DIRECT']
+
+    TargetAdd('directbase_directbase.obj', opts=OPTS, input='directbase.cxx')
+
+#
+# DIRECTORY: direct/src/dcparser/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT', 'BISONPREFIX_dcyy']
+    CreateFile(GetOutputDir()+"/include/dcParser.h")
+    TargetAdd('dcparser_dcParser.obj', opts=OPTS, input='dcParser.yxx')
+    TargetAdd('dcParser.h', input='egg_parser.obj', opts=['DEPENDENCYONLY'])
+    TargetAdd('dcparser_dcLexer.obj', opts=OPTS, input='dcLexer.lxx')
+    TargetAdd('dcparser_composite.obj', opts=OPTS, input='dcparser_composite.cxx')
+    IGATEFILES=GetDirectoryContents('direct/src/dcparser', ["*.h", "*_composite.cxx"])
+    IGATEFILES.remove('dcmsgtypes.h')
+    TargetAdd('libdcparser.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libdcparser.in', opts=['IMOD:p3direct', 'ILIB:libdcparser', 'SRCDIR:direct/src/dcparser'])
+    TargetAdd('libdcparser_igate.obj', input='libdcparser.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: direct/src/deadrec/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/deadrec', 'BUILDING:DIRECT']
+    TargetAdd('deadrec_composite.obj', opts=OPTS, input='deadrec_composite.cxx')
+    IGATEFILES=GetDirectoryContents('direct/src/deadrec', ["*.h", "*_composite.cxx"])
+    TargetAdd('libdeadrec.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libdeadrec.in', opts=['IMOD:p3direct', 'ILIB:libdeadrec', 'SRCDIR:direct/src/deadrec'])
+    TargetAdd('libdeadrec_igate.obj', input='libdeadrec.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: direct/src/distributed/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/distributed', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT', 'OPENSSL']
+    TargetAdd('distributed_config_distributed.obj', opts=OPTS, input='config_distributed.cxx')
+    TargetAdd('distributed_cConnectionRepository.obj', opts=OPTS, input='cConnectionRepository.cxx')
+    TargetAdd('distributed_cDistributedSmoothNodeBase.obj', opts=OPTS, input='cDistributedSmoothNodeBase.cxx')
+    IGATEFILES=GetDirectoryContents('direct/src/distributed', ["*.h", "*.cxx"])
+    TargetAdd('libdistributed.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libdistributed.in', opts=['IMOD:p3direct', 'ILIB:libdistributed', 'SRCDIR:direct/src/distributed'])
+    TargetAdd('libdistributed_igate.obj', input='libdistributed.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: direct/src/interval/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/interval', 'BUILDING:DIRECT']
+    TargetAdd('interval_composite.obj', opts=OPTS, input='interval_composite.cxx')
+    IGATEFILES=GetDirectoryContents('direct/src/interval', ["*.h", "*_composite.cxx"])
+    TargetAdd('libinterval.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libinterval.in', opts=['IMOD:p3direct', 'ILIB:libinterval', 'SRCDIR:direct/src/interval'])
+    TargetAdd('libinterval_igate.obj', input='libinterval.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: direct/src/showbase/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/showbase', 'BUILDING:DIRECT']
+    TargetAdd('showbase_showBase.obj', opts=OPTS, input='showBase.cxx')
+    IGATEFILES=GetDirectoryContents('direct/src/showbase', ["*.h", "showBase.cxx"])
+    TargetAdd('libshowbase.in', opts=OPTS, input=IGATEFILES)
+    TargetAdd('libshowbase.in', opts=['IMOD:p3direct', 'ILIB:libshowbase', 'SRCDIR:direct/src/showbase'])
+    TargetAdd('libshowbase_igate.obj', input='libshowbase.in', opts=["DEPENDENCYONLY"])
+
+#
+# DIRECTORY: direct/metalibs/direct/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/metalibs/direct', 'BUILDING:DIRECT']
+    TargetAdd('direct_direct.obj', opts=OPTS, input='direct.cxx')
+
+    TargetAdd('libp3direct_module.obj', input='libdcparser.in')
+    TargetAdd('libp3direct_module.obj', input='libshowbase.in')
+    TargetAdd('libp3direct_module.obj', input='libdeadrec.in')
+    TargetAdd('libp3direct_module.obj', input='libinterval.in')
+    TargetAdd('libp3direct_module.obj', input='libdistributed.in')
+    TargetAdd('libp3direct_module.obj', opts=OPTS)
+    TargetAdd('libp3direct_module.obj', opts=['IMOD:p3direct', 'ILIB:libp3direct'])
+
+    TargetAdd('libp3direct.dll', input='direct_direct.obj')
+    TargetAdd('libp3direct.dll', input='libp3direct_module.obj')
+    TargetAdd('libp3direct.dll', input='directbase_directbase.obj')
+    TargetAdd('libp3direct.dll', input='dcparser_composite.obj')
+    TargetAdd('libp3direct.dll', input='dcparser_dcParser.obj')
+    TargetAdd('libp3direct.dll', input='dcparser_dcLexer.obj')
+    TargetAdd('libp3direct.dll', input='libdcparser_igate.obj')
+    TargetAdd('libp3direct.dll', input='showbase_showBase.obj')
+    TargetAdd('libp3direct.dll', input='libshowbase_igate.obj')
+    TargetAdd('libp3direct.dll', input='deadrec_composite.obj')
+    TargetAdd('libp3direct.dll', input='libdeadrec_igate.obj')
+    TargetAdd('libp3direct.dll', input='interval_composite.obj')
+    TargetAdd('libp3direct.dll', input='libinterval_igate.obj')
+    TargetAdd('libp3direct.dll', input='distributed_config_distributed.obj')
+    TargetAdd('libp3direct.dll', input='distributed_cConnectionRepository.obj')
+    TargetAdd('libp3direct.dll', input='distributed_cDistributedSmoothNodeBase.obj')
+    TargetAdd('libp3direct.dll', input='libdistributed_igate.obj')
+    TargetAdd('libp3direct.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libp3direct.dll', opts=['ADVAPI',  'OPENSSL'])
+
+#
+# DIRECTORY: direct/src/dcparse/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/dcparse', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'ADVAPI']
+    TargetAdd('dcparse_dcparse.obj', opts=OPTS, input='dcparse.cxx')
+    TargetAdd('p3dcparse.exe', input='dcparse_dcparse.obj')
+    TargetAdd('p3dcparse.exe', input='libp3direct.dll')
+    TargetAdd('p3dcparse.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('p3dcparse.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: direct/src/heapq/
+#
+
+if (PkgSkip("PYTHON")==0):
+    OPTS=['DIR:direct/src/heapq']
+    TargetAdd('heapq_heapq.obj', opts=OPTS, input='heapq.cxx')
+    TargetAdd('libp3heapq.dll', input='heapq_heapq.obj')
+    TargetAdd('libp3heapq.dll', input='libpandaexpress.dll')
+    TargetAdd('libp3heapq.dll', input=COMMON_DTOOL_LIBS)
+    TargetAdd('libp3heapq.dll', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/pandatoolbase/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/pandatoolbase']
+    TargetAdd('pandatoolbase_composite1.obj', opts=OPTS, input='pandatoolbase_composite1.cxx')
+    TargetAdd('libpandatoolbase.lib', input='pandatoolbase_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/converter/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/converter']
+    TargetAdd('converter_somethingToEggConverter.obj', opts=OPTS, input='somethingToEggConverter.cxx')
+    TargetAdd('libconverter.lib', input='converter_somethingToEggConverter.obj')
+
+#
+# DIRECTORY: pandatool/src/progbase/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/progbase', 'ZLIB']
+    TargetAdd('progbase_composite1.obj', opts=OPTS, input='progbase_composite1.cxx')
+    TargetAdd('libprogbase.lib', input='progbase_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/eggbase/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/eggbase']
+    TargetAdd('eggbase_composite1.obj', opts=OPTS, input='eggbase_composite1.cxx')
+    TargetAdd('libeggbase.lib', input='eggbase_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/bam/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/bam']
+    TargetAdd('bam-info_bamInfo.obj', opts=OPTS, input='bamInfo.cxx')
+    TargetAdd('bam-info.exe', input='bam-info_bamInfo.obj')
+    TargetAdd('bam-info.exe', input='libprogbase.lib')
+    TargetAdd('bam-info.exe', input='libpandatoolbase.lib')
+    TargetAdd('bam-info.exe', input='libpandaegg.dll')
+    TargetAdd('bam-info.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('bam-info.exe', opts=['ADVAPI',  'FFTW'])
+
+    TargetAdd('bam2egg_bamToEgg.obj', opts=OPTS, input='bamToEgg.cxx')
+    TargetAdd('bam2egg.exe', input='bam2egg_bamToEgg.obj')
+    TargetAdd('bam2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('bam2egg.exe', opts=['ADVAPI',  'FFTW'])
+
+    TargetAdd('egg2bam_eggToBam.obj', opts=OPTS, input='eggToBam.cxx')
+    TargetAdd('egg2bam.exe', input='egg2bam_eggToBam.obj')
+    TargetAdd('egg2bam.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg2bam.exe', opts=['ADVAPI',  'FFTW'])
+    
+#
+# DIRECTORY: pandatool/src/cvscopy/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/cvscopy']
+    TargetAdd('cvscopy_composite1.obj', opts=OPTS, input='cvscopy_composite1.cxx')
+    TargetAdd('libcvscopy.lib', input='cvscopy_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/daeegg/
+#
+if (PkgSkip("PANDATOOL")==0 and PkgSkip("FCOLLADA")==0):
+    OPTS=['DIR:pandatool/src/daeegg', 'FCOLLADA']
+    TargetAdd('daeegg_composite1.obj', opts=OPTS, input='daeegg_composite1.cxx')
+    TargetAdd('libdaeegg.lib', input='daeegg_composite1.obj')
+    TargetAdd('libdaeegg.lib', opts=['FCOLLADA', 'CARBON'])
+
+#
+# DIRECTORY: pandatool/src/daeprogs/
+#
+if (PkgSkip("PANDATOOL")==0 and PkgSkip("FCOLLADA")==0):
+    OPTS=['DIR:pandatool/src/daeprogs', 'FCOLLADA']
+    TargetAdd('dae2egg_daeToEgg.obj', opts=OPTS, input='daeToEgg.cxx')
+    TargetAdd('dae2egg.exe', input='dae2egg_daeToEgg.obj')
+    TargetAdd('dae2egg.exe', input='libdaeegg.lib')
+    TargetAdd('dae2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('dae2egg.exe', opts=['WINUSER', 'FCOLLADA', 'CARBON'])
+
+#
+# DIRECTORY: pandatool/src/dxf/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/dxf']
+    TargetAdd('dxf_composite1.obj', opts=OPTS, input='dxf_composite1.cxx')
+    TargetAdd('libdxf.lib', input='dxf_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/dxfegg/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/dxfegg']
+    TargetAdd('dxfegg_dxfToEggConverter.obj', opts=OPTS, input='dxfToEggConverter.cxx')
+    TargetAdd('dxfegg_dxfToEggLayer.obj', opts=OPTS, input='dxfToEggLayer.cxx')
+    TargetAdd('libdxfegg.lib', input='dxfegg_dxfToEggConverter.obj')
+    TargetAdd('libdxfegg.lib', input='dxfegg_dxfToEggLayer.obj')
+
+#
+# DIRECTORY: pandatool/src/dxfprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/dxfprogs']
+    TargetAdd('dxf-points_dxfPoints.obj', opts=OPTS, input='dxfPoints.cxx')
+    TargetAdd('dxf-points.exe', input='dxf-points_dxfPoints.obj')
+    TargetAdd('dxf-points.exe', input='libprogbase.lib')
+    TargetAdd('dxf-points.exe', input='libdxf.lib')
+    TargetAdd('dxf-points.exe', input='libpandatoolbase.lib')
+    TargetAdd('dxf-points.exe', input=COMMON_PANDA_LIBS_PYSTUB)
+    TargetAdd('dxf-points.exe', opts=['ADVAPI',  'FFTW'])
+
+    TargetAdd('dxf2egg_dxfToEgg.obj', opts=OPTS, input='dxfToEgg.cxx')
+    TargetAdd('dxf2egg.exe', input='dxf2egg_dxfToEgg.obj')
+    TargetAdd('dxf2egg.exe', input='libdxfegg.lib')
+    TargetAdd('dxf2egg.exe', input='libdxf.lib')
+    TargetAdd('dxf2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('dxf2egg.exe', opts=['ADVAPI',  'FFTW'])
+
+    TargetAdd('egg2dxf_eggToDXF.obj', opts=OPTS, input='eggToDXF.cxx')
+    TargetAdd('egg2dxf_eggToDXFLayer.obj', opts=OPTS, input='eggToDXFLayer.cxx')
+    TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXF.obj')
+    TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXFLayer.obj')
+    TargetAdd('egg2dxf.exe', input='libdxf.lib')
+    TargetAdd('egg2dxf.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg2dxf.exe', opts=['ADVAPI',  'FFTW'])
+
+#
+# DIRECTORY: pandatool/src/palettizer/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/palettizer']
+    TargetAdd('palettizer_composite1.obj', opts=OPTS, input='palettizer_composite1.cxx')
+    TargetAdd('libpalettizer.lib', input='palettizer_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/egg-mkfont/
+#
+
+if (PkgSkip("FREETYPE")==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/egg-mkfont', 'DIR:pandatool/src/palettizer', 'FREETYPE']
+    TargetAdd('egg-mkfont_eggMakeFont.obj', opts=OPTS, input='eggMakeFont.cxx')
+    TargetAdd('egg-mkfont_rangeDescription.obj', opts=OPTS, input='rangeDescription.cxx')
+    TargetAdd('egg-mkfont_rangeIterator.obj', opts=OPTS, input='rangeIterator.cxx')
+    TargetAdd('egg-mkfont.exe', input='egg-mkfont_eggMakeFont.obj')
+    TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeDescription.obj')
+    TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeIterator.obj')
+    TargetAdd('egg-mkfont.exe', input='libpalettizer.lib')
+    TargetAdd('egg-mkfont.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-mkfont.exe', opts=['ADVAPI', 'FREETYPE'])
+
+#
+# DIRECTORY: pandatool/src/eggcharbase/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/eggcharbase', 'ZLIB']
+    TargetAdd('eggcharbase_composite1.obj', opts=OPTS, input='eggcharbase_composite1.cxx')
+    TargetAdd('libeggcharbase.lib', input='eggcharbase_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/egg-optchar/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/egg-optchar']
+    TargetAdd('egg-optchar_config_egg_optchar.obj', opts=OPTS, input='config_egg_optchar.cxx')
+    TargetAdd('egg-optchar_eggOptchar.obj', opts=OPTS, input='eggOptchar.cxx')
+    TargetAdd('egg-optchar_eggOptcharUserData.obj', opts=OPTS, input='eggOptcharUserData.cxx')
+    TargetAdd('egg-optchar_vertexMembership.obj', opts=OPTS, input='vertexMembership.cxx')
+    TargetAdd('egg-optchar.exe', input='egg-optchar_config_egg_optchar.obj')
+    TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptchar.obj')
+    TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptcharUserData.obj')
+    TargetAdd('egg-optchar.exe', input='egg-optchar_vertexMembership.obj')
+    TargetAdd('egg-optchar.exe', input='libeggcharbase.lib')
+    TargetAdd('egg-optchar.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-optchar.exe', opts=['ADVAPI', 'FREETYPE'])
+
+#
+# DIRECTORY: pandatool/src/egg-palettize/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/egg-palettize', 'DIR:pandatool/src/palettizer']
+    TargetAdd('egg-palettize_eggPalettize.obj', opts=OPTS, input='eggPalettize.cxx')
+    TargetAdd('egg-palettize.exe', input='egg-palettize_eggPalettize.obj')
+    TargetAdd('egg-palettize.exe', input='libpalettizer.lib')
+    TargetAdd('egg-palettize.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-palettize.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/egg-qtess/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/egg-qtess']
+    TargetAdd('egg-qtess_composite1.obj', opts=OPTS, input='egg-qtess_composite1.cxx')
+    TargetAdd('egg-qtess.exe', input='egg-qtess_composite1.obj')
+    TargetAdd('egg-qtess.exe', input='libeggbase.lib')
+    TargetAdd('egg-qtess.exe', input='libprogbase.lib')
+    TargetAdd('egg-qtess.exe', input='libconverter.lib')
+    TargetAdd('egg-qtess.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-qtess.exe', opts=['ADVAPI'])
+    
+#
+# DIRECTORY: pandatool/src/eggprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/eggprogs']
+    TargetAdd('egg-crop_eggCrop.obj', opts=OPTS, input='eggCrop.cxx')
+    TargetAdd('egg-crop.exe', input='egg-crop_eggCrop.obj')
+    TargetAdd('egg-crop.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-crop.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-make-tube_eggMakeTube.obj', opts=OPTS, input='eggMakeTube.cxx')
+    TargetAdd('egg-make-tube.exe', input='egg-make-tube_eggMakeTube.obj')
+    TargetAdd('egg-make-tube.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-make-tube.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-texture-cards_eggTextureCards.obj', opts=OPTS, input='eggTextureCards.cxx')
+    TargetAdd('egg-texture-cards.exe', input='egg-texture-cards_eggTextureCards.obj')
+    TargetAdd('egg-texture-cards.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-texture-cards.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-topstrip_eggTopstrip.obj', opts=OPTS, input='eggTopstrip.cxx')
+    TargetAdd('egg-topstrip.exe', input='egg-topstrip_eggTopstrip.obj')
+    TargetAdd('egg-topstrip.exe', input='libeggcharbase.lib')
+    TargetAdd('egg-topstrip.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-topstrip.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-trans_eggTrans.obj', opts=OPTS, input='eggTrans.cxx')
+    TargetAdd('egg-trans.exe', input='egg-trans_eggTrans.obj')
+    TargetAdd('egg-trans.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-trans.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg2c_eggToC.obj', opts=OPTS, input='eggToC.cxx')
+    TargetAdd('egg2c.exe', input='egg2c_eggToC.obj')
+    TargetAdd('egg2c.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg2c.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-rename_eggRename.obj', opts=OPTS, input='eggRename.cxx')
+    TargetAdd('egg-rename.exe', input='egg-rename_eggRename.obj')
+    TargetAdd('egg-rename.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-rename.exe', opts=['ADVAPI'])
+
+    TargetAdd('egg-retarget-anim_eggRetargetAnim.obj', opts=OPTS, input='eggRetargetAnim.cxx')
+    TargetAdd('egg-retarget-anim.exe', input='egg-retarget-anim_eggRetargetAnim.obj')
+    TargetAdd('egg-retarget-anim.exe', input='libeggcharbase.lib')
+    TargetAdd('egg-retarget-anim.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg-retarget-anim.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/flt/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/flt', 'ZLIB']
+    TargetAdd('flt_fltVectorRecord.obj', opts=OPTS, input='fltVectorRecord.cxx')
+    TargetAdd('flt_composite1.obj', opts=OPTS, input='flt_composite1.cxx')
+    TargetAdd('libflt.lib', input=['flt_fltVectorRecord.obj', 'flt_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/fltegg/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/fltegg']
+    TargetAdd('fltegg_fltToEggConverter.obj', opts=OPTS, input='fltToEggConverter.cxx')
+    TargetAdd('fltegg_fltToEggLevelState.obj', opts=OPTS, input='fltToEggLevelState.cxx')
+    TargetAdd('libfltegg.lib', input=['fltegg_fltToEggConverter.obj', 'fltegg_fltToEggLevelState.obj'])
+
+#
+# DIRECTORY: pandatool/src/fltprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/fltprogs', 'DIR:pandatool/src/flt', 'DIR:pandatool/src/cvscopy']
+    TargetAdd('egg2flt_eggToFlt.obj', opts=OPTS, input='eggToFlt.cxx')
+    TargetAdd('egg2flt.exe', input='egg2flt_eggToFlt.obj')
+    TargetAdd('egg2flt.exe', input='libflt.lib')
+    TargetAdd('egg2flt.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg2flt.exe', opts=['ADVAPI'])
+
+    TargetAdd('flt-info_fltInfo.obj', opts=OPTS, input='fltInfo.cxx')
+    TargetAdd('flt-info.exe', input='flt-info_fltInfo.obj')
+    TargetAdd('flt-info.exe', input='libflt.lib')
+    TargetAdd('flt-info.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('flt-info.exe', opts=['ADVAPI'])
+
+    TargetAdd('flt-trans_fltTrans.obj', opts=OPTS, input='fltTrans.cxx')
+    TargetAdd('flt-trans.exe', input='flt-trans_fltTrans.obj')
+    TargetAdd('flt-trans.exe', input='libflt.lib')
+    TargetAdd('flt-trans.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('flt-trans.exe', opts=['ADVAPI'])
+
+    TargetAdd('flt2egg_fltToEgg.obj', opts=OPTS, input='fltToEgg.cxx')
+    TargetAdd('flt2egg.exe', input='flt2egg_fltToEgg.obj')
+    TargetAdd('flt2egg.exe', input='libflt.lib')
+    TargetAdd('flt2egg.exe', input='libfltegg.lib')
+    TargetAdd('flt2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('flt2egg.exe', opts=['ADVAPI'])
+
+    TargetAdd('fltcopy_fltCopy.obj', opts=OPTS, input='fltCopy.cxx')
+    TargetAdd('fltcopy.exe', input='fltcopy_fltCopy.obj')
+    TargetAdd('fltcopy.exe', input='libcvscopy.lib')
+    TargetAdd('fltcopy.exe', input='libflt.lib')
+    TargetAdd('fltcopy.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('fltcopy.exe', opts=['ADVAPI'])
+
+
+#
+# DIRECTORY: pandatool/src/imagebase/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/imagebase']
+    TargetAdd('imagebase_composite1.obj', opts=OPTS, input='imagebase_composite1.cxx')
+    TargetAdd('libimagebase.lib', input='imagebase_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/imageprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/imageprogs']
+    TargetAdd('image-info_imageInfo.obj', opts=OPTS, input='imageInfo.cxx')
+    TargetAdd('image-info.exe', input='image-info_imageInfo.obj')
+    TargetAdd('image-info.exe', input='libimagebase.lib')
+    TargetAdd('image-info.exe', input='libprogbase.lib')
+    TargetAdd('image-info.exe', input='libpandatoolbase.lib')
+    TargetAdd('image-info.exe', input='libpandaegg.dll')
+    TargetAdd('image-info.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('image-info.exe', input='libp3pystub.dll')
+    TargetAdd('image-info.exe', opts=['ADVAPI'])
+    
+    TargetAdd('image-resize_imageResize.obj', opts=OPTS, input='imageResize.cxx')
+    TargetAdd('image-resize.exe', input='image-resize_imageResize.obj')
+    TargetAdd('image-resize.exe', input='libimagebase.lib')
+    TargetAdd('image-resize.exe', input='libprogbase.lib')
+    TargetAdd('image-resize.exe', input='libpandatoolbase.lib')
+    TargetAdd('image-resize.exe', input='libpandaegg.dll')
+    TargetAdd('image-resize.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('image-resize.exe', input='libp3pystub.dll')
+    TargetAdd('image-resize.exe', opts=['ADVAPI'])
+    
+    TargetAdd('image-trans_imageTrans.obj', opts=OPTS, input='imageTrans.cxx')
+    TargetAdd('image-trans.exe', input='image-trans_imageTrans.obj')
+    TargetAdd('image-trans.exe', input='libimagebase.lib')
+    TargetAdd('image-trans.exe', input='libprogbase.lib')
+    TargetAdd('image-trans.exe', input='libpandatoolbase.lib')
+    TargetAdd('image-trans.exe', input='libpandaegg.dll')
+    TargetAdd('image-trans.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('image-trans.exe', input='libp3pystub.dll')
+    TargetAdd('image-trans.exe', opts=['ADVAPI'])
+
+
+#
+# DIRECTORY: pandatool/src/lwo/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/lwo']
+    TargetAdd('lwo_composite1.obj', opts=OPTS, input='lwo_composite1.cxx')
+    TargetAdd('liblwo.lib', input='lwo_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/lwoegg/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/lwoegg']
+    TargetAdd('lwoegg_composite1.obj', opts=OPTS, input='lwoegg_composite1.cxx')
+    TargetAdd('liblwoegg.lib', input='lwoegg_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/lwoprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/lwoprogs', 'DIR:pandatool/src/lwo']
+    TargetAdd('lwo-scan_lwoScan.obj', opts=OPTS, input='lwoScan.cxx')
+    TargetAdd('lwo-scan.exe', input='lwo-scan_lwoScan.obj')
+    TargetAdd('lwo-scan.exe', input='liblwo.lib')
+    TargetAdd('lwo-scan.exe', input='libprogbase.lib')
+    TargetAdd('lwo-scan.exe', input='libpandatoolbase.lib')
+    TargetAdd('lwo-scan.exe', input='libpandaegg.dll')
+    TargetAdd('lwo-scan.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('lwo-scan.exe', input='libp3pystub.dll')
+    TargetAdd('lwo-scan.exe', opts=['ADVAPI'])
+    
+    TargetAdd('lwo2egg_lwoToEgg.obj', opts=OPTS, input='lwoToEgg.cxx')
+    TargetAdd('lwo2egg.exe', input='lwo2egg_lwoToEgg.obj')
+    TargetAdd('lwo2egg.exe', input='liblwo.lib')
+    TargetAdd('lwo2egg.exe', input='liblwoegg.lib')
+    TargetAdd('lwo2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('lwo2egg.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/maya/
+#
+
+for VER in MAYAVERSIONS:
+  VNUM=VER[4:]
+  if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/maya', VER]
+    TargetAdd('maya'+VNUM+'_composite1.obj', opts=OPTS, input='maya_composite1.cxx')
+    TargetAdd('libmaya'+VNUM+'.lib', input='maya'+VNUM+'_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/mayaegg/
+#
+
+for VER in MAYAVERSIONS:
+  VNUM=VER[4:]
+  if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/maya', VER]
+    TargetAdd('mayaegg'+VNUM+'_loader.obj', opts=OPTS, input='mayaEggLoader.cxx')
+    TargetAdd('mayaegg'+VNUM+'_composite1.obj', opts=OPTS, input='mayaegg_composite1.cxx')
+    TargetAdd('libmayaegg'+VNUM+'.lib', input='mayaegg'+VNUM+'_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/maxegg/
+#
+
+for VER in MAXVERSIONS:
+  VNUM=VER[3:]
+  if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/maxegg', VER,  "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"]
+    CopyFile(GetOutputDir()+"/tmp/maxEgg.obj", "pandatool/src/maxegg/maxEgg.obj")
+    TargetAdd('maxegg'+VNUM+'_loader.obj', opts=OPTS, input='maxEggLoader.cxx')
+    TargetAdd('maxegg'+VNUM+'_composite1.obj', opts=OPTS, input='maxegg_composite1.cxx')
+    TargetAdd('maxegg'+VNUM+'.dlo', input='maxegg'+VNUM+'_composite1.obj')
+    TargetAdd('maxegg'+VNUM+'.dlo', input='maxEgg.obj')
+    TargetAdd('maxegg'+VNUM+'.dlo', input='maxEgg.def', ipath=OPTS)
+    TargetAdd('maxegg'+VNUM+'.dlo', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('maxegg'+VNUM+'.dlo', opts=OPTS)
+
+#
+# DIRECTORY: pandatool/src/maxprogs/
+#
+
+for VER in MAXVERSIONS:
+  VNUM=VER[3:]
+  if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/maxprogs', VER,  "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE"]
+    CopyFile(GetOutputDir()+"/tmp/maxImportRes.obj", "pandatool/src/maxprogs/maxImportRes.obj")
+    TargetAdd('maxprogs'+VNUM+'_maxeggimport.obj', opts=OPTS, input='maxEggImport.cxx')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='maxegg'+VNUM+'_loader.obj')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='maxprogs'+VNUM+'_maxeggimport.obj')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='maxImportRes.obj')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandaeggstripped.dll')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandastripped.dll')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='libpandaexpress.dll')
+    TargetAdd('maxeggimport'+VNUM+'.dle', input='maxEggImport.def', ipath=OPTS)
+    TargetAdd('maxeggimport'+VNUM+'.dle', input=COMMON_DTOOL_LIBS)
+    TargetAdd('maxeggimport'+VNUM+'.dle', opts=OPTS)
+
+#
+# DIRECTORY: pandatool/src/vrml/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/vrml', 'ZLIB', 'BISONPREFIX_vrmlyy']
+    CreateFile(GetOutputDir()+"/include/vrmlParser.h")
+    TargetAdd('pvrml_vrmlParser.obj', opts=OPTS, input='vrmlParser.yxx')
+    TargetAdd('vrmlParser.h', input='pvrml_vrmlParser.obj', opts=['DEPENDENCYONLY'])
+    TargetAdd('pvrml_vrmlLexer.obj', opts=OPTS, input='vrmlLexer.lxx')
+    TargetAdd('pvrml_parse_vrml.obj', opts=OPTS, input='parse_vrml.cxx')
+    TargetAdd('pvrml_standard_nodes.obj', opts=OPTS, input='standard_nodes.cxx')
+    TargetAdd('pvrml_vrmlNode.obj', opts=OPTS, input='vrmlNode.cxx')
+    TargetAdd('pvrml_vrmlNodeType.obj', opts=OPTS, input='vrmlNodeType.cxx')
+    TargetAdd('libpvrml.lib', input='pvrml_parse_vrml.obj')
+    TargetAdd('libpvrml.lib', input='pvrml_standard_nodes.obj')
+    TargetAdd('libpvrml.lib', input='pvrml_vrmlNode.obj')
+    TargetAdd('libpvrml.lib', input='pvrml_vrmlNodeType.obj')
+    TargetAdd('libpvrml.lib', input='pvrml_vrmlParser.obj')
+    TargetAdd('libpvrml.lib', input='pvrml_vrmlLexer.obj')
+
+#
+# DIRECTORY: pandatool/src/vrmlegg/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/vrmlegg', 'DIR:pandatool/src/vrml']
+    TargetAdd('vrmlegg_indexedFaceSet.obj', opts=OPTS, input='indexedFaceSet.cxx')
+    TargetAdd('vrmlegg_vrmlAppearance.obj', opts=OPTS, input='vrmlAppearance.cxx')
+    TargetAdd('vrmlegg_vrmlToEggConverter.obj', opts=OPTS, input='vrmlToEggConverter.cxx')
+    TargetAdd('libvrmlegg.lib', input='vrmlegg_indexedFaceSet.obj')
+    TargetAdd('libvrmlegg.lib', input='vrmlegg_vrmlAppearance.obj')
+    TargetAdd('libvrmlegg.lib', input='vrmlegg_vrmlToEggConverter.obj')
+
+#
+# DIRECTORY: pandatool/src/xfile/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/xfile', 'ZLIB', 'BISONPREFIX_xyy', 'FLEXDASHI']
+    CreateFile(GetOutputDir()+"/include/xParser.h")
+    TargetAdd('xfile_xParser.obj', opts=OPTS, input='xParser.yxx')
+    TargetAdd('xParser.h', input='xfile_xParser.obj', opts=['DEPENDENCYONLY'])
+    TargetAdd('xfile_xLexer.obj', opts=OPTS, input='xLexer.lxx')
+    TargetAdd('xfile_composite1.obj', opts=OPTS, input='xfile_composite1.cxx')
+    TargetAdd('libxfile.lib', input='xfile_composite1.obj')
+    TargetAdd('libxfile.lib', input='xfile_xParser.obj')
+    TargetAdd('libxfile.lib', input='xfile_xLexer.obj')
+
+#
+# DIRECTORY: pandatool/src/xfileegg/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/xfileegg', 'DIR:pandatool/src/xfile']
+    TargetAdd('xfileegg_composite1.obj', opts=OPTS, input='xfileegg_composite1.cxx')
+    TargetAdd('libxfileegg.lib', input='xfileegg_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/ptloader/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/ptloader', 'DIR:pandatool/src/flt', 'DIR:pandatool/src/lwo', 'DIR:pandatool/src/xfile', 'DIR:pandatool/src/xfileegg', 'DIR:pandatool/src/daeegg', 'BUILDING:PTLOADER', 'FCOLLADA']
+    TargetAdd('ptloader_config_ptloader.obj', opts=OPTS, input='config_ptloader.cxx')
+    TargetAdd('ptloader_loaderFileTypePandatool.obj', opts=OPTS, input='loaderFileTypePandatool.cxx')
+    TargetAdd('libp3ptloader.dll', input='ptloader_config_ptloader.obj')
+    TargetAdd('libp3ptloader.dll', input='ptloader_loaderFileTypePandatool.obj')
+    TargetAdd('libp3ptloader.dll', input='libfltegg.lib')
+    TargetAdd('libp3ptloader.dll', input='libflt.lib')
+    TargetAdd('libp3ptloader.dll', input='liblwoegg.lib')
+    TargetAdd('libp3ptloader.dll', input='liblwo.lib')
+    TargetAdd('libp3ptloader.dll', input='libdxfegg.lib')
+    TargetAdd('libp3ptloader.dll', input='libdxf.lib')
+    TargetAdd('libp3ptloader.dll', input='libvrmlegg.lib')
+    TargetAdd('libp3ptloader.dll', input='libpvrml.lib')
+    TargetAdd('libp3ptloader.dll', input='libxfileegg.lib')
+    TargetAdd('libp3ptloader.dll', input='libxfile.lib')
+    TargetAdd('libp3ptloader.dll', input='libdaeegg.lib')
+    TargetAdd('libp3ptloader.dll', input='libeggbase.lib')
+    TargetAdd('libp3ptloader.dll', input='libprogbase.lib')
+    TargetAdd('libp3ptloader.dll', input='libconverter.lib')
+    TargetAdd('libp3ptloader.dll', input='libpandatoolbase.lib')
+    TargetAdd('libp3ptloader.dll', input='libpandaegg.dll')
+    TargetAdd('libp3ptloader.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libp3ptloader.dll', opts=['ADVAPI', 'FCOLLADA', 'WINUSER'])
+
+#
+# DIRECTORY: pandatool/src/mayaprogs/
+#
+
+for VER in MAYAVERSIONS:
+  VNUM=VER[4:]
+  if (PkgSkip(VER)==0) and (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/mayaprogs', 'DIR:pandatool/src/maya', 'DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/cvscopy', 'BUILDING:MISC', VER]
+    TargetAdd('mayaeggimport'+VNUM+'_mayaeggimport.obj', opts=OPTS, input='mayaEggImport.cxx')
+    TargetAdd('mayaeggimport'+VNUM+'.mll', input='mayaegg'+VNUM+'_loader.obj')
+    TargetAdd('mayaeggimport'+VNUM+'.mll', input='mayaeggimport'+VNUM+'_mayaeggimport.obj')
+    TargetAdd('mayaeggimport'+VNUM+'.mll', input='libpandaegg.dll')
+    TargetAdd('mayaeggimport'+VNUM+'.mll', input=COMMON_PANDA_LIBS)
+    if sys.platform == "win32":
+      TargetAdd('mayaeggimport'+VNUM+'.mll', input='libp3pystub.dll')
+    TargetAdd('mayaeggimport'+VNUM+'.mll', opts=['ADVAPI', VER])
+
+    TargetAdd('mayaloader'+VNUM+'_config_mayaloader.obj', opts=OPTS, input='config_mayaloader.cxx')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='mayaloader'+VNUM+'_config_mayaloader.obj')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libmayaegg'+VNUM+'.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libp3ptloader.dll')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libmaya'+VNUM+'.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libfltegg.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libflt.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='liblwoegg.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='liblwo.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libdxfegg.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libdxf.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libvrmlegg.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpvrml.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libxfileegg.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libxfile.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libeggbase.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libprogbase.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libconverter.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpandatoolbase.lib')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input='libpandaegg.dll')
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', input=COMMON_PANDA_LIBS)
+    TargetAdd('libp3mayaloader'+VNUM+'.dll', opts=['ADVAPI', VER])
+
+    TargetAdd('mayapview'+VNUM+'_mayaPview.obj', opts=OPTS, input='mayaPview.cxx')
+    TargetAdd('libmayapview'+VNUM+'.mll', input='mayapview'+VNUM+'_mayaPview.obj')
+    TargetAdd('libmayapview'+VNUM+'.mll', input='libmayaegg'+VNUM+'.lib')
+    TargetAdd('libmayapview'+VNUM+'.mll', input='libmaya'+VNUM+'.lib')
+    TargetAdd('libmayapview'+VNUM+'.mll', input='libp3framework.dll')
+    if sys.platform == "win32":
+      TargetAdd('libmayapview'+VNUM+'.mll', input=COMMON_EGG2X_LIBS_PYSTUB)
+    else:
+      TargetAdd('libmayapview'+VNUM+'.mll', input=COMMON_EGG2X_LIBS)
+    TargetAdd('libmayapview'+VNUM+'.mll', opts=['ADVAPI', VER])
+    
+    TargetAdd('maya2egg'+VNUM+'_mayaToEgg.obj', opts=OPTS, input='mayaToEgg.cxx')
+    TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='maya2egg'+VNUM+'_mayaToEgg.obj')
+    TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='libmayaegg'+VNUM+'.lib')
+    TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input='libmaya'+VNUM+'.lib')
+    if sys.platform == "win32":
+      TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    else:
+      TargetAdd('maya2egg'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS)
+    TargetAdd('maya2egg'+VNUM+'-wrapped.exe', opts=['ADVAPI', VER])
+    
+    TargetAdd('mayacopy'+VNUM+'_mayaCopy.obj', opts=OPTS, input='mayaCopy.cxx')
+    TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='mayacopy'+VNUM+'_mayaCopy.obj')
+    TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='libcvscopy.lib')
+    TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input='libmaya'+VNUM+'.lib')
+    if sys.platform == "win32":
+      TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    else:
+      TargetAdd('mayacopy'+VNUM+'-wrapped.exe', input=COMMON_EGG2X_LIBS)
+    TargetAdd('mayacopy'+VNUM+'-wrapped.exe', opts=['ADVAPI', VER])
+    
+    TargetAdd('mayasavepview'+VNUM+'_mayaSavePview.obj', opts=OPTS, input='mayaSavePview.cxx')
+    TargetAdd('libmayasavepview'+VNUM+'.mll', input='mayasavepview'+VNUM+'_mayaSavePview.obj')
+    TargetAdd('libmayasavepview'+VNUM+'.mll', opts=['ADVAPI',  VER])
+    
+    TargetAdd('mayaWrapper'+VNUM+'.obj', opts=OPTS, input='mayaWrapper.cxx')
+    
+    TargetAdd('maya2egg'+VNUM+'.exe', input='mayaWrapper'+VNUM+'.obj')
+    TargetAdd('maya2egg'+VNUM+'.exe', opts=['ADVAPI'])
+    
+    TargetAdd('mayacopy'+VNUM+'.exe', input='mayaWrapper'+VNUM+'.obj')
+    TargetAdd('mayacopy'+VNUM+'.exe', opts=['ADVAPI'])
+
+
+#
+# DIRECTORY: pandatool/src/miscprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/miscprogs']
+    TargetAdd('bin2c_binToC.obj', opts=OPTS, input='binToC.cxx')
+    TargetAdd('bin2c.exe', input='bin2c_binToC.obj')
+    TargetAdd('bin2c.exe', input='libprogbase.lib')
+    TargetAdd('bin2c.exe', input='libpandatoolbase.lib')
+    TargetAdd('bin2c.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('bin2c.exe', input='libp3pystub.dll')
+    TargetAdd('bin2c.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/pstatserver/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/pstatserver']
+    TargetAdd('pstatserver_composite1.obj', opts=OPTS, input='pstatserver_composite1.cxx')
+    TargetAdd('libpstatserver.lib', input='pstatserver_composite1.obj')
+
+#
+# DIRECTORY: pandatool/src/softprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/softprogs']
+    TargetAdd('softcvs_softCVS.obj', opts=OPTS, input='softCVS.cxx')
+    TargetAdd('softcvs_softFilename.obj', opts=OPTS, input='softFilename.cxx')
+    TargetAdd('softcvs.exe', input='softcvs_softCVS.obj')
+    TargetAdd('softcvs.exe', input='softcvs_softFilename.obj')
+    TargetAdd('softcvs.exe', input='libprogbase.lib')
+    TargetAdd('softcvs.exe', input='libpandatoolbase.lib')
+    TargetAdd('softcvs.exe', input='libpandaegg.dll')
+    TargetAdd('softcvs.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('softcvs.exe', input='libp3pystub.dll')
+    TargetAdd('softcvs.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/text-stats/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/text-stats']
+    TargetAdd('text-stats_textMonitor.obj', opts=OPTS, input='textMonitor.cxx')
+    TargetAdd('text-stats_textStats.obj', opts=OPTS, input='textStats.cxx')
+    TargetAdd('text-stats.exe', input='text-stats_textMonitor.obj')
+    TargetAdd('text-stats.exe', input='text-stats_textStats.obj')
+    TargetAdd('text-stats.exe', input='libprogbase.lib')
+    TargetAdd('text-stats.exe', input='libpstatserver.lib')
+    TargetAdd('text-stats.exe', input='libpandatoolbase.lib')
+    TargetAdd('text-stats.exe', input='libpandaegg.dll')
+    TargetAdd('text-stats.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('text-stats.exe', input='libp3pystub.dll')
+    TargetAdd('text-stats.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/vrmlprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/vrmlprogs', 'DIR:pandatool/src/vrml', 'DIR:pandatool/src/vrmlegg']
+    TargetAdd('vrml-trans_vrmlTrans.obj', opts=OPTS, input='vrmlTrans.cxx')
+    TargetAdd('vrml-trans.exe', input='vrml-trans_vrmlTrans.obj')
+    TargetAdd('vrml-trans.exe', input='libpvrml.lib')
+    TargetAdd('vrml-trans.exe', input='libprogbase.lib')
+    TargetAdd('vrml-trans.exe', input='libpandatoolbase.lib')
+    TargetAdd('vrml-trans.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('vrml-trans.exe', input='libp3pystub.dll')
+    TargetAdd('vrml-trans.exe', opts=['ADVAPI'])
+
+    TargetAdd('vrml2egg_vrmlToEgg.obj', opts=OPTS, input='vrmlToEgg.cxx')
+    TargetAdd('vrml2egg.exe', input='vrml2egg_vrmlToEgg.obj')
+    TargetAdd('vrml2egg.exe', input='libvrmlegg.lib')
+    TargetAdd('vrml2egg.exe', input='libpvrml.lib')
+    TargetAdd('vrml2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('vrml2egg.exe', opts=['ADVAPI'])
+
+#
+# DIRECTORY: pandatool/src/win-stats/
+# DIRECTORY: pandatool/src/gtk-stats/
+#
+
+if (PkgSkip("PANDATOOL")==0 and (sys.platform == "win32" or PkgConfigHavePkg("gtk+-2.0"))):
+    if (sys.platform == "win32"):
+      OPTS=['DIR:pandatool/src/win-stats']
+      TargetAdd('pstats_composite1.obj', opts=OPTS, input='winstats_composite1.cxx')
+    else:
+      OPTS=['DIR:pandatool/src/gtk-stats', 'GTK2']
+      TargetAdd('pstats_composite1.obj', opts=OPTS, input='gtkstats_composite1.cxx')
+    TargetAdd('pstats.exe', input='pstats_composite1.obj')
+    TargetAdd('pstats.exe', input='libpstatserver.lib')
+    TargetAdd('pstats.exe', input='libprogbase.lib')
+    TargetAdd('pstats.exe', input='libpandatoolbase.lib')
+    TargetAdd('pstats.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('pstats.exe', input='libp3pystub.dll')
+    TargetAdd('pstats.exe', opts=['WINSOCK', 'WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'GTK2'])
+
+#
+# DIRECTORY: pandatool/src/xfileprogs/
+#
+
+if (PkgSkip("PANDATOOL")==0):
+    OPTS=['DIR:pandatool/src/xfileprogs', 'DIR:pandatool/src/xfile', 'DIR:pandatool/src/xfileegg']
+    TargetAdd('egg2x_eggToX.obj', opts=OPTS, input='eggToX.cxx')
+    TargetAdd('egg2x.exe', input='egg2x_eggToX.obj')
+    TargetAdd('egg2x.exe', input='libxfileegg.lib')
+    TargetAdd('egg2x.exe', input='libxfile.lib')
+    TargetAdd('egg2x.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('egg2x.exe', opts=['ADVAPI'])
+
+    TargetAdd('x-trans_xFileTrans.obj', opts=OPTS, input='xFileTrans.cxx')
+    TargetAdd('x-trans.exe', input='x-trans_xFileTrans.obj')
+    TargetAdd('x-trans.exe', input='libprogbase.lib')
+    TargetAdd('x-trans.exe', input='libxfile.lib')
+    TargetAdd('x-trans.exe', input='libpandatoolbase.lib')
+    TargetAdd('x-trans.exe', input=COMMON_PANDA_LIBS)
+    TargetAdd('x-trans.exe', input='libp3pystub.dll')
+    TargetAdd('x-trans.exe', opts=['ADVAPI'])
+
+    TargetAdd('x2egg_xFileToEgg.obj', opts=OPTS, input='xFileToEgg.cxx')
+    TargetAdd('x2egg.exe', input='x2egg_xFileToEgg.obj')
+    TargetAdd('x2egg.exe', input='libxfileegg.lib')
+    TargetAdd('x2egg.exe', input='libxfile.lib')
+    TargetAdd('x2egg.exe', input=COMMON_EGG2X_LIBS_PYSTUB)
+    TargetAdd('x2egg.exe', opts=['ADVAPI'])
+
+#
+# Generate the models directory and samples directory
+#
+
+if (PkgSkip("PANDATOOL")==0):
+
+    for model in GetDirectoryContents("dmodels/src/misc", ["*.egg", "*.flt"]):
+        eggpz = model[:-4] + ".egg.pz"
+        TargetAdd(GetOutputDir()+"/models/misc/"+eggpz, input="dmodels/src/misc/"+model)
+
+    for model in GetDirectoryContents("dmodels/src/gui", ["*.egg", "*.flt"]):
+        eggpz = model[:-4] + ".egg.pz"
+        TargetAdd(GetOutputDir()+"/models/gui/"+eggpz, input="dmodels/src/gui/"+model)
+
+    for model in GetDirectoryContents("models", ["*.egg", "*.flt"]):
+        eggpz = model[:-4] + ".egg.pz"
+        TargetAdd(GetOutputDir()+"/models/"+eggpz, input="models/"+model)
+
+    CopyAllFiles(GetOutputDir()+"/models/audio/sfx/",  "dmodels/src/audio/sfx/", ".wav")
+    CopyAllFiles(GetOutputDir()+"/models/icons/",      "dmodels/src/icons/",     ".gif")
+    
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "models/maps/",           ".jpg")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "models/maps/",           ".png")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "models/maps/",           ".rgb")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "models/maps/",           ".rgba")
+    
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "dmodels/src/maps/",      ".jpg")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "dmodels/src/maps/",      ".png")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "dmodels/src/maps/",      ".rgb")
+    CopyAllFiles(GetOutputDir()+"/models/maps/",       "dmodels/src/maps/",      ".rgba")
+
+
+##########################################################################################
+#
+# Dependency-Based Distributed Build System.
+#
+##########################################################################################
+
+DEPENDENCYQUEUE=[]
+
+for target in TARGET_LIST:
+    name = target.name
+    inputs = target.inputs
+    opts = target.opts
+    deps = target.deps
+    DEPENDENCYQUEUE.append([CompileAnything, [name, inputs, opts], [name], deps, []])
+
+def BuildWorker(taskqueue, donequeue):
+    while (1):
+        task = taskqueue.get()
+        sys.stdout.flush()
+        if (task == 0): return
+        try:
+            apply(task[0],task[1])
+            donequeue.put(task)
+        except:
+            donequeue.put(0)
+
+def AllSourcesReady(task, pending):
+    sources = task[3]
+    for x in sources:
+        if (pending.has_key(x)):
+            return 0
+    altsources = task[4]
+    for x in altsources:
+        if (pending.has_key(x)):
+            return 0
+    return 1
+
+def ParallelMake(tasklist):
+    # create the communication queues.
+    donequeue=Queue.Queue()
+    taskqueue=Queue.Queue()
+    # build up a table listing all the pending targets
+    pending = {}
+    for task in tasklist:
+        for target in task[2]:
+            pending[target] = 1
+    # create the workers
+    for slave in range(THREADCOUNT):
+        th = threading.Thread(target=BuildWorker, args=[taskqueue,donequeue])
+        th.setDaemon(1)
+        th.start()
+    # feed tasks to the workers.
+    tasksqueued = 0
+    while (1):
+        if (tasksqueued < THREADCOUNT*2):
+            extras = []
+            for task in tasklist:
+                if (tasksqueued < THREADCOUNT*3) & (AllSourcesReady(task, pending)):
+                    if (NeedsBuild(task[2], task[3])):
+                        tasksqueued += 1
+                        taskqueue.put(task)
+                    else:
+                        for target in task[2]:
+                            del pending[target]
+                else:
+                    extras.append(task)
+            tasklist = extras
+        sys.stdout.flush()
+        if (tasksqueued == 0): break
+        donetask = donequeue.get()
+        if (donetask == 0):
+            exit("Build process aborting.")
+        sys.stdout.flush()
+        tasksqueued -= 1
+        JustBuilt(donetask[2], donetask[3])
+        for target in donetask[2]:
+            del pending[target]
+    # kill the workers.
+    for slave in range(THREADCOUNT):
+        taskqueue.put(0)
+    # make sure there aren't any unsatisfied tasks
+    if (len(tasklist)>0):
+        exit("Dependency problem - task unsatisfied: "+str(tasklist[0][2]))
+
+
+def SequentialMake(tasklist):
+    for task in tasklist:
+        if (NeedsBuild(task[2], task[3])):
+            apply(task[0], task[1])
+            JustBuilt(task[2], task[3])
+
+def RunDependencyQueue(tasklist):
+    if (THREADCOUNT!=0):
+        ParallelMake(tasklist)
+    else:
+        SequentialMake(tasklist)
+
+RunDependencyQueue(DEPENDENCYQUEUE)
+
+##########################################################################################
+#
+# Run genpycode
+#
+##########################################################################################
+
+if (PkgSkip("PYTHON")==0):
+    inputs = []
+    for x in GetDirectoryContents(GetOutputDir()+"/pandac/input", ["*.in"]):
+        inputs.append(GetOutputDir()+"/pandac/input/" + x)
+    if (NeedsBuild([GetOutputDir()+'/pandac/PandaModules.py'],inputs)):
+        if (GENMAN): oscmd(GetOutputDir()+"/bin/genpycode -d")
+        else       : oscmd(GetOutputDir()+"/bin/genpycode")
+        JustBuilt([GetOutputDir()+'/pandac/PandaModules.py'],inputs)
+
+##########################################################################################
+#
+# The Installers
+#
+# Under windows, we can build an 'exe' package using NSIS
+# Under linux, we can build a 'deb' package or an 'rpm' package.
+# Under OSX, we can make a 'dmg' package.
+#
+##########################################################################################
+
+def MakeInstallerNSIS(file,fullname,smdirectory,installdir):
+    print "Building "+fullname+" installer. This can take up to an hour."
+    if (COMPRESSOR != "lzma"):
+        print("Note: you are using zlib, which is faster, but lzma gives better compression.")
+    if (os.path.exists(file)):
+        os.remove(file)
+    if (os.path.exists("nsis-output.exe")):
+        os.remove("nsis-output.exe")
+    WriteFile(GetOutputDir()+"/tmp/__init__.py", "")
+    psource=os.path.abspath(".")
+    panda=os.path.abspath(GetOutputDir())
+    cmd="thirdparty/win-nsis/makensis /V2 "
+    cmd=cmd+'/DCOMPRESSOR="'+COMPRESSOR+'" '
+    cmd=cmd+'/DNAME="'+fullname+'" '
+    cmd=cmd+'/DSMDIRECTORY="'+smdirectory+'" '
+    cmd=cmd+'/DINSTALLDIR="'+installdir+'" '
+    cmd=cmd+'/DOUTFILE="'+psource+'\\nsis-output.exe" '
+    cmd=cmd+'/DLICENSE="'+panda+'\\LICENSE" '
+    cmd=cmd+'/DLANGUAGE="Panda3DEnglish" '
+    cmd=cmd+'/DRUNTEXT="Visit the Panda Manual" '
+    cmd=cmd+'/DIBITMAP="panda-install.bmp" '
+    cmd=cmd+'/DUBITMAP="panda-uninstall.bmp" '
+    cmd=cmd+'/DPANDA="'+panda+'" '
+    cmd=cmd+'/DPANDACONF="'+panda+'\\etc" '
+    cmd=cmd+'/DPSOURCE="'+psource+'" '
+    cmd=cmd+'/DPYEXTRAS="'+psource+'\\thirdparty\\win-extras" '
+    cmd=cmd+'"'+psource+'\\direct\\src\\directscripts\\packpanda.nsi"'
+    oscmd( cmd)
+    os.rename("nsis-output.exe", file)
+
+
+INSTALLER_DEB_FILE="""
+Package: panda3d
+Version: VERSION
+Section: libdevel
+Priority: optional
+Architecture: ARCH
+Essential: no
+Depends: PYTHONV
+Recommends: python-profiler (>= PV)
+Provides: panda3d
+Maintainer: [email protected]
+Description: The Panda3D free 3D engine
+"""
+
+# We're not putting "python" in the "Requires" field,
+# since the rpm-based distros don't have a common
+# naming for the Python package.
+# The "AutoReqProv: no" field is necessary, otherwise
+# the user will be required to install Maya in order
+# to install the resulting RPM.
+INSTALLER_SPEC_FILE="""
+Summary: The Panda3D free 3D engine
+Name: panda3d
+Version: VERSION
+Release: 1
+License: BSD License
+Group: Development/Libraries
+BuildRoot: PANDASOURCE/linuxroot
+AutoReqProv: no
+%description
+The Panda3D engine.
+%post
+/sbin/ldconfig
+%postun
+/sbin/ldconfig
+%files
+%defattr(-,root,root)
+/etc/Confauto.prc
+/etc/Config.prc
+/usr/share/panda3d
+/etc/ld.so.conf.d/panda3d.conf
+/usr/bin
+/usr/lib
+/usr/include/panda3d
+"""
+
+
+def MakeInstallerLinux():
+    import compileall
+    PYTHONV=SDK["PYTHONVERSION"]
+    PV=PYTHONV.replace("python", "")
+    if (os.path.isdir("linuxroot")): oscmd("chmod -R 755 linuxroot")
+    oscmd("rm -rf linuxroot data.tar.gz control.tar.gz panda3d.spec")
+    if (os.path.exists("/usr/bin/rpmbuild")):
+        oscmd("rm -rf `rpm -E '%_target_cpu'`")
+    if (os.path.exists("/usr/bin/dpkg-deb")):
+        oscmd("rm -rf `dpkg --print-architecture`")
+    oscmd("mkdir -p linuxroot/usr/bin")
+    oscmd("mkdir -p linuxroot/usr/include")
+    oscmd("mkdir -p linuxroot/usr/share/panda3d")
+    oscmd("mkdir -p linuxroot/usr/share/panda3d/direct")
+    oscmd("mkdir -p linuxroot/usr/lib/panda3d")
+    oscmd("mkdir -p linuxroot/usr/lib/"+PYTHONV+"/lib-dynload")
+    oscmd("mkdir -p linuxroot/usr/lib/"+PYTHONV+"/site-packages")
+    oscmd("mkdir -p linuxroot/etc/ld.so.conf.d")
+    WriteFile("linuxroot/usr/share/panda3d/direct/__init__.py", "")
+    oscmd("sed -e 's@model-cache-@# model-cache-@' -e 's@$THIS_PRC_DIR/[.][.]@/usr/share/panda3d@' < "+GetOutputDir()+"/etc/Config.prc > linuxroot/etc/Config.prc")
+    oscmd("cp "+GetOutputDir()+"/etc/Confauto.prc  linuxroot/etc/Confauto.prc")
+    oscmd("cp --recursive "+GetOutputDir()+"/include linuxroot/usr/include/panda3d")
+    oscmd("cp --recursive direct/src/*               linuxroot/usr/share/panda3d/direct")
+    oscmd("cp --recursive "+GetOutputDir()+"/pandac  linuxroot/usr/share/panda3d/pandac")
+    oscmd("cp --recursive "+GetOutputDir()+"/models  linuxroot/usr/share/panda3d/models")
+    if os.path.isdir("samples"):                  oscmd("cp --recursive samples                    linuxroot/usr/share/panda3d/samples")
+    if os.path.isdir(GetOutputDir()+"/Pmw"):      oscmd("cp --recursive "+GetOutputDir()+"/Pmw     linuxroot/usr/share/panda3d/Pmw")
+    if os.path.isdir(GetOutputDir()+"/plugins"):  oscmd("cp --recursive "+GetOutputDir()+"/plugins linuxroot/usr/share/panda3d/plugins")
+    oscmd("cp doc/LICENSE               linuxroot/usr/share/panda3d/LICENSE")
+    oscmd("cp doc/LICENSE               linuxroot/usr/include/panda3d/LICENSE")
+    oscmd("cp doc/ReleaseNotes          linuxroot/usr/share/panda3d/ReleaseNotes")
+    oscmd("echo '/usr/lib/panda3d'   >  linuxroot/etc/ld.so.conf.d/panda3d.conf")
+    oscmd("echo '/usr/share/panda3d' >  linuxroot/usr/lib/"+PYTHONV+"/site-packages/panda3d.pth")
+    oscmd("echo '/usr/lib/panda3d'   >> linuxroot/usr/lib/"+PYTHONV+"/site-packages/panda3d.pth")
+    oscmd("cp "+GetOutputDir()+"/bin/*               linuxroot/usr/bin/")
+    for base in os.listdir(GetOutputDir()+"/lib"):
+        oscmd("cp "+GetOutputDir()+"/lib/"+base+" linuxroot/usr/lib/panda3d/"+base)
+    for base in os.listdir("linuxroot/usr/share/panda3d/direct"):
+        if ((base != "extensions") and (base != "extensions_native")):
+            compileall.compile_dir("linuxroot/usr/share/panda3d/direct/"+base)
+    compileall.compile_dir("linuxroot/usr/share/panda3d/Pmw")
+    DeleteCVS("linuxroot")
+    oscmd("chmod -R 555 linuxroot/usr/share/panda3d")
+    
+    if (os.path.exists("/usr/bin/rpmbuild") and not os.path.exists("/usr/bin/dpkg-deb")):
+        oscmd("rm -rf linuxroot/DEBIAN")
+        oscmd("rpm -E '%_target_cpu' > "+GetOutputDir()+"/tmp/architecture.txt")
+        ARCH=ReadFile(GetOutputDir()+"/tmp/architecture.txt").strip()
+        pandasource = os.path.abspath(os.getcwd())
+        txt = INSTALLER_SPEC_FILE[1:].replace("VERSION",VERSION).replace("PANDASOURCE",pandasource).replace("PYTHONV",PYTHONV).replace("PV",PV)
+        WriteFile("panda3d.spec", txt)
+        oscmd("rpmbuild --define '_rpmdir "+pandasource+"' -bb panda3d.spec")
+        oscmd("mv "+ARCH+"/panda3d-"+VERSION+"-1."+ARCH+".rpm .")
+    
+    if (os.path.exists("/usr/bin/dpkg-deb")):
+        oscmd("dpkg --print-architecture > "+GetOutputDir()+"/tmp/architecture.txt")
+        ARCH=ReadFile(GetOutputDir()+"/tmp/architecture.txt").strip()
+        txt = INSTALLER_DEB_FILE[1:].replace("VERSION",str(VERSION)).replace("PYTHONV",PYTHONV).replace("ARCH",ARCH).replace("PV",PV)
+        oscmd("mkdir -p linuxroot/DEBIAN")
+        oscmd("cd linuxroot ; (find usr -type f -exec md5sum {} \;) >  DEBIAN/md5sums")
+        oscmd("cd linuxroot ; (find etc -type f -exec md5sum {} \;) >> DEBIAN/md5sums")
+        WriteFile("linuxroot/DEBIAN/conffiles","/etc/Config.prc\n")
+        WriteFile("linuxroot/DEBIAN/control",txt)
+        WriteFile("linuxroot/DEBIAN/postinst","#!/bin/sh\necho running ldconfig\nldconfig\n")
+        oscmd("chmod 755 linuxroot/DEBIAN/postinst")
+        oscmd("cp linuxroot/DEBIAN/postinst linuxroot/DEBIAN/postrm")
+        oscmd("dpkg-deb -b linuxroot panda3d_"+VERSION+"_"+ARCH+".deb")
+        oscmd("chmod -R 755 linuxroot")
+    
+    if not(os.path.exists("/usr/bin/rpmbuild") or os.path.exists("/usr/bin/dpkg-deb")):
+        exit("To build an installer, either rpmbuild or dpkg-deb must be present on your system!")
+    
+#    oscmd("chmod -R 755 linuxroot")
+#    oscmd("rm -rf linuxroot data.tar.gz control.tar.gz panda3d.spec "+ARCH)
+
+def MakeInstallerOSX():
+    import compileall
+    PYTHONV=SDK["PYTHONVERSION"].replace("python", "").strip()
+    if (os.path.isfile("Panda3D-tpl-rw.dmg")): oscmd("rm -f Panda3D-tpl-rw.dmg")
+    if (os.path.isdir("Panda3D-tpl-rw")):
+        oscmd("hdiutil detach Panda3D-tpl-rw -quiet -force", True)
+        oscmd("rm -rf Panda3D-tpl-rw")
+    if (os.path.isfile("Panda3D-%s.dmg" % VERSION)): oscmd("rm -f Panda3D-%s.dmg" % VERSION)
+    oscmd("hdiutil convert -format UDRW -o Panda3D-tpl-rw.dmg makepanda/Panda3D-tpl.dmg", True)
+    if (not os.path.exists("Panda3D-tpl-rw.dmg")): exit()
+    oscmd("mkdir Panda3D-tpl-rw")
+    oscmd("hdiutil attach Panda3D-tpl-rw.dmg -noautoopen -quiet -mountpoint Panda3D-tpl-rw", True)
+    if (not os.path.exists("Panda3D-tpl-rw")): exit()
+    try:
+      oscmd("mkdir -p Panda3D-tpl-rw/Panda3D/%s/etc" % VERSION)
+      oscmd("mkdir -p Panda3D-tpl-rw/Panda3D/%s/bin" % VERSION)
+      oscmd("mkdir -p Panda3D-tpl-rw/Panda3D/%s/lib" % VERSION)
+      oscmd("mkdir -p Panda3D-tpl-rw/Panda3D/%s/lib/direct" % VERSION)
+      oscmd("sed -e 's@\\$1@%s@' < direct/src/directscripts/profilepaths-osx.command >> Panda3D-tpl-rw/panda3dpaths.command" % VERSION)
+      oscmd("sed -e 's@model-cache-@# model-cache-@' -e 's@$THIS_PRC_DIR/[.][.]@/Applications/Panda3D/%s@' < %s/etc/Config.prc > Panda3D-tpl-rw/Panda3D/%s/etc/Config.prc" % (VERSION, GetOutputDir(), VERSION))
+      # Append the plugin-path to the Config.prc.
+      f = open("Panda3D-tpl-rw/Panda3D/%s/etc/Config.prc" % VERSION, "a")
+      f.write("\nplugin-path /Applications/Panda3D/%s/lib\n" % VERSION)
+      f.close()
+      WriteFile("Panda3D-tpl-rw/Panda3D/%s/lib/direct/__init__.py" % VERSION, "")
+      oscmd("cp %s/etc/Confauto.prc   Panda3D-tpl-rw/Panda3D/%s/etc/Confauto.prc" % (GetOutputDir(), VERSION))
+      oscmd("cp -R %s/include         Panda3D-tpl-rw/Panda3D/%s/include" % (GetOutputDir(), VERSION))
+      oscmd("cp -R direct/src/*       Panda3D-tpl-rw/Panda3D/%s/lib/direct" % VERSION)
+      oscmd("cp -R %s/pandac          Panda3D-tpl-rw/Panda3D/%s/lib/pandac" % (GetOutputDir(), VERSION))
+      oscmd("cp -R %s/models          Panda3D-tpl-rw/Panda3D/%s/models" % (GetOutputDir(), VERSION))
+      oscmd("cp -R doc/LICENSE        Panda3D-tpl-rw/Panda3D/%s/LICENSE" % VERSION)
+      oscmd("cp -R doc/ReleaseNotes   Panda3D-tpl-rw/Panda3D/%s/ReleaseNotes" % VERSION)
+      oscmd("cp -R %s/bin/*           Panda3D-tpl-rw/Panda3D/%s/bin/" % (GetOutputDir(), VERSION))
+      if os.path.isdir("samples"):       oscmd("cp -R samples   Panda3D-tpl-rw/Panda3D/%s/samples" % VERSION)
+      if os.path.isdir(GetOutputDir()+"/Pmw"):     oscmd("cp -R %s/Pmw Panda3D-tpl-rw/Panda3D/%s/lib/Pmw" % (GetOutputDir(), VERSION))
+      if os.path.isdir(GetOutputDir()+"/plugins"): oscmd("cp -R %s/plugins Panda3D-tpl-rw/Panda3D/%s/plugins" % (GetOutputDir(), VERSION))
+      for base in os.listdir(GetOutputDir()+"/lib"):
+          oscmd("cp "+GetOutputDir()+"/lib/"+base+" Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/"+base)
+      # Loop through the binaries and libraries and execute install_name_tool on them
+      bindir = "Panda3D-tpl-rw/Panda3D/%s/bin/" % VERSION
+      libdir = "Panda3D-tpl-rw/Panda3D/%s/lib/" % VERSION
+      for fn in os.listdir(bindir):
+          if os.path.isfile(bindir + fn):
+              oscmd("otool -L %s%s | grep %s/lib/ > %s/tmp/otool-libs.txt" % (bindir, fn, GetOutputDir(), GetOutputDir()), True)
+              for line in open(GetOutputDir()+"/tmp/otool-libs.txt", "r"):
+                  if len(line.strip()) > 0:
+                      libname = line.strip().split(GetOutputDir()+"/lib/")[1].split(" ")[0]
+                      oscmd("install_name_tool -change %s/lib/%s %s %s%s" % (GetOutputDir(), libname, libname, bindir, fn), True)
+      for fn in os.listdir(libdir):
+          if os.path.isfile(libdir + fn):
+              oscmd("install_name_tool -id %s %s%s" % (fn, libdir, fn), True)
+              oscmd("otool -L %s%s | grep %s/lib/ > %s/tmp/otool-libs.txt" % (libdir, fn, GetOutputDir(), GetOutputDir()), True)
+              for line in open(GetOutputDir()+"/tmp/otool-libs.txt", "r"):
+                  if len(line.strip()) > 0:
+                      libname = line.strip().split(GetOutputDir()+"/lib/")[1].split(" ")[0]
+                      oscmd("install_name_tool -change %s/lib/%s %s %s%s" % (GetOutputDir(), libname, libname, libdir, fn), True)
+      # Compile the python files
+      for base in os.listdir("Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/direct"):
+          if ((base != "extensions") and (base != "extensions_native")):
+              compileall.compile_dir("Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/direct/"+base)
+      compileall.compile_dir("Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/Pmw")
+      oscmd("chmod -R 555 Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/direct")
+      oscmd("chmod -R 555 Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/pandac")
+      oscmd("chmod -R 555 Panda3D-tpl-rw/Panda3D/"+VERSION+"/models")
+      if os.path.isdir("samples"):   oscmd("chmod -R 555 Panda3D-tpl-rw/Panda3D/"+VERSION+"/samples")
+      if os.path.isdir(GetOutputDir()+"/Pmw"): oscmd("chmod -R 555 Panda3D-tpl-rw/Panda3D/"+VERSION+"/lib/Pmw")
+    except: # Make sure the dmg gets unmounted even when error occurs
+      oscmd("hdiutil detach Panda3D-tpl-rw -quiet -force", True)
+      oscmd("rm -f Panda3D-tpl-rw.dmg")
+      raise
+    oscmd("hdiutil detach Panda3D-tpl-rw -quiet -force", True)
+    oscmd("hdiutil convert -format UDBZ -o Panda3D-"+VERSION+".dmg Panda3D-tpl-rw.dmg", True)
+    if (not os.path.exists("Panda3D-%s.dmg" % VERSION)): exit()
+    oscmd("rm -f Panda3D-tpl-rw.dmg")
+    oscmd("rm -rf Panda3D-tpl-rw")
+
+if (INSTALLER != 0):
+    if (sys.platform == "win32"):
+        MakeInstallerNSIS("Panda3D-"+VERSION+".exe", "Panda3D", "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION)
+    elif (sys.platform == "linux2"):
+        MakeInstallerLinux()
+    elif (sys.platform == "darwin"):
+        MakeInstallerOSX()
+    else:
+        exit("Do not know how to make an installer for this platform")
+
+##########################################################################################
+#
+# Print final status report.
+#
+##########################################################################################
+
+SaveDependencyCache()
+
+# Move any files we've moved away back.
+if os.path.isfile("dtool/src/dtoolutil/pandaVersion.h.moved"):
+  os.rename("dtool/src/dtoolutil/pandaVersion.h.moved", "dtool/src/dtoolutil/pandaVersion.h")
+if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.h.moved"):
+  os.rename("dtool/src/dtoolutil/checkPandaVersion.h.moved", "dtool/src/dtoolutil/checkPandaVersion.h")
+if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.cxx.moved"):
+  os.rename("dtool/src/dtoolutil/checkPandaVersion.cxx.moved", "dtool/src/dtoolutil/checkPandaVersion.cxx")
+
+WARNINGS.append("Elapsed Time: "+PrettyTime(time.time() - STARTTIME))
+
+printStatus("Makepanda Final Status Report", WARNINGS)
+

+ 20 - 0
makepanda/makepanda.sln

@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makepanda", "makepanda.vcproj", "{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}.Debug|Win32.Build.0 = Debug|Win32
+		{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}.Release|Win32.ActiveCfg = Release|Win32
+		{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 5061 - 0
makepanda/makepanda.vcproj

@@ -0,0 +1,5061 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="makepanda"
+	ProjectGUID="{F4935D7A-20AD-4132-B3CB-ADFF4F928D25}"
+	RootNamespace="makepanda"
+	Keyword="MakeFileProj"
+	TargetFrameworkVersion="0"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="..\debug"
+			IntermediateDirectory="..\debug"
+			ConfigurationType="0"
+			>
+			<Tool
+				Name="VCNMakeTool"
+				BuildCommandLine="cd .. &amp; makepanda\makepanda --everything --optimize 1 --outputdir debug"
+				ReBuildCommandLine=""
+				CleanCommandLine="cd .. &amp; RD /S /Q debug"
+				Output=""
+				PreprocessorDefinitions=""
+				IncludeSearchPath=""
+				ForcedIncludes=""
+				AssemblySearchPath=""
+				ForcedUsingAssemblies=""
+				CompileAsManaged=""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="..\built"
+			IntermediateDirectory="..\built"
+			ConfigurationType="0"
+			>
+			<Tool
+				Name="VCNMakeTool"
+				BuildCommandLine="cd .. &amp; makepanda\makepanda --everything --optimize 3 --installer"
+				ReBuildCommandLine=""
+				CleanCommandLine="cd .. &amp; RD /S /Q built"
+				Output=""
+				PreprocessorDefinitions=""
+				IncludeSearchPath=""
+				ForcedIncludes=""
+				AssemblySearchPath=""
+				ForcedUsingAssemblies=""
+				CompileAsManaged=""
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter Name="dtool">
+			<Filter Name="dconfig">
+				<File RelativePath="..\dtool\src\dconfig\config_dconfig.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\configTable.I"></File>
+				<File RelativePath="..\dtool\src\dconfig\serialization.I"></File>
+				<File RelativePath="..\dtool\src\dconfig\dconfig.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\config_dconfig.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\serialization.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\dconfig_composite1.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\config_setup.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\configTable.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\symbolEnt.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\test_searchpath.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\symbolEnt.I"></File>
+				<File RelativePath="..\dtool\src\dconfig\test_config.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\test_pfstream.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\configTable.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\test_expand.cxx"></File>
+				<File RelativePath="..\dtool\src\dconfig\dconfig.I"></File>
+				<File RelativePath="..\dtool\src\dconfig\symbolEnt.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\dconfig.h"></File>
+				<File RelativePath="..\dtool\src\dconfig\dconfig_composite.cxx"></File>
+			</Filter>
+			<Filter Name="parser-inc">
+				<File RelativePath="..\dtool\src\parser-inc\setjmp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\Max.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ucontext.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\avformat.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\stdcompare.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rational.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cg.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\libtar.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\tcp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cv.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hex.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\iparamm2.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cxcore.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxcore.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\math.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cxtypes.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\pthreadtypes.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\istdplug.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\intfloat_readwrite.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\pem.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\dllpath.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxengin.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\artools.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\stdmat.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\iskin.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\phyexp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxerror.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\collision_trimesh.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\iparamb2.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rtp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ode.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\windows.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxcom.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxfiles.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\md5.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rtsp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\highgui.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cgGL.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cvtypes.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\x509.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rfftw.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxcomm.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\krb5.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\files.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\py_panda.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\mathematics.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxtbuf.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\avutil.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\stdtypedefs.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\cxerror.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\malloc.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ssl.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\zlib.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\winsock2.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\socket.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ctype.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\err.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\pthread.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ft2build.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxwin.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\mmsystem.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\avio.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\stddef.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\Python.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\control.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rtspcodes.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\hxtbuff.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\integer.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\ip.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\crypto.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rand.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\MainHelix.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\evp.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\rsa.h"></File>
+				<File RelativePath="..\dtool\src\parser-inc\avcodec.h"></File>
+			</Filter>
+			<Filter Name="prc">
+				<File RelativePath="..\dtool\src\prc\configVariableSearchPath.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\notifyCategoryProxy.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableList.h"></File>
+				<File RelativePath="..\dtool\src\prc\reversedNumericData.h"></File>
+				<File RelativePath="..\dtool\src\prc\bigEndian.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableManager.I"></File>
+				<File RelativePath="..\dtool\src\prc\prc_parameters.h"></File>
+				<File RelativePath="..\dtool\src\prc\configFlags.h"></File>
+				<File RelativePath="..\dtool\src\prc\nativeNumericData.I"></File>
+				<File RelativePath="..\dtool\src\prc\notifySeverity.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableSearchPath.I"></File>
+				<File RelativePath="..\dtool\src\prc\prcKeyRegistry.h"></File>
+				<File RelativePath="..\dtool\src\prc\configDeclaration.I"></File>
+				<File RelativePath="..\dtool\src\prc\littleEndian.h"></File>
+				<File RelativePath="..\dtool\src\prc\reversedNumericData.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configPage.I"></File>
+				<File RelativePath="..\dtool\src\prc\streamWriter.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariable.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableCore.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariable.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStreamBuf.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBool.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableFilename.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableEnum.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\streamReader.h"></File>
+				<File RelativePath="..\dtool\src\prc\reversedNumericData.I"></File>
+				<File RelativePath="..\dtool\src\prc\configDeclaration.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBase.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStream.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableDouble.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\prcKeyRegistry.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableString.I"></File>
+				<File RelativePath="..\dtool\src\prc\streamWrapper.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\notifySeverity.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableEnum.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableSearchPath.h"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStreamBuf.h"></File>
+				<File RelativePath="..\dtool\src\prc\config_prc.h"></File>
+				<File RelativePath="..\dtool\src\prc\configDeclaration.h"></File>
+				<File RelativePath="..\dtool\src\prc\globPattern.I"></File>
+				<File RelativePath="..\dtool\src\prc\prcKeyRegistry.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt64.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt64.I"></File>
+				<File RelativePath="..\dtool\src\prc\streamReader.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\config_prc.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configPageManager.I"></File>
+				<File RelativePath="..\dtool\src\prc\notifyCategory.I"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStreamBuf.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\notifyCategory.h"></File>
+				<File RelativePath="..\dtool\src\prc\streamWrapper.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBase.h"></File>
+				<File RelativePath="..\dtool\src\prc\configPageManager.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableFilename.I"></File>
+				<File RelativePath="..\dtool\src\prc\nativeNumericData.h"></File>
+				<File RelativePath="..\dtool\src\prc\configPage.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\globPattern.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableList.I"></File>
+				<File RelativePath="..\dtool\src\prc\notifyCategory.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableFilename.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableEnum.I"></File>
+				<File RelativePath="..\dtool\src\prc\prc_composite.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableCore.I"></File>
+				<File RelativePath="..\dtool\src\prc\streamWrapper.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt64.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBool.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStream.I"></File>
+				<File RelativePath="..\dtool\src\prc\notifyCategoryProxy.h"></File>
+				<File RelativePath="..\dtool\src\prc\encryptStream.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\pnotify.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableDouble.h"></File>
+				<File RelativePath="..\dtool\src\prc\prc_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableCore.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableManager.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBase.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableString.h"></File>
+				<File RelativePath="..\dtool\src\prc\configFlags.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableList.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\streamWriter.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableBool.h"></File>
+				<File RelativePath="..\dtool\src\prc\globPattern.h"></File>
+				<File RelativePath="..\dtool\src\prc\configPage.h"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt.h"></File>
+				<File RelativePath="..\dtool\src\prc\configFlags.I"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableManager.h"></File>
+				<File RelativePath="..\dtool\src\prc\configPageManager.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableInt.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariable.I"></File>
+				<File RelativePath="..\dtool\src\prc\streamWriter.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\streamReader.I"></File>
+				<File RelativePath="..\dtool\src\prc\notify.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableDouble.I"></File>
+				<File RelativePath="..\dtool\src\prc\pnotify.h"></File>
+				<File RelativePath="..\dtool\src\prc\nativeNumericData.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\configVariableString.cxx"></File>
+				<File RelativePath="..\dtool\src\prc\prc_composite1.cxx"></File>
+			</Filter>
+			<Filter Name="newheader">
+				<File RelativePath="..\dtool\src\newheader\newheader.cxx"></File>
+			</Filter>
+			<Filter Name="dtoolbase">
+				<File RelativePath="..\dtool\src\dtoolbase\lookup3.c"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\cmath.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\register_type.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dlmalloc_src.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typedObject.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\deletedBufferChain.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\pallocator.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\verdate.cpp"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistry.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\deletedBufferChain.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustDummyImpl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\deletedChain.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolsymbols.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexDummyImpl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\numeric_types.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexPosixImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\addHash.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustPosixImpl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolbase.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustWin32Impl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustI386Impl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustI386Impl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeHandle.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\addHash.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\register_type.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustWin32Impl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\nearly_zero.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\neverFreeMemory.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\pmap.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\memoryHook.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexWin32Impl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolbase_composite1.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistry.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\pset.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustPosixImpl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexSpinlockImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\plist.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\indent.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\lookup3.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\version.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistryNode.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\selectThreadImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\ptmalloc2_smp_src.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\indent.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustI386Impl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolbase_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\memoryBase.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexSpinlockImpl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\deletedBufferChain.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\neverFreeMemory.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typedObject.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistryNode.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexSpinlockImpl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexDummyImpl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustPosixImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\memoryHook.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\stl_compares.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\pvector.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistryNode.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexPosixImpl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjust.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\register_type.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexPosixImpl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\memoryBase.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeHandle.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\indent.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dlmalloc.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\addHash.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexWin32Impl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\neverFreeMemory.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexDummyImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\fakestringstream.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\cmath.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\pdeque.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeRegistry.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustDummyImpl.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolbase.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\memoryHook.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typeHandle.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\dtoolbase_cc.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\stl_compares.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustDummyImpl.I"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\atomicAdjustWin32Impl.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\typedObject.h"></File>
+				<File RelativePath="..\dtool\src\dtoolbase\mutexWin32Impl.cxx"></File>
+			</Filter>
+			<Filter Name="pystub">
+				<File RelativePath="..\dtool\src\pystub\pystub.h"></File>
+				<File RelativePath="..\dtool\src\pystub\pystub.cxx"></File>
+			</Filter>
+			<Filter Name="dtoolutil">
+				<File RelativePath="..\dtool\src\dtoolutil\pandaFileStreamBuf.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\vector_src.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dSearchPath.I"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pfstreamBuf.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\config_dtoolutil.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\load_dso.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dtoolutil_composite.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pfstreamBuf.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\filename.I"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\checkPandaVersion.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaFileStream.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\executionEnvironment.I"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dtoolutil_composite1.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\filename.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\vector_string.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\filename.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\executionEnvironment.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\executionEnvironment.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\test_touch.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\test_pfstream.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\vector_src.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\gnu_getopt.c"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\gnu_getopt.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dSearchPath.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\config_dtoolutil.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaFileStream.I"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pfstream.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\vector_string.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaSystem.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\gnu_getopt1.c"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaFileStreamBuf.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dtoolutil_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\checkPandaVersion.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pfstream.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\dSearchPath.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\load_dso.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaSystem.cxx"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaFileStream.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pandaVersion.h"></File>
+				<File RelativePath="..\dtool\src\dtoolutil\pfstream.I"></File>
+			</Filter>
+			<Filter Name="test_interrogate">
+				<File RelativePath="..\dtool\src\test_interrogate\test_lib.h"></File>
+				<File RelativePath="..\dtool\src\test_interrogate\test_lib.cxx"></File>
+				<File RelativePath="..\dtool\src\test_interrogate\test_interrogate.cxx"></File>
+			</Filter>
+			<Filter Name="interrogate">
+				<File RelativePath="..\dtool\src\interrogate\interrogateBuilder.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriterPtrToPython.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapToString.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate_composite1.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriter.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemap.I"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionRemap.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonObj.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapBasicStringToString.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemap.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapReferenceToPointer.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapToString.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapBasicStringRefToString.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\typeManager.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapCharStarToString.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parse_file.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogateBuilder.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapThis.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapEnumToInt.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapPTToPointer.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapEnumToInt.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonObj.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapBasicStringRefToString.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapPTToPointer.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerC.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapConstToNonConst.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapReferenceToConcrete.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapUnchanged.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapReferenceToConcrete.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\typeManager.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapConstToNonConst.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate_composite.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapReferenceToPointer.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionRemap.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonNative.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMaker.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriterPtrFromPython.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPython.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapConcreteToPointer.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapBasicStringToString.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriters.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonNative.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriterPtrToPython.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonSimple.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapUnchanged.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriters.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPython.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriter.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerC.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMakerPythonSimple.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapThis.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapCharStarToString.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate_module.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemapConcreteToPointer.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interrogate.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\functionWriterPtrFromPython.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogate\parameterRemap.h"></File>
+				<File RelativePath="..\dtool\src\interrogate\interfaceMaker.cxx"></File>
+			</Filter>
+			<Filter Name="cppparser">
+				<File RelativePath="..\dtool\src\cppparser\cppManifest.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFunctionGroup.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppIdentifier.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypedef.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTBDType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParser_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppScope.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppDeclaration.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeParser.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFile.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppNameComponent.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppVisibility.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParameterList.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppConstType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppNamespace.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExtensionType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppGlobals.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFunctionType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppVisibility.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppInstance.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppSimpleType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppBison.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppUsing.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTemplateParameterList.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExpressionParser.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppIdentifier.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppToken.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppPreprocessor.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppBison.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppInstanceIdentifier.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppStructType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppManifest.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExpressionParser.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppInstance.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppStructType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParameterList.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppToken.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTemplateScope.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppMakeSeq.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeProxy.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExtensionType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypedef.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppClassTemplateParameter.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppNamespace.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFunctionType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParser_composite1.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppSimpleType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFunctionGroup.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppBisonDefs.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppInstanceIdentifier.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppArrayType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTemplateScope.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParser.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppCommentBlock.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppClassTemplateParameter.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppDeclaration.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTBDType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParser_composite.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppReferenceType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppFile.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppCommentBlock.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExpression.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeParser.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppPointerType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppEnumType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppParser.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppReferenceType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppPointerType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppConstType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeDeclaration.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppPreprocessor.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppExpression.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppType.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppNameComponent.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppScope.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppMakeSeq.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppEnumType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTemplateParameterList.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppGlobals.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppArrayType.h"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeDeclaration.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppUsing.cxx"></File>
+				<File RelativePath="..\dtool\src\cppparser\cppTypeProxy.h"></File>
+			</Filter>
+			<Filter Name="interrogatedb">
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateComponent.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunctionWrapper.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunction.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunction.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\config_interrogatedb.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\indexRemapper.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateType.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateManifest.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogatedb_composite2.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateManifest.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateComponent.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\config_interrogatedb.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunctionWrapper.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_interface.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateElement.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateType.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_datafile.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunctionWrapper.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateDatabase.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\vector_int.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateManifest.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateElement.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateType.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\py_panda.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\indexRemapper.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_request.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateDatabase.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_request.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\vector_int.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateDatabase.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogatedb_composite.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateComponent.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_interface.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateElement.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_datafile.I"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\dtool_super_base.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\py_panda.cxx"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogateFunction.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogate_datafile.h"></File>
+				<File RelativePath="..\dtool\src\interrogatedb\interrogatedb_composite1.cxx"></File>
+			</Filter>
+			<Filter Name="prckeys">
+				<File RelativePath="..\dtool\src\prckeys\signPrcFile_src.cxx"></File>
+				<File RelativePath="..\dtool\src\prckeys\makePrcKey.cxx"></File>
+			</Filter>
+		</Filter>
+		<Filter Name="panda">
+			<Filter Name="char">
+				<File RelativePath="..\panda\src\char\characterVertexSlider.h"></File>
+				<File RelativePath="..\panda\src\char\characterJointBundle.cxx"></File>
+				<File RelativePath="..\panda\src\char\character.cxx"></File>
+				<File RelativePath="..\panda\src\char\jointVertexTransform.h"></File>
+				<File RelativePath="..\panda\src\char\characterVertexSlider.cxx"></File>
+				<File RelativePath="..\panda\src\char\characterJoint.cxx"></File>
+				<File RelativePath="..\panda\src\char\jointVertexTransform.I"></File>
+				<File RelativePath="..\panda\src\char\config_char.cxx"></File>
+				<File RelativePath="..\panda\src\char\char_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\char\characterJointBundle.h"></File>
+				<File RelativePath="..\panda\src\char\characterSlider.cxx"></File>
+				<File RelativePath="..\panda\src\char\character.I"></File>
+				<File RelativePath="..\panda\src\char\jointVertexTransform.cxx"></File>
+				<File RelativePath="..\panda\src\char\char_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\char\characterJointEffect.cxx"></File>
+				<File RelativePath="..\panda\src\char\characterJoint.h"></File>
+				<File RelativePath="..\panda\src\char\characterVertexSlider.I"></File>
+				<File RelativePath="..\panda\src\char\config_char.h"></File>
+				<File RelativePath="..\panda\src\char\character.h"></File>
+				<File RelativePath="..\panda\src\char\characterJointEffect.h"></File>
+				<File RelativePath="..\panda\src\char\char_composite.cxx"></File>
+				<File RelativePath="..\panda\src\char\characterSlider.h"></File>
+				<File RelativePath="..\panda\src\char\characterJointEffect.I"></File>
+				<File RelativePath="..\panda\src\char\characterJoint.I"></File>
+				<File RelativePath="..\panda\src\char\characterJointBundle.I"></File>
+			</Filter>
+			<Filter Name="gobj">
+				<File RelativePath="..\panda\src\gobj\geomEnums.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexData.h"></File>
+				<File RelativePath="..\panda\src\gobj\shaderContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlend.I"></File>
+				<File RelativePath="..\panda\src\gobj\sliderTable.I"></File>
+				<File RelativePath="..\panda\src\gobj\gobj_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomLinestrips.h"></File>
+				<File RelativePath="..\panda\src\gobj\preparedGraphicsObjects.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexReader.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\transformTable.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlendTable.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexAnimationSpec.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\gobj_composite.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\materialPool.h"></File>
+				<File RelativePath="..\panda\src\gobj\orthographicLens.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomPrimitive.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomPoints.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexRewriter.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheManager.h"></File>
+				<File RelativePath="..\panda\src\gobj\lens.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomPoints.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexFormat.I"></File>
+				<File RelativePath="..\panda\src\gobj\shaderContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\lens.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBlock.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheEntry.h"></File>
+				<File RelativePath="..\panda\src\gobj\transformTable.I"></File>
+				<File RelativePath="..\panda\src\gobj\preparedGraphicsObjects.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\adaptiveLru.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomTriangles.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geom.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataPage.h"></File>
+				<File RelativePath="..\panda\src\gobj\materialPool.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheEntry.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexSlider.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomLinestrips.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\queryContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexWriter.h"></File>
+				<File RelativePath="..\panda\src\gobj\indexBufferContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomLines.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\savedContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\perspectiveLens.I"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlendTable.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayData.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomTriangles.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexAnimationSpec.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\orthographicLens.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferResidencyTracker.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBook.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataSaveFile.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texturePeeker.h"></File>
+				<File RelativePath="..\panda\src\gobj\queryContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexData.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomMunger.I"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlend.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\textureContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\internalName.I"></File>
+				<File RelativePath="..\panda\src\gobj\sliderTable.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexBufferContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomEnums.h"></File>
+				<File RelativePath="..\panda\src\gobj\shader.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\transformTable.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomTristrips.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texture.I"></File>
+				<File RelativePath="..\panda\src\gobj\config_gobj.h"></File>
+				<File RelativePath="..\panda\src\gobj\texturePoolFilter.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContextChain.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\textureReloadRequest.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexWriter.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texturePoolFilter.h"></File>
+				<File RelativePath="..\panda\src\gobj\lens.h"></File>
+				<File RelativePath="..\panda\src\gobj\matrixLens.h"></File>
+				<File RelativePath="..\panda\src\gobj\adaptiveLru.h"></File>
+				<File RelativePath="..\panda\src\gobj\occlusionQueryContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\textureStage.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexTransform.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexTransform.h"></File>
+				<File RelativePath="..\panda\src\gobj\occlusionQueryContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheManager.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataPage.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexRewriter.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomTrifans.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBuffer.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataPage.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\bufferResidencyTracker.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexReader.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexSlider.h"></File>
+				<File RelativePath="..\panda\src\gobj\textureCollection.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\orthographicLens.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\queryContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\shader.h"></File>
+				<File RelativePath="..\panda\src\gobj\textureCollection.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexColumn.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexAnimationSpec.h"></File>
+				<File RelativePath="..\panda\src\gobj\textureStage.I"></File>
+				<File RelativePath="..\panda\src\gobj\simpleLru.h"></File>
+				<File RelativePath="..\panda\src\gobj\material.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexWriter.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\textureContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\internalName.h"></File>
+				<File RelativePath="..\panda\src\gobj\test_gobj.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomTristrips.h"></File>
+				<File RelativePath="..\panda\src\gobj\textureContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\config_gobj.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayData.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\shaderContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texturePeeker.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomMunger.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBook.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\simpleAllocator.h"></File>
+				<File RelativePath="..\panda\src\gobj\simpleLru.I"></File>
+				<File RelativePath="..\panda\src\gobj\texturePool.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayFormat.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexColumn.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexSlider.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomPrimitive.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\indexBufferContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\material.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContextChain.I"></File>
+				<File RelativePath="..\panda\src\gobj\perspectiveLens.h"></File>
+				<File RelativePath="..\panda\src\gobj\materialPool.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexSlider.I"></File>
+				<File RelativePath="..\panda\src\gobj\videoTexture.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexBufferContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\simpleLru.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataSaveFile.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayFormat.h"></File>
+				<File RelativePath="..\panda\src\gobj\geom.h"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\internalName.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheManager.I"></File>
+				<File RelativePath="..\panda\src\gobj\bufferResidencyTracker.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexBufferContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomTrifans.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexReader.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomContext.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\gobj_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texturePool.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataSaveFile.h"></File>
+				<File RelativePath="..\panda\src\gobj\sliderTable.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\occlusionQueryContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexSlider.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomMunger.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texture.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\savedContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\textureReloadRequest.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayFormat.I"></File>
+				<File RelativePath="..\panda\src\gobj\texture.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomPrimitive.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexFormat.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\simpleAllocator.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\bufferContextChain.h"></File>
+				<File RelativePath="..\panda\src\gobj\texturePoolFilter.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\indexBufferContext.I"></File>
+				<File RelativePath="..\panda\src\gobj\textureReloadRequest.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexColumn.I"></File>
+				<File RelativePath="..\panda\src\gobj\textureCollection.I"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexTransform.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomCacheEntry.I"></File>
+				<File RelativePath="..\panda\src\gobj\texturePeeker.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexArrayData.h"></File>
+				<File RelativePath="..\panda\src\gobj\geomLines.h"></File>
+				<File RelativePath="..\panda\src\gobj\savedContext.h"></File>
+				<File RelativePath="..\panda\src\gobj\perspectiveLens.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexTransform.h"></File>
+				<File RelativePath="..\panda\src\gobj\preparedGraphicsObjects.I"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlendTable.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geom.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexTransform.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\matrixLens.I"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBuffer.h"></File>
+				<File RelativePath="..\panda\src\gobj\shader.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\textureStage.h"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexTransform.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\texturePool.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBlock.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexRewriter.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\material.h"></File>
+				<File RelativePath="..\panda\src\gobj\simpleAllocator.I"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexData.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\geomVertexFormat.h"></File>
+				<File RelativePath="..\panda\src\gobj\videoTexture.I"></File>
+				<File RelativePath="..\panda\src\gobj\transformBlend.h"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBook.I"></File>
+				<File RelativePath="..\panda\src\gobj\userVertexSlider.h"></File>
+				<File RelativePath="..\panda\src\gobj\videoTexture.cxx"></File>
+				<File RelativePath="..\panda\src\gobj\vertexDataBlock.I"></File>
+				<File RelativePath="..\panda\src\gobj\adaptiveLru.I"></File>
+				<File RelativePath="..\panda\src\gobj\matrixLens.cxx"></File>
+			</Filter>
+			<Filter Name="parametrics">
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceResult.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveResult.h"></File>
+				<File RelativePath="..\panda\src\parametrics\config_parametrics.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsVertex.h"></File>
+				<File RelativePath="..\panda\src\parametrics\sheetNode.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsVertex.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\cubicCurveseg.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveEvaluator.h"></File>
+				<File RelativePath="..\panda\src\parametrics\parametrics_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\parametrics_composite.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\hermiteCurve.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\cubicCurveseg.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\sheetNode.I"></File>
+				<File RelativePath="..\panda\src\parametrics\ropeNode.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurve.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveInterface.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\curveFitter.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveResult.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceEvaluator.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveInterface.h"></File>
+				<File RelativePath="..\panda\src\parametrics\test_parametrics.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\ropeNode.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\ropeNode.h"></File>
+				<File RelativePath="..\panda\src\parametrics\parametricCurveCollection.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceResult.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceEvaluator.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveResult.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\sheetNode.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\parametricCurve.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveInterface.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurve.I"></File>
+				<File RelativePath="..\panda\src\parametrics\parametrics_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveEvaluator.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsVertex.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurveEvaluator.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\parametricCurveCollection.h"></File>
+				<File RelativePath="..\panda\src\parametrics\piecewiseCurve.h"></File>
+				<File RelativePath="..\panda\src\parametrics\hermiteCurve.h"></File>
+				<File RelativePath="..\panda\src\parametrics\parametricCurveCollection.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceEvaluator.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsCurve.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\piecewiseCurve.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsBasisVector.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsBasisVector.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\parametricCurve.h"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsBasisVector.h"></File>
+				<File RelativePath="..\panda\src\parametrics\config_parametrics.cxx"></File>
+				<File RelativePath="..\panda\src\parametrics\curveFitter.I"></File>
+				<File RelativePath="..\panda\src\parametrics\nurbsSurfaceResult.h"></File>
+				<File RelativePath="..\panda\src\parametrics\curveFitter.cxx"></File>
+			</Filter>
+			<Filter Name="linmath">
+				<File RelativePath="..\panda\src\linmath\vector_TexCoordf.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvec3_ops_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvector4_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\vector_LVecBase3f.h"></File>
+				<File RelativePath="..\panda\src\linmath\lorientation.h"></File>
+				<File RelativePath="..\panda\src\linmath\linmath_composite.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\compose_matrix.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint3.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector2_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint2.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase4_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\vector_LPoint2f.h"></File>
+				<File RelativePath="..\panda\src\linmath\coordinateSystem.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\deg_2_rad.h"></File>
+				<File RelativePath="..\panda\src\linmath\lorientation_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lorientation_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase2_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\mathNumbers.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lquaternion_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvec2_ops_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lrotation.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint2.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\cast_to_float.h"></File>
+				<File RelativePath="..\panda\src\linmath\lquaternion_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase3_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint2_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix4_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\compose_matrix_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvec4_ops.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvector3_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\dblnames.h"></File>
+				<File RelativePath="..\panda\src\linmath\lrotation_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvec2_ops.h"></File>
+				<File RelativePath="..\panda\src\linmath\lrotation.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector3.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector3_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\cast_to_double.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvector4.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lcast_to_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase2_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvector4_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\cast_to_double.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase4.h"></File>
+				<File RelativePath="..\panda\src\linmath\luse.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvec2_ops_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\compose_matrix.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase3_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase2.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint3_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector2_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lrotation_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix.h"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix4_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix3_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\compose_matrix_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lmat_ops.h"></File>
+				<File RelativePath="..\panda\src\linmath\config_linmath.h"></File>
+				<File RelativePath="..\panda\src\linmath\luse.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase3_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lorientation_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lquaternion_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\mathNumbers.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint3_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Normalf.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase2.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvector3_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lcast_to_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint4_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\cast_to_float.I"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint2_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lcast_to.h"></File>
+				<File RelativePath="..\panda\src\linmath\linmath_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix3_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\flt2dblnames.h"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix3_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\fltnames.h"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Colorf.h"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix4_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint2_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lquaternion.h"></File>
+				<File RelativePath="..\panda\src\linmath\lrotation_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvec3_ops.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint4.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lmat_ops_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint4.h"></File>
+				<File RelativePath="..\panda\src\linmath\aa_luse.h"></File>
+				<File RelativePath="..\panda\src\linmath\test_math.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector2_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvec3_ops_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lmatrix.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase4_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\mathNumbers.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvector4.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase3.h"></File>
+				<File RelativePath="..\panda\src\linmath\lquaternion.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\dbl2fltnames.h"></File>
+				<File RelativePath="..\panda\src\linmath\compose_matrix_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Vertexf.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\config_linmath.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase2_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Normalf.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvec4_ops_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Vertexf.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvector4_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lmat_ops_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase3.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\vector_LVecBase3f.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint3_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint4_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\linmath_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector2.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\coordinateSystem.h"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint4_src.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lpoint3.h"></File>
+				<File RelativePath="..\panda\src\linmath\vector_Colorf.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase4_src.I"></File>
+				<File RelativePath="..\panda\src\linmath\lvecBase4.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector3.h"></File>
+				<File RelativePath="..\panda\src\linmath\lvec4_ops_src.h"></File>
+				<File RelativePath="..\panda\src\linmath\lorientation.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\luse.cxx"></File>
+				<File RelativePath="..\panda\src\linmath\lvector2.h"></File>
+				<File RelativePath="..\panda\src\linmath\vector_LPoint2f.cxx"></File>
+			</Filter>
+			<Filter Name="collide">
+				<File RelativePath="..\panda\src\collide\collisionHandlerEvent.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFloor.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionParabola.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFloor.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionRay.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFluidPusher.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionSphere.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandler.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelState.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionRecorder.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionLine.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFluidPusher.h"></File>
+				<File RelativePath="..\panda\src\collide\config_collide.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionTube.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionSegment.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collide_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionSolid.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionVisualizer.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionInvSphere.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFluidPusher.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionNode.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionGeom.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionSegment.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionTube.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerQueue.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionParabola.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionPlane.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerEvent.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionTraverser.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionPlane.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionDSSolid.I"></File>
+				<File RelativePath="..\panda\src\collide\collide_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerGravity.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPusher.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionInvSphere.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelState.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionSolid.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelStateBase.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionPolygon.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionSphere.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionVisualizer.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPhysical.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionDSSolid.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionDSSolid.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionSphere.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionSegment.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionVisualizer.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionParabola.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionNode.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerEvent.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandler.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionFloorMesh.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionTraverser.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPusher.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionInvSphere.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionLine.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionEntry.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionTube.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionSolid.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionPlane.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerGravity.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionRecorder.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelStateBase.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionGeom.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelStateBase.h"></File>
+				<File RelativePath="..\panda\src\collide\collide_composite.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionLevelState.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionEntry.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPusher.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionFloorMesh.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerFloor.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionPolygon.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerQueue.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionEntry.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionRay.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPhysical.h"></File>
+				<File RelativePath="..\panda\src\collide\config_collide.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerGravity.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionLine.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandlerPhysical.I"></File>
+				<File RelativePath="..\panda\src\collide\test_collide.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionFloorMesh.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionPolygon.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionGeom.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionTraverser.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionRecorder.I"></File>
+				<File RelativePath="..\panda\src\collide\collisionHandler.h"></File>
+				<File RelativePath="..\panda\src\collide\collisionNode.cxx"></File>
+				<File RelativePath="..\panda\src\collide\collisionRay.cxx"></File>
+			</Filter>
+			<Filter Name="putil">
+				<File RelativePath="..\panda\src\putil\bamWriter.h"></File>
+				<File RelativePath="..\panda\src\putil\compareTo.h"></File>
+				<File RelativePath="..\panda\src\putil\globalPointerRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramShort.cxx"></File>
+				<File RelativePath="..\panda\src\putil\callbackData.cxx"></File>
+				<File RelativePath="..\panda\src\putil\factory.I"></File>
+				<File RelativePath="..\panda\src\putil\firstOfPairLess.h"></File>
+				<File RelativePath="..\panda\src\putil\animInterface.I"></File>
+				<File RelativePath="..\panda\src\putil\loaderOptions.I"></File>
+				<File RelativePath="..\panda\src\putil\writableParam.I"></File>
+				<File RelativePath="..\panda\src\putil\loaderOptions.h"></File>
+				<File RelativePath="..\panda\src\putil\factoryParams.h"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWriteObject.I"></File>
+				<File RelativePath="..\panda\src\putil\buttonRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\putil\test_bam.h"></File>
+				<File RelativePath="..\panda\src\putil\writableParam.h"></File>
+				<File RelativePath="..\panda\src\putil\datagramInputFile.h"></File>
+				<File RelativePath="..\panda\src\putil\timedCycle.h"></File>
+				<File RelativePath="..\panda\src\putil\firstOfPairCompare.h"></File>
+				<File RelativePath="..\panda\src\putil\cPointerCallbackObject.h"></File>
+				<File RelativePath="..\panda\src\putil\nodeCachedReferenceCount.I"></File>
+				<File RelativePath="..\panda\src\putil\buttonHandle.h"></File>
+				<File RelativePath="..\panda\src\putil\pta_ushort.cxx"></File>
+				<File RelativePath="..\panda\src\putil\lineStreamBuf.I"></File>
+				<File RelativePath="..\panda\src\putil\modifierButtons.cxx"></File>
+				<File RelativePath="..\panda\src\putil\datagramInputFile.I"></File>
+				<File RelativePath="..\panda\src\putil\pbitops.I"></File>
+				<File RelativePath="..\panda\src\putil\test_uniqueIdAllocator.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamTextureMode.cxx"></File>
+				<File RelativePath="..\panda\src\putil\uniqueIdAllocator.cxx"></File>
+				<File RelativePath="..\panda\src\putil\loaderOptions.cxx"></File>
+				<File RelativePath="..\panda\src\putil\collideMask.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_typedWritable.cxx"></File>
+				<File RelativePath="..\panda\src\putil\timedCycle.I"></File>
+				<File RelativePath="..\panda\src\putil\nameUniquifier.cxx"></File>
+				<File RelativePath="..\panda\src\putil\pythonCallbackObject.I"></File>
+				<File RelativePath="..\panda\src\putil\doubleBitMask.I"></File>
+				<File RelativePath="..\panda\src\putil\buttonRegistry.I"></File>
+				<File RelativePath="..\panda\src\putil\simpleHashMap.I"></File>
+				<File RelativePath="..\panda\src\putil\mouseButton.h"></File>
+				<File RelativePath="..\panda\src\putil\bamCache.cxx"></File>
+				<File RelativePath="..\panda\src\putil\updateSeq.I"></File>
+				<File RelativePath="..\panda\src\putil\bitArray.h"></File>
+				<File RelativePath="..\panda\src\putil\pta_int.cxx"></File>
+				<File RelativePath="..\panda\src\putil\globalPointerRegistry.h"></File>
+				<File RelativePath="..\panda\src\putil\keyboardButton.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamEndian.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheIndex.cxx"></File>
+				<File RelativePath="..\panda\src\putil\factoryBase.h"></File>
+				<File RelativePath="..\panda\src\putil\linkedListNode.h"></File>
+				<File RelativePath="..\panda\src\putil\callbackObject.cxx"></File>
+				<File RelativePath="..\panda\src\putil\keyboardButton.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_writable.h"></File>
+				<File RelativePath="..\panda\src\putil\callbackData.h"></File>
+				<File RelativePath="..\panda\src\putil\lineStream.I"></File>
+				<File RelativePath="..\panda\src\putil\factoryParam.I"></File>
+				<File RelativePath="..\panda\src\putil\sparseArray.cxx"></File>
+				<File RelativePath="..\panda\src\putil\vector_ushort.h"></File>
+				<File RelativePath="..\panda\src\putil\putil_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\putil\string_utils.cxx"></File>
+				<File RelativePath="..\panda\src\putil\test_bam.cxx"></File>
+				<File RelativePath="..\panda\src\putil\buttonHandle.cxx"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramInt.h"></File>
+				<File RelativePath="..\panda\src\putil\factory.h"></File>
+				<File RelativePath="..\panda\src\putil\factoryBase.cxx"></File>
+				<File RelativePath="..\panda\src\putil\linkedListNode.cxx"></File>
+				<File RelativePath="..\panda\src\putil\firstOfPairCompare.I"></File>
+				<File RelativePath="..\panda\src\putil\cPointerCallbackObject.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bitMask.I"></File>
+				<File RelativePath="..\panda\src\putil\sparseArray.I"></File>
+				<File RelativePath="..\panda\src\putil\datagramOutputFile.cxx"></File>
+				<File RelativePath="..\panda\src\putil\typedWritableReferenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\putil\typedWritable.cxx"></File>
+				<File RelativePath="..\panda\src\putil\timedCycle.cxx"></File>
+				<File RelativePath="..\panda\src\putil\writableConfigurable.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamReaderParam.h"></File>
+				<File RelativePath="..\panda\src\putil\mouseData.h"></File>
+				<File RelativePath="..\panda\src\putil\simpleHashMap.cxx"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareSort.h"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWritePointer.h"></File>
+				<File RelativePath="..\panda\src\putil\clockObject.I"></File>
+				<File RelativePath="..\panda\src\putil\writableConfigurable.h"></File>
+				<File RelativePath="..\panda\src\putil\bamEndian.h"></File>
+				<File RelativePath="..\panda\src\putil\factoryParams.I"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheIndex.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_ushort.cxx"></File>
+				<File RelativePath="..\panda\src\putil\sparseArray.h"></File>
+				<File RelativePath="..\panda\src\putil\callbackObject.I"></File>
+				<File RelativePath="..\panda\src\putil\typedWritable.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_double.h"></File>
+				<File RelativePath="..\panda\src\putil\pbitops.h"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramFloat.h"></File>
+				<File RelativePath="..\panda\src\putil\test_filename.cxx"></File>
+				<File RelativePath="..\panda\src\putil\putil_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\putil\mouseButton.cxx"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareNames.I"></File>
+				<File RelativePath="..\panda\src\putil\pbitops.cxx"></File>
+				<File RelativePath="..\panda\src\putil\clockObject.cxx"></File>
+				<File RelativePath="..\panda\src\putil\test_bamWrite.cxx"></File>
+				<File RelativePath="..\panda\src\putil\mouseData.cxx"></File>
+				<File RelativePath="..\panda\src\putil\vector_writable.cxx"></File>
+				<File RelativePath="..\panda\src\putil\pta_double.h"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWritePointer.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bitMask.cxx"></File>
+				<File RelativePath="..\panda\src\putil\config_util.h"></File>
+				<File RelativePath="..\panda\src\putil\clockObject.h"></File>
+				<File RelativePath="..\panda\src\putil\lineStream.h"></File>
+				<File RelativePath="..\panda\src\putil\datagramInputFile.cxx"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramInt.cxx"></File>
+				<File RelativePath="..\panda\src\putil\load_prc_file.h"></File>
+				<File RelativePath="..\panda\src\putil\bamWriter.I"></File>
+				<File RelativePath="..\panda\src\putil\nameUniquifier.h"></File>
+				<File RelativePath="..\panda\src\putil\datagramOutputFile.h"></File>
+				<File RelativePath="..\panda\src\putil\load_prc_file.cxx"></File>
+				<File RelativePath="..\panda\src\putil\modifierButtons.I"></File>
+				<File RelativePath="..\panda\src\putil\cPointerCallbackObject.I"></File>
+				<File RelativePath="..\panda\src\putil\typedWritableReferenceCount.h"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareTo.h"></File>
+				<File RelativePath="..\panda\src\putil\buttonHandle.I"></File>
+				<File RelativePath="..\panda\src\putil\bitArray.cxx"></File>
+				<File RelativePath="..\panda\src\putil\nodeCachedReferenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\putil\buttonRegistry.h"></File>
+				<File RelativePath="..\panda\src\putil\pta_ushort.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_typedWritable.h"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareSort.I"></File>
+				<File RelativePath="..\panda\src\putil\factoryBase.I"></File>
+				<File RelativePath="..\panda\src\putil\updateSeq.h"></File>
+				<File RelativePath="..\panda\src\putil\writableParam.cxx"></File>
+				<File RelativePath="..\panda\src\putil\portalMask.h"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheIndex.I"></File>
+				<File RelativePath="..\panda\src\putil\vector_ulong.h"></File>
+				<File RelativePath="..\panda\src\putil\typedWritable.I"></File>
+				<File RelativePath="..\panda\src\putil\pta_double.cxx"></File>
+				<File RelativePath="..\panda\src\putil\drawMask.h"></File>
+				<File RelativePath="..\panda\src\putil\doubleBitMask.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamCache.h"></File>
+				<File RelativePath="..\panda\src\putil\callbackData.I"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareTo.I"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWritePointer.I"></File>
+				<File RelativePath="..\panda\src\putil\test_glob.cxx"></File>
+				<File RelativePath="..\panda\src\putil\updateSeq.cxx"></File>
+				<File RelativePath="..\panda\src\putil\vector_double.cxx"></File>
+				<File RelativePath="..\panda\src\putil\simpleHashMap.h"></File>
+				<File RelativePath="..\panda\src\putil\lineStream.cxx"></File>
+				<File RelativePath="..\panda\src\putil\uniqueIdAllocator.h"></File>
+				<File RelativePath="..\panda\src\putil\bamReader.I"></File>
+				<File RelativePath="..\panda\src\putil\cachedTypedWritableReferenceCount.h"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheRecord.cxx"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramFloat.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bitMask.h"></File>
+				<File RelativePath="..\panda\src\putil\configurable.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamCache.I"></File>
+				<File RelativePath="..\panda\src\putil\pythonCallbackObject.h"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWriteObject.h"></File>
+				<File RelativePath="..\panda\src\putil\pta_int.h"></File>
+				<File RelativePath="..\panda\src\putil\vector_ulong.cxx"></File>
+				<File RelativePath="..\panda\src\putil\test_bamRead.cxx"></File>
+				<File RelativePath="..\panda\src\putil\copyOnWriteObject.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamReader.h"></File>
+				<File RelativePath="..\panda\src\putil\factoryParams.cxx"></File>
+				<File RelativePath="..\panda\src\putil\bamReaderParam.cxx"></File>
+				<File RelativePath="..\panda\src\putil\factoryParam.h"></File>
+				<File RelativePath="..\panda\src\putil\putil_composite.cxx"></File>
+				<File RelativePath="..\panda\src\putil\configurable.h"></File>
+				<File RelativePath="..\panda\src\putil\bamTextureMode.h"></File>
+				<File RelativePath="..\panda\src\putil\bitArray.I"></File>
+				<File RelativePath="..\panda\src\putil\cachedTypedWritableReferenceCount.I"></File>
+				<File RelativePath="..\panda\src\putil\string_utils.h"></File>
+				<File RelativePath="..\panda\src\putil\indirectCompareNames.h"></File>
+				<File RelativePath="..\panda\src\putil\iterator_types.h"></File>
+				<File RelativePath="..\panda\src\putil\typedWritableReferenceCount.I"></File>
+				<File RelativePath="..\panda\src\putil\string_utils.I"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheRecord.h"></File>
+				<File RelativePath="..\panda\src\putil\bamWriter.cxx"></File>
+				<File RelativePath="..\panda\src\putil\compareTo.I"></File>
+				<File RelativePath="..\panda\src\putil\bamReaderParam.I"></File>
+				<File RelativePath="..\panda\src\putil\animInterface.h"></File>
+				<File RelativePath="..\panda\src\putil\modifierButtons.h"></File>
+				<File RelativePath="..\panda\src\putil\doubleBitMask.h"></File>
+				<File RelativePath="..\panda\src\putil\bamReader.cxx"></File>
+				<File RelativePath="..\panda\src\putil\lineStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\putil\nameUniquifier.I"></File>
+				<File RelativePath="..\panda\src\putil\bamCacheRecord.I"></File>
+				<File RelativePath="..\panda\src\putil\animInterface.cxx"></File>
+				<File RelativePath="..\panda\src\putil\lineStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\putil\config_util.cxx"></File>
+				<File RelativePath="..\panda\src\putil\cachedTypedWritableReferenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\putil\pythonCallbackObject.cxx"></File>
+				<File RelativePath="..\panda\src\putil\test_linestream.cxx"></File>
+				<File RelativePath="..\panda\src\putil\ioPtaDatagramShort.h"></File>
+				<File RelativePath="..\panda\src\putil\callbackObject.h"></File>
+				<File RelativePath="..\panda\src\putil\nodeCachedReferenceCount.h"></File>
+				<File RelativePath="..\panda\src\putil\datagramOutputFile.I"></File>
+				<File RelativePath="..\panda\src\putil\firstOfPairLess.I"></File>
+				<File RelativePath="..\panda\src\putil\globalPointerRegistry.I"></File>
+				<File RelativePath="..\panda\src\putil\bam.h"></File>
+				<File RelativePath="..\panda\src\putil\factoryParam.cxx"></File>
+				<File RelativePath="..\panda\src\putil\linkedListNode.I"></File>
+				<File RelativePath="..\panda\src\putil\mouseData.I"></File>
+			</Filter>
+			<Filter Name="dxgsg9">
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsPipe9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsWindow9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGeomMunger9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxShaderContext9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGraphicsStateGuardian9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\vertexElementArray.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxVertexBufferContext9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsBuffer9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGeomMunger9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxTextureContext9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxOcclusionQueryContext9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxgsg9_composite.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxShaderContext9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxOcclusionQueryContext9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxgsg9_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxTextureContext9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsPipe9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsWindow9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxOcclusionQueryContext9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGraphicsDevice9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxInput9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGraphicsStateGuardian9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGeomMunger9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGraphicsStateGuardian9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxTextureContext9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxIndexBufferContext9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxIndexBufferContext9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxShaderContext9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxIndexBufferContext9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxInput9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsBuffer9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsWindow9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\config_dxgsg9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxgsg9base.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\wdxGraphicsPipe9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxVertexBufferContext9.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg9\vertexElementArray.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxVertexBufferContext9.I"></File>
+				<File RelativePath="..\panda\src\dxgsg9\dxGraphicsDevice9.h"></File>
+				<File RelativePath="..\panda\src\dxgsg9\config_dxgsg9.h"></File>
+			</Filter>
+			<Filter Name="display">
+				<File RelativePath="..\panda\src\display\displayRegionCullCallbackData.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsEngine.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayRegionCullCallbackData.h"></File>
+				<File RelativePath="..\panda\src\display\renderBuffer.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsEngine.h"></File>
+				<File RelativePath="..\panda\src\display\config_display.h"></File>
+				<File RelativePath="..\panda\src\display\display_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayInformation.cxx"></File>
+				<File RelativePath="..\panda\src\display\windowProperties.I"></File>
+				<File RelativePath="..\panda\src\display\displayRegion.h"></File>
+				<File RelativePath="..\panda\src\display\displayRegionCullCallbackData.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsOutput.cxx"></File>
+				<File RelativePath="..\panda\src\display\test_display.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsBuffer.I"></File>
+				<File RelativePath="..\panda\src\display\stencilRenderStates.cxx"></File>
+				<File RelativePath="..\panda\src\display\stereoDisplayRegion.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindowInputDevice.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsThreadingModel.I"></File>
+				<File RelativePath="..\panda\src\display\parasiteBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\display\stencilRenderStates.h"></File>
+				<File RelativePath="..\panda\src\display\frameBufferProperties.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipeSelection.h"></File>
+				<File RelativePath="..\panda\src\display\standardMunger.I"></File>
+				<File RelativePath="..\panda\src\display\lru.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipeSelection.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayInformation.h"></File>
+				<File RelativePath="..\panda\src\display\display_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\display\lru.h"></File>
+				<File RelativePath="..\panda\src\display\windowProperties.cxx"></File>
+				<File RelativePath="..\panda\src\display\drawableRegion.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\display\drawableRegion.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\display\parasiteBuffer.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipeSelection.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\display\displayRegion.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsOutput.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsEngine.I"></File>
+				<File RelativePath="..\panda\src\display\stereoDisplayRegion.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayRegion.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayRegionDrawCallbackData.h"></File>
+				<File RelativePath="..\panda\src\display\stereoDisplayRegion.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsOutput.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsDevice.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsThreadingModel.h"></File>
+				<File RelativePath="..\panda\src\display\drawableRegion.cxx"></File>
+				<File RelativePath="..\panda\src\display\display_composite.cxx"></File>
+				<File RelativePath="..\panda\src\display\standardMunger.cxx"></File>
+				<File RelativePath="..\panda\src\display\displaySearchParameters.h"></File>
+				<File RelativePath="..\panda\src\display\config_display.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsThreadingModel.cxx"></File>
+				<File RelativePath="..\panda\src\display\standardMunger.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsDevice.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsStateGuardian.h"></File>
+				<File RelativePath="..\panda\src\display\parasiteBuffer.I"></File>
+				<File RelativePath="..\panda\src\display\windowProperties.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsStateGuardian.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindowInputDevice.I"></File>
+				<File RelativePath="..\panda\src\display\frameBufferProperties.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\display\frameBufferProperties.I"></File>
+				<File RelativePath="..\panda\src\display\displayRegionDrawCallbackData.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindowInputDevice.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\display\graphicsStateGuardian.I"></File>
+				<File RelativePath="..\panda\src\display\graphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\display\graphicsDevice.h"></File>
+				<File RelativePath="..\panda\src\display\displaySearchParameters.cxx"></File>
+				<File RelativePath="..\panda\src\display\displayRegionDrawCallbackData.I"></File>
+			</Filter>
+			<Filter Name="audio">
+				<File RelativePath="..\panda\src\audio\audioSound.I"></File>
+				<File RelativePath="..\panda\src\audio\config_audio.h"></File>
+				<File RelativePath="..\panda\src\audio\nullAudioSound.cxx"></File>
+				<File RelativePath="..\panda\src\audio\audio_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\audio\filterProperties.h"></File>
+				<File RelativePath="..\panda\src\audio\nullAudioManager.cxx"></File>
+				<File RelativePath="..\panda\src\audio\audio_composite.cxx"></File>
+				<File RelativePath="..\panda\src\audio\filterProperties.I"></File>
+				<File RelativePath="..\panda\src\audio\test_audio.cxx"></File>
+				<File RelativePath="..\panda\src\audio\nullAudioManager.h"></File>
+				<File RelativePath="..\panda\src\audio\audioSound.cxx"></File>
+				<File RelativePath="..\panda\src\audio\config_audio.cxx"></File>
+				<File RelativePath="..\panda\src\audio\nullAudioSound.h"></File>
+				<File RelativePath="..\panda\src\audio\filterProperties.cxx"></File>
+				<File RelativePath="..\panda\src\audio\audioManager.h"></File>
+				<File RelativePath="..\panda\src\audio\audioLoadRequest.I"></File>
+				<File RelativePath="..\panda\src\audio\audioManager.cxx"></File>
+				<File RelativePath="..\panda\src\audio\audioLoadRequest.cxx"></File>
+				<File RelativePath="..\panda\src\audio\audio.h"></File>
+				<File RelativePath="..\panda\src\audio\audioManager.I"></File>
+				<File RelativePath="..\panda\src\audio\audioSound.h"></File>
+				<File RelativePath="..\panda\src\audio\audioLoadRequest.h"></File>
+			</Filter>
+			<Filter Name="recorder">
+				<File RelativePath="..\panda\src\recorder\socketStreamRecorder.I"></File>
+				<File RelativePath="..\panda\src\recorder\mouseRecorder.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\socketStreamRecorder.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderTable.I"></File>
+				<File RelativePath="..\panda\src\recorder\recorderBase.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\socketStreamRecorder.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderFrame.I"></File>
+				<File RelativePath="..\panda\src\recorder\recorderFrame.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderBase.h"></File>
+				<File RelativePath="..\panda\src\recorder\config_recorder.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderHeader.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderController.I"></File>
+				<File RelativePath="..\panda\src\recorder\recorder_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderController.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorder_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderHeader.I"></File>
+				<File RelativePath="..\panda\src\recorder\config_recorder.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorder_composite.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderController.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderFrame.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderHeader.h"></File>
+				<File RelativePath="..\panda\src\recorder\mouseRecorder.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderTable.h"></File>
+				<File RelativePath="..\panda\src\recorder\recorderTable.cxx"></File>
+				<File RelativePath="..\panda\src\recorder\recorderBase.I"></File>
+			</Filter>
+			<Filter Name="distort">
+				<File RelativePath="..\panda\src\distort\pSphereLens.I"></File>
+				<File RelativePath="..\panda\src\distort\cylindricalLens.cxx"></File>
+				<File RelativePath="..\panda\src\distort\fisheyeLens.h"></File>
+				<File RelativePath="..\panda\src\distort\fisheyeLens.cxx"></File>
+				<File RelativePath="..\panda\src\distort\distort_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\distort\distort_composite.cxx"></File>
+				<File RelativePath="..\panda\src\distort\pSphereLens.h"></File>
+				<File RelativePath="..\panda\src\distort\projectionScreen.cxx"></File>
+				<File RelativePath="..\panda\src\distort\pSphereLens.cxx"></File>
+				<File RelativePath="..\panda\src\distort\projectionScreen.h"></File>
+				<File RelativePath="..\panda\src\distort\config_distort.cxx"></File>
+				<File RelativePath="..\panda\src\distort\nonlinearImager.cxx"></File>
+				<File RelativePath="..\panda\src\distort\cylindricalLens.h"></File>
+				<File RelativePath="..\panda\src\distort\cylindricalLens.I"></File>
+				<File RelativePath="..\panda\src\distort\config_distort.h"></File>
+				<File RelativePath="..\panda\src\distort\nonlinearImager.I"></File>
+				<File RelativePath="..\panda\src\distort\projectionScreen.I"></File>
+				<File RelativePath="..\panda\src\distort\fisheyeLens.I"></File>
+				<File RelativePath="..\panda\src\distort\nonlinearImager.h"></File>
+			</Filter>
+			<Filter Name="helix">
+				<File RelativePath="..\panda\src\helix\fivemmap.h"></File>
+				<File RelativePath="..\panda\src\helix\fivemmap.cxx"></File>
+				<File RelativePath="..\panda\src\helix\main.cpp"></File>
+				<File RelativePath="..\panda\src\helix\HxSiteSupplier.h"></File>
+				<File RelativePath="..\panda\src\helix\HxAuthenticationManager.h"></File>
+				<File RelativePath="..\panda\src\helix\config_helix.h"></File>
+				<File RelativePath="..\panda\src\helix\print.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HelixDefs.h"></File>
+				<File RelativePath="..\panda\src\helix\HxAdviseSink.h"></File>
+				<File RelativePath="..\panda\src\helix\HxSiteSupplier.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HxClientContext.cxx"></File>
+				<File RelativePath="..\panda\src\helix\print.h"></File>
+				<File RelativePath="..\panda\src\helix\HelixClient.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HxErrorSink.h"></File>
+				<File RelativePath="..\panda\src\helix\HxClientContext.h"></File>
+				<File RelativePath="..\panda\src\helix\HxAuthenticationManager.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HxErrorSink.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HelixClient.h"></File>
+				<File RelativePath="..\panda\src\helix\MainHelix.h"></File>
+				<File RelativePath="..\panda\src\helix\iids.cxx"></File>
+				<File RelativePath="..\panda\src\helix\config_helix.cxx"></File>
+				<File RelativePath="..\panda\src\helix\HxAdviseSink.cxx"></File>
+			</Filter>
+			<Filter Name="wgldisplay">
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsBuffer.I"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\config_wgldisplay.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglext.h"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsStateGuardian.I"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wgldisplay_composite.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\config_wgldisplay.h"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsStateGuardian.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wgldisplay_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\wgldisplay\wglGraphicsStateGuardian.h"></File>
+			</Filter>
+			<Filter Name="glgsg">
+				<File RelativePath="..\panda\src\glgsg\glgsg.cxx"></File>
+				<File RelativePath="..\panda\src\glgsg\glgsg_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\glgsg\config_glgsg.h"></File>
+				<File RelativePath="..\panda\src\glgsg\glgsg.h"></File>
+				<File RelativePath="..\panda\src\glgsg\glgsg_composite.cxx"></File>
+				<File RelativePath="..\panda\src\glgsg\config_glgsg.cxx"></File>
+			</Filter>
+			<Filter Name="dgraph">
+				<File RelativePath="..\panda\src\dgraph\dataNode.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dataNodeTransmit.I"></File>
+				<File RelativePath="..\panda\src\dgraph\dataNodeTransmit.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dataGraphTraverser.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dataNode.h"></File>
+				<File RelativePath="..\panda\src\dgraph\dgraph_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dgraph_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\config_dgraph.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dataNodeTransmit.h"></File>
+				<File RelativePath="..\panda\src\dgraph\dataGraphTraverser.h"></File>
+				<File RelativePath="..\panda\src\dgraph\dgraph_composite.cxx"></File>
+				<File RelativePath="..\panda\src\dgraph\dataGraphTraverser.I"></File>
+				<File RelativePath="..\panda\src\dgraph\config_dgraph.h"></File>
+				<File RelativePath="..\panda\src\dgraph\dataNode.I"></File>
+			</Filter>
+			<Filter Name="glxdisplay">
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPixmap.I"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPixmap.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsStateGuardian.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPixmap.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxext.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxdisplay_composite.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxdisplay_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\config_glxdisplay.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsStateGuardian.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\config_glxdisplay.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsBuffer.I"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsStateGuardian.I"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\glxdisplay\glxGraphicsBuffer.cxx"></File>
+			</Filter>
+			<Filter Name="tinydisplay">
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_1.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsBuffer.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zmath.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zdither.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zbuffer.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOsxGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinydisplay_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOffscreenGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\error.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOffscreenGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\image_util.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOsxGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGeomMunger.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGeomMunger.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\td_texture.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOsxGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\config_tinydisplay.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_code_3.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_code_2.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\msghandling.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_code_4.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\specbuf.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\msghandling.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_table.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinydisplay_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\td_light.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\config_tinydisplay.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\store_pixel.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\clip.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyTextureContext.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zfeatures.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\store_pixel.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zgl.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_table.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_two.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyTextureContext.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\store_pixel_code.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGeomMunger.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\store_pixel_table.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsStateGuardian.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyTextureContext.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zline.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOffscreenGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_4.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_code_1.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_2.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOsxGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\ztriangle_3.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\init.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zbuffer.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\vertex.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyOsxGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyWinGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsStateGuardian.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zmath.h"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyGraphicsStateGuardian.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinySDLGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\tinyXGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\tinydisplay\memory.cxx"></File>
+				<File RelativePath="..\panda\src\tinydisplay\zline.h"></File>
+			</Filter>
+			<Filter Name="event">
+				<File RelativePath="..\panda\src\event\asyncTaskChain.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskCollection.h"></File>
+				<File RelativePath="..\panda\src\event\test_task.cxx"></File>
+				<File RelativePath="..\panda\src\event\buttonEvent.cxx"></File>
+				<File RelativePath="..\panda\src\event\event.I"></File>
+				<File RelativePath="..\panda\src\event\event_composite.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventParameter.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventHandler.I"></File>
+				<File RelativePath="..\panda\src\event\buttonEventList.cxx"></File>
+				<File RelativePath="..\panda\src\event\pointerEventList.cxx"></File>
+				<File RelativePath="..\panda\src\event\event_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\event\asyncTask.cxx"></File>
+				<File RelativePath="..\panda\src\event\event_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\event\config_event.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskSequence.cxx"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskPause.h"></File>
+				<File RelativePath="..\panda\src\event\pointerEventList.I"></File>
+				<File RelativePath="..\panda\src\event\genericAsyncTask.I"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskPause.cxx"></File>
+				<File RelativePath="..\panda\src\event\asyncTask.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskManager.cxx"></File>
+				<File RelativePath="..\panda\src\event\buttonEventList.I"></File>
+				<File RelativePath="..\panda\src\event\eventQueue.I"></File>
+				<File RelativePath="..\panda\src\event\buttonEvent.I"></File>
+				<File RelativePath="..\panda\src\event\genericAsyncTask.h"></File>
+				<File RelativePath="..\panda\src\event\pt_Event.h"></File>
+				<File RelativePath="..\panda\src\event\pythonTask.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventHandler.h"></File>
+				<File RelativePath="..\panda\src\event\pythonTask.I"></File>
+				<File RelativePath="..\panda\src\event\buttonEvent.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskChain.I"></File>
+				<File RelativePath="..\panda\src\event\genericAsyncTask.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventQueue.h"></File>
+				<File RelativePath="..\panda\src\event\eventParameter.I"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskSequence.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskManager.I"></File>
+				<File RelativePath="..\panda\src\event\eventReceiver.cxx"></File>
+				<File RelativePath="..\panda\src\event\event.h"></File>
+				<File RelativePath="..\panda\src\event\config_event.cxx"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskManager.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskChain.cxx"></File>
+				<File RelativePath="..\panda\src\event\event.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventHandler.cxx"></File>
+				<File RelativePath="..\panda\src\event\throw_event.I"></File>
+				<File RelativePath="..\panda\src\event\buttonEventList.h"></File>
+				<File RelativePath="..\panda\src\event\pythonTask.h"></File>
+				<File RelativePath="..\panda\src\event\pointerEvent.cxx"></File>
+				<File RelativePath="..\panda\src\event\pt_Event.cxx"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskCollection.cxx"></File>
+				<File RelativePath="..\panda\src\event\eventParameter.h"></File>
+				<File RelativePath="..\panda\src\event\pointerEvent.I"></File>
+				<File RelativePath="..\panda\src\event\pointerEventList.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskSequence.I"></File>
+				<File RelativePath="..\panda\src\event\eventReceiver.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTask.I"></File>
+				<File RelativePath="..\panda\src\event\pointerEvent.h"></File>
+				<File RelativePath="..\panda\src\event\throw_event.h"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskPause.I"></File>
+				<File RelativePath="..\panda\src\event\asyncTaskCollection.I"></File>
+				<File RelativePath="..\panda\src\event\eventQueue.cxx"></File>
+			</Filter>
+			<Filter Name="downloader">
+				<File RelativePath="..\panda\src\downloader\httpDigestAuthorization.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpBasicAuthorization.h"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStreamBuf.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpDate.h"></File>
+				<File RelativePath="..\panda\src\downloader\bioPtr.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileMountHTTP.h"></File>
+				<File RelativePath="..\panda\src\downloader\decompressor.h"></File>
+				<File RelativePath="..\panda\src\downloader\extractor.I"></File>
+				<File RelativePath="..\panda\src\downloader\socketStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\urlSpec.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\socketStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpCookie.h"></File>
+				<File RelativePath="..\panda\src\downloader\download_utils.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\identityStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\decompressor.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpCookie.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\identityStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\downloader\downloadDb.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpChannel.h"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStreamBuf.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpAuthorization.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileMountHTTP.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileHTTP.h"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileMountHTTP.I"></File>
+				<File RelativePath="..\panda\src\downloader\ssl_utils.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\extractor.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\documentSpec.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\decompressor.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\bioStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\patcher.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\extractor.h"></File>
+				<File RelativePath="..\panda\src\downloader\patcher.h"></File>
+				<File RelativePath="..\panda\src\downloader\bioPtr.I"></File>
+				<File RelativePath="..\panda\src\downloader\config_downloader.h"></File>
+				<File RelativePath="..\panda\src\downloader\config_downloader.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpClient.I"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpEnum.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileHTTP.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\stringStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\identityStreamBuf.I"></File>
+				<File RelativePath="..\panda\src\downloader\socketStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\patcher.I"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\identityStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\bioStreamPtr.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpAuthorization.I"></File>
+				<File RelativePath="..\panda\src\downloader\downloader_composite.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpClient.h"></File>
+				<File RelativePath="..\panda\src\downloader\downloadDb.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\stringStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\urlSpec.I"></File>
+				<File RelativePath="..\panda\src\downloader\virtualFileHTTP.I"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\bioStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\ssl_utils.h"></File>
+				<File RelativePath="..\panda\src\downloader\download_utils.h"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpEntityTag.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\identityStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\bioStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\bioPtr.h"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\identityStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpEnum.h"></File>
+				<File RelativePath="..\panda\src\downloader\stringStream.I"></File>
+				<File RelativePath="..\panda\src\downloader\bioStream.h"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\bioStreamPtr.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpChannel.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\downloader_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\stringStreamBuf.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpClient.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\bioStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpCookie.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpAuthorization.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpDate.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\downloader_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpDigestAuthorization.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpDate.I"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\downloader\stringStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\bioStreamPtr.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\httpEntityTag.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpBasicAuthorization.I"></File>
+				<File RelativePath="..\panda\src\downloader\stringStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\downloader\urlSpec.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpDigestAuthorization.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\multiplexStream.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\documentSpec.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpEntityTag.I"></File>
+				<File RelativePath="..\panda\src\downloader\chunkedStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\downloadDb.I"></File>
+				<File RelativePath="..\panda\src\downloader\httpBasicAuthorization.cxx"></File>
+				<File RelativePath="..\panda\src\downloader\documentSpec.h"></File>
+				<File RelativePath="..\panda\src\downloader\httpChannel.I"></File>
+			</Filter>
+			<Filter Name="chan">
+				<File RelativePath="..\panda\src\chan\partSubset.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelFixed.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarTable.cxx"></File>
+				<File RelativePath="..\panda\src\chan\config_chan.cxx"></File>
+				<File RelativePath="..\panda\src\chan\partBundleNode.h"></File>
+				<File RelativePath="..\panda\src\chan\animControl.I"></File>
+				<File RelativePath="..\panda\src\chan\movingPartScalar.I"></File>
+				<File RelativePath="..\panda\src\chan\movingPartBase.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPartMatrix.I"></File>
+				<File RelativePath="..\panda\src\chan\config_chan.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixXfmTable.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarDynamic.cxx"></File>
+				<File RelativePath="..\panda\src\chan\partGroup.I"></File>
+				<File RelativePath="..\panda\src\chan\animBundleNode.I"></File>
+				<File RelativePath="..\panda\src\chan\partBundleHandle.h"></File>
+				<File RelativePath="..\panda\src\chan\animGroup.cxx"></File>
+				<File RelativePath="..\panda\src\chan\partSubset.h"></File>
+				<File RelativePath="..\panda\src\chan\chan_composite.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animBundleNode.cxx"></File>
+				<File RelativePath="..\panda\src\chan\partBundleNode.cxx"></File>
+				<File RelativePath="..\panda\src\chan\auto_bind.h"></File>
+				<File RelativePath="..\panda\src\chan\movingPartBase.I"></File>
+				<File RelativePath="..\panda\src\chan\partBundleNode.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarTable.h"></File>
+				<File RelativePath="..\panda\src\chan\auto_bind.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPart.I"></File>
+				<File RelativePath="..\panda\src\chan\partBundle.h"></File>
+				<File RelativePath="..\panda\src\chan\animBundleNode.h"></File>
+				<File RelativePath="..\panda\src\chan\vector_PartGroupStar.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixDynamic.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animControlCollection.I"></File>
+				<File RelativePath="..\panda\src\chan\vector_PartGroupStar.h"></File>
+				<File RelativePath="..\panda\src\chan\animGroup.I"></File>
+				<File RelativePath="..\panda\src\chan\bindAnimRequest.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelBase.cxx"></File>
+				<File RelativePath="..\panda\src\chan\partBundle.I"></File>
+				<File RelativePath="..\panda\src\chan\animControl.h"></File>
+				<File RelativePath="..\panda\src\chan\animBundle.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPartScalar.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarDynamic.I"></File>
+				<File RelativePath="..\panda\src\chan\bindAnimRequest.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixXfmTable.I"></File>
+				<File RelativePath="..\panda\src\chan\animGroup.h"></File>
+				<File RelativePath="..\panda\src\chan\animControl.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannel.I"></File>
+				<File RelativePath="..\panda\src\chan\animControlCollection.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animPreloadTable.h"></File>
+				<File RelativePath="..\panda\src\chan\movingPartBase.h"></File>
+				<File RelativePath="..\panda\src\chan\partBundle.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPartScalar.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animPreloadTable.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelBase.h"></File>
+				<File RelativePath="..\panda\src\chan\partBundleHandle.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixFixed.h"></File>
+				<File RelativePath="..\panda\src\chan\partGroup.h"></File>
+				<File RelativePath="..\panda\src\chan\animBundle.I"></File>
+				<File RelativePath="..\panda\src\chan\partGroup.cxx"></File>
+				<File RelativePath="..\panda\src\chan\bindAnimRequest.I"></File>
+				<File RelativePath="..\panda\src\chan\animControlCollection.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannel.h"></File>
+				<File RelativePath="..\panda\src\chan\partSubset.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPartMatrix.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixDynamic.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixXfmTable.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarDynamic.h"></File>
+				<File RelativePath="..\panda\src\chan\animBundle.h"></File>
+				<File RelativePath="..\panda\src\chan\chan_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\chan\movingPart.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixDynamic.h"></File>
+				<File RelativePath="..\panda\src\chan\partBundleHandle.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixFixed.I"></File>
+				<File RelativePath="..\panda\src\chan\chan_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animPreloadTable.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelBase.I"></File>
+				<File RelativePath="..\panda\src\chan\animChannelMatrixFixed.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannel.cxx"></File>
+				<File RelativePath="..\panda\src\chan\animChannelFixed.h"></File>
+				<File RelativePath="..\panda\src\chan\animChannelScalarTable.I"></File>
+				<File RelativePath="..\panda\src\chan\movingPartMatrix.h"></File>
+			</Filter>
+			<Filter Name="doc">
+				<File RelativePath="..\panda\src\doc\sampleClass.I"></File>
+				<File RelativePath="..\panda\src\doc\sampleClass.h"></File>
+				<File RelativePath="..\panda\src\doc\sampleClass.cxx"></File>
+			</Filter>
+			<Filter Name="ode">
+				<File RelativePath="..\panda\src\ode\odeSurfaceParameters.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSpace.h"></File>
+				<File RelativePath="..\panda\src\ode\odeCollisionEntry.I"></File>
+				<File RelativePath="..\panda\src\ode\odeJointCollection.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeJointGroup.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeAMotorJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeHinge2Joint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeContactCollection.h"></File>
+				<File RelativePath="..\panda\src\ode\odeJointGroup.h"></File>
+				<File RelativePath="..\panda\src\ode\odeGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeFixedJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshData.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSurfaceParameters.h"></File>
+				<File RelativePath="..\panda\src\ode\odeJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeSphereGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeCylinderGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeHingeJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSurfaceParameters.I"></File>
+				<File RelativePath="..\panda\src\ode\odeCylinderGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSphereGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\pode_composite3.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeCappedCylinderGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeUniversalJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeLMotorJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeBallJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\config_ode.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeJointGroup.I"></File>
+				<File RelativePath="..\panda\src\ode\odeConvexGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeUtil.h"></File>
+				<File RelativePath="..\panda\src\ode\odeAMotorJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeConvexGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeHashSpace.h"></File>
+				<File RelativePath="..\panda\src\ode\odeBody.h"></File>
+				<File RelativePath="..\panda\src\ode\odeRayGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSliderJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeJointCollection.I"></File>
+				<File RelativePath="..\panda\src\ode\odeContactCollection.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeQuadTreeSpace.I"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshData.I"></File>
+				<File RelativePath="..\panda\src\ode\odePlaneGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeCappedCylinderGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeBallJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeQuadTreeSpace.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSphereGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeCollisionEntry.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSpace.I"></File>
+				<File RelativePath="..\panda\src\ode\odeSimpleSpace.I"></File>
+				<File RelativePath="..\panda\src\ode\odeQuadTreeSpace.cxx"></File>
+				<File RelativePath="..\panda\src\ode\pode_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeHeightFieldGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odePlane2dJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSliderJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeCappedCylinderGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeCollisionEntry.h"></File>
+				<File RelativePath="..\panda\src\ode\config_ode.h"></File>
+				<File RelativePath="..\panda\src\ode\odeHingeJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeConvexGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeBody.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSliderJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeUniversalJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeNullJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odePlane2dJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeContactGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeWorld.I"></File>
+				<File RelativePath="..\panda\src\ode\odeJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeSpace.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeLMotorJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeRayGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeMass.h"></File>
+				<File RelativePath="..\panda\src\ode\odeMass.I"></File>
+				<File RelativePath="..\panda\src\ode\odeWorld.h"></File>
+				<File RelativePath="..\panda\src\ode\odeContact.I"></File>
+				<File RelativePath="..\panda\src\ode\odePlaneGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeBody.I"></File>
+				<File RelativePath="..\panda\src\ode\odeBallJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeAMotorJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeJointCollection.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSimpleSpace.h"></File>
+				<File RelativePath="..\panda\src\ode\odeHashSpace.I"></File>
+				<File RelativePath="..\panda\src\ode\odeBoxGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeUniversalJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeWorld.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContact.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odePlaneGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeHingeJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeNullJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeHelperStructs.h"></File>
+				<File RelativePath="..\panda\src\ode\odeRayGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odePlane2dJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeHinge2Joint.I"></File>
+				<File RelativePath="..\panda\src\ode\pode_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeCylinderGeom.I"></File>
+				<File RelativePath="..\panda\src\ode\odeTriMeshData.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeMass.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeLMotorJoint.I"></File>
+				<File RelativePath="..\panda\src\ode\odeJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeFixedJoint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeSimpleSpace.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContact.h"></File>
+				<File RelativePath="..\panda\src\ode\odeHinge2Joint.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeNullJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\ode_includes.h"></File>
+				<File RelativePath="..\panda\src\ode\odeHashSpace.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeFixedJoint.h"></File>
+				<File RelativePath="..\panda\src\ode\odeBoxGeom.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeBoxGeom.h"></File>
+				<File RelativePath="..\panda\src\ode\odeUtil.cxx"></File>
+				<File RelativePath="..\panda\src\ode\odeContactCollection.I"></File>
+			</Filter>
+			<Filter Name="pnmimagetypes">
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeTGA.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSGI.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmimagetypes_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSoftImage.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypePNG.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeTGA.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\sgi.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeIMG.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeJPG.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeAlias.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\config_pnmimagetypes.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeBMP.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmimagetypes_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeTIFF.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeJPGReader.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSGIReader.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeJPGWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\bmp.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSGI.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeJPG.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSGIWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypePNM.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\config_pnmimagetypes.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeTIFF.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeBMPReader.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeSoftImage.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeAlias.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeBMP.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmimagetypes_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypePNM.h"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeIMG.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypeBMPWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\pnmFileTypePNG.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimagetypes\colrops.c"></File>
+			</Filter>
+			<Filter Name="downloadertools">
+				<File RelativePath="..\panda\src\downloadertools\show_ddb.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\pencrypt.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\check_adler.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\pdecrypt.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\pzip.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\multify.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\check_md5.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\check_crc.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\apply_patch.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\build_patch.cxx"></File>
+				<File RelativePath="..\panda\src\downloadertools\punzip.cxx"></File>
+			</Filter>
+			<Filter Name="express">
+				<File RelativePath="..\panda\src\express\nodePointerTo.h"></File>
+				<File RelativePath="..\panda\src\express\encrypt_string.cxx"></File>
+				<File RelativePath="..\panda\src\express\nodeReferenceCount.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSimple.I"></File>
+				<File RelativePath="..\panda\src\express\zStream.cxx"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointerCounts.h"></File>
+				<File RelativePath="..\panda\src\express\weakReferenceList.I"></File>
+				<File RelativePath="..\panda\src\express\pointerToBase.h"></File>
+				<File RelativePath="..\panda\src\express\zStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToArrayBase.h"></File>
+				<File RelativePath="..\panda\src\express\buffer.cxx"></File>
+				<File RelativePath="..\panda\src\express\pta_uchar.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountMultifile.h"></File>
+				<File RelativePath="..\panda\src\express\config_express.h"></File>
+				<File RelativePath="..\panda\src\express\hashVal.h"></File>
+				<File RelativePath="..\panda\src\express\export_dtool.h"></File>
+				<File RelativePath="..\panda\src\express\nodeReferenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\express\weakPointerTo.cxx"></File>
+				<File RelativePath="..\panda\src\express\encrypt_string.h"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToVoid.I"></File>
+				<File RelativePath="..\panda\src\express\pta_uchar.cxx"></File>
+				<File RelativePath="..\panda\src\express\express_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\express\indirectLess.h"></File>
+				<File RelativePath="..\panda\src\express\memoryInfo.I"></File>
+				<File RelativePath="..\panda\src\express\circBuffer.h"></File>
+				<File RelativePath="..\panda\src\express\memoryUsage.cxx"></File>
+				<File RelativePath="..\panda\src\express\ordered_vector.h"></File>
+				<File RelativePath="..\panda\src\express\multifile.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountSystem.cxx"></File>
+				<File RelativePath="..\panda\src\express\error_utils.cxx"></File>
+				<File RelativePath="..\panda\src\express\pta_float.h"></File>
+				<File RelativePath="..\panda\src\express\zStream.h"></File>
+				<File RelativePath="..\panda\src\express\checksumHashGenerator.h"></File>
+				<File RelativePath="..\panda\src\express\memoryInfo.h"></File>
+				<File RelativePath="..\panda\src\express\textEncoder.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMount.h"></File>
+				<File RelativePath="..\panda\src\express\typedReferenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\express\test_types.cxx"></File>
+				<File RelativePath="..\panda\src\express\weakPointerTo.I"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerToBase.I"></File>
+				<File RelativePath="..\panda\src\express\namable.I"></File>
+				<File RelativePath="..\panda\src\express\vector_float.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerTo.h"></File>
+				<File RelativePath="..\panda\src\express\datagramSink.h"></File>
+				<File RelativePath="..\panda\src\express\datagramSink.I"></File>
+				<File RelativePath="..\panda\src\express\nodePointerTo.cxx"></File>
+				<File RelativePath="..\panda\src\express\subStream.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileList.cxx"></File>
+				<File RelativePath="..\panda\src\express\zStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\express\memoryUsage.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMount.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSystem.h"></File>
+				<File RelativePath="..\panda\src\express\pointerTo.cxx"></File>
+				<File RelativePath="..\panda\src\express\pStatCollectorForwardBase.h"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToBase.h"></File>
+				<File RelativePath="..\panda\src\express\hashGeneratorBase.I"></File>
+				<File RelativePath="..\panda\src\express\hashGeneratorBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\stringDecoder.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToBase.I"></File>
+				<File RelativePath="..\panda\src\express\trueClock.cxx"></File>
+				<File RelativePath="..\panda\src\express\dcast.cxx"></File>
+				<File RelativePath="..\panda\src\express\datagramGenerator.h"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToVoid.h"></File>
+				<File RelativePath="..\panda\src\express\datagram.I"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerTo.h"></File>
+				<File RelativePath="..\panda\src\express\weakPointerCallback.h"></File>
+				<File RelativePath="..\panda\src\express\datagram.h"></File>
+				<File RelativePath="..\panda\src\express\textEncoder.h"></File>
+				<File RelativePath="..\panda\src\express\multifile.cxx"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointerCounts.I"></File>
+				<File RelativePath="..\panda\src\express\stringDecoder.I"></File>
+				<File RelativePath="..\panda\src\express\unicodeLatinMap.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToVoid.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSimple.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountMultifile.cxx"></File>
+				<File RelativePath="..\panda\src\express\windowsRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\express\ramfile.cxx"></File>
+				<File RelativePath="..\panda\src\express\checksumHashGenerator.I"></File>
+				<File RelativePath="..\panda\src\express\checksumHashGenerator.cxx"></File>
+				<File RelativePath="..\panda\src\express\windowsRegistry.h"></File>
+				<File RelativePath="..\panda\src\express\typedReferenceCount.I"></File>
+				<File RelativePath="..\panda\src\express\weakPointerCallback.cxx"></File>
+				<File RelativePath="..\panda\src\express\stringDecoder.h"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointers.cxx"></File>
+				<File RelativePath="..\panda\src\express\nodeReferenceCount.I"></File>
+				<File RelativePath="..\panda\src\express\buffer.I"></File>
+				<File RelativePath="..\panda\src\express\datagram.cxx"></File>
+				<File RelativePath="..\panda\src\express\dcast.h"></File>
+				<File RelativePath="..\panda\src\express\pointerToArray.cxx"></File>
+				<File RelativePath="..\panda\src\express\typedef.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountSystem.h"></File>
+				<File RelativePath="..\panda\src\express\typedReferenceCount.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountSystem.I"></File>
+				<File RelativePath="..\panda\src\express\nodePointerTo.I"></File>
+				<File RelativePath="..\panda\src\express\profileTimer.I"></File>
+				<File RelativePath="..\panda\src\express\hashVal.I"></File>
+				<File RelativePath="..\panda\src\express\pta_float.cxx"></File>
+				<File RelativePath="..\panda\src\express\weakPointerTo.h"></File>
+				<File RelativePath="..\panda\src\express\ramfile.h"></File>
+				<File RelativePath="..\panda\src\express\hashVal.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToArrayBase.I"></File>
+				<File RelativePath="..\panda\src\express\datagramIterator.I"></File>
+				<File RelativePath="..\panda\src\express\vector_uchar.h"></File>
+				<File RelativePath="..\panda\src\express\profileTimer.h"></File>
+				<File RelativePath="..\panda\src\express\datagramIterator.h"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerTo.cxx"></File>
+				<File RelativePath="..\panda\src\express\profileTimer.cxx"></File>
+				<File RelativePath="..\panda\src\express\datagramGenerator.cxx"></File>
+				<File RelativePath="..\panda\src\express\hashGeneratorBase.h"></File>
+				<File RelativePath="..\panda\src\express\patchfile.cxx"></File>
+				<File RelativePath="..\panda\src\express\test_ordered_vector.cxx"></File>
+				<File RelativePath="..\panda\src\express\nodePointerToBase.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFile.h"></File>
+				<File RelativePath="..\panda\src\express\zStream.I"></File>
+				<File RelativePath="..\panda\src\express\subStreamBuf.h"></File>
+				<File RelativePath="..\panda\src\express\virtualFile.cxx"></File>
+				<File RelativePath="..\panda\src\express\password_hash.cxx"></File>
+				<File RelativePath="..\panda\src\express\datagramSink.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerTo.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSystem.I"></File>
+				<File RelativePath="..\panda\src\express\referenceCount.I"></File>
+				<File RelativePath="..\panda\src\express\patchfile.h"></File>
+				<File RelativePath="..\panda\src\express\ordered_vector.I"></File>
+				<File RelativePath="..\panda\src\express\pointerToVoid.h"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMountMultifile.I"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointers.h"></File>
+				<File RelativePath="..\panda\src\express\memoryUsage.I"></File>
+				<File RelativePath="..\panda\src\express\referenceCount.h"></File>
+				<File RelativePath="..\panda\src\express\ordered_vector.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileList.I"></File>
+				<File RelativePath="..\panda\src\express\circBuffer.I"></File>
+				<File RelativePath="..\panda\src\express\weakReferenceList.cxx"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToBase.I"></File>
+				<File RelativePath="..\panda\src\express\textEncoder.cxx"></File>
+				<File RelativePath="..\panda\src\express\referenceCount.cxx"></File>
+				<File RelativePath="..\panda\src\express\buffer.h"></File>
+				<File RelativePath="..\panda\src\express\weakReferenceList.h"></File>
+				<File RelativePath="..\panda\src\express\unicodeLatinMap.h"></File>
+				<File RelativePath="..\panda\src\express\namable.h"></File>
+				<File RelativePath="..\panda\src\express\indirectLess.I"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointers.I"></File>
+				<File RelativePath="..\panda\src\express\trueClock.h"></File>
+				<File RelativePath="..\panda\src\express\memoryInfo.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSystem.cxx"></File>
+				<File RelativePath="..\panda\src\express\namable.cxx"></File>
+				<File RelativePath="..\panda\src\express\trueClock.I"></File>
+				<File RelativePath="..\panda\src\express\config_express.cxx"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerToBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToVoid.I"></File>
+				<File RelativePath="..\panda\src\express\vector_uchar.cxx"></File>
+				<File RelativePath="..\panda\src\express\vector_float.h"></File>
+				<File RelativePath="..\panda\src\express\express_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileSimple.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToArray.h"></File>
+				<File RelativePath="..\panda\src\express\memoryUsagePointerCounts.cxx"></File>
+				<File RelativePath="..\panda\src\express\datagramIterator.cxx"></File>
+				<File RelativePath="..\panda\src\express\nodePointerToBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\subStream.h"></File>
+				<File RelativePath="..\panda\src\express\subStream.I"></File>
+				<File RelativePath="..\panda\src\express\password_hash.h"></File>
+				<File RelativePath="..\panda\src\express\pStatCollectorForwardBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\pointerToArray.I"></File>
+				<File RelativePath="..\panda\src\express\error_utils.h"></File>
+				<File RelativePath="..\panda\src\express\ramfile.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileComposite.cxx"></File>
+				<File RelativePath="..\panda\src\express\weakPointerToVoid.cxx"></File>
+				<File RelativePath="..\panda\src\express\test_zstream.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileMount.cxx"></File>
+				<File RelativePath="..\panda\src\express\nodePointerToBase.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileComposite.h"></File>
+				<File RelativePath="..\panda\src\express\datagramGenerator.I"></File>
+				<File RelativePath="..\panda\src\express\subStreamBuf.cxx"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerToBase.h"></File>
+				<File RelativePath="..\panda\src\express\pointerToArrayBase.cxx"></File>
+				<File RelativePath="..\panda\src\express\express_composite.cxx"></File>
+				<File RelativePath="..\panda\src\express\virtualFileComposite.I"></File>
+				<File RelativePath="..\panda\src\express\weakPointerCallback.I"></File>
+				<File RelativePath="..\panda\src\express\multifile.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFile.I"></File>
+				<File RelativePath="..\panda\src\express\patchfile.I"></File>
+				<File RelativePath="..\panda\src\express\threadSafePointerTo.I"></File>
+				<File RelativePath="..\panda\src\express\virtualFileList.h"></File>
+			</Filter>
+			<Filter Name="pstatclient">
+				<File RelativePath="..\panda\src\pstatclient\pStatServerControlMessage.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollectorForward.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientControlMessage.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatServerControlMessage.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\config_pstats.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\config_pstats.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClient.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatFrameData.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\test_client.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatThread.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClient.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pstatclient_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pstatclient_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatTimer.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClient.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatProperties.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientImpl.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientVersion.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollectorForward.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatFrameData.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatThread.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollectorDef.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientImpl.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pstatclient_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientVersion.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientControlMessage.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollectorDef.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatTimer.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatClientVersion.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollector.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatProperties.cxx"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollectorForward.I"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatCollector.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatThread.h"></File>
+				<File RelativePath="..\panda\src\pstatclient\pStatFrameData.h"></File>
+			</Filter>
+			<Filter Name="framework">
+				<File RelativePath="..\panda\src\framework\rock_floor.rgb.c"></File>
+				<File RelativePath="..\panda\src\framework\framework_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\framework\windowFramework.I"></File>
+				<File RelativePath="..\panda\src\framework\pandaFramework.I"></File>
+				<File RelativePath="..\panda\src\framework\shuttle_controls.bam.c"></File>
+				<File RelativePath="..\panda\src\framework\config_framework.h"></File>
+				<File RelativePath="..\panda\src\framework\windowFramework.h"></File>
+				<File RelativePath="..\panda\src\framework\windowFramework.cxx"></File>
+				<File RelativePath="..\panda\src\framework\config_framework.cxx"></File>
+				<File RelativePath="..\panda\src\framework\pandaFramework.h"></File>
+				<File RelativePath="..\panda\src\framework\pandaFramework.cxx"></File>
+				<File RelativePath="..\panda\src\framework\framework_composite.cxx"></File>
+			</Filter>
+			<Filter Name="gsgbase">
+				<File RelativePath="..\panda\src\gsgbase\displayRegionBase.h"></File>
+				<File RelativePath="..\panda\src\gsgbase\displayRegionBase.I"></File>
+				<File RelativePath="..\panda\src\gsgbase\gsgbase_composite.cxx"></File>
+				<File RelativePath="..\panda\src\gsgbase\config_gsgbase.cxx"></File>
+				<File RelativePath="..\panda\src\gsgbase\displayRegionBase.cxx"></File>
+				<File RelativePath="..\panda\src\gsgbase\gsgbase_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\gsgbase\config_gsgbase.h"></File>
+				<File RelativePath="..\panda\src\gsgbase\test_gsgbase.cxx"></File>
+				<File RelativePath="..\panda\src\gsgbase\graphicsStateGuardianBase.h"></File>
+				<File RelativePath="..\panda\src\gsgbase\graphicsStateGuardianBase.cxx"></File>
+			</Filter>
+			<Filter Name="lerp">
+				<File RelativePath="..\panda\src\lerp\lerpchans.h"></File>
+				<File RelativePath="..\panda\src\lerp\lerpblend.cxx"></File>
+				<File RelativePath="..\panda\src\lerp\lerp_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\lerp\lerpfunctor.h"></File>
+				<File RelativePath="..\panda\src\lerp\lerpfunctor.cxx"></File>
+				<File RelativePath="..\panda\src\lerp\config_lerp.h"></File>
+				<File RelativePath="..\panda\src\lerp\config_lerp.cxx"></File>
+				<File RelativePath="..\panda\src\lerp\lerpblend.h"></File>
+				<File RelativePath="..\panda\src\lerp\lerp.h"></File>
+				<File RelativePath="..\panda\src\lerp\lerp.cxx"></File>
+				<File RelativePath="..\panda\src\lerp\lerp_composite.cxx"></File>
+			</Filter>
+			<Filter Name="effects">
+				<File RelativePath="..\panda\src\effects\config_effects.cxx"></File>
+				<File RelativePath="..\panda\src\effects\lensFlareNode.I"></File>
+				<File RelativePath="..\panda\src\effects\effects_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\effects\effects_composite.cxx"></File>
+				<File RelativePath="..\panda\src\effects\lensFlareNode.cxx"></File>
+				<File RelativePath="..\panda\src\effects\lensFlareNode.h"></File>
+				<File RelativePath="..\panda\src\effects\config_effects.h"></File>
+			</Filter>
+			<Filter Name="mesadisplay">
+				<File RelativePath="..\panda\src\mesadisplay\mesadisplay_composite.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsStateGuardian.I"></File>
+				<File RelativePath="..\panda\src\mesadisplay\mesagsg.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\mesagsg.h"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\mesadisplay\mesadisplay_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsStateGuardian.h"></File>
+				<File RelativePath="..\panda\src\mesadisplay\config_mesadisplay.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsBuffer.I"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\mesadisplay\config_mesadisplay.h"></File>
+				<File RelativePath="..\panda\src\mesadisplay\osMesaGraphicsStateGuardian.cxx"></File>
+			</Filter>
+			<Filter Name="egg2pg">
+				<File RelativePath="..\panda\src\egg2pg\eggLoader.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\load_egg_file.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\egg2pg_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggLoader.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggRenderState.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\deferredNodeProperty.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggBinner.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\characterMaker.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggRenderState.I"></File>
+				<File RelativePath="..\panda\src\egg2pg\egg_parametrics.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\config_egg2pg.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\loaderFileTypeEgg.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggBinner.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\animBundleMaker.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\load_egg_file.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\characterMaker.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\egg2pg_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\loaderFileTypeEgg.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\config_egg2pg.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\deferredNodeProperty.h"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggRenderState.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\egg_parametrics.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\egg2pg_composite.cxx"></File>
+				<File RelativePath="..\panda\src\egg2pg\eggLoader.I"></File>
+				<File RelativePath="..\panda\src\egg2pg\animBundleMaker.cxx"></File>
+			</Filter>
+			<Filter Name="windisplay">
+				<File RelativePath="..\panda\src\windisplay\winGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\config_windisplay.h"></File>
+				<File RelativePath="..\panda\src\windisplay\winGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\windisplay\windisplay_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\winGraphicsWindow.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\winGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\windisplay\winGraphicsPipe.I"></File>
+				<File RelativePath="..\panda\src\windisplay\windisplay_composite.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\winDetectDx9.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\config_windisplay.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\winGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\windisplay\winDetectDx8.cxx"></File>
+				<File RelativePath="..\panda\src\windisplay\winDetectDx.h"></File>
+			</Filter>
+			<Filter Name="pgraph">
+				<File RelativePath="..\panda\src\pgraph\lensNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\portalNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNodeChain.I"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\auxBitplaneAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\workingNodePath.I"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderPool.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinManager.I"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathLerps.h"></File>
+				<File RelativePath="..\panda\src\pgraph\attribNodeRegistry.h"></File>
+				<File RelativePath="..\panda\src\pgraph\fog.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\clipPlaneAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\fadeLodNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\modelPool.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\stencilAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\colorWriteAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthTestAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathLerps.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loader.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderPool.I"></File>
+				<File RelativePath="..\panda\src\pgraph\light.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\decalEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\modelRoot.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shadeModelAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullHandler.h"></File>
+				<File RelativePath="..\panda\src\pgraph\colorBlendAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphAnalyzer.I"></File>
+				<File RelativePath="..\panda\src\pgraph\texMatrixAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinManager.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\test_pgraph.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\billboardEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\transparencyAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\materialAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\geomTransformer.h"></File>
+				<File RelativePath="..\panda\src\pgraph\geomDrawCallbackData.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loader.I"></File>
+				<File RelativePath="..\panda\src\pgraph\transformState.h"></File>
+				<File RelativePath="..\panda\src\pgraph\texMatrixAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\portalNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\colorScaleAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\fadeLodNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\clipPlaneAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\billboardEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\compassEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffects.h"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathComponent.h"></File>
+				<File RelativePath="..\panda\src\pgraph\light.I"></File>
+				<File RelativePath="..\panda\src\pgraph\colorWriteAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\materialCollection.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileType.h"></File>
+				<File RelativePath="..\panda\src\pgraph\transformState.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthOffsetAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\rescaleNormalAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\depthTestAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\texGenAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\showBoundsEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderGeneratorBase.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\fogAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileTypeRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\colorScaleAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\light.h"></File>
+				<File RelativePath="..\panda\src\pgraph\modelFlattenRequest.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathComponent.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverser.h"></File>
+				<File RelativePath="..\panda\src\pgraph\camera.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\bamFile.I"></File>
+				<File RelativePath="..\panda\src\pgraph\decalEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullableObject.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullHandler.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\antialiasAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverserData.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cacheStats.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lodNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\weakNodePath.h"></File>
+				<File RelativePath="..\panda\src\pgraph\attribNodeRegistry.I"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\geomNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\workingNodePath.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\pgraph_composite4.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\pgraph_composite3.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lightAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNodeChain.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderState.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthOffsetAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\stateMunger.I"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxPath.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\stencilAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\lightAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderModeAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNodeChain.h"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderPool.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\textureStageCollection.I"></File>
+				<File RelativePath="..\panda\src\pgraph\camera.h"></File>
+				<File RelativePath="..\panda\src\pgraph\fadeLodNodeData.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphReducer.h"></File>
+				<File RelativePath="..\panda\src\pgraph\texMatrixAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxPath.h"></File>
+				<File RelativePath="..\panda\src\pgraph\textureStageCollection.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\audioVolumeAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\portalClipper.I"></File>
+				<File RelativePath="..\panda\src\pgraph\billboardEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullResult.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\fogAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\eventStorePandaNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\colorBlendAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphReducer.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphReducer.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullPlanes.I"></File>
+				<File RelativePath="..\panda\src\pgraph\accumulatedAttribs.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelPool.h"></File>
+				<File RelativePath="..\panda\src\pgraph\antialiasAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\geomDrawCallbackData.I"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileTypeBam.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthTestAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\modelFlattenRequest.I"></File>
+				<File RelativePath="..\panda\src\pgraph\transparencyAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\depthWriteAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\alphaTestAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\auxBitplaneAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\internalNameCollection.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathCollection.I"></File>
+				<File RelativePath="..\panda\src\pgraph\transparencyAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\config_pgraph.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderState.I"></File>
+				<File RelativePath="..\panda\src\pgraph\modelLoadRequest.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cacheStats.h"></File>
+				<File RelativePath="..\panda\src\pgraph\stateMunger.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullFaceAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\texGenAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneSetup.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\planeNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\weakNodePath.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePath.h"></File>
+				<File RelativePath="..\panda\src\pgraph\geomNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\fadeLodNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxLevelEntry.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pgraph_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lodNodeType.h"></File>
+				<File RelativePath="..\panda\src\pgraph\fog.I"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderGeneratorBase.h"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePath.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\planeNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverserData.I"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffects.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\geomDrawCallbackData.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffects.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullFaceAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneSetup.h"></File>
+				<File RelativePath="..\panda\src\pgraph\auxSceneData.h"></File>
+				<File RelativePath="..\panda\src\pgraph\textureStageCollection.h"></File>
+				<File RelativePath="..\panda\src\pgraph\eventStorePandaNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinManager.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullHandler.I"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathComponent.I"></File>
+				<File RelativePath="..\panda\src\pgraph\auxSceneData.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\fadeLodNodeData.h"></File>
+				<File RelativePath="..\panda\src\pgraph\clipPlaneAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lightRampAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\accumulatedAttribs.h"></File>
+				<File RelativePath="..\panda\src\pgraph\stencilAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lodNodeType.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthOffsetAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\rescaleNormalAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\colorAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\auxBitplaneAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileTypeRegistry.h"></File>
+				<File RelativePath="..\panda\src\pgraph\portalClipper.h"></File>
+				<File RelativePath="..\panda\src\pgraph\modelRoot.I"></File>
+				<File RelativePath="..\panda\src\pgraph\compassEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\bamFile.h"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphAnalyzer.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBin.I"></File>
+				<File RelativePath="..\panda\src\pgraph\config_pgraph.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneGraphAnalyzer.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\internalNameCollection.h"></File>
+				<File RelativePath="..\panda\src\pgraph\shadeModelAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\texProjectorEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\modelLoadRequest.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderModeAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathCollection.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\compassEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\camera.I"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\alphaTestAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePathCollection.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullableObject.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loader.h"></File>
+				<File RelativePath="..\panda\src\pgraph\bamFile.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\materialCollection.I"></File>
+				<File RelativePath="..\panda\src\pgraph\showBoundsEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\materialAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\lodNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\textureAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullPlanes.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\colorBlendAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\lightRampAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\fog.h"></File>
+				<File RelativePath="..\panda\src\pgraph\colorAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderModeAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\geomNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shadeModelAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullFaceAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\depthWriteAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxPath.I"></File>
+				<File RelativePath="..\panda\src\pgraph\modelLoadRequest.I"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttribRegistry.I"></File>
+				<File RelativePath="..\panda\src\pgraph\rescaleNormalAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullPlanes.h"></File>
+				<File RelativePath="..\panda\src\pgraph\stateMunger.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\planeNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileType.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBinEnums.h"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderInput.h"></File>
+				<File RelativePath="..\panda\src\pgraph\lightAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\lensNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverserData.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lodNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\auxSceneData.I"></File>
+				<File RelativePath="..\panda\src\pgraph\loaderFileTypeBam.h"></File>
+				<File RelativePath="..\panda\src\pgraph\sceneSetup.I"></File>
+				<File RelativePath="..\panda\src\pgraph\textureAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelRoot.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverser.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBin.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\lensNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttribRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\nodePath.I"></File>
+				<File RelativePath="..\panda\src\pgraph\showBoundsEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxLevelEntry.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\decalEffect.h"></File>
+				<File RelativePath="..\panda\src\pgraph\colorAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\pgraph_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\modelFlattenRequest.h"></File>
+				<File RelativePath="..\panda\src\pgraph\weakNodePath.I"></File>
+				<File RelativePath="..\panda\src\pgraph\materialAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderInput.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\accumulatedAttribs.I"></File>
+				<File RelativePath="..\panda\src\pgraph\portalClipper.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\audioVolumeAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\eventStorePandaNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderGeneratorBase.I"></File>
+				<File RelativePath="..\panda\src\pgraph\colorWriteAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\fogAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\materialCollection.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\attribNodeRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\polylightNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\textureAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullBin.h"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\renderState.h"></File>
+				<File RelativePath="..\panda\src\pgraph\antialiasAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNode.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pgraph_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\texProjectorEffect.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\depthWriteAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullableObject.I"></File>
+				<File RelativePath="..\panda\src\pgraph\pandaNode.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttrib.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\portalNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\texProjectorEffect.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cullResult.I"></File>
+				<File RelativePath="..\panda\src\pgraph\findApproxLevelEntry.h"></File>
+				<File RelativePath="..\panda\src\pgraph\renderAttribRegistry.h"></File>
+				<File RelativePath="..\panda\src\pgraph\modelPool.I"></File>
+				<File RelativePath="..\panda\src\pgraph\shaderInput.I"></File>
+				<File RelativePath="..\panda\src\pgraph\texGenAttrib.I"></File>
+				<File RelativePath="..\panda\src\pgraph\alphaTestAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullResult.h"></File>
+				<File RelativePath="..\panda\src\pgraph\cullTraverser.I"></File>
+				<File RelativePath="..\panda\src\pgraph\workingNodePath.h"></File>
+				<File RelativePath="..\panda\src\pgraph\geomTransformer.cxx"></File>
+				<File RelativePath="..\panda\src\pgraph\internalNameCollection.I"></File>
+				<File RelativePath="..\panda\src\pgraph\geomTransformer.I"></File>
+				<File RelativePath="..\panda\src\pgraph\transformState.I"></File>
+				<File RelativePath="..\panda\src\pgraph\cacheStats.I"></File>
+				<File RelativePath="..\panda\src\pgraph\scissorAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\lightRampAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\colorScaleAttrib.h"></File>
+				<File RelativePath="..\panda\src\pgraph\audioVolumeAttrib.cxx"></File>
+			</Filter>
+			<Filter Name="dxgsg8">
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsPipe8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGraphicsStateGuardian8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxIndexBufferContext8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsBuffer8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxgsg8base.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxIndexBufferContext8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxVertexBufferContext8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxTextureContext8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGeomMunger8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxIndexBufferContext8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\config_dxgsg8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxgsg8_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsWindow8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGeomMunger8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsPipe8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsWindow8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGeomMunger8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGraphicsDevice8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGraphicsStateGuardian8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxInput8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxTextureContext8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsPipe8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\config_dxgsg8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxInput8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxTextureContext8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxgsg8_composite.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGraphicsStateGuardian8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxVertexBufferContext8.I"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxGraphicsDevice8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\dxVertexBufferContext8.h"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsWindow8.cxx"></File>
+				<File RelativePath="..\panda\src\dxgsg8\wdxGraphicsBuffer8.h"></File>
+			</Filter>
+			<Filter Name="pnmtext">
+				<File RelativePath="..\panda\src\pnmtext\pnmTextMaker.h"></File>
+				<File RelativePath="..\panda\src\pnmtext\freetypeFont.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmTextGlyph.h"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmTextGlyph.I"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmTextMaker.I"></File>
+				<File RelativePath="..\panda\src\pnmtext\config_pnmtext.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmTextMaker.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmTextGlyph.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmtext_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\config_pnmtext.h"></File>
+				<File RelativePath="..\panda\src\pnmtext\pnmtext_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pnmtext\freetypeFont.I"></File>
+				<File RelativePath="..\panda\src\pnmtext\freetypeFont.h"></File>
+			</Filter>
+			<Filter Name="skel">
+				<File RelativePath="..\panda\src\skel\typedSkel.h"></File>
+				<File RelativePath="..\panda\src\skel\basicSkel.cxx"></File>
+				<File RelativePath="..\panda\src\skel\config_skel.cxx"></File>
+				<File RelativePath="..\panda\src\skel\config_skel.h"></File>
+				<File RelativePath="..\panda\src\skel\basicSkel.I"></File>
+				<File RelativePath="..\panda\src\skel\typedSkel.I"></File>
+				<File RelativePath="..\panda\src\skel\skel_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\skel\basicSkel.h"></File>
+				<File RelativePath="..\panda\src\skel\skel_composite.cxx"></File>
+				<File RelativePath="..\panda\src\skel\typedSkel.cxx"></File>
+			</Filter>
+			<Filter Name="tform">
+				<File RelativePath="..\panda\src\tform\mouseWatcherRegion.I"></File>
+				<File RelativePath="..\panda\src\tform\tform_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\tform\transform2sg.cxx"></File>
+				<File RelativePath="..\panda\src\tform\trackball.h"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherRegion.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherGroup.h"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherParameter.h"></File>
+				<File RelativePath="..\panda\src\tform\driveInterface.I"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcher.h"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherRegion.h"></File>
+				<File RelativePath="..\panda\src\tform\tform_composite.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseInterfaceNode.cxx"></File>
+				<File RelativePath="..\panda\src\tform\config_tform.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseInterfaceNode.h"></File>
+				<File RelativePath="..\panda\src\tform\driveInterface.h"></File>
+				<File RelativePath="..\panda\src\tform\buttonThrower.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcher.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcher.I"></File>
+				<File RelativePath="..\panda\src\tform\transform2sg.h"></File>
+				<File RelativePath="..\panda\src\tform\tform_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherParameter.cxx"></File>
+				<File RelativePath="..\panda\src\tform\config_tform.h"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherGroup.cxx"></File>
+				<File RelativePath="..\panda\src\tform\buttonThrower.I"></File>
+				<File RelativePath="..\panda\src\tform\buttonThrower.h"></File>
+				<File RelativePath="..\panda\src\tform\trackball.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseInterfaceNode.I"></File>
+				<File RelativePath="..\panda\src\tform\mouseSubregion.cxx"></File>
+				<File RelativePath="..\panda\src\tform\mouseSubregion.I"></File>
+				<File RelativePath="..\panda\src\tform\mouseSubregion.h"></File>
+				<File RelativePath="..\panda\src\tform\mouseWatcherParameter.I"></File>
+				<File RelativePath="..\panda\src\tform\driveInterface.cxx"></File>
+			</Filter>
+			<Filter Name="egg">
+				<File RelativePath="..\panda\src\egg\eggGroup.h"></File>
+				<File RelativePath="..\panda\src\egg\eggNameUniquifier.h"></File>
+				<File RelativePath="..\panda\src\egg\eggGroup.I"></File>
+				<File RelativePath="..\panda\src\egg\eggCoordinateSystem.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsCurve.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterialCollection.h"></File>
+				<File RelativePath="..\panda\src\egg\eggLine.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPoint.h"></File>
+				<File RelativePath="..\panda\src\egg\eggBinMaker.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPoint.I"></File>
+				<File RelativePath="..\panda\src\egg\eggFilenameNode.h"></File>
+				<File RelativePath="..\panda\src\egg\eggUtilities.h"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexPool.h"></File>
+				<File RelativePath="..\panda\src\egg\eggBin.h"></File>
+				<File RelativePath="..\panda\src\egg\eggSAnimData.I"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexPool.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMorphList.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTable.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherFanMaker.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsCurve.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggSurface.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherEdge.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMesher.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPoint.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterial.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMiscFuncs.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexUV.I"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmAnimData.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTable.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterial.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggExternalReference.h"></File>
+				<File RelativePath="..\panda\src\egg\eggTransform.h"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggVertex.h"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggMaterial.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimData.h"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsCurve.I"></File>
+				<File RelativePath="..\panda\src\egg\eggExternalReference.I"></File>
+				<File RelativePath="..\panda\src\egg\eggPoolUniquifier.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggSurface.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherStrip.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPolygon.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmSAnim.I"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggMaterial.h"></File>
+				<File RelativePath="..\panda\src\egg\eggObject.h"></File>
+				<File RelativePath="..\panda\src\egg\eggRenderMode.I"></File>
+				<File RelativePath="..\panda\src\egg\eggCurve.I"></File>
+				<File RelativePath="..\panda\src\egg\eggSAnimData.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMiscFuncs.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMesher.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggPolysetMaker.h"></File>
+				<File RelativePath="..\panda\src\egg\lexerDefs.h"></File>
+				<File RelativePath="..\panda\src\egg\eggNamedObject.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggAttributes.cxx"></File>
+				<File RelativePath="..\panda\src\egg\test_egg.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggComment.I"></File>
+				<File RelativePath="..\panda\src\egg\eggVertex.h"></File>
+				<File RelativePath="..\panda\src\egg\eggSwitchCondition.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggCoordinateSystem.I"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsSurface.I"></File>
+				<File RelativePath="..\panda\src\egg\config_egg.h"></File>
+				<File RelativePath="..\panda\src\egg\eggVertex.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherEdge.h"></File>
+				<File RelativePath="..\panda\src\egg\eggFilenameNode.I"></File>
+				<File RelativePath="..\panda\src\egg\eggTransform.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMorph.I"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggMaterial.h"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexUV.h"></File>
+				<File RelativePath="..\panda\src\egg\egg_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggParameters.h"></File>
+				<File RelativePath="..\panda\src\egg\eggUtilities.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterial.h"></File>
+				<File RelativePath="..\panda\src\egg\eggSwitchCondition.h"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleFan.h"></File>
+				<File RelativePath="..\panda\src\egg\eggObject.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherEdge.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherFanMaker.I"></File>
+				<File RelativePath="..\panda\src\egg\eggGroupNode.I"></File>
+				<File RelativePath="..\panda\src\egg\eggAttributes.I"></File>
+				<File RelativePath="..\panda\src\egg\eggUtilities.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggExternalReference.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTexture.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggPrimitive.I"></File>
+				<File RelativePath="..\panda\src\egg\eggNode.I"></File>
+				<File RelativePath="..\panda\src\egg\egg_composite.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNode.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleFan.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTextureCollection.h"></File>
+				<File RelativePath="..\panda\src\egg\eggNameUniquifier.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimPreload.I"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleStrip.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexUV.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggComment.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMorphList.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterialCollection.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggCurve.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherStrip.I"></File>
+				<File RelativePath="..\panda\src\egg\eggComment.h"></File>
+				<File RelativePath="..\panda\src\egg\eggCompositePrimitive.h"></File>
+				<File RelativePath="..\panda\src\egg\eggGroupNode.h"></File>
+				<File RelativePath="..\panda\src\egg\eggVertexPool.I"></File>
+				<File RelativePath="..\panda\src\egg\egg_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggSAnimData.h"></File>
+				<File RelativePath="..\panda\src\egg\eggUserData.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimData.I"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggMaterial.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleStrip.I"></File>
+				<File RelativePath="..\panda\src\egg\eggPolygon.I"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggVertex.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleStrip.h"></File>
+				<File RelativePath="..\panda\src\egg\eggRenderMode.h"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggTexture.h"></File>
+				<File RelativePath="..\panda\src\egg\eggGroupNode.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggUserData.h"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsSurface.cxx"></File>
+				<File RelativePath="..\panda\src\egg\parserDefs.h"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimPreload.h"></File>
+				<File RelativePath="..\panda\src\egg\eggRenderMode.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggCurve.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggPoolUniquifier.h"></File>
+				<File RelativePath="..\panda\src\egg\eggTextureCollection.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMiscFuncs.I"></File>
+				<File RelativePath="..\panda\src\egg\eggBin.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMorphList.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMaterialCollection.I"></File>
+				<File RelativePath="..\panda\src\egg\eggCoordinateSystem.h"></File>
+				<File RelativePath="..\panda\src\egg\eggLine.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNamedObject.I"></File>
+				<File RelativePath="..\panda\src\egg\eggUserData.I"></File>
+				<File RelativePath="..\panda\src\egg\eggBinMaker.cxx"></File>
+				<File RelativePath="..\panda\src\egg\config_egg.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggPolysetMaker.cxx"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggVertex.h"></File>
+				<File RelativePath="..\panda\src\egg\eggParameters.cxx"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggTexture.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggCompositePrimitive.I"></File>
+				<File RelativePath="..\panda\src\egg\eggTexture.I"></File>
+				<File RelativePath="..\panda\src\egg\eggTransform.I"></File>
+				<File RelativePath="..\panda\src\egg\eggNode.h"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimPreload.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNamedObject.h"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmSAnim.h"></File>
+				<File RelativePath="..\panda\src\egg\pt_EggVertex.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTexture.h"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmAnimData.I"></File>
+				<File RelativePath="..\panda\src\egg\eggData.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPrimitive.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggVertex.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMorph.h"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherFanMaker.h"></File>
+				<File RelativePath="..\panda\src\egg\eggTextureCollection.I"></File>
+				<File RelativePath="..\panda\src\egg\eggFilenameNode.cxx"></File>
+				<File RelativePath="..\panda\src\egg\parser.h"></File>
+				<File RelativePath="..\panda\src\egg\eggCompositePrimitive.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggPrimitive.h"></File>
+				<File RelativePath="..\panda\src\egg\lexer.cxx"></File>
+				<File RelativePath="..\panda\src\egg\parser.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggNurbsSurface.h"></File>
+				<File RelativePath="..\panda\src\egg\eggData.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggData.I"></File>
+				<File RelativePath="..\panda\src\egg\eggTriangleFan.I"></File>
+				<File RelativePath="..\panda\src\egg\eggGroupUniquifier.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggSurface.cxx"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggTexture.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggGroup.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmAnimData.h"></File>
+				<File RelativePath="..\panda\src\egg\eggLine.I"></File>
+				<File RelativePath="..\panda\src\egg\eggMesherStrip.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggTable.h"></File>
+				<File RelativePath="..\panda\src\egg\eggAnimData.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggMesher.I"></File>
+				<File RelativePath="..\panda\src\egg\eggAttributes.h"></File>
+				<File RelativePath="..\panda\src\egg\eggXfmSAnim.cxx"></File>
+				<File RelativePath="..\panda\src\egg\eggObject.I"></File>
+				<File RelativePath="..\panda\src\egg\vector_PT_EggTexture.h"></File>
+				<File RelativePath="..\panda\src\egg\eggGroupUniquifier.h"></File>
+				<File RelativePath="..\panda\src\egg\eggPolygon.h"></File>
+			</Filter>
+			<Filter Name="grutil">
+				<File RelativePath="..\panda\src\grutil\geoMipZone.I"></File>
+				<File RelativePath="..\panda\src\grutil\geoMipTerrain.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\rigidBodyCombiner.h"></File>
+				<File RelativePath="..\panda\src\grutil\pipeOcclusionCullTraverser.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\lineSegs.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\rigidBodyCombiner.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\movieTexture.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\pagedGeoMipTerrain.h"></File>
+				<File RelativePath="..\panda\src\grutil\grutil_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\nodeVertexTransform.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\pipeOcclusionCullTraverser.h"></File>
+				<File RelativePath="..\panda\src\grutil\frameRateMeter.I"></File>
+				<File RelativePath="..\panda\src\grutil\multitexReducer.h"></File>
+				<File RelativePath="..\panda\src\grutil\grutil_composite.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\nodeVertexTransform.I"></File>
+				<File RelativePath="..\panda\src\grutil\movieTexture.h"></File>
+				<File RelativePath="..\panda\src\grutil\openCVTexture.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\ffmpegTexture.I"></File>
+				<File RelativePath="..\panda\src\grutil\multitexReducer.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\fisheyeMaker.h"></File>
+				<File RelativePath="..\panda\src\grutil\pipeOcclusionCullTraverser.I"></File>
+				<File RelativePath="..\panda\src\grutil\geoMipTerrain.h"></File>
+				<File RelativePath="..\panda\src\grutil\arToolKit.h"></File>
+				<File RelativePath="..\panda\src\grutil\geoMipZone.h"></File>
+				<File RelativePath="..\panda\src\grutil\geoMipTerrain.I"></File>
+				<File RelativePath="..\panda\src\grutil\movieTexture.I"></File>
+				<File RelativePath="..\panda\src\grutil\arToolKit.I"></File>
+				<File RelativePath="..\panda\src\grutil\cardMaker.h"></File>
+				<File RelativePath="..\panda\src\grutil\meshDrawer.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\grutil_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\openCVTexture.I"></File>
+				<File RelativePath="..\panda\src\grutil\fisheyeMaker.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\lineSegs.h"></File>
+				<File RelativePath="..\panda\src\grutil\geoMipZone.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\config_grutil.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\fisheyeMaker.I"></File>
+				<File RelativePath="..\panda\src\grutil\openCVTexture.h"></File>
+				<File RelativePath="..\panda\src\grutil\meshDrawer.I"></File>
+				<File RelativePath="..\panda\src\grutil\lineSegs.I"></File>
+				<File RelativePath="..\panda\src\grutil\rigidBodyCombiner.I"></File>
+				<File RelativePath="..\panda\src\grutil\pagedGeoMipTerrain.I"></File>
+				<File RelativePath="..\panda\src\grutil\arToolKit.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\cardMaker.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\heightfieldTesselator.h"></File>
+				<File RelativePath="..\panda\src\grutil\pagedGeoMipTerrain.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\frameRateMeter.h"></File>
+				<File RelativePath="..\panda\src\grutil\heightfieldTesselator.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\meshDrawer.h"></File>
+				<File RelativePath="..\panda\src\grutil\multitexReducer.I"></File>
+				<File RelativePath="..\panda\src\grutil\ffmpegTexture.h"></File>
+				<File RelativePath="..\panda\src\grutil\nodeVertexTransform.h"></File>
+				<File RelativePath="..\panda\src\grutil\config_grutil.h"></File>
+				<File RelativePath="..\panda\src\grutil\heightfieldTesselator.I"></File>
+				<File RelativePath="..\panda\src\grutil\ffmpegTexture.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\frameRateMeter.cxx"></File>
+				<File RelativePath="..\panda\src\grutil\cardMaker.I"></File>
+			</Filter>
+			<Filter Name="glstuff">
+				<File RelativePath="..\panda\src\glstuff\glGraphicsBuffer_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glmisc_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glIndexBufferContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glShaderContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\panda_glext.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glImmediateModeSender_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glstuff_undef_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glTextureContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glOcclusionQueryContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glGraphicsBuffer_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomMunger_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomMunger_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glOcclusionQueryContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glVertexBufferContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glShaderContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glShaderContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glIndexBufferContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glIndexBufferContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glGraphicsStateGuardian_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glVertexBufferContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glOcclusionQueryContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glstuff_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glTextureContext_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glTextureContext_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glImmediateModeSender_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glVertexBufferContext_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glGraphicsBuffer_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glGraphicsStateGuardian_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glGeomMunger_src.I"></File>
+				<File RelativePath="..\panda\src\glstuff\glmisc_src.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glstuff_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glpure.cxx"></File>
+				<File RelativePath="..\panda\src\glstuff\glImmediateModeSender_src.h"></File>
+				<File RelativePath="..\panda\src\glstuff\glGraphicsStateGuardian_src.I"></File>
+			</Filter>
+			<Filter Name="pandabase">
+				<File RelativePath="..\panda\src\pandabase\pandabase.h"></File>
+				<File RelativePath="..\panda\src\pandabase\pandabase.cxx"></File>
+				<File RelativePath="..\panda\src\pandabase\pandasymbols.h"></File>
+			</Filter>
+			<Filter Name="vrpn">
+				<File RelativePath="..\panda\src\vrpn\vrpnButtonDevice.I"></File>
+				<File RelativePath="..\panda\src\vrpn\config_vrpn.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDial.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnButton.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnButton.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalog.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTracker.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTrackerDevice.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDialDevice.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpn_interface.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDial.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTrackerDevice.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDialDevice.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalogDevice.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTracker.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpn_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpn_composite.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnButton.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnButtonDevice.h"></File>
+				<File RelativePath="..\panda\src\vrpn\config_vrpn.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTracker.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnClient.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnButtonDevice.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnTrackerDevice.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalog.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalog.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDialDevice.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalogDevice.I"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnAnalogDevice.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnDial.h"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnClient.cxx"></File>
+				<File RelativePath="..\panda\src\vrpn\vrpnClient.I"></File>
+			</Filter>
+			<Filter Name="osxdisplay">
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsBuffer.h"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsWindow.I"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsPipe.cxx"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsBuffer.cxx"></File>
+				<File RelativePath="..\panda\src\osxdisplay\config_osxdisplay.h"></File>
+				<File RelativePath="..\panda\src\osxdisplay\resize_box.rgb.c"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsStateGuardian.h"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsWindow.h"></File>
+				<File RelativePath="..\panda\src\osxdisplay\config_osxdisplay.cxx"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsPipe.h"></File>
+				<File RelativePath="..\panda\src\osxdisplay\osxGraphicsStateGuardian.cxx"></File>
+			</Filter>
+			<Filter Name="net">
+				<File RelativePath="..\panda\src\net\queuedConnectionReader.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramGeneratorNet.I"></File>
+				<File RelativePath="..\panda\src\net\datagramSinkNet.cxx"></File>
+				<File RelativePath="..\panda\src\net\connectionReader.h"></File>
+				<File RelativePath="..\panda\src\net\config_net.cxx"></File>
+				<File RelativePath="..\panda\src\net\net_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\net\test_udp.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramGeneratorNet.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedReturn.I"></File>
+				<File RelativePath="..\panda\src\net\netAddress.h"></File>
+				<File RelativePath="..\panda\src\net\queuedReturn.h"></File>
+				<File RelativePath="..\panda\src\net\datagramSinkNet.I"></File>
+				<File RelativePath="..\panda\src\net\connection.h"></File>
+				<File RelativePath="..\panda\src\net\test_spam_client.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramQueue.h"></File>
+				<File RelativePath="..\panda\src\net\datagramUDPHeader.I"></File>
+				<File RelativePath="..\panda\src\net\datagramUDPHeader.cxx"></File>
+				<File RelativePath="..\panda\src\net\net_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\net\config_net.h"></File>
+				<File RelativePath="..\panda\src\net\connectionListener.h"></File>
+				<File RelativePath="..\panda\src\net\test_datagram.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramTCPHeader.cxx"></File>
+				<File RelativePath="..\panda\src\net\test_tcp_client.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramSinkNet.h"></File>
+				<File RelativePath="..\panda\src\net\datagramTCPHeader.h"></File>
+				<File RelativePath="..\panda\src\net\connectionWriter.cxx"></File>
+				<File RelativePath="..\panda\src\net\netDatagram.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionListener.cxx"></File>
+				<File RelativePath="..\panda\src\net\test_tcp_server.cxx"></File>
+				<File RelativePath="..\panda\src\net\test_spam_server.cxx"></File>
+				<File RelativePath="..\panda\src\net\connectionManager.h"></File>
+				<File RelativePath="..\panda\src\net\connectionManager.cxx"></File>
+				<File RelativePath="..\panda\src\net\netDatagram.I"></File>
+				<File RelativePath="..\panda\src\net\connectionReader.cxx"></File>
+				<File RelativePath="..\panda\src\net\recentConnectionReader.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramGeneratorNet.h"></File>
+				<File RelativePath="..\panda\src\net\connectionWriter.h"></File>
+				<File RelativePath="..\panda\src\net\connectionListener.cxx"></File>
+				<File RelativePath="..\panda\src\net\netDatagram.h"></File>
+				<File RelativePath="..\panda\src\net\connectionReader.I"></File>
+				<File RelativePath="..\panda\src\net\net_composite.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionListener.h"></File>
+				<File RelativePath="..\panda\src\net\test_raw_server.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionManager.h"></File>
+				<File RelativePath="..\panda\src\net\fake_http_server.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionListener.I"></File>
+				<File RelativePath="..\panda\src\net\datagramUDPHeader.h"></File>
+				<File RelativePath="..\panda\src\net\connection.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramQueue.cxx"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionManager.cxx"></File>
+				<File RelativePath="..\panda\src\net\datagramTCPHeader.I"></File>
+				<File RelativePath="..\panda\src\net\queuedConnectionReader.h"></File>
+				<File RelativePath="..\panda\src\net\datagram_ui.h"></File>
+				<File RelativePath="..\panda\src\net\recentConnectionReader.h"></File>
+				<File RelativePath="..\panda\src\net\datagram_ui.cxx"></File>
+				<File RelativePath="..\panda\src\net\netAddress.cxx"></File>
+			</Filter>
+			<Filter Name="movies">
+				<File RelativePath="..\panda\src\movies\ffmpegVideoCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\movies_composite.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVirtualFile.I"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVirtualFile.cxx"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudio.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVideo.I"></File>
+				<File RelativePath="..\panda\src\movies\movieAudio.cxx"></File>
+				<File RelativePath="..\panda\src\movies\movies_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudioCursor.cxx"></File>
+				<File RelativePath="..\panda\src\movies\movieVideoCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudioCursor.cxx"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudio.h"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudio.I"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideo.cxx"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideoCursor.cxx"></File>
+				<File RelativePath="..\panda\src\movies\movieAudio.I"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideoCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\webcamVideo.I"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVideo.h"></File>
+				<File RelativePath="..\panda\src\movies\config_movies.cxx"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideo.h"></File>
+				<File RelativePath="..\panda\src\movies\config_movies.h"></File>
+				<File RelativePath="..\panda\src\movies\movieAudioCursor.cxx"></File>
+				<File RelativePath="..\panda\src\movies\microphoneAudio.I"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudioCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\webcamVideoDS.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVirtualFile.h"></File>
+				<File RelativePath="..\panda\src\movies\movieAudioCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\movieAudio.h"></File>
+				<File RelativePath="..\panda\src\movies\webcamVideo.h"></File>
+				<File RelativePath="..\panda\src\movies\movieVideoCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVideoCursor.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudio.I"></File>
+				<File RelativePath="..\panda\src\movies\movieVideo.I"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideoCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudioCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\webcamVideo.cxx"></File>
+				<File RelativePath="..\panda\src\movies\movieVideo.h"></File>
+				<File RelativePath="..\panda\src\movies\microphoneAudioDS.cxx"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVideoCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegVideo.cxx"></File>
+				<File RelativePath="..\panda\src\movies\microphoneAudio.h"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudio.h"></File>
+				<File RelativePath="..\panda\src\movies\ffmpegAudio.cxx"></File>
+				<File RelativePath="..\panda\src\movies\inkblotVideo.I"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudioCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\movieVideo.cxx"></File>
+				<File RelativePath="..\panda\src\movies\microphoneAudio.cxx"></File>
+				<File RelativePath="..\panda\src\movies\movieAudioCursor.I"></File>
+				<File RelativePath="..\panda\src\movies\userDataAudioCursor.h"></File>
+				<File RelativePath="..\panda\src\movies\movieVideoCursor.cxx"></File>
+			</Filter>
+			<Filter Name="text">
+				<File RelativePath="..\panda\src\text\textAssembler.I"></File>
+				<File RelativePath="..\panda\src\text\text_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\text\textNode.h"></File>
+				<File RelativePath="..\panda\src\text\textProperties.I"></File>
+				<File RelativePath="..\panda\src\text\default_font.h"></File>
+				<File RelativePath="..\panda\src\text\textGraphic.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextGlyph.I"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextPage.h"></File>
+				<File RelativePath="..\panda\src\text\textProperties.h"></File>
+				<File RelativePath="..\panda\src\text\config_text.cxx"></File>
+				<File RelativePath="..\panda\src\text\textFont.h"></File>
+				<File RelativePath="..\panda\src\text\geomTextGlyph.I"></File>
+				<File RelativePath="..\panda\src\text\staticTextFont.h"></File>
+				<File RelativePath="..\panda\src\text\fontPool.I"></File>
+				<File RelativePath="..\panda\src\text\textGlyph.I"></File>
+				<File RelativePath="..\panda\src\text\staticTextFont.cxx"></File>
+				<File RelativePath="..\panda\src\text\textGraphic.h"></File>
+				<File RelativePath="..\panda\src\text\fontPool.cxx"></File>
+				<File RelativePath="..\panda\src\text\textGraphic.I"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextPage.I"></File>
+				<File RelativePath="..\panda\src\text\config_text.h"></File>
+				<File RelativePath="..\panda\src\text\textGlyph.h"></File>
+				<File RelativePath="..\panda\src\text\textFont.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextFont.I"></File>
+				<File RelativePath="..\panda\src\text\textProperties.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextGlyph.cxx"></File>
+				<File RelativePath="..\panda\src\text\uhvr8ac.pfb.c"></File>
+				<File RelativePath="..\panda\src\text\geomTextGlyph.h"></File>
+				<File RelativePath="..\panda\src\text\default_font.cxx"></File>
+				<File RelativePath="..\panda\src\text\text_composite.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextFont.cxx"></File>
+				<File RelativePath="..\panda\src\text\textGlyph.cxx"></File>
+				<File RelativePath="..\panda\src\text\textAssembler.h"></File>
+				<File RelativePath="..\panda\src\text\staticTextFont.I"></File>
+				<File RelativePath="..\panda\src\text\text_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextGlyph.h"></File>
+				<File RelativePath="..\panda\src\text\fontPool.h"></File>
+				<File RelativePath="..\panda\src\text\textFont.I"></File>
+				<File RelativePath="..\panda\src\text\cmss12.bam.c"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextFont.h"></File>
+				<File RelativePath="..\panda\src\text\geomTextGlyph.cxx"></File>
+				<File RelativePath="..\panda\src\text\textAssembler.cxx"></File>
+				<File RelativePath="..\panda\src\text\dynamicTextPage.cxx"></File>
+				<File RelativePath="..\panda\src\text\cmss12.bam.pz.c"></File>
+				<File RelativePath="..\panda\src\text\textNode.cxx"></File>
+				<File RelativePath="..\panda\src\text\textPropertiesManager.cxx"></File>
+				<File RelativePath="..\panda\src\text\textPropertiesManager.I"></File>
+				<File RelativePath="..\panda\src\text\textPropertiesManager.h"></File>
+				<File RelativePath="..\panda\src\text\textNode.I"></File>
+			</Filter>
+			<Filter Name="testbed">
+				<File RelativePath="..\panda\src\testbed\test_texmem.cxx"></File>
+				<File RelativePath="..\panda\src\testbed\test_lod.cxx"></File>
+				<File RelativePath="..\panda\src\testbed\test_map.cxx"></File>
+				<File RelativePath="..\panda\src\testbed\pgrid.cxx"></File>
+				<File RelativePath="..\panda\src\testbed\pview.cxx"></File>
+				<File RelativePath="..\panda\src\testbed\text_test.cxx"></File>
+			</Filter>
+			<Filter Name="cull">
+				<File RelativePath="..\panda\src\cull\config_cull.cxx"></File>
+				<File RelativePath="..\panda\src\cull\drawCullHandler.cxx"></File>
+				<File RelativePath="..\panda\src\cull\drawCullHandler.h"></File>
+				<File RelativePath="..\panda\src\cull\cullBinUnsorted.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFrontToBack.I"></File>
+				<File RelativePath="..\panda\src\cull\binCullHandler.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinBackToFront.h"></File>
+				<File RelativePath="..\panda\src\cull\binCullHandler.I"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFixed.I"></File>
+				<File RelativePath="..\panda\src\cull\binCullHandler.h"></File>
+				<File RelativePath="..\panda\src\cull\cullBinBackToFront.I"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFixed.h"></File>
+				<File RelativePath="..\panda\src\cull\cull_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinStateSorted.I"></File>
+				<File RelativePath="..\panda\src\cull\cullBinStateSorted.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinUnsorted.h"></File>
+				<File RelativePath="..\panda\src\cull\drawCullHandler.I"></File>
+				<File RelativePath="..\panda\src\cull\cullBinUnsorted.I"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFixed.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cull_composite.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinBackToFront.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFrontToBack.h"></File>
+				<File RelativePath="..\panda\src\cull\cullBinStateSorted.h"></File>
+				<File RelativePath="..\panda\src\cull\cull_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\cull\cullBinFrontToBack.cxx"></File>
+				<File RelativePath="..\panda\src\cull\config_cull.h"></File>
+			</Filter>
+			<Filter Name="audiotraits">
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSequence.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioStream.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_milesAudio.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmod_audio_composite.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_openalAudio.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\openalAudioSound.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmodAudioSound.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\openalAudioManager.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioStream.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSample.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSequence.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSound.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_fmodAudio.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\openal_audio_composite.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSound.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_openalAudio.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmodAudioManager.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmodAudioManager.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmodAudioSound.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_fmodAudio.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioManager.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\miles_audio_composite.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\openal_audio_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioStream.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmodAudioSound.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSequence.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\globalMilesManager.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\config_milesAudio.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioManager.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\globalMilesManager.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\openalAudioSound.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSample.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\openalAudioSound.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\miles_audio_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\globalMilesManager.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSound.I"></File>
+				<File RelativePath="..\panda\src\audiotraits\fmod_audio_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\audiotraits\openalAudioManager.h"></File>
+				<File RelativePath="..\panda\src\audiotraits\milesAudioSample.I"></File>
+			</Filter>
+			<Filter Name="mathutil">
+				<File RelativePath="..\panda\src\mathutil\config_mathutil.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\geometricBoundingVolume.I"></File>
+				<File RelativePath="..\panda\src\mathutil\parabola_src.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise2.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise3.h"></File>
+				<File RelativePath="..\panda\src\mathutil\mersenne.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise2.I"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise2.I"></File>
+				<File RelativePath="..\panda\src\mathutil\parabola_src.h"></File>
+				<File RelativePath="..\panda\src\mathutil\triangulator.I"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise2.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\omniBoundingVolume.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingBox.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise3.I"></File>
+				<File RelativePath="..\panda\src\mathutil\plane_src.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\triangulator.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingLine.h"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise2.h"></File>
+				<File RelativePath="..\panda\src\mathutil\omniBoundingVolume.h"></File>
+				<File RelativePath="..\panda\src\mathutil\config_mathutil.h"></File>
+				<File RelativePath="..\panda\src\mathutil\rotate_to.h"></File>
+				<File RelativePath="..\panda\src\mathutil\look_at_src.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingVolume.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\parabola_src.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingSphere.I"></File>
+				<File RelativePath="..\panda\src\mathutil\rotate_to.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\plane_src.h"></File>
+				<File RelativePath="..\panda\src\mathutil\geometricBoundingVolume.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingHexahedron.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\finiteBoundingVolume.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\randomizer.h"></File>
+				<File RelativePath="..\panda\src\mathutil\look_at.h"></File>
+				<File RelativePath="..\panda\src\mathutil\mathutil_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise.I"></File>
+				<File RelativePath="..\panda\src\mathutil\plane.h"></File>
+				<File RelativePath="..\panda\src\mathutil\parabola.h"></File>
+				<File RelativePath="..\panda\src\mathutil\triangulator.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingVolume.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingPlane.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingBox.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingBox.I"></File>
+				<File RelativePath="..\panda\src\mathutil\omniBoundingVolume.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingSphere.h"></File>
+				<File RelativePath="..\panda\src\mathutil\linmath_events.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\finiteBoundingVolume.h"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise3.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\test_mathutil.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\frustum.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingLine.I"></File>
+				<File RelativePath="..\panda\src\mathutil\randomizer.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\linmath_events.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingPlane.h"></File>
+				<File RelativePath="..\panda\src\mathutil\frustum_src.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingHexahedron.I"></File>
+				<File RelativePath="..\panda\src\mathutil\look_at.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\mersenne.h"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise3.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\mathutil_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\randomizer.I"></File>
+				<File RelativePath="..\panda\src\mathutil\fftCompressor.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingSphere.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\plane_src.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingVolume.h"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise3.I"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise2.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingPlane.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\look_at_src.h"></File>
+				<File RelativePath="..\panda\src\mathutil\mathutil_composite.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\plane.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\look_at_src.I"></File>
+				<File RelativePath="..\panda\src\mathutil\rotate_to_src.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\test_tri.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise.h"></File>
+				<File RelativePath="..\panda\src\mathutil\stackedPerlinNoise3.h"></File>
+				<File RelativePath="..\panda\src\mathutil\geometricBoundingVolume.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\parabola.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\frustum_src.I"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingHexahedron.h"></File>
+				<File RelativePath="..\panda\src\mathutil\fftCompressor.h"></File>
+				<File RelativePath="..\panda\src\mathutil\boundingLine.cxx"></File>
+				<File RelativePath="..\panda\src\mathutil\perlinNoise.cxx"></File>
+			</Filter>
+			<Filter Name="pipeline">
+				<File RelativePath="..\panda\src\pipeline\conditionVarDebug.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDebug.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageReader.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline.h"></File>
+				<File RelativePath="..\panda\src\pipeline\test_diners.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexSimpleImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadPriority.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedReader.h"></File>
+				<File RelativePath="..\panda\src\pipeline\semaphore.h"></File>
+				<File RelativePath="..\panda\src\pipeline\externalThread.h"></File>
+				<File RelativePath="..\panda\src\pipeline\test_mutex.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\thread.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDebug.h"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexHolder.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCycler.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageWriter.h"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexHolder.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrueImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrivialImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarWin32Impl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pythonThread.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleManager.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataReader.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataReader.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFull.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadWin32Impl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutex.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutex.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSpinlockImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pmutex.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadWin32Impl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataReader.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCycler.I"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexHolder.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleData.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarPosixImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleData.I"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutex.I"></File>
+				<File RelativePath="..\panda\src\pipeline\test_concurrency.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarWin32Impl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexHolder.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\semaphore.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleManager.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexHolder.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadDummyImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedStageReader.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutex.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\contextSwitch.c"></File>
+				<File RelativePath="..\panda\src\pipeline\test_threaddata.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedStageReader.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutex.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutex.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullWin32Impl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVar.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDebug.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDebug.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadPosixImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\semaphore.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSimpleImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerDummyImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\thread.I"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutex.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSimpleImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageReader.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cyclerHolder.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleData.h"></File>
+				<File RelativePath="..\panda\src\pipeline\test_setjmp.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSpinlockImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadPosixImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrueImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDummyImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutex.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrueImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\externalThread.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVar.I"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexDirect.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerLinks.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadDummyImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cyclerHolder.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDummyImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDebug.I"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageWriter.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexSimpleImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexHolder.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSpinlockImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexHolder.h"></File>
+				<File RelativePath="..\panda\src\pipeline\blockerSimple.h"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexSimpleImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrivialImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\mainThread.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVar.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pmutex.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadDummyImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDebug.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCycler.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerLinks.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedStageReader.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadPriority.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarSimpleImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexDirect.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullWin32Impl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarWin32Impl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFull.I"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexHolder.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pythonThread.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerBase.h"></File>
+				<File RelativePath="..\panda\src\pipeline\test_atomic.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerTrivialImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\thread.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutexHolder.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cyclerHolder.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pipeline_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarPosixImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\reMutexDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\test_delete.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\threadPosixImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\contextSwitch.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataStageReader.h"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexHolder.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleManager.I"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerDummyImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\config_pipeline.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadWin32Impl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\pmutex.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullDebug.h"></File>
+				<File RelativePath="..\panda\src\pipeline\blockerSimple.I"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedReader.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFull.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\config_pipeline.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataWriter.I"></File>
+				<File RelativePath="..\panda\src\pipeline\lightReMutex.h"></File>
+				<File RelativePath="..\panda\src\pipeline\pipelineCyclerDummyImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexHolder.h"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexTrueImpl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarPosixImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mutexDebug.I"></File>
+				<File RelativePath="..\panda\src\pipeline\mainThread.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarDummyImpl.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexHolder.cxx"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataWriter.h"></File>
+				<File RelativePath="..\panda\src\pipeline\threadSimpleImpl.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarFullWin32Impl.h"></File>
+				<File RelativePath="..\panda\src\pipeline\lightMutexDirect.h"></File>
+				<File RelativePath="..\panda\src\pipeline\cycleDataLockedReader.I"></File>
+				<File RelativePath="..\panda\src\pipeline\conditionVarImpl.h"></File>
+			</Filter>
+			<Filter Name="pnmimage">
+				<File RelativePath="..\panda\src\pnmimage\pnmWriter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\config_pnmimage.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmimage_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmFileType.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmimage_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmBrush.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmimage_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmBrush.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmWriter.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImageHeader.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmFileType.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmPainter.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmPainter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnm-image-filter.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmimage_base.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnm-image-filter-core.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmReader.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmPainter.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\ppmcmap.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImage.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImageHeader.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImage.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\config_pnmimage.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\ppmcmap.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImage.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmimage_base.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmReader.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmFileTypeRegistry.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmImageHeader.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmWriter.I"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmbitio.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmBrush.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmFileTypeRegistry.h"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmReader.cxx"></File>
+				<File RelativePath="..\panda\src\pnmimage\pnmbitio.cxx"></File>
+			</Filter>
+			<Filter Name="particlesystem">
+				<File RelativePath="..\panda\src\particlesystem\geomParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\tangentRingEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleFactory.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\ringEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\tangentRingEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticle.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleCommonFuncs.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticle.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\spriteParticleRenderer.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\discEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystemManager.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\boxEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticleFactory.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticleFactory.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystemManager.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticle.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\rectangleEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\spriteParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\ringEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticleFactory.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\geomParticleRenderer.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\colorInterpolationManager.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystem.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\boxEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticleFactory.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\discEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereVolumeEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereSurfaceEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticle.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticle.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticle.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleFactory.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\arcEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystemManager.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticle.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticle.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\sparkleParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticleFactory.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleFactory.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticleFactory.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\arcEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticleFactory.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\colorInterpolationManager.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\particlefactories.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystem.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\tangentRingEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticleRenderer.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\config_particlesystem.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\rectangleEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\ringEmitter.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleRenderer.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticle.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\spriteParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\particlesystem_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\particlesystem_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\orientedParticle.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\config_particlesystem.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\colorInterpolationManager.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticleFactory.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereSurfaceEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\sparkleParticleRenderer.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\particleSystem.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\particlesystem_composite.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereVolumeEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\arcEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\zSpinParticle.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\particles.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\emitters.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereVolumeEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\sphereSurfaceEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointEmitter.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\rectangleEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\pointParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\boxEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\baseParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\geomParticleRenderer.I"></File>
+				<File RelativePath="..\panda\src\particlesystem\sparkleParticleRenderer.h"></File>
+				<File RelativePath="..\panda\src\particlesystem\discEmitter.cxx"></File>
+				<File RelativePath="..\panda\src\particlesystem\lineParticleRenderer.cxx"></File>
+			</Filter>
+			<Filter Name="pgraphnodes">
+				<File RelativePath="..\panda\src\pgraphnodes\lightNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\selectiveChildNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pgraphnodes_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\selectiveChildNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\lightNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\config_pgraphnodes.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\ambientLight.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\sequenceNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pointLight.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\callbackNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\sequenceNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\directionalLight.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\shaderGenerator.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\callbackNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\nodeCullCallbackData.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\sequenceNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pgraphnodes_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\selectiveChildNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\config_pgraphnodes.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\ambientLight.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\switchNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\ambientLight.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\directionalLight.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\switchNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pointLight.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\shaderGenerator.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\lightLensNode.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\lightLensNode.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\nodeCullCallbackData.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pointLight.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\spotlight.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\shaderGenerator.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\switchNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\directionalLight.h"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\nodeCullCallbackData.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\lightLensNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\spotlight.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\lightNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\pgraphnodes_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\callbackNode.I"></File>
+				<File RelativePath="..\panda\src\pgraphnodes\spotlight.h"></File>
+			</Filter>
+			<Filter Name="nativenet">
+				<File RelativePath="..\panda\src\nativenet\socket_fdset.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_base.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp.h"></File>
+				<File RelativePath="..\panda\src\nativenet\time_general.h"></File>
+				<File RelativePath="..\panda\src\nativenet\buffered_datagramconnection.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp_incoming.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\time_base.h"></File>
+				<File RelativePath="..\panda\src\nativenet\buffered_datagramwriter.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp_outgoing.h"></File>
+				<File RelativePath="..\panda\src\nativenet\nativenet_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\buffered_datagramreader.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_ip.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\time_span.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_portable.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp_listen.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp_outgoing.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\config_nativenet.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_address.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp_incoming.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp.h"></File>
+				<File RelativePath="..\panda\src\nativenet\buffered_datagramconnection.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp_listen.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\buffered_datagramreader.i"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp_ssl.h"></File>
+				<File RelativePath="..\panda\src\nativenet\ringbuffer.i"></File>
+				<File RelativePath="..\panda\src\nativenet\membuffer.h"></File>
+				<File RelativePath="..\panda\src\nativenet\time_accumulator.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_selector.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_ip.h"></File>
+				<File RelativePath="..\panda\src\nativenet\membuffer.i"></File>
+				<File RelativePath="..\panda\src\nativenet\time_clock.h"></File>
+				<File RelativePath="..\panda\src\nativenet\config_nativenet.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_udp.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\ringbuffer.h"></File>
+				<File RelativePath="..\panda\src\nativenet\socket_tcp_ssl.cxx"></File>
+				<File RelativePath="..\panda\src\nativenet\time_out.h"></File>
+			</Filter>
+			<Filter Name="physics">
+				<File RelativePath="..\panda\src\physics\baseForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearUserDefinedForce.I"></File>
+				<File RelativePath="..\panda\src\physics\angularVectorForce.h"></File>
+				<File RelativePath="..\panda\src\physics\angularEulerIntegrator.h"></File>
+				<File RelativePath="..\panda\src\physics\linearCylinderVortexForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physical.cxx"></File>
+				<File RelativePath="..\panda\src\physics\angularVectorForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearVectorForce.h"></File>
+				<File RelativePath="..\panda\src\physics\physics_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearVectorForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearIntegrator.h"></File>
+				<File RelativePath="..\panda\src\physics\angularForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physicsObjectCollection.I"></File>
+				<File RelativePath="..\panda\src\physics\linearFrictionForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearNoiseForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearDistanceForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearCylinderVortexForce.I"></File>
+				<File RelativePath="..\panda\src\physics\angularIntegrator.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearRandomForce.I"></File>
+				<File RelativePath="..\panda\src\physics\physicsCollisionHandler.I"></File>
+				<File RelativePath="..\panda\src\physics\config_physics.cxx"></File>
+				<File RelativePath="..\panda\src\physics\baseForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearSourceForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearControlForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearFrictionForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearDistanceForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearSinkForce.h"></File>
+				<File RelativePath="..\panda\src\physics\physicsManager.I"></File>
+				<File RelativePath="..\panda\src\physics\forceNode.I"></File>
+				<File RelativePath="..\panda\src\physics\physicsCollisionHandler.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physicsManager.h"></File>
+				<File RelativePath="..\panda\src\physics\physicsCollisionHandler.h"></File>
+				<File RelativePath="..\panda\src\physics\actorNode.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physics_composite.cxx"></File>
+				<File RelativePath="..\panda\src\physics\forces.h"></File>
+				<File RelativePath="..\panda\src\physics\linearRandomForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearCylinderVortexForce.h"></File>
+				<File RelativePath="..\panda\src\physics\forceNode.cxx"></File>
+				<File RelativePath="..\panda\src\physics\baseIntegrator.h"></File>
+				<File RelativePath="..\panda\src\physics\linearSinkForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\baseIntegrator.cxx"></File>
+				<File RelativePath="..\panda\src\physics\forceNode.h"></File>
+				<File RelativePath="..\panda\src\physics\physical.h"></File>
+				<File RelativePath="..\panda\src\physics\physicsObjectCollection.h"></File>
+				<File RelativePath="..\panda\src\physics\baseIntegrator.I"></File>
+				<File RelativePath="..\panda\src\physics\physicsObject.I"></File>
+				<File RelativePath="..\panda\src\physics\linearUserDefinedForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearSourceForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearIntegrator.cxx"></File>
+				<File RelativePath="..\panda\src\physics\baseForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearVectorForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearNoiseForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearDistanceForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physical.I"></File>
+				<File RelativePath="..\panda\src\physics\physicsObjectCollection.cxx"></File>
+				<File RelativePath="..\panda\src\physics\physicalNode.I"></File>
+				<File RelativePath="..\panda\src\physics\physicsManager.cxx"></File>
+				<File RelativePath="..\panda\src\physics\angularForce.h"></File>
+				<File RelativePath="..\panda\src\physics\physicsObject.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearFrictionForce.I"></File>
+				<File RelativePath="..\panda\src\physics\linearControlForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearUserDefinedForce.h"></File>
+				<File RelativePath="..\panda\src\physics\linearJitterForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearJitterForce.h"></File>
+				<File RelativePath="..\panda\src\physics\physics_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearNoiseForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearForce.h"></File>
+				<File RelativePath="..\panda\src\physics\physicsObject.h"></File>
+				<File RelativePath="..\panda\src\physics\linearRandomForce.cxx"></File>
+				<File RelativePath="..\panda\src\physics\actorNode.I"></File>
+				<File RelativePath="..\panda\src\physics\actorNode.h"></File>
+				<File RelativePath="..\panda\src\physics\physicalNode.cxx"></File>
+				<File RelativePath="..\panda\src\physics\angularEulerIntegrator.cxx"></File>
+				<File RelativePath="..\panda\src\physics\linearEulerIntegrator.cxx"></File>
+				<File RelativePath="..\panda\src\physics\test_physics.cxx"></File>
+				<File RelativePath="..\panda\src\physics\config_physics.h"></File>
+				<File RelativePath="..\panda\src\physics\angularVectorForce.I"></File>
+				<File RelativePath="..\panda\src\physics\angularIntegrator.h"></File>
+				<File RelativePath="..\panda\src\physics\linearEulerIntegrator.h"></File>
+				<File RelativePath="..\panda\src\physics\linearControlForce.I"></File>
+				<File RelativePath="..\panda\src\physics\physicalNode.h"></File>
+			</Filter>
+			<Filter Name="pgui">
+				<File RelativePath="..\panda\src\pgui\pgSliderBarNotify.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgTop.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgFrameStyle.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherGroup.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherBackground.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgScrollFrame.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgSliderBar.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\test_pgentry.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgEntry.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherRegion.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherBackground.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgEntry.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgItemNotify.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgButton.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgui_composite.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgItem.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherGroup.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherRegion.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgSliderBarNotify.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgSliderBar.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgFrameStyle.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgItem.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgTop.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\config_pgui.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgCullTraverser.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgItem.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgScrollFrame.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgSliderBarNotify.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgSliderBar.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgItemNotify.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherParameter.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgWaitBar.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherParameter.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgVirtualFrame.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgFrameStyle.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherParameter.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgButton.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgWaitBar.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherGroup.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgWaitBar.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgCullTraverser.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgTop.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgItemNotify.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgVirtualFrame.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgCullTraverser.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgButtonNotify.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgEntry.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgVirtualFrame.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgui_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgButton.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgButtonNotify.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgui_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\config_pgui.h"></File>
+				<File RelativePath="..\panda\src\pgui\pgMouseWatcherRegion.I"></File>
+				<File RelativePath="..\panda\src\pgui\pgScrollFrame.cxx"></File>
+				<File RelativePath="..\panda\src\pgui\pgButtonNotify.h"></File>
+			</Filter>
+			<Filter Name="device">
+				<File RelativePath="..\panda\src\device\virtualMouse.h"></File>
+				<File RelativePath="..\panda\src\device\clientBase.h"></File>
+				<File RelativePath="..\panda\src\device\device_composite2.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientTrackerDevice.I"></File>
+				<File RelativePath="..\panda\src\device\buttonNode.I"></File>
+				<File RelativePath="..\panda\src\device\mouseAndKeyboard.cxx"></File>
+				<File RelativePath="..\panda\src\device\trackerData.h"></File>
+				<File RelativePath="..\panda\src\device\clientBase.I"></File>
+				<File RelativePath="..\panda\src\device\clientDevice.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientDevice.I"></File>
+				<File RelativePath="..\panda\src\device\trackerNode.h"></File>
+				<File RelativePath="..\panda\src\device\config_device.cxx"></File>
+				<File RelativePath="..\panda\src\device\config_device.h"></File>
+				<File RelativePath="..\panda\src\device\clientBase.cxx"></File>
+				<File RelativePath="..\panda\src\device\virtualMouse.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientAnalogDevice.h"></File>
+				<File RelativePath="..\panda\src\device\trackerData.I"></File>
+				<File RelativePath="..\panda\src\device\clientDialDevice.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientAnalogDevice.I"></File>
+				<File RelativePath="..\panda\src\device\clientButtonDevice.I"></File>
+				<File RelativePath="..\panda\src\device\device_composite1.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientButtonDevice.h"></File>
+				<File RelativePath="..\panda\src\device\dialNode.h"></File>
+				<File RelativePath="..\panda\src\device\clientButtonDevice.cxx"></File>
+				<File RelativePath="..\panda\src\device\buttonNode.h"></File>
+				<File RelativePath="..\panda\src\device\clientDialDevice.I"></File>
+				<File RelativePath="..\panda\src\device\analogNode.I"></File>
+				<File RelativePath="..\panda\src\device\clientTrackerDevice.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientDevice.h"></File>
+				<File RelativePath="..\panda\src\device\mouseAndKeyboard.h"></File>
+				<File RelativePath="..\panda\src\device\device_composite.cxx"></File>
+				<File RelativePath="..\panda\src\device\trackerData.cxx"></File>
+				<File RelativePath="..\panda\src\device\trackerNode.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientTrackerDevice.h"></File>
+				<File RelativePath="..\panda\src\device\clientDialDevice.h"></File>
+				<File RelativePath="..\panda\src\device\dialNode.I"></File>
+				<File RelativePath="..\panda\src\device\trackerNode.I"></File>
+				<File RelativePath="..\panda\src\device\analogNode.h"></File>
+				<File RelativePath="..\panda\src\device\buttonNode.cxx"></File>
+				<File RelativePath="..\panda\src\device\dialNode.cxx"></File>
+				<File RelativePath="..\panda\src\device\clientAnalogDevice.cxx"></File>
+				<File RelativePath="..\panda\src\device\analogNode.cxx"></File>
+			</Filter>
+		</Filter>
+		<Filter Name="pandatool">
+			<Filter Name="mayaegg">
+				<File RelativePath="..\pandatool\src\mayaegg\mayaToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaEggGroupUserData.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\config_mayaegg.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaegg_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaEggLoader.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaNodeTree.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaEggGroupUserData.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaNodeTree.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaEggGroupUserData.I"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaEggLoader.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaNodeDesc.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaNodeDesc.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\config_mayaegg.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaBlendDesc.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaegg\mayaBlendDesc.h"></File>
+			</Filter>
+			<Filter Name="xfileegg">
+				<File RelativePath="..\pandatool\src\xfileegg\xFileNormal.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMaker.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMaterial.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMesh.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMesh.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileAnimationSet.I"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMaterial.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileVertexPool.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileAnimationSet.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileVertex.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileAnimationSet.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileNormal.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileVertex.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileMaker.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileFace.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xFileFace.h"></File>
+				<File RelativePath="..\pandatool\src\xfileegg\xfileegg_composite1.cxx"></File>
+			</Filter>
+			<Filter Name="egg-mkfont">
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeIterator.I"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeDescription.I"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeDescription.h"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\egg-mkfont_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\eggMakeFont.h"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeIterator.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeDescription.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\eggMakeFont.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-mkfont\rangeIterator.h"></File>
+			</Filter>
+			<Filter Name="progbase">
+				<File RelativePath="..\pandatool\src\progbase\programBase.h"></File>
+				<File RelativePath="..\pandatool\src\progbase\programBase.I"></File>
+				<File RelativePath="..\pandatool\src\progbase\withOutputFile.h"></File>
+				<File RelativePath="..\pandatool\src\progbase\progbase_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\progbase\programBase.cxx"></File>
+				<File RelativePath="..\pandatool\src\progbase\wordWrapStreamBuf.h"></File>
+				<File RelativePath="..\pandatool\src\progbase\wordWrapStream.cxx"></File>
+				<File RelativePath="..\pandatool\src\progbase\wordWrapStreamBuf.I"></File>
+				<File RelativePath="..\pandatool\src\progbase\wordWrapStream.h"></File>
+				<File RelativePath="..\pandatool\src\progbase\withOutputFile.I"></File>
+				<File RelativePath="..\pandatool\src\progbase\withOutputFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\progbase\wordWrapStreamBuf.cxx"></File>
+				<File RelativePath="..\pandatool\src\progbase\test_prog.cxx"></File>
+			</Filter>
+			<Filter Name="eggcharbase">
+				<File RelativePath="..\pandatool\src\eggcharbase\eggMatrixTablePointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggSliderData.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointPointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggcharbase_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterCollection.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterData.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggMatrixTablePointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointPointer.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointNodePointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterData.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointPointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\config_eggcharbase.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggBackPointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggVertexPointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggVertexPointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterDb.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggBackPointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggComponentData.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggSliderData.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointData.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterFilter.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterCollection.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggSliderData.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointNodePointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterDb.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterData.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggSliderPointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggComponentData.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggSliderPointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointData.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterFilter.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggJointData.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggScalarTablePointer.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterDb.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggScalarTablePointer.h"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggCharacterCollection.I"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\config_eggcharbase.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggcharbase\eggComponentData.cxx"></File>
+			</Filter>
+			<Filter Name="eggbase">
+				<File RelativePath="..\pandatool\src\eggbase\somethingToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggBase.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggFilter.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMakeSomething.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggbase_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggWriter.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMultiBase.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggReader.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMultiFilter.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMultiFilter.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMakeSomething.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggWriter.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggReader.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggFilter.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggSingleBase.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggToSomething.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggMultiBase.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggSingleBase.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\somethingToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggBase.h"></File>
+				<File RelativePath="..\pandatool\src\eggbase\eggToSomething.cxx"></File>
+			</Filter>
+			<Filter Name="converter">
+				<File RelativePath="..\pandatool\src\converter\somethingToEggConverter.I"></File>
+				<File RelativePath="..\pandatool\src\converter\somethingToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\converter\somethingToEggConverter.cxx"></File>
+			</Filter>
+			<Filter Name="lwoprogs">
+				<File RelativePath="..\pandatool\src\lwoprogs\lwoToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\lwoprogs\lwoToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoprogs\lwoScan.h"></File>
+				<File RelativePath="..\pandatool\src\lwoprogs\lwoScan.cxx"></File>
+			</Filter>
+			<Filter Name="cvscopy">
+				<File RelativePath="..\pandatool\src\cvscopy\cvscopy_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\testCopy.cxx"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsSourceDirectory.h"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\testCopy.h"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsSourceDirectory.cxx"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsCopy.cxx"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsCopy.h"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsSourceTree.cxx"></File>
+				<File RelativePath="..\pandatool\src\cvscopy\cvsSourceTree.h"></File>
+			</Filter>
+			<Filter Name="maxeggimport">
+				<File RelativePath="..\pandatool\src\maxeggimport\maxEggLoader.h"></File>
+				<File RelativePath="..\pandatool\src\maxeggimport\maxImportRes.h"></File>
+				<File RelativePath="..\pandatool\src\maxeggimport\maxEggLoader.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxeggimport\maxEggImport.cxx"></File>
+			</Filter>
+			<Filter Name="pandatoolbase">
+				<File RelativePath="..\pandatool\src\pandatoolbase\animationConvert.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pathReplace.I"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\config_pandatoolbase.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pathReplace.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pandatoolsymbols.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\animationConvert.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\distanceUnit.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\config_pandatoolbase.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pandatoolbase.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pathReplace.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pathStore.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pathStore.cxx"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\distanceUnit.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pandatoolbase.h"></File>
+				<File RelativePath="..\pandatool\src\pandatoolbase\pandatoolbase_composite1.cxx"></File>
+			</Filter>
+			<Filter Name="imagebase">
+				<File RelativePath="..\pandatool\src\imagebase\imageFilter.h"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageWriter.cxx"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageWriter.h"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageWriter.I"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageBase.h"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageFilter.cxx"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imagebase_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageReader.cxx"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageReader.h"></File>
+				<File RelativePath="..\pandatool\src\imagebase\imageBase.cxx"></File>
+			</Filter>
+			<Filter Name="text-stats">
+				<File RelativePath="..\pandatool\src\text-stats\textMonitor.h"></File>
+				<File RelativePath="..\pandatool\src\text-stats\textStats.h"></File>
+				<File RelativePath="..\pandatool\src\text-stats\textMonitor.cxx"></File>
+				<File RelativePath="..\pandatool\src\text-stats\textMonitor.I"></File>
+				<File RelativePath="..\pandatool\src\text-stats\textStats.cxx"></File>
+			</Filter>
+			<Filter Name="flt">
+				<File RelativePath="..\pandatool\src\flt\fltPackedColor.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRecord.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMesh.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\config_flt.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateAboutPoint.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVertex.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMeshPrimitive.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLocalVertexPool.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltInstanceRef.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMesh.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecord.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltGroup.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateAboutEdge.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLightSourceDefinition.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecordWriter.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecord.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltGroup.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVectorRecord.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltUnsupportedRecord.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltFace.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltGeometry.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltBead.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVertex.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTexture.h"></File>
+				<File RelativePath="..\pandatool\src\flt\config_flt.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltPackedColor.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMeshPrimitive.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltGeometry.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltHeader.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecordReader.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformGeneralMatrix.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecordWriter.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVertex.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltExternalReference.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltEyepoint.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltInstanceRef.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTrackplane.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecord.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLocalVertexPool.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformPut.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateAboutPoint.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltBeadID.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltCurve.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltGeometry.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLOD.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltOpcode.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltRecordReader.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltCurve.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltUnsupportedRecord.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltBead.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltObject.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltBeadID.h"></File>
+				<File RelativePath="..\pandatool\src\flt\flt_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltInstanceDefinition.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltExternalReference.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTexture.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLOD.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateScale.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltHeader.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltPackedColor.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltCurve.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateAboutEdge.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLocalVertexPool.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltLightSourceDefinition.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformScale.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVertexList.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMeshPrimitive.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMaterial.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformGeneralMatrix.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVectorRecord.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformScale.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRotateScale.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformTranslate.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltVertexList.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltInstanceDefinition.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTrackplane.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformPut.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltObject.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltOpcode.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltEyepoint.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltFace.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltFace.I"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformTranslate.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltTransformRecord.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltError.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltError.h"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMaterial.cxx"></File>
+				<File RelativePath="..\pandatool\src\flt\fltMesh.h"></File>
+			</Filter>
+			<Filter Name="vrml">
+				<File RelativePath="..\pandatool\src\vrml\standard_nodes.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlNode.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlParser.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\parse_vrml.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlNodeType.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlNode.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlParserDefs.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlLexerDefs.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlLexer.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlParser.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrml\standardNodes.wrl.pz.c"></File>
+				<File RelativePath="..\pandatool\src\vrml\standard_nodes.h"></File>
+				<File RelativePath="..\pandatool\src\vrml\parse_vrml.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrml\standardNodes.wrl.c"></File>
+				<File RelativePath="..\pandatool\src\vrml\vrmlNodeType.cxx"></File>
+			</Filter>
+			<Filter Name="ptloader">
+				<File RelativePath="..\pandatool\src\ptloader\config_ptloader.cxx"></File>
+				<File RelativePath="..\pandatool\src\ptloader\loaderFileTypePandatool.cxx"></File>
+				<File RelativePath="..\pandatool\src\ptloader\config_ptloader.h"></File>
+				<File RelativePath="..\pandatool\src\ptloader\loaderFileTypePandatool.h"></File>
+			</Filter>
+			<Filter Name="softprogs">
+				<File RelativePath="..\pandatool\src\softprogs\softCVS.cxx"></File>
+				<File RelativePath="..\pandatool\src\softprogs\softFilename.h"></File>
+				<File RelativePath="..\pandatool\src\softprogs\softCVS.h"></File>
+				<File RelativePath="..\pandatool\src\softprogs\softFilename.cxx"></File>
+			</Filter>
+			<Filter Name="imageprogs">
+				<File RelativePath="..\pandatool\src\imageprogs\imageTrans.h"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageTransformColors.cxx"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageTransformColors.h"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageResize.h"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageFixHiddenColor.I"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageResize.cxx"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageFixHiddenColor.cxx"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageInfo.h"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageFixHiddenColor.h"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageTransformColors.I"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageTrans.cxx"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageInfo.cxx"></File>
+				<File RelativePath="..\pandatool\src\imageprogs\imageResize.I"></File>
+			</Filter>
+			<Filter Name="fltprogs">
+				<File RelativePath="..\pandatool\src\fltprogs\fltToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\eggToFlt.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltCopy.h"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltTrans.h"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltInfo.h"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltInfo.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltCopy.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltTrans.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\fltToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\fltprogs\eggToFlt.h"></File>
+			</Filter>
+			<Filter Name="fltegg">
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggConverter.I"></File>
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggLevelState.I"></File>
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggLevelState.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\fltegg\fltToEggLevelState.h"></File>
+			</Filter>
+			<Filter Name="eggprogs">
+				<File RelativePath="..\pandatool\src\eggprogs\eggRetargetAnim.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTrans.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggRetargetAnim.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTrans.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggRename.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggRename.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggCrop.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTopstrip.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTextureCards.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggMakeTube.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggMakeTube.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggCrop.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTopstrip.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggListTextures.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggToC.h"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggTextureCards.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggToC.cxx"></File>
+				<File RelativePath="..\pandatool\src\eggprogs\eggListTextures.h"></File>
+			</Filter>
+			<Filter Name="maya">
+				<File RelativePath="..\pandatool\src\maya\mayaApi.h"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShaders.h"></File>
+				<File RelativePath="..\pandatool\src\maya\post_maya_include.h"></File>
+				<File RelativePath="..\pandatool\src\maya\maya_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\config_maya.h"></File>
+				<File RelativePath="..\pandatool\src\maya\maya_funcs.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShader.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShader.h"></File>
+				<File RelativePath="..\pandatool\src\maya\maya_funcs.h"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShaders.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\pre_maya_include.h"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShaderColorDef.h"></File>
+				<File RelativePath="..\pandatool\src\maya\maya_funcs.I"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaApi.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\mayaShaderColorDef.cxx"></File>
+				<File RelativePath="..\pandatool\src\maya\config_maya.cxx"></File>
+			</Filter>
+			<Filter Name="lwoegg">
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPolygons.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoClip.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurface.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\lwoToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlock.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPoints.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPolygons.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlock.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlockTMap.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoClip.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\lwoegg_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoLayer.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoLayer.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlockTMap.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlock.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPoints.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurfaceBlockTMap.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoLayer.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoClip.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPoints.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurface.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\lwoToEggConverter.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoPolygons.h"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\cLwoSurface.I"></File>
+				<File RelativePath="..\pandatool\src\lwoegg\lwoToEggConverter.cxx"></File>
+			</Filter>
+			<Filter Name="dxfprogs">
+				<File RelativePath="..\pandatool\src\dxfprogs\eggToDXF.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\eggToDXFLayer.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\dxfToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\dxfToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\dxfPoints.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\eggToDXF.h"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\eggToDXFLayer.h"></File>
+				<File RelativePath="..\pandatool\src\dxfprogs\dxfPoints.h"></File>
+			</Filter>
+			<Filter Name="daeegg">
+				<File RelativePath="..\pandatool\src\daeegg\pre_fcollada_include.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeegg\fcollada_utils.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeCharacter.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeegg_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeegg\config_daeegg.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeMaterials.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeMaterials.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\config_daeegg.h"></File>
+				<File RelativePath="..\pandatool\src\daeegg\daeCharacter.cxx"></File>
+			</Filter>
+			<Filter Name="daeprogs">
+				<File RelativePath="..\pandatool\src\daeprogs\eggToDAE.h"></File>
+				<File RelativePath="..\pandatool\src\daeprogs\eggToDAE.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeprogs\daeToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\daeprogs\daeToEgg.h"></File>
+			</Filter>
+			<Filter Name="win-stats">
+				<File RelativePath="..\pandatool\src\win-stats\winStatsLabelStack.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsStripChart.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsMonitor.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStats.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsChartMenu.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsGraph.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winstats_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsLabel.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsChartMenu.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsLabelStack.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsGraph.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsMonitor.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStats.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsPianoRoll.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsMonitor.I"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsStripChart.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsPianoRoll.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsServer.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsMenuId.h"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsLabel.cxx"></File>
+				<File RelativePath="..\pandatool\src\win-stats\winStatsServer.h"></File>
+			</Filter>
+			<Filter Name="dxfegg">
+				<File RelativePath="..\pandatool\src\dxfegg\dxfToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfegg\dxfToEggLayer.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxfegg\dxfToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\dxfegg\dxfToEggLayer.h"></File>
+			</Filter>
+			<Filter Name="maxprogs">
+				<File RelativePath="..\pandatool\src\maxprogs\maxImportRes.h"></File>
+				<File RelativePath="..\pandatool\src\maxprogs\maxEggImport.cxx"></File>
+			</Filter>
+			<Filter Name="egg-palettize">
+				<File RelativePath="..\pandatool\src\egg-palettize\eggPalettize.h"></File>
+				<File RelativePath="..\pandatool\src\egg-palettize\txaFileFilter.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-palettize\eggPalettize.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-palettize\txaFileFilter.h"></File>
+				<File RelativePath="..\pandatool\src\egg-palettize\txaFileFilter.I"></File>
+			</Filter>
+			<Filter Name="bam">
+				<File RelativePath="..\pandatool\src\bam\eggToBam.h"></File>
+				<File RelativePath="..\pandatool\src\bam\bamToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\bam\bamInfo.cxx"></File>
+				<File RelativePath="..\pandatool\src\bam\eggToBam.cxx"></File>
+				<File RelativePath="..\pandatool\src\bam\bamToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\bam\bamInfo.h"></File>
+			</Filter>
+			<Filter Name="miscprogs">
+				<File RelativePath="..\pandatool\src\miscprogs\binToC.h"></File>
+				<File RelativePath="..\pandatool\src\miscprogs\binToC.cxx"></File>
+			</Filter>
+			<Filter Name="mayaprogs">
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaPview.h"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\config_mayaloader.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaPview.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\blend_test.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaCopy.h"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\eggToMaya.h"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaSavePview.h"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaCopy.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\eggToMaya.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\normal_test.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaSavePview.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaWrapper.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayapath.cxx"></File>
+				<File RelativePath="..\pandatool\src\mayaprogs\mayaEggImport.cxx"></File>
+			</Filter>
+			<Filter Name="vrmlprogs">
+				<File RelativePath="..\pandatool\src\vrmlprogs\vrmlToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrmlprogs\vrmlToEgg.h"></File>
+				<File RelativePath="..\pandatool\src\vrmlprogs\vrmlTrans.h"></File>
+				<File RelativePath="..\pandatool\src\vrmlprogs\vrmlTrans.cxx"></File>
+			</Filter>
+			<Filter Name="egg-optchar">
+				<File RelativePath="..\pandatool\src\egg-optchar\eggOptcharUserData.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\config_egg_optchar.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\eggOptcharUserData.I"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\vertexMembership.I"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\eggOptchar.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\vertexMembership.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\config_egg_optchar.h"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\eggOptchar.h"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\eggOptcharUserData.h"></File>
+				<File RelativePath="..\pandatool\src\egg-optchar\vertexMembership.h"></File>
+			</Filter>
+			<Filter Name="pstatserver">
+				<File RelativePath="..\pandatool\src\pstatserver\pStatThreadData.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatListener.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatGraph.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatMonitor.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatViewLevel.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatThreadData.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatServer.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatReader.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatViewLevel.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatPianoRoll.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatStripChart.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatPianoRoll.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatView.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pstatserver_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatViewLevel.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatMonitor.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatListener.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatStripChart.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatPianoRoll.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatClientData.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatServer.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatGraph.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatGraph.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatMonitor.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatStripChart.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatThreadData.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatReader.cxx"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatView.h"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatView.I"></File>
+				<File RelativePath="..\pandatool\src\pstatserver\pStatClientData.cxx"></File>
+			</Filter>
+			<Filter Name="gtk-stats">
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsLabel.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsGraph.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsMonitor.I"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsGraph.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsMonitor.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsStripChart.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStats.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsStripChart.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsPianoRoll.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsServer.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsLabel.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsMenuId.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsLabelStack.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsPianoRoll.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkstats_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsChartMenu.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStats.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsMonitor.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsChartMenu.h"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsLabelStack.cxx"></File>
+				<File RelativePath="..\pandatool\src\gtk-stats\gtkStatsServer.h"></File>
+			</Filter>
+			<Filter Name="xfile">
+				<File RelativePath="..\pandatool\src\xfile\xFile.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataDef.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\standard_templates.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileArrayDef.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileNode.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeReference.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeTemplate.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileTemplate.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xLexerDefs.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\windowsGuid.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileNode.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNode.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeTemplate.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectArray.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileTemplate.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\config_xfile.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectInteger.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectDouble.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\standardTemplates.x.pz.c"></File>
+				<File RelativePath="..\pandatool\src\xfile\xLexer.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeTemplate.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileArrayDef.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectDouble.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectInteger.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileParseData.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectArray.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNode.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectArray.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\windowsGuid.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\windowsGuid.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObject.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileParseData.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObject.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectInteger.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNode.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xParser.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataDef.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectString.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeReference.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileNode.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileParseData.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileTemplate.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\config_xfile.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileArrayDef.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataNodeReference.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectDouble.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xfile_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfile\xParser.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\standard_templates.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectString.I"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObjectString.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\standardTemplates.x.c"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFile.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataObject.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xFileDataDef.h"></File>
+				<File RelativePath="..\pandatool\src\xfile\xParserDefs.h"></File>
+			</Filter>
+			<Filter Name="egg-qtess">
+				<File RelativePath="..\pandatool\src\egg-qtess\subdivSegment.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessGlobals.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\config_egg_qtess.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessSurface.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputFile.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\isoPlacer.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessGlobals.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputEntry.I"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessSurface.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\eggQtess.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputFile.I"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessSurface.I"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\subdivSegment.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\config_egg_qtess.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\egg-qtess_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\isoPlacer.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\isoPlacer.I"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputEntry.h"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\qtessInputEntry.cxx"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\subdivSegment.I"></File>
+				<File RelativePath="..\pandatool\src\egg-qtess\eggQtess.cxx"></File>
+			</Filter>
+			<Filter Name="vrmlegg">
+				<File RelativePath="..\pandatool\src\vrmlegg\vrmlAppearance.h"></File>
+				<File RelativePath="..\pandatool\src\vrmlegg\indexedFaceSet.h"></File>
+				<File RelativePath="..\pandatool\src\vrmlegg\vrmlToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrmlegg\indexedFaceSet.cxx"></File>
+				<File RelativePath="..\pandatool\src\vrmlegg\vrmlToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\vrmlegg\vrmlAppearance.cxx"></File>
+			</Filter>
+			<Filter Name="palettizer">
+				<File RelativePath="..\pandatool\src\palettizer\paletteGroups.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\eggFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\omitReason.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\filenameUnifier.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\palettizer.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureReference.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\pal_string_utils.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\palettizer.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\sourceTextureImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\pal_string_utils.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureRequest.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\texturePosition.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\destTextureImage.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\paletteGroup.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\paletteImage.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\paletteImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureRequest.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\texturePlacement.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\eggFile.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\texturePlacement.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\texturePosition.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\txaFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\sourceTextureImage.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\palettizer_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureMemoryCounter.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\palettePage.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\txaFile.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\omitReason.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\txaLine.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureReference.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureProperties.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\imageFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\txaLine.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureProperties.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\palettePage.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\config_palettizer.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureMemoryCounter.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\filenameUnifier.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\config_palettizer.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\paletteGroups.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\destTextureImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\palettizer\paletteGroup.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\textureImage.h"></File>
+				<File RelativePath="..\pandatool\src\palettizer\imageFile.h"></File>
+			</Filter>
+			<Filter Name="dxf">
+				<File RelativePath="..\pandatool\src\dxf\dxf_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfLayer.h"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfVertex.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfLayerMap.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfLayer.cxx"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfFile.h"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfLayerMap.h"></File>
+				<File RelativePath="..\pandatool\src\dxf\dxfVertex.h"></File>
+			</Filter>
+			<Filter Name="maxegg">
+				<File RelativePath="..\pandatool\src\maxegg\maxOptionsDialog.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxEggLoader.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxNodeDesc.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxNodeDesc.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxResource.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxEggLoader.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxEgg.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxNodeTree.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxOptionsDialog.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxNodeTree.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxegg_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\maxegg\maxToEggConverter.cxx"></File>
+			</Filter>
+			<Filter Name="lwo">
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockTMap.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffId.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPolygonTags.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPolygons.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoVertexMap.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffGenericChunk.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffInputFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlock.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoHeader.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoHeader.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlock.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceColor.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoClip.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoLayer.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceSmoothingAngle.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoChunk.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoLayer.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceParameter.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurface.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockWrap.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceParameter.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoChunk.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockProjection.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffId.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockOpacity.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurface.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceSidedness.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoBoundingBox.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockRefObj.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPolygons.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockRepeat.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoGroupChunk.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoClip.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockChannel.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoStillImage.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockTransform.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoGroupChunk.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockHeader.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoInputFile.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\config_lwo.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\test_lwo.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoVertexMap.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockProjection.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffChunk.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockVMapName.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockChannel.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPoints.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffInputFile.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoDiscontinuousVertexMap.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockRefObj.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockAxis.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoTags.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockTransform.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoBoundingBox.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPoints.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceSmoothingAngle.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoStillImage.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceSidedness.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwo_composite1.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockVMapName.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoInputFile.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockTMap.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoInputFile.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoTags.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffGenericChunk.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockEnabled.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockRepeat.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockCoordSys.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\config_lwo.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockEnabled.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockAxis.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockHeader.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffChunk.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoHeader.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoDiscontinuousVertexMap.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockOpacity.cxx"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffId.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceColor.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoPolygonTags.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockWrap.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffInputFile.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffGenericChunk.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\iffChunk.I"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockImage.h"></File>
+				<File RelativePath="..\pandatool\src\lwo\lwoSurfaceBlockCoordSys.cxx"></File>
+			</Filter>
+			<Filter Name="softegg">
+				<File RelativePath="..\pandatool\src\softegg\soft2Egg.c"></File>
+				<File RelativePath="..\pandatool\src\softegg\softNodeTree.cxx"></File>
+				<File RelativePath="..\pandatool\src\softegg\softNodeDesc.h"></File>
+				<File RelativePath="..\pandatool\src\softegg\softEggGroupUserData.cxx"></File>
+				<File RelativePath="..\pandatool\src\softegg\softEggGroupUserData.I"></File>
+				<File RelativePath="..\pandatool\src\softegg\config_softegg.cxx"></File>
+				<File RelativePath="..\pandatool\src\softegg\softToEggConverter.cxx"></File>
+				<File RelativePath="..\pandatool\src\softegg\softNodeTree.h"></File>
+				<File RelativePath="..\pandatool\src\softegg\config_softegg.h"></File>
+				<File RelativePath="..\pandatool\src\softegg\softNodeDesc.cxx"></File>
+				<File RelativePath="..\pandatool\src\softegg\softToEggConverter.h"></File>
+				<File RelativePath="..\pandatool\src\softegg\softEggGroupUserData.h"></File>
+			</Filter>
+			<Filter Name="xfileprogs">
+				<File RelativePath="..\pandatool\src\xfileprogs\eggToX.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileprogs\xFileTrans.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileprogs\xFileToEgg.cxx"></File>
+				<File RelativePath="..\pandatool\src\xfileprogs\xFileTrans.h"></File>
+				<File RelativePath="..\pandatool\src\xfileprogs\eggToX.h"></File>
+				<File RelativePath="..\pandatool\src\xfileprogs\xFileToEgg.h"></File>
+			</Filter>
+		</Filter>
+		<Filter Name="direct">
+			<Filter Name="directbase">
+				<File RelativePath="..\direct\src\directbase\ppython.cxx"></File>
+				<File RelativePath="..\direct\src\directbase\directbase.cxx"></File>
+				<File RelativePath="..\direct\src\directbase\directsymbols.h"></File>
+				<File RelativePath="..\direct\src\directbase\directbase.h"></File>
+			</Filter>
+			<Filter Name="dcparse">
+				<File RelativePath="..\direct\src\dcparse\dcparse.cxx"></File>
+			</Filter>
+			<Filter Name="interval">
+				<File RelativePath="..\direct\src\interval\cLerpAnimEffectInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\cMetaInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cIntervalManager.h"></File>
+				<File RelativePath="..\direct\src\interval\showInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\config_interval.h"></File>
+				<File RelativePath="..\direct\src\interval\cLerpNodePathInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\cLerpAnimEffectInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cLerpAnimEffectInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\cMetaInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\hideInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\hideInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\interval_composite1.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cIntervalManager.cxx"></File>
+				<File RelativePath="..\direct\src\interval\showInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\cMetaInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\cLerpInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cLerpInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\cIntervalManager.I"></File>
+				<File RelativePath="..\direct\src\interval\showInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cLerpInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\interval_composite.cxx"></File>
+				<File RelativePath="..\direct\src\interval\hideInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\lerp_helpers.h"></File>
+				<File RelativePath="..\direct\src\interval\config_interval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\cInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\cInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\waitInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\waitInterval.h"></File>
+				<File RelativePath="..\direct\src\interval\cLerpNodePathInterval.cxx"></File>
+				<File RelativePath="..\direct\src\interval\waitInterval.I"></File>
+				<File RelativePath="..\direct\src\interval\cLerpNodePathInterval.I"></File>
+			</Filter>
+			<Filter Name="showbase">
+				<File RelativePath="..\direct\src\showbase\showBase.cxx"></File>
+				<File RelativePath="..\direct\src\showbase\showBase.h"></File>
+			</Filter>
+			<Filter Name="autorestart">
+				<File RelativePath="..\direct\src\autorestart\autorestart.c"></File>
+			</Filter>
+			<Filter Name="dcparser">
+				<File RelativePath="..\direct\src\dcparser\dcFile.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcArrayParameter.h"></File>
+				<File RelativePath="..\direct\src\dcparser\primeNumberGenerator.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerCatalog.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcMolecularField.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcParser.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcLexerDefs.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcClass.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcKeyword.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcTypedef.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackData.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPacker.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcKeyword.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcKeywordList.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSwitchParameter.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSubatomicType.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcFile.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcArrayParameter.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPacker.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcindent.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcClass.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcParserDefs.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcClass.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcindent.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPacker.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSwitch.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcLexer.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcParser.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcparser_composite1.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcParameter.h"></File>
+				<File RelativePath="..\direct\src\dcparser\hashGenerator.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcParameter.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcbase.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcparser_composite.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcNumericRange.h"></File>
+				<File RelativePath="..\direct\src\dcparser\primeNumberGenerator.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerCatalog.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerInterface.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSwitchParameter.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcparser_composite2.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcDeclaration.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerInterface.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcTypedef.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcClassParameter.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcField.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerCatalog.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcAtomicField.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcAtomicField.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcKeywordList.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcmsgtypes.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPython.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackData.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSwitch.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcAtomicField.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcClassParameter.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcMolecularField.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSimpleParameter.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcNumericRange.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSimpleParameter.h"></File>
+				<File RelativePath="..\direct\src\dcparser\hashGenerator.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcFile.I"></File>
+				<File RelativePath="..\direct\src\dcparser\dcField.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackerInterface.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcField.cxx"></File>
+				<File RelativePath="..\direct\src\dcparser\dcPackData.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcSubatomicType.h"></File>
+				<File RelativePath="..\direct\src\dcparser\dcDeclaration.h"></File>
+			</Filter>
+			<Filter Name="motiontrail">
+				<File RelativePath="..\direct\src\motiontrail\config_motiontrail.cxx"></File>
+				<File RelativePath="..\direct\src\motiontrail\cMotionTrail.cxx"></File>
+				<File RelativePath="..\direct\src\motiontrail\cMotionTrail.h"></File>
+				<File RelativePath="..\direct\src\motiontrail\config_motiontrail.h"></File>
+			</Filter>
+			<Filter Name="heapq">
+				<File RelativePath="..\direct\src\heapq\heapq.cxx"></File>
+			</Filter>
+			<Filter Name="task">
+				<File RelativePath="..\direct\src\task\config_task.cxx"></File>
+				<File RelativePath="..\direct\src\task\config_task.h"></File>
+			</Filter>
+			<Filter Name="http">
+				<File RelativePath="..\direct\src\http\application_log.h"></File>
+				<File RelativePath="..\direct\src\http\baseincomingset.i"></File>
+				<File RelativePath="..\direct\src\http\strtargetbuffer.h"></File>
+				<File RelativePath="..\direct\src\http\parsedhttprequest.h"></File>
+				<File RelativePath="..\direct\src\http\ringbuffer_slide.i"></File>
+				<File RelativePath="..\direct\src\http\http_request.cxx"></File>
+				<File RelativePath="..\direct\src\http\baseincomingset.h"></File>
+				<File RelativePath="..\direct\src\http\http_bufferedreader.h"></File>
+				<File RelativePath="..\direct\src\http\http_composite1.cxx"></File>
+				<File RelativePath="..\direct\src\http\config_http.cxx"></File>
+				<File RelativePath="..\direct\src\http\config_http.h"></File>
+				<File RelativePath="..\direct\src\http\http_bufferedreader.i"></File>
+				<File RelativePath="..\direct\src\http\ringbuffer_slide.h"></File>
+				<File RelativePath="..\direct\src\http\bufferedwriter_growable.h"></File>
+				<File RelativePath="..\direct\src\http\http_connection.cxx"></File>
+				<File RelativePath="..\direct\src\http\http_connection.h"></File>
+				<File RelativePath="..\direct\src\http\http_request.h"></File>
+				<File RelativePath="..\direct\src\http\parsedhttprequest.cxx"></File>
+			</Filter>
+			<Filter Name="directdServer">
+				<File RelativePath="..\direct\src\directdServer\directdClient.cxx"></File>
+				<File RelativePath="..\direct\src\directdServer\directdServer.h"></File>
+				<File RelativePath="..\direct\src\directdServer\directdClient.h"></File>
+				<File RelativePath="..\direct\src\directdServer\directdServer.cxx"></File>
+			</Filter>
+			<Filter Name="directd">
+				<File RelativePath="..\direct\src\directd\directd.cxx"></File>
+				<File RelativePath="..\direct\src\directd\directd.h"></File>
+			</Filter>
+			<Filter Name="distributed">
+				<File RelativePath="..\direct\src\distributed\cDistributedSmoothNodeBase.cxx"></File>
+				<File RelativePath="..\direct\src\distributed\cConnectionRepository.cxx"></File>
+				<File RelativePath="..\direct\src\distributed\config_distributed.cxx"></File>
+				<File RelativePath="..\direct\src\distributed\cDistributedSmoothNodeBase.h"></File>
+				<File RelativePath="..\direct\src\distributed\cConnectionRepository.I"></File>
+				<File RelativePath="..\direct\src\distributed\cConnectionRepository.h"></File>
+				<File RelativePath="..\direct\src\distributed\cDistributedSmoothNodeBase.I"></File>
+				<File RelativePath="..\direct\src\distributed\config_distributed.h"></File>
+			</Filter>
+			<Filter Name="deadrec">
+				<File RelativePath="..\direct\src\deadrec\config_deadrec.h"></File>
+				<File RelativePath="..\direct\src\deadrec\deadrec_composite.cxx"></File>
+				<File RelativePath="..\direct\src\deadrec\config_deadrec.cxx"></File>
+				<File RelativePath="..\direct\src\deadrec\smoothMover.I"></File>
+				<File RelativePath="..\direct\src\deadrec\smoothMover.cxx"></File>
+				<File RelativePath="..\direct\src\deadrec\deadrec_composite1.cxx"></File>
+				<File RelativePath="..\direct\src\deadrec\smoothMover.h"></File>
+			</Filter>
+		</Filter>
+		<Filter Name="contrib">
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 1220 - 0
makepanda/makepandacore.py

@@ -0,0 +1,1220 @@
+########################################################################
+##
+## Caution: there are two separate, independent build systems:
+## 'makepanda', and 'ppremake'.  Use one or the other, do not attempt
+## to use both.  This file is part of the 'makepanda' system.
+##
+## This file, makepandacore, contains all the global state and
+## global functions for the makepanda system.
+##
+########################################################################
+
+import sys,os,time,stat,string,re,getopt,cPickle,fnmatch,threading,Queue,signal,shutil,platform
+
+SUFFIX_INC=[".cxx",".c",".h",".I",".yxx",".lxx",".mm"]
+SUFFIX_DLL=[".dll",".dlo",".dle",".dli",".dlm",".mll",".exe"]
+SUFFIX_LIB=[".lib",".ilb"]
+STARTTIME=time.time()
+MAINTHREAD=threading.currentThread()
+OUTPUTDIR="built"
+
+########################################################################
+##
+## Maya and Max Version List (with registry keys)
+##
+########################################################################
+
+MAYAVERSIONINFO=[("MAYA6",   "6.0"),
+                 ("MAYA65",  "6.5"),
+                 ("MAYA7",   "7.0"),
+                 ("MAYA8",   "8.0"),
+                 ("MAYA85",  "8.5"),
+                 ("MAYA2008","2008"),
+                 ("MAYA2009","2009"),
+]
+
+MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "installdir", "maxsdk\\cssdk\\include"),
+                  ("MAX7", "SOFTWARE\\Autodesk\\3DSMAX\\7.0", "Installdir", "maxsdk\\include\\CS"),
+                  ("MAX8", "SOFTWARE\\Autodesk\\3DSMAX\\8.0", "Installdir", "maxsdk\\include\\CS"),
+                  ("MAX9", "SOFTWARE\\Autodesk\\3DSMAX\\9.0", "Installdir", "maxsdk\\include\\CS"),
+                  ("MAX2009", "SOFTWARE\\Autodesk\\3DSMAX\\11.0", "Installdir", "maxsdk\\include\\CS"),
+]
+
+MAYAVERSIONS=[]
+MAXVERSIONS=[]
+DXVERSIONS=["DX8","DX9"]
+
+for (ver,key) in MAYAVERSIONINFO:
+    MAYAVERSIONS.append(ver)
+
+for (ver,key1,key2,subdir) in MAXVERSIONINFO:
+    MAXVERSIONS.append(ver)
+
+########################################################################
+##
+## The exit routine will normally
+##
+## - print a message
+## - save the dependency cache
+## - exit
+##
+## However, if it is invoked inside a thread, it instead:
+##
+## - prints a message
+## - raises the "initiate-exit" exception
+##
+## If you create a thread, you must be prepared to catch this
+## exception, save the dependency cache, and exit.
+##
+########################################################################
+
+WARNINGS=[]
+
+def PrettyTime(t):
+    t = int(t)
+    hours = t/3600
+    t -= hours*3600
+    minutes = t/60
+    t -= minutes*60
+    seconds = t
+    if (hours): return str(hours)+" hours "+str(minutes)+" min"
+    if (minutes): return str(minutes)+" min "+str(seconds)+" sec"
+    return str(seconds)+" sec"
+
+def exit(msg):
+    if (threading.currentThread() == MAINTHREAD):
+        SaveDependencyCache()
+        # Move any files we've moved away back.
+        if os.path.isfile("dtool/src/dtoolutil/pandaVersion.h.moved"):
+          os.rename("dtool/src/dtoolutil/pandaVersion.h.moved", "dtool/src/dtoolutil/pandaVersion.h")
+        if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.h.moved"):
+          os.rename("dtool/src/dtoolutil/checkPandaVersion.h.moved", "dtool/src/dtoolutil/checkPandaVersion.h")
+        if os.path.isfile("dtool/src/dtoolutil/checkPandaVersion.cxx.moved"):
+          os.rename("dtool/src/dtoolutil/checkPandaVersion.cxx.moved", "dtool/src/dtoolutil/checkPandaVersion.cxx")
+        print "Elapsed Time: "+PrettyTime(time.time() - STARTTIME)
+        print msg
+        sys.stdout.flush()
+        sys.stderr.flush()
+        os._exit(1)
+    else:
+        print msg
+        raise "initiate-exit"
+
+########################################################################
+##
+## Run a command.
+##
+########################################################################
+
+def oscmd(cmd, ignoreError = False):
+    print cmd
+    sys.stdout.flush()
+    if sys.platform == "win32":
+        exe = cmd.split()[0]+".exe"
+        if os.path.isfile(exe)==0:
+            for i in os.environ["PATH"].split(";"):
+                if os.path.isfile(os.path.join(i, exe)):
+                    exe = os.path.join(i, exe)
+                    break
+            if os.path.isfile(exe)==0:
+                exit("Cannot find "+exe+" on search path")
+        res = os.spawnl(os.P_WAIT, exe, cmd)
+    else:
+        res = os.system(cmd)
+    if res != 0 and not ignoreError:
+        exit("")
+
+########################################################################
+##
+## GetDirectoryContents
+##
+## At times, makepanda will use a function like "os.listdir" to process
+## all the files in a directory.  Unfortunately, that means that any
+## accidental addition of a file to a directory could cause makepanda
+## to misbehave without warning.
+##
+## To alleviate this weakness, we created GetDirectoryContents.  This
+## uses "os.listdir" to fetch the directory contents, but then it
+## compares the results to the appropriate CVS/Entries to see if
+## they match.  If not, it prints a big warning message.
+##
+########################################################################
+
+def GetDirectoryContents(dir, filters="*", skip=[]):
+    if (type(filters)==str):
+        filters = [filters]
+    actual = {}
+    files = os.listdir(dir)
+    for filter in filters:
+        for file in fnmatch.filter(files, filter):
+            if (skip.count(file)==0) and (os.path.isfile(dir + "/" + file)):
+                actual[file] = 1
+    if (os.path.isfile(dir + "/CVS/Entries")):
+        cvs = {}
+        srchandle = open(dir+"/CVS/Entries", "r")
+        files = []
+        for line in srchandle:
+            if (line[0]=="/"):
+                s = line.split("/",2)
+                if (len(s)==3):
+                    files.append(s[1])
+        srchandle.close()
+        for filter in filters:
+            for file in fnmatch.filter(files, filter):
+                if (skip.count(file)==0):
+                    cvs[file] = 1
+        for file in actual.keys():
+            if (cvs.has_key(file)==0):
+                msg = "WARNING: %s is in %s, but not in CVS"%(file, dir)
+                print msg
+                WARNINGS.append(msg)
+        for file in cvs.keys():
+            if (actual.has_key(file)==0):
+                msg = "WARNING: %s is not in %s, but is in CVS"%(file, dir)
+                print msg
+                WARNINGS.append(msg)
+    results = actual.keys()
+    results.sort()
+    return results
+
+########################################################################
+##
+## LocateBinary
+##
+## This function searches the system PATH for the binary. Returns its
+## full path when it is found, or None when it was not found.
+##
+########################################################################
+
+def LocateBinary(binary):
+    if not os.environ.has_key("PATH") or os.environ["PATH"] == "":
+        p = os.defpath
+    else:
+        p = os.environ["PATH"]
+    
+    for path in p.split(os.pathsep):
+        if os.access(os.path.join(path, binary), os.X_OK):
+            return os.path.abspath(os.path.realpath(os.path.join(path, binary)))
+    return None
+
+########################################################################
+##
+## The Timestamp Cache
+##
+## The make utility is constantly fetching the timestamps of files.
+## This can represent the bulk of the file accesses during the make
+## process.  The timestamp cache eliminates redundant checks.
+##
+########################################################################
+
+TIMESTAMPCACHE = {}
+
+def GetTimestamp(path):
+    if TIMESTAMPCACHE.has_key(path):
+        return TIMESTAMPCACHE[path]
+    try: date = os.path.getmtime(path)
+    except: date = 0
+    TIMESTAMPCACHE[path] = date
+    return date
+
+def ClearTimestamp(path):
+    del TIMESTAMPCACHE[path]
+
+########################################################################
+##
+## The Dependency cache.
+##
+## Makepanda's strategy for file dependencies is different from most
+## make-utilities.  Whenever a file is built, makepanda records
+## that the file was built, and it records what the input files were,
+## and what their dates were.  Whenever a file is about to be built,
+## panda compares the current list of input files and their dates,
+## to the previous list of input files and their dates.  If they match,
+## there is no need to build the file.
+##
+########################################################################
+
+BUILTFROMCACHE = {}
+
+def JustBuilt(files,others):
+    dates = []
+    for file in files:
+        del TIMESTAMPCACHE[file]
+        dates.append(GetTimestamp(file))
+    for file in others:
+        dates.append(GetTimestamp(file))
+    key = tuple(files)
+    BUILTFROMCACHE[key] = [others,dates]
+
+def NeedsBuild(files,others):
+    dates = []
+    for file in files:
+        dates.append(GetTimestamp(file))
+    for file in others:
+        dates.append(GetTimestamp(file))
+    key = tuple(files)
+    if (BUILTFROMCACHE.has_key(key)):
+        if (BUILTFROMCACHE[key] == [others,dates]):
+            return 0
+        else:
+            oldothers = BUILTFROMCACHE[key][0]
+            if (oldothers != others):
+                print "CAUTION: file dependencies changed: "+str(files)
+    return 1
+
+########################################################################
+##
+## The CXX include cache:
+##
+## The following routine scans a CXX file and returns a list of
+## the include-directives inside that file.  It's not recursive:
+## it just returns the includes that are textually inside the 
+## file.  If you need recursive dependencies, you need the higher-level
+## routine CxxCalcDependencies, defined elsewhere.
+##
+## Since scanning a CXX file is slow, we cache the result.  It records
+## the date of the source file and the list of includes that it
+## contains.  It assumes that if the file date hasn't changed, that
+## the list of include-statements inside the file has not changed
+## either.  Once again, this particular routine does not return
+## recursive dependencies --- it only returns an explicit list of
+## include statements that are textually inside the file.  That
+## is what the cache stores, as well.
+##
+########################################################################
+
+CXXINCLUDECACHE = {}
+
+global CxxIncludeRegex
+CxxIncludeRegex = re.compile('^[ \t]*[#][ \t]*include[ \t]+"([^"]+)"[ \t\r\n]*$')
+
+def CxxGetIncludes(path):
+    date = GetTimestamp(path)
+    if (CXXINCLUDECACHE.has_key(path)):
+        cached = CXXINCLUDECACHE[path]
+        if (cached[0]==date): return cached[1]
+    try: sfile = open(path, 'rb')
+    except:
+        exit("Cannot open source file \""+path+"\" for reading.")
+    include = []
+    for line in sfile:
+        match = CxxIncludeRegex.match(line,0)
+        if (match):
+            incname = match.group(1)
+            include.append(incname)
+    sfile.close()
+    CXXINCLUDECACHE[path] = [date, include]
+    return include
+
+########################################################################
+##
+## SaveDependencyCache / LoadDependencyCache
+##
+## This actually saves both the dependency and cxx-include caches.
+##
+########################################################################
+
+def SaveDependencyCache():
+    try: icache = open(os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache"),'wb')
+    except: icache = 0
+    if (icache!=0):
+        print "Storing dependency cache."
+        cPickle.dump(CXXINCLUDECACHE, icache, 1)
+        cPickle.dump(BUILTFROMCACHE, icache, 1)
+        icache.close()
+
+def LoadDependencyCache():
+    global CXXINCLUDECACHE
+    global BUILTFROMCACHE
+    try: icache = open(os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache"),'rb')
+    except: icache = 0
+    if (icache!=0):
+        CXXINCLUDECACHE = cPickle.load(icache)
+        BUILTFROMCACHE = cPickle.load(icache)
+        icache.close()
+
+########################################################################
+##
+## CxxFindSource: given a source file name and a directory list,
+## searches the directory list for the given source file.  Returns
+## the full pathname of the located file.
+##
+## CxxFindHeader: given a source file, an include directive, and a
+## directory list, searches the directory list for the given header
+## file.  Returns the full pathname of the located file.
+##
+## Of course, CxxFindSource and CxxFindHeader cannot find a source
+## file that has not been created yet.  This can cause dependency
+## problems.  So the function CreateStubHeader can be used to create
+## a file that CxxFindSource or CxxFindHeader can subsequently find.
+##
+########################################################################
+
+def CxxFindSource(name, ipath):
+    for dir in ipath:
+        if (dir == "."): full = name
+        else: full = dir + "/" + name
+        if GetTimestamp(full) > 0: return full
+    exit("Could not find source file: "+name)
+
+def CxxFindHeader(srcfile, incfile, ipath):
+    if (incfile.startswith(".")):
+        last = srcfile.rfind("/")
+        if (last < 0): exit("CxxFindHeader cannot handle this case #1")
+        srcdir = srcfile[:last+1]
+        while (incfile[:1]=="."):
+            if (incfile[:2]=="./"):
+                incfile = incfile[2:]
+            elif (incfile[:3]=="../"):
+                incfile = incfile[3:]
+                last = srcdir[:-1].rfind("/")
+                if (last < 0): exit("CxxFindHeader cannot handle this case #2")
+                srcdir = srcdir[:last+1]
+            else: exit("CxxFindHeader cannot handle this case #3")
+        full = srcdir + incfile
+        if GetTimestamp(full) > 0: return full
+        return 0
+    else:
+        for dir in ipath:
+            full = dir + "/" + incfile
+            if GetTimestamp(full) > 0: return full
+        return 0
+
+########################################################################
+##
+## CxxCalcDependencies(srcfile, ipath, ignore)
+##
+## Calculate the dependencies of a source file given a
+## particular include-path.  Any file in the list of files to
+## ignore is not considered.
+##
+########################################################################
+
+global CxxIgnoreHeader
+global CxxDependencyCache
+CxxIgnoreHeader = {}
+CxxDependencyCache = {}
+
+def CxxCalcDependencies(srcfile, ipath, ignore):
+    if (CxxDependencyCache.has_key(srcfile)):
+        return CxxDependencyCache[srcfile]
+    if (ignore.count(srcfile)): return []
+    dep = {}
+    dep[srcfile] = 1
+    includes = CxxGetIncludes(srcfile)
+    for include in includes:
+        header = CxxFindHeader(srcfile, include, ipath)
+        if (header!=0):
+            if (ignore.count(header)==0):
+                hdeps = CxxCalcDependencies(header, ipath, [srcfile]+ignore)
+                for x in hdeps: dep[x] = 1
+    result = dep.keys()
+    CxxDependencyCache[srcfile] = result
+    return result
+
+########################################################################
+##
+## Registry Key Handling
+##
+## Of course, these routines will fail if you call them on a
+## non win32 platform.  If you use them on a win64 platform, they
+## will look in the win32 private hive first, then look in the
+## win64 hive.
+##
+########################################################################
+
+if sys.platform == "win32":
+    import _winreg
+
+def TryRegistryKey(path):
+    try:
+        key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, path, 0, _winreg.KEY_READ)
+        return key
+    except: pass
+    try:
+        key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, path, 0, _winreg.KEY_READ | 256)
+        return key
+    except: pass
+    return 0
+        
+def ListRegistryKeys(path):
+    result=[]
+    index=0
+    key = TryRegistryKey(path)
+    if (key != 0):
+        try:
+            while (1):
+                result.append(_winreg.EnumKey(key, index))
+                index = index + 1
+        except: pass
+        _winreg.CloseKey(key)
+    return result
+
+def GetRegistryKey(path, subkey):
+    k1=0
+    key = TryRegistryKey(path)
+    if (key != 0):
+        try:
+            k1, k2 = _winreg.QueryValueEx(key, subkey)
+        except: pass
+        _winreg.CloseKey(key)
+    return k1
+
+def GetProgramFiles():
+    if (os.environ.has_key("PROGRAMFILES")):
+        return os.environ["PROGRAMFILES"]
+    elif (os.path.isdir("C:\\Program Files")):
+        return "C:\\Program Files"
+    elif (os.path.isdir("D:\\Program Files")):
+        return "D:\\Program Files"
+    elif (os.path.isdir("E:\\Program Files")):
+        return "E:\\Program Files"
+    return 0
+
+########################################################################
+##
+## Parsing Compiler Option Lists
+##
+########################################################################
+
+def GetListOption(opts, prefix):
+    res=[]
+    for x in opts:
+        if (x.startswith(prefix)):
+            res.append(x[len(prefix):])
+    return res
+
+def GetValueOption(opts, prefix):
+    for x in opts:
+        if (x.startswith(prefix)):
+            return x[len(prefix):]
+    return 0
+
+def GetOptimizeOption(opts,defval):
+    val = GetValueOption(opts, "OPT:")
+    if (val == 0):
+        return defval
+    return val
+
+########################################################################
+##
+## General File Manipulation
+##
+########################################################################
+
+def MakeDirectory(path):
+    if os.path.isdir(path): return 0
+    os.mkdir(path)
+
+def ReadFile(wfile):
+    try:
+        srchandle = open(wfile, "rb")
+        data = srchandle.read()
+        srchandle.close()
+        return data
+    except: exit("Cannot read "+wfile)
+
+def WriteFile(wfile,data):
+    try:
+        dsthandle = open(wfile, "wb")
+        dsthandle.write(data)
+        dsthandle.close()
+    except: exit("Cannot write "+wfile)
+
+def ConditionalWriteFile(dest,desiredcontents):
+    try:
+        rfile = open(dest, 'rb')
+        contents = rfile.read(-1)
+        rfile.close()
+    except:
+        contents=0
+    if contents != desiredcontents:
+        sys.stdout.flush()
+        WriteFile(dest,desiredcontents)
+
+def DeleteCVS(dir):
+    for entry in os.listdir(dir):
+        if (entry != ".") and (entry != ".."):
+            subdir = dir + "/" + entry
+            if (os.path.isdir(subdir)):
+                if (entry == "CVS"):
+                    shutil.rmtree(subdir)
+                else:
+                    DeleteCVS(subdir)
+
+def CreateFile(file):
+    if (os.path.exists(file)==0):
+        WriteFile(file,"")
+
+########################################################################
+#
+# Create the panda build tree.
+#
+########################################################################
+
+def MakeBuildTree():
+    MakeDirectory(OUTPUTDIR)
+    MakeDirectory(OUTPUTDIR+"/bin")
+    MakeDirectory(OUTPUTDIR+"/lib")
+    MakeDirectory(OUTPUTDIR+"/tmp")
+    MakeDirectory(OUTPUTDIR+"/etc")
+    MakeDirectory(OUTPUTDIR+"/plugins")
+    MakeDirectory(OUTPUTDIR+"/modelcache")
+    MakeDirectory(OUTPUTDIR+"/include")
+    MakeDirectory(OUTPUTDIR+"/include/parser-inc")
+    MakeDirectory(OUTPUTDIR+"/include/parser-inc/openssl")
+    MakeDirectory(OUTPUTDIR+"/include/parser-inc/netinet")
+    MakeDirectory(OUTPUTDIR+"/include/parser-inc/Cg")
+    MakeDirectory(OUTPUTDIR+"/include/openssl")
+    MakeDirectory(OUTPUTDIR+"/models")
+    MakeDirectory(OUTPUTDIR+"/models/audio")
+    MakeDirectory(OUTPUTDIR+"/models/audio/sfx")
+    MakeDirectory(OUTPUTDIR+"/models/icons")
+    MakeDirectory(OUTPUTDIR+"/models/maps")
+    MakeDirectory(OUTPUTDIR+"/models/misc")
+    MakeDirectory(OUTPUTDIR+"/models/gui")
+    MakeDirectory(OUTPUTDIR+"/direct")
+    MakeDirectory(OUTPUTDIR+"/pandac")
+    MakeDirectory(OUTPUTDIR+"/pandac/input")
+
+########################################################################
+#
+# Make sure that you are in the root of the panda tree.
+#
+########################################################################
+
+def CheckPandaSourceTree():
+    dir = os.getcwd()
+    if ((os.path.exists(os.path.join(dir, "makepanda/makepanda.py"))==0) or
+        (os.path.exists(os.path.join(dir, "dtool","src","dtoolbase","dtoolbase.h"))==0) or
+        (os.path.exists(os.path.join(dir, "panda","src","pandabase","pandabase.h"))==0)):
+        exit("Current directory is not the root of the panda tree.")
+
+########################################################################
+##
+## Visual Studio Manifest Manipulation.
+##
+########################################################################
+
+VC90CRTVERSIONRE=re.compile("name=['\"]Microsoft.VC90.CRT['\"]\\s+version=['\"]([0-9.]+)['\"]")
+
+def GetVC90CRTVersion(fn):
+    manifest = ReadFile(fn)
+    version = VC90CRTVERSIONRE.search(manifest)
+    if (version == None):
+        exit("Cannot locate version number in "+fn)
+    return version.group(1)
+
+def SetVC90CRTVersion(fn, ver):
+    manifest = ReadFile(fn)
+    subst = " name='Microsoft.VC90.CRT' version='"+ver+"' "
+    manifest = VC90CRTVERSIONRE.sub(subst, manifest)
+    WriteFile(fn, manifest)
+
+########################################################################
+##
+## Gets or sets the output directory, by default "built".
+##
+########################################################################
+
+def GetOutputDir():
+  return OUTPUTDIR
+
+def SetOutputDir(outputdir):
+  global OUTPUTDIR
+  OUTPUTDIR=outputdir
+
+########################################################################
+##
+## Package Selection
+##
+## This facility enables makepanda to keep a list of packages selected
+## by the user for inclusion or omission.
+##
+########################################################################
+
+PKG_LIST_ALL=0
+PKG_LIST_OMIT=0
+
+def PkgListSet(pkgs):
+    global PKG_LIST_ALL
+    global PKG_LIST_OMIT
+    PKG_LIST_ALL=pkgs
+    PKG_LIST_OMIT={}
+    PkgDisableAll()
+
+def PkgListGet():
+    return PKG_LIST_ALL
+
+def PkgEnableAll():
+    for x in PKG_LIST_ALL:
+        PKG_LIST_OMIT[x] = 0
+
+def PkgDisableAll():
+    for x in PKG_LIST_ALL:
+        PKG_LIST_OMIT[x] = 1
+
+def PkgEnable(pkg):
+    PKG_LIST_OMIT[pkg] = 0
+
+def PkgDisable(pkg):
+    PKG_LIST_OMIT[pkg] = 1
+
+def PkgSkip(pkg):
+    return PKG_LIST_OMIT[pkg]
+
+def PkgSelected(pkglist, pkg):
+    if (pkglist.count(pkg)==0): return 0
+    if (PKG_LIST_OMIT[pkg]): return 0
+    return 1
+
+########################################################################
+##
+## These functions are for libraries which use pkg-config.
+##
+########################################################################
+
+def PkgConfigHavePkg(pkgname):
+    """Returns a bool whether the pkg-config package is installed."""
+    if (sys.platform == "win32" or not LocateBinary("pkg-config")):
+        return False
+    handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --modversion " + pkgname)
+    result = handle.read().strip()
+    handle.close()
+    return bool(len(result) > 0)
+
+def PkgConfigGetLibs(pkgname):
+    """Returns a list of libs for the package, prefixed by -l."""
+    if (sys.platform == "win32" or not LocateBinary("pkg-config")):
+        return []
+    handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --libs-only-l " + pkgname)
+    result = handle.read().strip()
+    handle.close()
+    libs = []
+    for l in result.split(" "):
+        libs.append(l)
+    return libs
+
+def PkgConfigGetIncDirs(pkgname):
+    """Returns a list of includes for the package, NOT prefixed by -I."""
+    if (sys.platform == "win32" or not LocateBinary("pkg-config")):
+        return []
+    handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --cflags-only-I " + pkgname)
+    result = handle.read().strip()
+    handle.close()
+    if len(result) == 0: return []
+    libs = []
+    for l in result.split(" "):
+        libs.append(l.replace("-I", "").replace("\"", "").strip())
+    return libs
+
+def PkgConfigGetLibDirs(pkgname):
+    """Returns a list of library paths for the package, NOT prefixed by -L."""
+    if (sys.platform == "win32" or not LocateBinary("pkg-config")):
+        return []
+    handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --libs-only-L " + pkgname)
+    result = handle.read().strip()
+    handle.close()
+    if len(result) == 0: return []
+    libs = []
+    for l in result.split(" "):
+        libs.append(l.replace("-L", "").replace("\"", "").strip())
+    return libs
+
+def PkgConfigEnable(opt, pkgname):
+    """Adds the libraries and includes to IncDirectory, LibName and LibDirectory."""
+    for i in PkgConfigGetIncDirs(pkgname):
+        IncDirectory(opt, i)
+    for i in PkgConfigGetLibDirs(pkgname):
+        LibDirectory(opt, i)
+    for i in PkgConfigGetLibs(pkgname):
+        LibName(opt, i)
+
+########################################################################
+##
+## SDK Location
+##
+## This section is concerned with locating the install directories
+## for various third-party packages.  The results are stored in the
+## SDK table.
+##
+## Microsoft keeps changing the &*#$*& registry key for the DirectX SDK.
+## The only way to reliably find it is to search through the installer's
+## uninstall-directories, look in each one, and see if it contains the
+## relevant files.
+##
+########################################################################
+
+SDK = {}
+
+def SdkLocateDirectX():
+    if (sys.platform != "win32"): return
+    if (os.path.isdir("sdks/directx8")): SDK["DX8"]="sdks/directx8"
+    if (os.path.isdir("sdks/directx9")): SDK["DX9"]="sdks/directx9"
+    uninstaller = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
+    for subdir in ListRegistryKeys(uninstaller):
+        if (subdir[0]=="{"):
+            dir = GetRegistryKey(uninstaller+"\\"+subdir, "InstallLocation")
+            if (dir != 0):
+                if ((SDK.has_key("DX8")==0) and
+                    (os.path.isfile(dir+"\\Include\\d3d8.h")) and
+                    (os.path.isfile(dir+"\\Include\\d3dx8.h")) and
+                    (os.path.isfile(dir+"\\Lib\\d3d8.lib")) and
+                    (os.path.isfile(dir+"\\Lib\\d3dx8.lib"))):
+                   SDK["DX8"] = dir.replace("\\", "/").rstrip("/")
+                if ((SDK.has_key("DX9")==0) and
+                    (os.path.isfile(dir+"\\Include\\d3d9.h")) and
+                    (os.path.isfile(dir+"\\Include\\d3dx9.h")) and
+                    (os.path.isfile(dir+"\\Include\\dxsdkver.h")) and
+                    (os.path.isfile(dir+"\\Lib\\x86\\d3d9.lib")) and
+                    (os.path.isfile(dir+"\\Lib\\x86\\d3dx9.lib"))):
+                   SDK["DX9"] = dir.replace("\\", "/").rstrip("/")
+    if (SDK.has_key("DX9")):
+        SDK["DIRECTCAM"] = SDK["DX9"]
+
+def SdkLocateMaya():
+    for (ver,key) in MAYAVERSIONINFO:
+        if (PkgSkip(ver)==0 and SDK.has_key(ver)==0):
+            if (sys.platform == "win32"):
+                ddir = "sdks/"+ver.lower().replace("x","")
+                if (os.path.isdir(ddir)):
+                    SDK[ver] = ddir
+                else:
+                    for dev in ["Alias|Wavefront","Alias","Autodesk"]:
+                        fullkey="SOFTWARE\\"+dev+"\\Maya\\"+key+"\\Setup\\InstallPath"
+                        res = GetRegistryKey(fullkey, "MAYA_INSTALL_LOCATION")
+                        if (res != 0):
+                            res = res.replace("\\", "/").rstrip("/")
+                            SDK[ver] = res
+            elif (sys.platform == "darwin"):
+                ddir1 = "sdks/"+ver.lower().replace("x","")+"-osx"
+                ddir2 = "/Applications/Autodesk/maya"+key+"/Maya.app/Contents"
+                
+                if (os.path.isdir(ddir1)):   SDK[ver] = ddir1
+                elif (os.path.isdir(ddir2)): SDK[ver] = ddir2
+            else:
+                ddir1 = "sdks/"+ver.lower().replace("x","")+"-linux"+platform.architecture()[0].replace("bit","")
+                if (platform.architecture()[0] == "64bit"):
+                    ddir2 = "/usr/autodesk/maya"+key+"-x64"
+                    ddir3 = "/usr/aw/maya"+key+"-x64"
+                else:
+                    ddir2 = "/usr/autodesk/maya"+key
+                    ddir3 = "/usr/aw/maya"+key
+                
+                if (os.path.isdir(ddir1)):   SDK[ver] = ddir1
+                elif (os.path.isdir(ddir2)): SDK[ver] = ddir2
+                elif (os.path.isdir(ddir3)): SDK[ver] = ddir3
+
+def SdkLocateMax():
+    if (sys.platform != "win32"): return
+    for version,key1,key2,subdir in MAXVERSIONINFO:
+        if (PkgSkip(version)==0):
+            if (SDK.has_key(version)==0):
+                ddir = "sdks/maxsdk"+version.lower()[3:]
+                if (os.path.isdir(ddir)):
+                    SDK[version] = ddir
+                    SDK[version+"CS"] = ddir
+                else:
+                    top = GetRegistryKey(key1,key2)
+                    if (top != 0):
+                        SDK[version] = top + "maxsdk"
+                        if (os.path.isdir(top + "\\" + subdir)!=0):
+                            SDK[version+"CS"] = top + subdir
+
+def SdkLocatePython():
+    if (PkgSkip("PYTHON")==0):
+        if (sys.platform == "win32"):
+            SDK["PYTHON"]="thirdparty/win-python"
+            SDK["PYTHONVERSION"]="python2.5"
+        elif (sys.platform == "darwin"):
+            if not SDK.has_key("MACOSX"): SdkLocateMacOSX()
+            if (os.path.isdir("%s/System/Library/Frameworks/Python.framework" % SDK["MACOSX"])):
+                os.system("readlink %s/System/Library/Frameworks/Python.framework/Versions/Current > %s/tmp/pythonversion 2>&1" % (SDK["MACOSX"], OUTPUTDIR))
+                pv = ReadFile(OUTPUTDIR+"/tmp/pythonversion")
+                SDK["PYTHON"] = SDK["MACOSX"]+"/System/Library/Frameworks/Python.framework/Headers"
+                SDK["PYTHONVERSION"] = "python"+pv
+            else:
+                exit("Could not find the python framework!")
+        else:
+            os.system("python -V > "+OUTPUTDIR+"/tmp/pythonversion 2>&1")
+            pv=ReadFile(OUTPUTDIR+"/tmp/pythonversion")
+            if (pv.startswith("Python ")==0):
+                exit("python -V did not produce the expected output")
+            pv = pv[7:10]
+            if (os.path.isdir("/usr/include/python"+pv)==0):
+                exit("Python reports version "+pv+" but /usr/include/python"+pv+" is not installed.")
+            SDK["PYTHON"]="/usr/include/python"+pv
+            SDK["PYTHONVERSION"]="python"+pv
+
+def SdkLocateVisualStudio():
+    if (sys.platform != "win32"): return
+    vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "9.0")
+    if (vcdir != 0) and (vcdir[-4:] == "\\VC\\"):
+        vcdir = vcdir[:-3]
+        SDK["VISUALSTUDIO"] = vcdir
+
+def SdkLocateMSPlatform():
+    if (sys.platform != "win32"): return
+    platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "Install Dir")
+    if (platsdk == 0):
+        platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
+    
+    if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2"))):
+        platsdk = os.path.join(GetProgramFiles(), "Microsoft Platform SDK for Windows Server 2003 R2")
+    
+    # Doesn't work with the Express versions, so we're checking for the "atlmfc" dir, which is not in the Express 
+    if (platsdk == 0 and os.path.isdir(os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\atlmfc"))):
+        platsdk = os.path.join(GetProgramFiles(), "Microsoft Visual Studio 9\\VC\\PlatformSDK")
+    
+    if (platsdk != 0):
+        if (not platsdk.endswith("//")):
+            platsdk += "//"
+        SDK["MSPLATFORM"] = platsdk
+
+def SdkLocateMacOSX():
+    if (sys.platform != "darwin"): return
+    if (os.path.exists("/Developer/SDKs/MacOSX10.5.sdk")):
+        SDK["MACOSX"] = "/Developer/SDKs/MacOSX10.5.sdk"
+    elif (os.path.exists("/Developer/SDKs/MacOSX10.4u.sdk")):
+        SDK["MACOSX"] = "/Developer/SDKs/MacOSX10.4u.sdk"
+    elif (os.path.exists("/Developer/SDKs/MacOSX10.4.0.sdk")):
+        SDK["MACOSX"] = "/Developer/SDKs/MacOSX10.4.0.sdk"
+    else:
+        exit("Could not find any MacOSX SDK")
+
+########################################################################
+##
+## SDK Auto-Disables
+##
+## Disable packages whose SDKs could not be found.
+##
+########################################################################
+
+def SdkAutoDisableDirectX():
+    for ver in ["DX8","DX9","DIRECTCAM"]:
+        if (PkgSkip(ver)==0):
+            if (SDK.has_key(ver)==0):
+                if (sys.platform == "win32"):
+                    WARNINGS.append("I cannot locate SDK for "+ver)
+                else:
+                    WARNINGS.append(ver+" only supported on windows yet")
+                WARNINGS.append("I have automatically added this command-line option: --no-"+ver.lower())
+                PkgDisable(ver)
+            else:
+                WARNINGS.append("Using "+ver+" sdk: "+SDK[ver])
+
+def SdkAutoDisableMaya():
+    for (ver,key) in MAYAVERSIONINFO:
+        if (SDK.has_key(ver)==0) and (PkgSkip(ver)==0):
+            if (sys.platform == "win32"):
+                WARNINGS.append("The registry does not appear to contain a pointer to the "+ver+" SDK.")
+            else:
+                WARNINGS.append("I cannot locate SDK for "+ver)
+            WARNINGS.append("I have automatically added this command-line option: --no-"+ver.lower())
+            PkgDisable(ver)
+
+def SdkAutoDisableMax():
+    for version,key1,key2,subdir in MAXVERSIONINFO:
+        if (PkgSkip(version)==0) and ((SDK.has_key(version)==0) or (SDK.has_key(version+"CS")==0)): 
+            if (sys.platform == "win32"):
+                if (SDK.has_key(version)):
+                    WARNINGS.append("Your copy of "+version+" does not include the character studio SDK")
+                else: 
+                    WARNINGS.append("The registry does not appear to contain a pointer to "+version)
+            else:
+                WARNINGS.append(version+" only supported on windows yet")
+            WARNINGS.append("I have automatically added this command-line option: --no-"+version.lower())
+            PkgDisable(version)
+
+########################################################################
+##
+## Visual Studio comes with a script called VSVARS32.BAT, which 
+## you need to run before using visual studio command-line tools.
+## The following python subroutine serves the same purpose.
+##
+########################################################################
+
+def AddToPathEnv(path,add):
+    if (os.environ.has_key(path)):
+        os.environ[path] = add + ";" + os.environ[path]
+    else:
+        os.environ[path] = add
+
+def SetupVisualStudioEnviron():
+    if (SDK.has_key("VISUALSTUDIO")==0):
+        exit("Could not find Visual Studio install directory")
+    if (SDK.has_key("MSPLATFORM")==0):
+        exit("Could not find the Microsoft Platform SDK")
+    AddToPathEnv("PATH",    SDK["VISUALSTUDIO"] + "VC\\bin")
+    AddToPathEnv("PATH",    SDK["VISUALSTUDIO"] + "Common7\\IDE")
+    AddToPathEnv("INCLUDE", SDK["VISUALSTUDIO"] + "VC\\include")
+    AddToPathEnv("INCLUDE", SDK["VISUALSTUDIO"] + "VC\\atlmfc\\include")
+    AddToPathEnv("LIB",     SDK["VISUALSTUDIO"] + "VC\\lib")
+    AddToPathEnv("PATH",    SDK["MSPLATFORM"] + "bin")
+    AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include")
+    AddToPathEnv("INCLUDE", SDK["MSPLATFORM"] + "include\\atl")
+    AddToPathEnv("LIB",     SDK["MSPLATFORM"] + "lib")
+
+########################################################################
+#
+# Include and Lib directories.
+#
+# These allow you to add include and lib directories to the
+# compiler search paths.  These methods accept a "package"
+# parameter, which specifies which package the directory is
+# associated with.  The include/lib directory is not used
+# if the package is not selected.  The package can be 'ALWAYS'.
+#
+########################################################################
+
+INCDIRECTORIES = []
+LIBDIRECTORIES = []
+LIBNAMES = []
+DEFSYMBOLS = []
+
+def IncDirectory(opt, dir):
+    INCDIRECTORIES.append((opt, dir))
+
+def LibDirectory(opt, dir):
+    LIBDIRECTORIES.append((opt, dir))
+
+def LibName(opt, name):
+    LIBNAMES.append((opt, name))
+
+def DefSymbol(opt, sym, val):
+    DEFSYMBOLS.append((opt, sym, val))
+
+########################################################################
+#
+# On Linux, to run panda, the dynamic linker needs to know how to find
+# the shared libraries.  This subroutine verifies that the dynamic
+# linker is properly configured.  If not, it sets it up on a temporary
+# basis and issues a warning.
+#
+########################################################################
+
+
+def CheckLinkerLibraryPath():
+    if (sys.platform == "win32"): return
+    builtlib = os.path.abspath(os.path.join(OUTPUTDIR,"lib"))
+    try:
+        ldpath = []
+        f = file("/etc/ld.so.conf","r")
+        for line in f: ldpath.append(line.rstrip())
+        f.close()
+    except: ldpath = []
+    if (os.environ.has_key("LD_LIBRARY_PATH")):
+        ldpath = ldpath + os.environ["LD_LIBRARY_PATH"].split(":")
+    if (ldpath.count(builtlib)==0):
+        WARNINGS.append("Caution: the "+os.path.join(OUTPUTDIR,"lib")+" directory is not in LD_LIBRARY_PATH")
+        WARNINGS.append("or /etc/ld.so.conf.  You must add it before using panda.")
+        if (os.environ.has_key("LD_LIBRARY_PATH")):
+            os.environ["LD_LIBRARY_PATH"] = builtlib + ":" + os.environ["LD_LIBRARY_PATH"]
+        else:
+            os.environ["LD_LIBRARY_PATH"] = builtlib
+
+########################################################################
+##
+## Routines to copy files into the build tree
+##
+########################################################################
+
+def CopyFile(dstfile,srcfile):
+    if (dstfile[-1]=='/'):
+        dstdir = dstfile
+        fnl = srcfile.rfind("/")
+        if (fnl < 0): fn = srcfile
+        else: fn = srcfile[fnl+1:]
+        dstfile = dstdir + fn
+    if (NeedsBuild([dstfile],[srcfile])):
+        WriteFile(dstfile,ReadFile(srcfile))
+        JustBuilt([dstfile], [srcfile])
+
+def CopyAllFiles(dstdir, srcdir, suffix=""):
+    for x in GetDirectoryContents(srcdir, ["*"+suffix]):
+        CopyFile(dstdir+x, srcdir+x)
+
+def CopyAllHeaders(dir, skip=[]):
+    for filename in GetDirectoryContents(dir, ["*.h", "*.I", "*.T"], skip):
+        srcfile = dir + "/" + filename
+        dstfile = OUTPUTDIR+"/include/" + filename
+        if (NeedsBuild([dstfile],[srcfile])):
+            WriteFile(dstfile,ReadFile(srcfile))
+            JustBuilt([dstfile],[srcfile])
+
+def CopyTree(dstdir,srcdir):
+    if (os.path.isdir(dstdir)): return 0
+    if (sys.platform == "win32"):
+        cmd = 'xcopy /I/Y/E/Q "' + srcdir + '" "' + dstdir + '"'
+    else:
+        cmd = 'cp -R -f ' + srcdir + ' ' + dstdir
+    oscmd(cmd)
+
+########################################################################
+##
+## Parse PandaVersion.pp to extract the version number.
+##
+########################################################################
+
+def ParsePandaVersion(fn):
+    try:
+        f = file(fn, "r")
+        pattern = re.compile('^[ \t]*[#][ \t]*define[ \t]+PANDA_VERSION[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)')
+        for line in f:
+            match = pattern.match(line,0)
+            if (match):
+                version = match.group(1)+"."+match.group(2)+"."+match.group(3)
+                break
+        f.close()
+    except: version="0.0.0"
+    return version
+
+########################################################################
+##
+## FindLocation
+##
+########################################################################
+
+ORIG_EXT={}
+
+def GetOrigExt(x):
+    return ORIG_EXT[x]
+
+def CalcLocation(fn, ipath):
+    if (fn.count("/")): return fn
+    
+    if (fn.endswith(".cxx")): return CxxFindSource(fn, ipath)
+    if (fn.endswith(".I")):   return CxxFindSource(fn, ipath)
+    if (fn.endswith(".h")):   return CxxFindSource(fn, ipath)
+    if (fn.endswith(".c")):   return CxxFindSource(fn, ipath)
+    if (fn.endswith(".yxx")): return CxxFindSource(fn, ipath)
+    if (fn.endswith(".lxx")): return CxxFindSource(fn, ipath)
+    if (fn.endswith(".mll")): return OUTPUTDIR+"/plugins/"+fn
+    if (sys.platform == "win32"):
+        if (fn.endswith(".def")): return CxxFindSource(fn, ipath)
+        if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn
+        if (fn.endswith(".dll")): return OUTPUTDIR+"/bin/"+fn
+        if (fn.endswith(".dlo")): return OUTPUTDIR+"/plugins/"+fn
+        if (fn.endswith(".dli")): return OUTPUTDIR+"/plugins/"+fn
+        if (fn.endswith(".dle")): return OUTPUTDIR+"/plugins/"+fn
+        if (fn.endswith(".exe")): return OUTPUTDIR+"/bin/"+fn
+        if (fn.endswith(".lib")): return OUTPUTDIR+"/lib/"+fn
+        if (fn.endswith(".ilb")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".lib"
+        if (fn.endswith(".dat")): return OUTPUTDIR+"/tmp/"+fn
+        if (fn.endswith(".in")):  return OUTPUTDIR+"/pandac/input/"+fn
+    elif (sys.platform == "darwin"):
+        if (fn.endswith(".mm")):  return CxxFindSource(fn, ipath)
+        if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".o"
+        if (fn.endswith(".dll")): return OUTPUTDIR+"/lib/"+fn[:-4]+".dylib"
+        if (fn.endswith(".exe")): return OUTPUTDIR+"/bin/"+fn[:-4]
+        if (fn.endswith(".lib")): return OUTPUTDIR+"/lib/"+fn[:-4]+".a"
+        if (fn.endswith(".ilb")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".a"
+        if (fn.endswith(".dat")): return OUTPUTDIR+"/tmp/"+fn
+        if (fn.endswith(".in")):  return OUTPUTDIR+"/pandac/input/"+fn
+    else:
+        if (fn.endswith(".obj")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".o"
+        if (fn.endswith(".dll")): return OUTPUTDIR+"/lib/"+fn[:-4]+".so"
+        if (fn.endswith(".exe")): return OUTPUTDIR+"/bin/"+fn[:-4]
+        if (fn.endswith(".lib")): return OUTPUTDIR+"/lib/"+fn[:-4]+".a"
+        if (fn.endswith(".ilb")): return OUTPUTDIR+"/tmp/"+fn[:-4]+".a"
+        if (fn.endswith(".dat")): return OUTPUTDIR+"/tmp/"+fn
+        if (fn.endswith(".in")):  return OUTPUTDIR+"/pandac/input/"+fn
+    return fn
+
+
+def FindLocation(fn, ipath):
+    loc = CalcLocation(fn, ipath)
+    (base,ext) = os.path.splitext(fn)
+    ORIG_EXT[loc] = ext
+    return loc
+
+########################################################################
+##
+## TargetAdd
+##
+## Makepanda maintains a list of make-targets.  Each target has
+## these attributes:
+##
+## name   - the name of the file being created.
+## ext    - the original file extension, prior to OS-specific translation
+## inputs - the names of the input files to the compiler
+## deps   - other input files that the target also depends on
+## opts   - compiler options, a catch-all category
+##
+## TargetAdd will create the target if it does not exist.  Then,
+## depending on what options you pass, it will push data onto these
+## various target attributes.  This is cumulative: for example, if
+## you use TargetAdd to add compiler options, then use TargetAdd
+## again with more compiler options, both sets of options will be
+## included.
+##
+## TargetAdd does some automatic dependency generation on C++ files.
+## It will scan these files for include-files and automatically push
+## the include files onto the list of dependencies.  In order to do
+## this, it needs an include-file search path.  So if you supply
+## any C++ input, you also need to supply compiler options containing
+## include-directories, or alternately, a separate ipath parameter.
+## 
+## The main body of 'makepanda' is a long list of TargetAdd
+## directives building up a giant list of make targets.  Then, 
+## finally, the targets are run and panda is built.
+##
+## Makepanda's dependency system does not understand multiple
+## outputs from a single build step.  When a build step generates
+## a primary output file and a secondary output file, it is
+## necessary to trick the dependency system.  Insert a dummy
+## build step that "generates" the secondary output file, using
+## the primary output file as an input.  There is a special
+## compiler option DEPENDENCYONLY that creates such a dummy
+## build-step.  There are two cases where dummy build steps must
+## be inserted: bison generates an OBJ and a secondary header
+## file, interrogate generates an IN and a secondary IGATE.OBJ.
+##
+########################################################################
+
+class Target:
+    pass
+
+TARGET_LIST=[]
+TARGET_TABLE={}
+
+def TargetAdd(target, dummy=0, opts=0, input=0, dep=0, ipath=0):
+    if (dummy != 0):
+        exit("Syntax error in TargetAdd "+target)
+    if (ipath == 0): ipath = opts
+    if (ipath == 0): ipath = []
+    if (type(input) == str): input = [input]
+    if (type(dep) == str): dep = [dep]
+    full = FindLocation(target,[OUTPUTDIR+"/include"])
+    if (TARGET_TABLE.has_key(full) == 0):
+        t = Target()
+        t.name = full
+        t.inputs = []
+        t.deps = {}
+        t.opts = []
+        TARGET_TABLE[full] = t
+        TARGET_LIST.append(t)
+    else:
+        t = TARGET_TABLE[full]
+    ipath = [OUTPUTDIR+"/tmp"] + GetListOption(ipath, "DIR:") + [OUTPUTDIR+"/include"]
+    if (opts != 0):
+        for x in opts:
+            if (t.opts.count(x)==0):
+                t.opts.append(x)
+    if (input != 0):
+        for x in input:
+            fullinput = FindLocation(x, ipath)
+            t.inputs.append(fullinput)
+            t.deps[fullinput] = 1
+            (base,suffix) = os.path.splitext(x)
+            if (SUFFIX_INC.count(suffix)):
+                for d in CxxCalcDependencies(fullinput, ipath, []):
+                    t.deps[d] = 1
+    if (dep != 0):                
+        for x in dep:
+            fulldep = FindLocation(x, ipath)
+            t.deps[fulldep] = 1
+    if (target.endswith(".in")):
+        t.deps[FindLocation("interrogate.exe",[])] = 1
+        t.deps[FindLocation("dtool_have_python.dat",[])] = 1
+

+ 4798 - 0
makepanda/otherMakePanda.py

@@ -0,0 +1,4798 @@
+#!/usr/bin/python
+########################################################################
+#
+# Caution: there are two separate, independent build systems:
+# 'makepanda', and 'ppremake'.  Use one or the other, do not attempt
+# to use both.  This file is part of the 'makepanda' system.
+#
+# To build panda using this script, type 'makepanda.py' on unix
+# or 'makepanda.bat' on windows, and examine the help-text.
+# Then run the script again with the appropriate options to compile
+# panda3d.
+#
+########################################################################
+
+import sys,os,time,stat,string,re,getopt,cPickle
+from glob import glob
+
+########################################################################
+##
+## Utility Routines
+##
+## filedate(f) - returns the last modified date of the specified file.
+## youngest(f1,f2...) - returns date of most recently modified file.
+## older(f,f1,f2...) - return true if f is older than all the others.
+## xpaths(pre,pathlist,suf) - appends prefix and suffix to every path.
+##
+########################################################################
+
+global FileDateCache
+FileDateCache = {}
+
+def filedate(path):
+    global FileDateCache
+    if FileDateCache.has_key(path):
+        return FileDateCache[path]
+    try: date = os.path.getmtime(path)
+    except: date = 0
+    FileDateCache[path] = date
+    return date
+
+def updatefiledate(path):
+    global FileDateCache
+    try: date = os.path.getmtime(path)
+    except: date = 0
+    FileDateCache[path] = date
+
+def youngest(files):
+    if type(files) == str:
+        source = filedate(files)
+        if (source==0):
+            sys.exit("Error: source file not readable: "+files)
+        return source
+    result = 0
+    for sfile in files:
+        source = youngest(sfile)
+        if (source > result): result = source
+    return result
+
+def older(file,others):
+    return filedate(file)<youngest(others)
+
+def xpaths(prefix,base,suffix):
+    if type(base) == str:
+        return prefix + base + suffix
+    result = []
+    for x in base:
+        result.append(xpaths(prefix,x,suffix))
+    return result
+
+if sys.platform == "win32" or sys.platform == "cygwin":
+    import _winreg
+    def GetRegistryKey(path, subkey):
+        k1=0
+        key=0
+        try:
+            key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, path, 0, _winreg.KEY_READ)
+            k1, k2 = _winreg.QueryValueEx(key, subkey)
+        except: pass
+        if (key!=0): _winreg.CloseKey(key)
+        return k1
+
+def oslocalcmd(cd, cmd):
+    if VERBOSE:
+        if cd != ".":
+            print "( cd "+cd+"; "+cmd+" )"
+        else:
+            print cmd
+    if cd != ".":
+        base=os.getcwd()
+        os.chdir(cd)
+    sys.stdout.flush()
+    if sys.platform == "win32" or sys.platform == "cygwin":
+        exe = cmd.split()[0]
+        if os.path.isfile(exe)==0:
+            for i in os.environ["PATH"].split(";"):
+                if os.path.isfile(os.path.join(i, exe)):
+                    exe = os.path.join(i, exe)
+                    break
+            if os.path.isfile(exe)==0:
+                sys.exit("Cannot find "+exe+" on search path")
+        res = os.spawnl(os.P_WAIT, exe, cmd)
+    else:
+        res = os.system(cmd)
+    if res != 0:
+        if not VERBOSE:
+            print "\n------------- Command Failed ---------------"
+            if cd != ".":
+                print "( cd "+cd+"; "+cmd+" )"
+            else:
+                print cmd
+            print "--------------------------------------------"
+        sys.exit(res)
+    if cd != ".":
+        os.chdir(base)
+
+def oscmd(cmd):
+    oslocalcmd(".",cmd)
+
+def osmove(src,dst):
+    """
+    Move src file or directory to dst.  dst will be removed if it
+    exists (i.e. overwritten).
+    """
+    global VERBOSE
+    if VERBOSE >= 1:
+        print "Moving \"%s\" to \"%s\""%(src, dst)
+    try: os.remove(dst)
+    except OSError: pass
+    os.rename(src, dst)
+
+def replaceInFile(srcPath, dstPath, replaceA, withB):
+    global VERBOSE
+    if VERBOSE >= 1:
+        print "Replacing '%s' in \"%s\" with '%s' and writing it to \"%s\""%(
+            replaceA, srcPath, withB, dstPath)
+    f=file(srcPath, "rb")
+    data=f.read()
+    f.close()
+    data=data.replace(replaceA, withB)
+    f=file(dstPath, "wb")
+    f.write(data)
+    f.close()
+
+def buildingwhat(opts):
+    building = 0
+    for x in opts:
+        if (x[:9]=="BUILDING_"): building = x[9:]
+    return building
+
+def ReadFile(wfile):
+    try:
+        srchandle = open(wfile, "rb")
+        data = srchandle.read()
+        srchandle.close()
+        return data
+    except: sys.exit("Cannot read "+wfile)
+
+def WriteFile(wfile,data):
+    try:
+        dsthandle = open(wfile, "wb")
+        dsthandle.write(data)
+        dsthandle.close()
+    except: sys.exit("Cannot write "+wfile)
+
+def prettyTime(t):
+    t = int(t)
+    hours = t/3600
+    t -= hours*3600
+    minutes = t/60
+    t -= minutes*60
+    seconds = t
+    if (hours): return str(hours)+" hours "+str(minutes)+" min"
+    if (minutes): return str(minutes)+" min "+str(seconds)+" sec"
+    return str(seconds)+" sec"
+
+def MakeDirectory(path):
+    if os.path.isdir(path): return 0
+    os.mkdir(path)
+
+########################################################################
+##
+## Default options:
+##
+## You might be tempted to change the defaults by editing them
+## here.  Don't do it.  Instead, create a script that compiles
+## panda with your preferred options.
+##
+########################################################################
+
+if (sys.platform == "win32"): COMPILERS=["MSVC7", "MSVC71", "MINGW"]
+elif (sys.platform == "cygwin"): COMPILERS=["MSVC7", "MSVC71", "GCC33"]
+elif (sys.platform == "linux2"): COMPILERS=["LINUXA"]
+else:
+    print "which compiler should be used for %s"%(sys.platform,)
+PREFIX="built"
+COMPILER=COMPILERS[0]
+OPTIMIZE="3"
+INSTALLER=0
+GENMAN=0
+PPGAME=0
+COMPLETE=0
+THIRDPARTY="thirdparty"
+VERSION="0.0.0"
+VERBOSE=1
+COMPRESSOR="zlib"
+PACKAGES=["ZLIB","PNG","JPEG","TIFF","VRPN","FMOD","NVIDIACG","HELIX","NSPR",
+          "SSL","FREETYPE","FFTW","MILES","MAYA5","MAYA6","MAYA65","MAX5","MAX6","MAX7"]
+OMIT=PACKAGES[:]
+WARNINGS=[]
+
+SDK_LIB_PATH = {}
+
+DIRECTXSDK = None
+MAYASDK = {}
+MAXSDK = {}
+MAXSDKCS = {}
+NSPR_SDK = None
+PYTHONSDK = None
+
+try:
+    # If there is a makepandaPreferences.py, import it:
+    from makepandaPreferences import *
+except ImportError:
+    # If it's not there, no problem:
+    pass
+
+STARTTIME=time.time()
+
+##########################################################################################
+#
+# Read the default version number out of dtool/PandaVersion.pp
+#
+##########################################################################################
+
+try:
+    f = file("dtool/PandaVersion.pp","r")
+    pattern = re.compile('^[ \t]*[#][ \t]*define[ \t]+PANDA_VERSION[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)')
+    for line in f:
+        match = pattern.match(line,0)
+        if (match):
+            VERSION = match.group(1)+"."+match.group(2)+"."+match.group(3)
+            break
+    f.close()
+except: pass
+
+##########################################################################################
+#
+# Initialize DTOOLCONFIG based on platform (Win/Unix)
+#
+# These are the defaults for the two broad classes of operating system.
+# Subsequent analysis will cause these values to be tweaked.
+#
+##########################################################################################
+
+DTOOLDEFAULTS=[
+    #_Variable_________________________Windows___________________Unix__________
+    ("HAVE_PYTHON",                    '1',                      '1'),
+    ("PYTHON_FRAMEWORK",               'UNDEF',                  'UNDEF'),
+    ("COMPILE_IN_DEFAULT_FONT",        '1',                      '1'),
+    ("HAVE_MAYA",                      '1',                      '1'),
+    ("MAYA_PRE_5_0",                   'UNDEF',                  'UNDEF'),
+    ("HAVE_SOFTIMAGE",                 'UNDEF',                  'UNDEF'),
+    ("SSL_097",                        'UNDEF',                  'UNDEF'),
+    ("REPORT_OPENSSL_ERRORS",          '1',                      '1'),
+    ("HAVE_GL",                        '1',                      '1'),
+    ("HAVE_MESA",                      'UNDEF',                  'UNDEF'),
+    ("MESA_MGL",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_SGIGL",                     'UNDEF',                  'UNDEF'),
+    ("HAVE_GLX",                       'UNDEF',                  '1'),
+    ("HAVE_WGL",                       '1',                      'UNDEF'),
+    ("HAVE_DX",                        '1',                      'UNDEF'),
+    ("HAVE_CHROMIUM",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_THREADS",                   'UNDEF',                  'UNDEF'),
+    ("HAVE_AUDIO",                     '1',                      '1'),
+    ("NOTIFY_DEBUG",                   'UNDEF',                  'UNDEF'),
+    ("DO_PSTATS",                      'UNDEF',                  'UNDEF'),
+    ("DO_COLLISION_RECORDING",         'UNDEF',                  'UNDEF'),
+    ("TRACK_IN_INTERPRETER",           'UNDEF',                  'UNDEF'),
+    ("DO_MEMORY_USAGE",                'UNDEF',                  'UNDEF'),
+    ("DO_PIPELINING",                  'UNDEF',                  'UNDEF'),
+    ("EXPORT_TEMPLATES",               'yes',                    'yes'),
+    ("LINK_IN_GL",                     'UNDEF',                  'UNDEF'),
+    ("LINK_IN_PHYSICS",                'UNDEF',                  'UNDEF'),
+    ("DEFAULT_PATHSEP",                '";"',                    '":"'),
+    ("DEFAULT_PRC_DIR",                '"<auto>etc"',            '"<auto>etc"'),
+    ("PRC_DIR_ENVVARS",                '"PANDA_PRC_DIR"',        '"PANDA_PRC_DIR"'),
+    ("PRC_PATH_ENVVARS",               '"PANDA_PRC_PATH"',       '"PANDA_PRC_PATH"'),
+    ("PRC_PATTERNS",                   '"*.prc"',                '"*.prc"'),
+    ("PRC_EXECUTABLE_PATTERNS",        '""',                     '""'),
+    ("PRC_EXECUTABLE_ARGS_ENVVAR",     '"PANDA_PRC_XARGS"',      '"PANDA_PRC_XARGS"'),
+    ("PRC_PUBLIC_KEYS_FILENAME",       '""',                     '""'),
+    ("PRC_RESPECT_TRUST_LEVEL",        'UNDEF',                  'UNDEF'),
+    ("PRC_SAVE_DESCRIPTIONS",          '1',                      '1'),
+    ("WORDS_BIGENDIAN",                'UNDEF',                  'UNDEF'),
+    ("HAVE_NAMESPACE",                 '1',                      '1'),
+    ("HAVE_OPEN_MASK",                 'UNDEF',                  'UNDEF'),
+    ("HAVE_WCHAR_T",                   '1',                      '1'),
+    ("HAVE_WSTRING",                   '1',                      '1'),
+    ("HAVE_TYPENAME",                  '1',                      '1'),
+    ("SIMPLE_STRUCT_POINTERS",         '1',                      'UNDEF'),
+    ("HAVE_DINKUM",                    'UNDEF',                  'UNDEF'),
+    ("HAVE_STL_HASH",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_GETTIMEOFDAY",              'UNDEF',                  '1'),
+    ("GETTIMEOFDAY_ONE_PARAM",         'UNDEF',                  'UNDEF'),
+    ("HAVE_GETOPT",                    'UNDEF',                  '1'),
+    ("HAVE_GETOPT_LONG_ONLY",          'UNDEF',                  '1'),
+    ("HAVE_GETOPT_H",                  'UNDEF',                  '1'),
+    ("IOCTL_TERMINAL_WIDTH",           'UNDEF',                  '1'),
+    ("HAVE_STREAMSIZE",                '1',                      '1'),
+    ("HAVE_IOS_TYPEDEFS",              '1',                      '1'),
+    ("HAVE_IOS_BINARY",                '1',                      '1'),
+    ("STATIC_INIT_GETENV",             '1',                      'UNDEF'),
+    ("HAVE_PROC_SELF_EXE",             'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_MAPS",            'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_ENVIRON",         'UNDEF',                  '1'),
+    ("HAVE_PROC_SELF_CMDLINE",         'UNDEF',                  '1'),
+    ("HAVE_GLOBAL_ARGV",               '1',                      'UNDEF'),
+    ("PROTOTYPE_GLOBAL_ARGV",          'UNDEF',                  'UNDEF'),
+    ("GLOBAL_ARGV",                    '__argv',                 'UNDEF'),
+    ("GLOBAL_ARGC",                    '__argc',                 'UNDEF'),
+    ("HAVE_IO_H",                      '1',                      'UNDEF'),
+    ("HAVE_IOSTREAM",                  '1',                      '1'),
+    ("HAVE_MALLOC_H",                  '1',                      '1'),
+    ("HAVE_SYS_MALLOC_H",              'UNDEF',                  'UNDEF'),
+    ("HAVE_ALLOCA_H",                  'UNDEF',                  '1'),
+    ("HAVE_LOCALE_H",                  'UNDEF',                  '1'),
+    ("HAVE_MINMAX_H",                  '1',                      'UNDEF'),
+    ("HAVE_SSTREAM",                   '1',                      '1'),
+    ("HAVE_NEW",                       '1',                      '1'),
+    ("HAVE_SYS_TYPES_H",               '1',                      '1'),
+    ("HAVE_SYS_TIME_H",                'UNDEF',                  '1'),
+    ("HAVE_UNISTD_H",                  'UNDEF',                  '1'),
+    ("HAVE_UTIME_H",                   'UNDEF',                  '1'),
+    ("HAVE_GLOB_H",                    'UNDEF',                  '1'),
+    ("HAVE_DIRENT_H",                  'UNDEF',                  '1'),
+    ("HAVE_SYS_SOUNDCARD_H",           'UNDEF',                  '1'),
+    ("HAVE_RTTI",                      '1',                      '1'),
+    ("GLOBAL_OPERATOR_NEW_EXCEPTIONS", 'UNDEF',                  '1'),
+    ("OLD_STYLE_ALLOCATOR",            'UNDEF',                  'UNDEF'),
+    ("GNU_STYLE_ALLOCATOR",            'UNDEF',                  '1'),
+    ("VC6_STYLE_ALLOCATOR",            'UNDEF',                  'UNDEF'),
+    ("MODERN_STYLE_ALLOCATOR",         'UNDEF',                  'UNDEF'),
+    ("NO_STYLE_ALLOCATOR",             '1',                      'UNDEF'),
+    ("HAVE_ZLIB",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_PNG",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_JPEG",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_TIFF",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_VRPN",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_FMOD",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_NVIDIACG",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_NSPR",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_FREETYPE",                  'UNDEF',                  'UNDEF'),
+    ("HAVE_FFTW",                      'UNDEF',                  'UNDEF'),
+    ("HAVE_SSL",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_NET",                       'UNDEF',                  'UNDEF'),
+    ("HAVE_CG",                        'UNDEF',                  'UNDEF'),
+    ("HAVE_CGGL",                      'UNDEF',                  'UNDEF'),
+    ]
+
+DTOOLCONFIG={}
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    for key,win,unix in DTOOLDEFAULTS:
+        DTOOLCONFIG[key] = win
+else:
+    for key,win,unix in DTOOLDEFAULTS:
+        DTOOLCONFIG[key] = unix
+
+########################################################################
+##
+## Help with packages.
+##
+## Output some brief information to help someone understand what the
+## package options are.
+##
+########################################################################
+
+def packageInfo():
+    print """
+  See panda3d/doc/INSTALL-PP for more detailed information.
+
+  3D modeling an painting packages:
+    MAX5      3D Studio Max version 5
+    MAX6      3D Studio Max version 6
+    MAX7      3D Studio Max version 7
+              "uri?"
+              (for .??? files)
+
+    MAYA5     Maya version 5
+    MAYA6     Maya version 6
+              "uri?"
+              (for .??? files)
+
+  Audio playback:
+    FMOD      f mod
+              "http://www.fmod.org/"
+              A music and sound effects library (including playback).
+              (for .wav, .mp3 and other files)
+
+    MILES     Miles Sound System from RAD Game Tools
+              "http://www.radgametools.com/default.htm"
+              A proprietary (non-opensource) audio library.
+              (for .wav, .mp3, and other files).
+
+  Compression/decompression:
+    ZLIB      z lib
+              "http://www.gzip.org/zlib"
+              A commression/decomression library.
+              (for .zip and similar files and data)
+
+  Font manipulation:
+    FREETYPE  free type
+              "http://www.freetype.org/"
+              A font manipulation library.
+              (for .ttf files).
+
+
+  Image support libraries:
+    JPEG      Join Photographic Experts Group
+              "http://www.ijg.org"
+              An image library.
+              (.jpg and .jpeg files)
+
+    PNG       Portable Network Graphics
+              "http://www.libpng.org"
+              An image library.
+              (.png files)
+
+    TIFF      Tagged Image File Format
+              "ftp://ftp.sgi.com/graphics/tiff"
+              An image library.
+              (.tiff files)
+
+  Misc libraries:
+    HELIX
+              "uri?"
+              (for .??? files)
+              A ??? library.
+
+    FFTW      Fast Fourier Transform (in the West)
+              "http://www.fftw.org/"
+              A library for computing DFT in one or more dimensions.
+
+    NVIDIACG  nVidia cg
+              "http://developer.nvidia.com/page/cg_main.html"
+              (for .??? files)
+              A library for gpu programming (shaders and such).
+
+  Network communication:
+    SSL       Open Secure Socket Layer
+              "http://www.openssl.org/"
+              A network encryption library.
+
+    NSPR      Netscape Portable Runtime
+              "http://www.mozilla.org/projects/nspr/"
+              Used for network sockets and threading.
+
+  User input:
+    VRPN      Virtual Reality Peripheral Network
+              "http://www.cs.unc.edu/Research/vrpn/"
+              A controller/peripheral input library.
+"""
+
+########################################################################
+##
+## Command-line parser.
+##
+## You can type "makepanda --help" to see all the options.
+##
+########################################################################
+
+def usage(problem):
+    if (problem):
+        print ""
+        print '***', problem, '***'
+    print ""
+    print "Makepanda generates a 'built' subdirectory containing a"
+    print "compiled copy of Panda3D.  Command-line arguments are:"
+    print ""
+    print "  --help            (print the help message you're reading now)"
+    print "  --package-info    (help info about the optional packages)"
+    print "  --prefix X        (install into prefix dir, default \"built\")"
+    print "  --compiler X      (currently, compiler can only be MSVC7,LINUXA)"
+    print "  --optimize X      (optimization level can be 1,2,3,4)"
+    print "  --thirdparty X    (directory containing third-party software)"
+    print "  --complete        (copy samples and direct into the build)"
+    print "  --installer       (build an executable installer)"
+    print "  --ppgame X        (build a prepackaged game - see manual)"
+    print "  --v1 X            (set the major version number)"
+    print "  --v2 X            (set the minor version number)"
+    print "  --v3 X            (set the sequence version number)"
+    print "  --lzma            (use lzma compression when building installer)"
+    print ""
+    for pkg in PACKAGES:
+        p = pkg.lower()
+        print "  --use-%-9s   --no-%-9s (enable/disable use of %s)"%(p, p, pkg)
+    print ""
+    print "  --nothing         (disable every third-party lib)"
+    print "  --everything      (enable every third-party lib)"
+    print ""
+    print "  --quiet           (print less output)"
+    print "  --verbose         (print more output and debugging info)"
+    print ""
+    print "The simplest way to compile panda is to just type:"
+    print ""
+    print "  makepanda --everything"
+    print ""
+    sys.exit(1)
+
+def parseopts(args):
+    global PREFIX,COMPILER,OPTIMIZE,OMIT,THIRDPARTY,INSTALLER,GENMAN
+    global PPGAME,COPYEXTRAS,VERSION,COMPRESSOR,DIRECTXSDK,VERBOSE
+    longopts = [
+        "help","package-info","prefix=","compiler=","directx-sdk=","thirdparty=",
+        "optimize=","everything","nothing","installer","ppgame=","quiet","verbose",
+        "complete","version=","lzma"]
+    anything = 0
+    for pkg in PACKAGES: longopts.append("no-"+pkg.lower())
+    for pkg in PACKAGES: longopts.append("use-"+pkg.lower())
+    try:
+        opts, extras = getopt.getopt(args, "", longopts)
+        for option,value in opts:
+            if (option=="--help"): raise "usage"
+            elif (option=="--package-info"): raise "package-info"
+            elif (option=="--prefix"): PREFIX=value
+            elif (option=="--compiler"): COMPILER=value
+            elif (option=="--directx-sdk"): DIRECTXSDK=value
+            elif (option=="--thirdparty"): THIRDPARTY=value
+            elif (option=="--optimize"): OPTIMIZE=value
+            elif (option=="--quiet"): VERBOSE-=1
+            elif (option=="--verbose"): VERBOSE+=1
+            elif (option=="--installer"): INSTALLER=1
+            elif (option=="--genman"): GENMAN=1
+            elif (option=="--ppgame"): PPGAME=value
+            elif (option=="--complete"): COMPLETE=1
+            elif (option=="--everything"): OMIT=[]
+            elif (option=="--nothing"): OMIT=PACKAGES[:]
+            elif (option=="--version"):
+                VERSION=value
+                if (len(VERSION.split(".")) != 3): raise "usage"
+            elif (option=="--lzma"): COMPRESSOR="lzma"
+            else:
+                for pkg in PACKAGES:
+                    if (option=="--use-"+pkg.lower()):
+                        if (OMIT.count(pkg)): OMIT.remove(pkg)
+                        break
+                for pkg in PACKAGES:
+                    if (option=="--no-"+pkg.lower()):
+                        if (OMIT.count(pkg)==0): OMIT.append(pkg)
+                        break
+            anything = 1
+    except "package-info": packageInfo()
+    except "help": usage('')
+    except Exception, e: usage(e)
+    if (anything==0): usage(0)
+    if   (OPTIMIZE=="1"): OPTIMIZE=1
+    elif (OPTIMIZE=="2"): OPTIMIZE=2
+    elif (OPTIMIZE=="3"): OPTIMIZE=3
+    elif (OPTIMIZE=="4"): OPTIMIZE=4
+    else: usage("Invalid setting for OPTIMIZE")
+    if (COMPILERS.count(COMPILER)==0): usage("Invalid setting for COMPILER: "+COMPILER)
+
+parseopts(sys.argv[1:])
+
+########################################################################
+#
+# Avoid trouble by not allowing weird --prefix or --thirdparty
+#
+# One of my goals for makepanda was for it to be maintainable.
+# I found that trying to support arbitrary pathnames for "prefix"
+# and "thirdparty" required the use of lots of backslashes and
+# quotation marks, which were quite frankly hard to get right.
+# I think it's better to simply rule out weird pathnames.
+#
+########################################################################
+
+PREFIX     = PREFIX.replace("\\","/")
+THIRDPARTY = THIRDPARTY.replace("\\","/")
+
+if (PREFIX.count(" ")  or THIRDPARTY.count(" ")):
+  sys.exit("The --prefix and --thirdparty may not contain spaces")
+if (PREFIX.count('"')  or THIRDPARTY.count('"')):
+  sys.exit("The --prefix and --thirdparty may not contain quotation marks")
+
+########################################################################
+#
+# Locate the root of the panda tree
+#
+########################################################################
+
+PANDASOURCE=os.path.dirname(os.path.abspath(sys.path[0]))
+
+if ((os.path.exists(os.path.join(PANDASOURCE,"makepanda/makepanda.py"))==0) or
+    (os.path.exists(os.path.join(PANDASOURCE,"dtool","src","dtoolbase","dtoolbase.h"))==0) or
+    (os.path.exists(os.path.join(PANDASOURCE,"panda","src","pandabase","pandabase.h"))==0)):
+    sys.exit("I am unable to locate the root of the panda source tree.")
+
+os.chdir(PANDASOURCE)
+
+########################################################################
+##
+## If you have the "sdks" directory, supply all sdks
+##
+## This is a temporary hack, it may go away.
+##
+########################################################################
+
+if (os.path.isdir("sdks")):
+    DIRECTXSDK="sdks/directx"
+    MAXSDKCS["MAX5"] = "sdks/maxsdk5"
+    MAXSDKCS["MAX6"] = "sdks/maxsdk6"
+    MAXSDKCS["MAX7"] = "sdks/maxsdk7"
+    MAXSDK["MAX5"]   = "sdks/maxsdk5"
+    MAXSDK["MAX6"]   = "sdks/maxsdk6"
+    MAXSDK["MAX7"]   = "sdks/maxsdk7"
+    MAYASDK["MAYA5"] = "sdks/maya5"
+    MAYASDK["MAYA6"] = "sdks/maya6"
+    MAYASDK["MAYA65"] = "sdks/maya65"
+
+########################################################################
+##
+## Locate the DirectX SDK
+##
+########################################################################
+
+if (sys.platform == "win32" or sys.platform == "cygwin") and DIRECTXSDK is None:
+    dxdir = GetRegistryKey("SOFTWARE\\Microsoft\\DirectX SDK", "DX9SDK Samples Path")
+    if (dxdir != 0): DIRECTXSDK = os.path.dirname(dxdir)
+    else:
+        dxdir = GetRegistryKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment","DXSDK_DIR")
+        if (dxdir != 0): DIRECTXSDK=dxdir
+        else:
+            dxdir = GetRegistryKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment","DXSDKROOT")
+            if dxdir != 0:
+                if dxdir[-2:]=="/.":
+                    DIRECTXSDK=dxdir[:-1]
+                else:
+                    DIRECTXSDK=dxdir
+            else:
+                sys.exit("The registry does not appear to contain a pointer to the DirectX 9.0 SDK.")
+    DIRECTXSDK=DIRECTXSDK.replace("\\", "/").rstrip("/")
+
+########################################################################
+##
+## Locate the Maya 5.0 and Maya 6.0 SDK
+##
+########################################################################
+
+MAYAVERSIONS=[("MAYA5",  "SOFTWARE\\Alias|Wavefront\\Maya\\5.0\\Setup\\InstallPath"),
+              ("MAYA6",  "SOFTWARE\\Alias|Wavefront\\Maya\\6.0\\Setup\\InstallPath"),
+              ("MAYA65", "SOFTWARE\\Alias|Wavefront\\Maya\\6.5\\Setup\\InstallPath")
+]
+
+for (ver,key) in MAYAVERSIONS:
+    if (OMIT.count(ver)==0) and (MAYASDK.has_key(ver)==0):
+        if (sys.platform == "win32" or sys.platform == "cygwin"):
+            MAYASDK[ver]=GetRegistryKey(key, "MAYA_INSTALL_LOCATION")
+            if (MAYASDK[ver] == 0):
+                WARNINGS.append("The registry does not appear to contain a pointer to the "+ver+" SDK.")
+                WARNINGS.append("I have automatically added this command-line option: --no-"+ver.lower())
+                OMIT.append(ver)
+            else:
+                MAYASDK[ver] = MAYASDK[ver].replace("\\", "/").rstrip("/")
+        else:
+            WARNINGS.append(ver+" not yet supported under linux")
+            WARNINGS.append("I have automatically added this command-line option: --no-"+ver.lower())
+            OMIT.append(ver)
+
+########################################################################
+##
+## Locate the 3D Studio Max and Character Studio SDKs
+##
+########################################################################
+
+MAXVERSIONS = [("MAX5", "SOFTWARE\\Autodesk\\3DSMAX\\5.0\\MAX-1:409", "uninstallpath", "Cstudio\\Sdk"),
+               ("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0",            "installdir",    "maxsdk\\cssdk\\include"),
+               ("MAX7", "SOFTWARE\\Autodesk\\3DSMAX\\7.0",            "Installdir",    "maxsdk\\include\\CS")]
+
+for version,key1,key2,subdir in MAXVERSIONS:
+    if (OMIT.count(version)==0) and (MAXSDK.has_key(version)==0):
+        if (sys.platform == "win32" or sys.platform == "cygwin"):
+            top = GetRegistryKey(key1,key2)
+            if (top == 0):
+                WARNINGS.append("The registry does not appear to contain a pointer to "+version)
+                WARNINGS.append("I have automatically added this command-line option: --no-"+version.lower())
+                OMIT.append(version)
+            else:
+                if (os.path.isdir(top + "\\" + subdir)==0):
+                    WARNINGS.append("Your copy of "+version+" does not include the character studio SDK")
+                    WARNINGS.append("I have automatically added this command-line option: --no-"+version.lower())
+                    OMIT.append(version)
+                else:
+                    MAXSDK[version] = top + "maxsdk"
+                    MAXSDKCS[version] = top + subdir
+        else:
+            WARNINGS.append(version+" not yet supported under linux")
+            WARNINGS.append("I have automatically added this command-line option: --no-"+version.lower())
+            OMIT.append(version)
+            
+########################################################################
+##
+## Locate the NSPR SDK
+##
+########################################################################
+
+if NSPR_SDK is None:
+    if sys.platform == "win32" or sys.platform == "cygwin":
+        nsprPaths = ["C:/Python22", 'thirdparty/nspr']
+    else:
+        nsprPaths = ["/usr/include/nspr", 'thirdparty/win-python']
+    for p in nsprPaths:
+        if os.path.isdir(p): NSPR_SDK = p
+    if NSPR_SDK is None:
+        sys.exit("Cannot find the NSPR SDK")
+
+########################################################################
+##
+## Locate the Python SDK
+##
+########################################################################
+
+if PYTHONSDK is None:
+    if sys.platform == "win32" or sys.platform == "cygwin":
+        pythonPaths = [
+            "C:/Python22",
+            "C:/Python23",
+            "C:/Python24",
+            "C:/Python25",
+            'thirdparty/win-python']
+    else:
+        pythonPaths = [
+            "/usr/include/python2.5",
+            "/usr/include/python2.4",
+            "/usr/include/python2.3",
+            "/usr/include/python2.2"]
+    for p in pythonPaths:
+        if os.path.isdir(p): PYTHONSDK = p
+    if PYTHONSDK is None:
+        sys.exit("Cannot find the Python SDK")
+            
+########################################################################
+##
+## Locate the SSL SDK
+##
+########################################################################
+
+if sys.platform == "win32" or sys.platform == "cygwin":
+    SDK_SEARCH_PATHS = {
+        'ssl': [
+            "C:/openssl",
+            'thirdparty/ssl']
+else:
+    SDK_SEARCH_PATHS = {
+        'ssl': [
+            "/usr/include/ssl",
+            'thirdparty/win-python']
+for package in packages:
+    if SDK_LIB_PATH.get(package) is None:
+        for p in SDK_SEARCH_PATHS.get(package, '.'):
+            if os.path.isdir(p):
+                SDK_LIB_PATH[package] = p
+    if SDK_LIB_PATH.get(package) is None or not os.path.isdir(SDK_LIB_PATH.get(package)):
+        sys.exit("The SDK for %s was not found."%(package,))
+
+########################################################################
+##
+## Locate Visual Studio 7.0 or 7.1
+##
+## The visual studio compiler doesn't work unless you set up a
+## couple of environment variables to point at the compiler.
+##
+########################################################################
+
+if (COMPILER == "MSVC7" or COMPILER=="MSVC71"):
+    vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\7.1", "InstallDir")
+    if ((vcdir == 0) or (vcdir[-13:] != "\\Common7\\IDE\\")):
+        vcdir = GetRegistryKey("SOFTWARE\\Microsoft\\VisualStudio\\7.0", "InstallDir")
+        if ((vcdir == 0) or (vcdir[-13:] != "\\Common7\\IDE\\")):
+            sys.exit("The registry does not appear to contain a pointer to the Visual Studio 7 install directory")
+    vcdir = vcdir[:-12]
+    old_env_path    = ""
+    old_env_include = ""
+    old_env_lib     = ""
+    if (os.environ.has_key("PATH")):    old_env_path    = os.environ["PATH"]
+    if (os.environ.has_key("INCLUDE")): old_env_include = os.environ["INCLUDE"]
+    if (os.environ.has_key("LIB")):     old_env_lib     = os.environ["LIB"]
+    os.environ["PATH"] = vcdir + "vc7\\bin;" + vcdir + "Common7\\IDE;" + vcdir + "Common7\\Tools;" + vcdir + "Common7\\Tools\\bin\\prerelease;" + vcdir + "Common7\\Tools\\bin;" + old_env_path
+    os.environ["INCLUDE"] = vcdir + "vc7\\ATLMFC\\INCLUDE;" + vcdir + "vc7\\include;" + vcdir + "vc7\\PlatformSDK\\include\\prerelease;" + vcdir + "vc7\\PlatformSDK\\include;" + old_env_include
+    os.environ["LIB"] = vcdir + "vc7\\ATLMFC\\LIB;" + vcdir + "vc7\\LIB;" + vcdir + "vc7\\PlatformSDK\\lib\\prerelease;" + vcdir + "vc7\\PlatformSDK\\lib;" + old_env_lib
+    sys.stdout.flush()
+
+##########################################################################################
+#
+# Disable Helix unless running under Windows
+#
+##########################################################################################
+
+if (sys.platform != "win32" or sys.platform == "cygwin"):
+    if (OMIT.count("HELIX")==0):
+        WARNINGS.append("HELIX not yet supported under linux")
+        WARNINGS.append("I have automatically added this command-line option: --no-helix")
+        OMIT.append("HELIX")
+
+##########################################################################################
+#
+# See if there's a "MILES" subdirectory under 'thirdparty'
+#
+##########################################################################################
+
+if (os.path.isdir(os.path.join(THIRDPARTY, "win-libs-vc7", "miles"))==0):
+    if (OMIT.count("MILES")==0):
+        WARNINGS.append("You do not have a copy of MILES sound system")
+        WARNINGS.append("I have automatically added this command-line option: --no-miles")
+        OMIT.append("MILES")
+
+##########################################################################################
+#
+# Enable or Disable runtime debugging mechanisms based on optimize level.
+#
+##########################################################################################
+
+for x in PACKAGES:
+    if (OMIT.count(x)==0):
+        if (DTOOLCONFIG.has_key("HAVE_"+x)):
+            DTOOLCONFIG["HAVE_"+x] = '1'
+
+DTOOLCONFIG["HAVE_NET"] = DTOOLCONFIG["HAVE_NSPR"]
+
+if (OMIT.count("NVIDIACG")==0):
+    DTOOLCONFIG["HAVE_CG"] = '1'
+    DTOOLCONFIG["HAVE_CGGL"] = '1'
+
+if (OPTIMIZE <= 3):
+    if (DTOOLCONFIG["HAVE_NET"] != 'UNDEF'):
+        DTOOLCONFIG["DO_PSTATS"] = '1'
+
+if (OPTIMIZE <= 3):
+    DTOOLCONFIG["DO_COLLISION_RECORDING"] = '1'
+
+#if (OPTIMIZE <= 2):
+#    DTOOLCONFIG["TRACK_IN_INTERPRETER"] = '1'
+
+if (OPTIMIZE <= 3):
+    DTOOLCONFIG["DO_MEMORY_USAGE"] = '1'
+
+#if (OPTIMIZE <= 1):
+#    DTOOLCONFIG["DO_PIPELINING"] = '1'
+
+if (OPTIMIZE <= 3):
+    DTOOLCONFIG["NOTIFY_DEBUG"] = '1'
+
+##########################################################################################
+#
+# Verify that LD_LIBRARY_PATH contains the PREFIX/lib directory.
+#
+# If not, add it on a temporary basis, and issue a warning.
+#
+##########################################################################################
+
+if (sys.platform != "win32" and sys.platform != "cygwin"):
+    BUILTLIB = os.path.abspath(PREFIX+"/lib")
+    try:
+        LDPATH = []
+        f = file("/etc/ld.so.conf","r")
+        for line in f: LDPATH.append(line.rstrip())
+        f.close()
+    except: LDPATH = []
+    if (os.environ.has_key("LD_LIBRARY_PATH")):
+        LDPATH = LDPATH + os.environ["LD_LIBRARY_PATH"].split(":")
+    if (LDPATH.count(BUILTLIB)==0):
+        WARNINGS.append("Caution: the "+PREFIX+"/lib directory is not in LD_LIBRARY_PATH")
+        WARNINGS.append("or /etc/ld.so.conf.  You must add it before using panda.")
+        if (os.environ.has_key("LD_LIBRARY_PATH")):
+            os.environ["LD_LIBRARY_PATH"] = BUILTLIB + ":" + os.environ["LD_LIBRARY_PATH"]
+        else:
+            os.environ["LD_LIBRARY_PATH"] = BUILTLIB
+
+########################################################################
+##
+## Give a Status Report on Command-Line Options
+##
+########################################################################
+
+def printStatus(header,warnings):
+    global VERBOSE
+    if VERBOSE >= -2:
+        print ""
+        print "-------------------------------------------------------------------"
+        print header
+        tkeep = ""
+        tomit = ""
+        for x in PACKAGES:
+            if (OMIT.count(x)==0): tkeep = tkeep + x + " "
+            else:                  tomit = tomit + x + " "
+        print "Makepanda: Prefix Directory:",PREFIX
+        print "Makepanda: Compiler:",COMPILER
+        print "Makepanda: Optimize:",OPTIMIZE
+        print "Makepanda: Keep Pkg:",tkeep
+        print "Makepanda: Omit Pkg:",tomit
+        print "Makepanda: Thirdparty dir:",THIRDPARTY
+        print "Makepanda: DirectX SDK dir:",DIRECTXSDK
+        print "Makepanda: Verbose vs. Quiet Level:",VERBOSE
+        print "Makepanda: PYTHONSDK:", PYTHONSDK
+        if (GENMAN): print "Makepanda: Generate API reference manual"
+        else       : print "Makepanda: Don't generate API reference manual"
+        if (sys.platform == "win32" or sys.platform == "cygwin"):
+            if INSTALLER:  print "Makepanda: Build installer, using",COMPRESSOR
+            else        :  print "Makepanda: Don't build installer"
+            if PPGAME!=0:  print "Makepanda: Build pprepackaged game ",PPGAME,"using",COMPRESSOR
+            else        :  print "Makepanda: Don't build pprepackaged game"
+        print "Makepanda: Version ID: "+VERSION
+        for x in warnings: print "Makepanda: "+x
+        print "-------------------------------------------------------------------"
+        print ""
+        sys.stdout.flush()
+
+printStatus("Makepanda Initial Status Report", WARNINGS)
+
+
+##########################################################################################
+#
+# Create the directory tree
+#
+##########################################################################################
+
+MakeDirectory(PREFIX)
+MakeDirectory(PREFIX+"/bin")
+MakeDirectory(PREFIX+"/lib")
+MakeDirectory(PREFIX+"/etc")
+MakeDirectory(PREFIX+"/plugins")
+MakeDirectory(PREFIX+"/pandac")
+MakeDirectory(PREFIX+"/pandac/input")
+MakeDirectory(PREFIX+"/include")
+MakeDirectory(PREFIX+"/include/parser-inc")
+MakeDirectory(PREFIX+"/include/parser-inc/openssl")
+MakeDirectory(PREFIX+"/include/parser-inc/Cg")
+MakeDirectory(PREFIX+"/include/openssl")
+MakeDirectory(PREFIX+"/direct")
+MakeDirectory(PREFIX+"/tmp")
+
+########################################################################
+##
+## PkgSelected(package-list,package)
+##
+## This function returns true if the package-list contains the
+## package, AND the OMIT list does not contain the package.
+##
+########################################################################
+
+def PkgSelected(pkglist, pkg):
+    if (pkglist.count(pkg)==0): return 0
+    if (OMIT.count(pkg)): return 0
+    return 1
+
+########################################################################
+##
+## These two globals accumulate a global list of everything compiled.
+##
+########################################################################
+
+ALLIN=[]
+ALLTARGETS=[]
+
+########################################################################
+##
+## The CXX include-cache.
+##
+## Dictionary: for each CXX source file, a list of all the
+## include-directives inside that file.
+##
+## Makepanda analyzes include-directives to determine the dependencies
+## of C source files.  This requires us to read the C source files,
+## a time-consuming process.  This means that doing a 'makepanda'
+## takes quite a bit of time, even if there's nothing to compile.
+##
+## To accelerate this process, we store the list of include-directives
+## in each source file in the "CXX include-cache".  This cache is
+## preserved (using the 'cPickle' module) from execution to execution
+## of makepanda.  The use of file dates in the cache makes it very
+## unlikely for the cache to get out-of-sync with the source tree.
+##
+########################################################################
+
+global CxxIncludeCache
+CxxIncludeCache = {}
+
+iCachePath=PREFIX+"/tmp/makepanda-icache"
+try: icache = open(iCachePath,'rb')
+except: icache = 0
+if (icache!=0):
+    CxxIncludeCache = cPickle.load(icache)
+    icache.close()
+
+########################################################################
+##
+## CxxGetIncludes
+##
+## return a list of the include-directives in a given source file
+##
+########################################################################
+
+global CxxIncludeRegex
+CxxIncludeRegex = re.compile('^[ \t]*[#][ \t]*include[ \t]+"([^"]+)"[ \t\r\n]*$')
+
+def CxxGetIncludes(path):
+    date = filedate(path)
+    if (CxxIncludeCache.has_key(path)):
+        cached = CxxIncludeCache[path]
+        if (cached[0]==date): return cached[1]
+    try: sfile = open(path, 'rb')
+    except: sys.exit("Cannot open source file \""+path+"\" for reading.")
+    include = []
+    for line in sfile:
+        match = CxxIncludeRegex.match(line,0)
+        if (match):
+            incname = match.group(1)
+            include.append(incname)
+    sfile.close()
+    CxxIncludeCache[path] = [date, include]
+    return include
+
+########################################################################
+##
+## CxxFindSource
+##
+## given a source file name and a directory list, searches the
+## directory list for the given source file.  Returns the full
+## pathname of the located file.
+##
+########################################################################
+
+def CxxFindSource(name, ipath):
+    for dir in ipath:
+        if (dir == "."): full = name
+        else: full = dir + "/" + name
+        if filedate(full) > 0: return full
+    return 0
+
+########################################################################
+##
+## CxxFindHeader
+##
+## given a source file name and an include directive in that source
+## file, locates the relevant header file.
+##
+########################################################################
+
+def CxxFindHeader(srcfile, incfile, ipath):
+    if (incfile[:1]=="."):
+        last = srcfile.rfind("/")
+        if (last < 0): sys.exit("CxxFindHeader cannot handle this case #1")
+        srcdir = srcfile[:last+1]
+        while (incfile[:1]=="."):
+            if (incfile[:2]=="./"):
+                incfile = incfile[2:]
+            elif (incfile[:3]=="../"):
+                incfile = incfile[3:]
+                last = srcdir[:-1].rfind("/")
+                if (last < 0): sys.exit("CxxFindHeader cannot handle this case #2")
+                srcdir = srcdir[:last+1]
+            else: sys.exit("CxxFindHeader cannot handle this case #3")
+        full = srcdir + incfile
+        if filedate(full) > 0: return full
+        return 0
+    else: return CxxFindSource(incfile, ipath)
+
+########################################################################
+##
+## CxxCalcDependencies(srcfile, ipath, ignore)
+##
+## Calculate the dependencies of a source file given a
+## particular include-path.  Any file in the list of files to
+## ignore is not considered.
+##
+########################################################################
+
+global CxxIgnoreHeader
+global CxxDependencyCache
+CxxIgnoreHeader = {}
+CxxDependencyCache = {}
+
+def CxxCalcDependencies(srcfile, ipath, ignore):
+    if (CxxDependencyCache.has_key(srcfile)):
+        return CxxDependencyCache[srcfile]
+    if (ignore.count(srcfile)): return []
+    dep = {}
+    dep[srcfile] = 1
+    includes = CxxGetIncludes(srcfile)
+    for include in includes:
+        if (CxxIgnoreHeader.has_key(include)==0):
+            header = CxxFindHeader(srcfile, include, ipath)
+            if (header==0):
+                print "CAUTION: header file "+include+" cannot be found."
+            else:
+                if (ignore.count(header)==0):
+                    hdeps = CxxCalcDependencies(header, ipath, [srcfile]+ignore)
+                    for x in hdeps: dep[x] = 1
+    result = dep.keys()
+    CxxDependencyCache[srcfile] = result
+    return result
+
+def CxxCalcDependenciesAll(srcfiles, ipath):
+    dep = {}
+    for srcfile in srcfiles:
+        for x in CxxCalcDependencies(srcfile, ipath, []):
+            dep[x] = 1
+    return dep.keys()
+
+########################################################################
+##
+## ConditionalWriteFile
+##
+## Creates the given file, but only if it doesn't already
+## contain the correct contents.
+##
+########################################################################
+
+def ConditionalWriteFile(dest,desiredcontents):
+    try:
+        rfile = open(dest, 'rb')
+        contents = rfile.read(-1)
+        rfile.close()
+    except:
+        contents=0
+    if contents != desiredcontents:
+        if VERBOSE:
+            print "Regenerating file: "+dest
+        sys.stdout.flush()
+        WriteFile(dest,desiredcontents)
+
+########################################################################
+##
+## CopyFile
+##
+## Copy a file into the build tree.
+##
+########################################################################
+
+def CopyFile(dstfile,srcfile):
+    if (dstfile[-1]=='/'):
+        dstdir = dstfile
+        fnl = srcfile.rfind("/")
+        if (fnl < 0): fn = srcfile
+        else: fn = srcfile[fnl+1:]
+        dstfile = dstdir + fn
+    if (older(dstfile,srcfile)):
+        global VERBOSE
+        if VERBOSE >= 1:
+            print "Copying \"%s\" --> \"%s\""%(srcfile, dstfile)
+        WriteFile(dstfile,ReadFile(srcfile))
+        updatefiledate(dstfile)
+    ALLTARGETS.append(dstfile)
+
+########################################################################
+##
+## CopyAllFiles
+##
+## Copy the contents of an entire directory into the build tree.
+##
+########################################################################
+
+def CopyAllFiles(dstdir, srcdir, suffix=""):
+    suflen = len(suffix)
+    files = os.listdir(srcdir)
+    for x in files:
+        if (os.path.isfile(srcdir+x)):
+            if (suflen==0) or (x[-suflen:]==suffix):
+                CopyFile(dstdir+x, srcdir+x)
+
+########################################################################
+##
+## CopyTree
+##
+## Copy a directory into the build tree.
+##
+########################################################################
+
+def CopyTree(dstdir,srcdir):
+    if (os.path.isdir(dstdir)): return 0
+    if (COMPILER=="MSVC7" or COMPILER=="MSVC71"): cmd = 'xcopy.exe /I/Y/E/Q "' + srcdir + '" "' + dstdir + '"'
+    elif (COMPILER=="LINUXA"): cmd = 'cp --recursive --force ' + srcdir + ' ' + dstdir
+    oscmd(cmd)
+    updatefiledate(dstdir)
+
+def CompileBison(pre, dstc, dsth, src):
+    """
+    Generate a CXX file from a source YXX file.
+    """
+    (base, fn) = os.path.split(src)
+    dstc=base+"/"+dstc
+    dsth=base+"/"+dsth
+    if (older(dstc,src) or older(dsth,src)):
+        CopyFile(PREFIX+"/tmp/", src)
+        if (COMPILER=="MSVC7"):
+            CopyFile(PREFIX+"/tmp/", "thirdparty/win-util/bison.simple")
+            bisonFullPath=os.path.abspath("thirdparty/win-util/bison.exe")
+            oslocalcmd(PREFIX+"/tmp", bisonFullPath+" -y -d -p " + pre + " " + fn)
+            osmove(PREFIX+"/tmp/y_tab.c", dstc)
+            osmove(PREFIX+"/tmp/y_tab.h", dsth)
+        elif (COMPILER=="LINUXA"):
+            oslocalcmd(PREFIX+"/tmp", "bison -y -d -p "+pre+" "+fn)
+            osmove(PREFIX+"/tmp/y.tab.c", dstc)
+            osmove(PREFIX+"/tmp/y.tab.h", dsth)
+        else:
+            oslocalcmd(PREFIX+"/tmp", "bison -y -d -p "+pre+" "+fn)
+            osmove(PREFIX+"/tmp/y.tab.c", dstc)
+            osmove(PREFIX+"/tmp/y.tab.h", dsth)
+        updatefiledate(dstc)
+        updatefiledate(dsth)
+
+def CompileFlex(pre,dst,src,dashi):
+    """
+    Generate a CXX file from a source LXX file.
+    """
+    last = src.rfind("/")
+    fn = src[last+1:]
+    dst = PREFIX+"/tmp/"+dst
+    if (older(dst,src)):
+        CopyFile(PREFIX+"/tmp/", src)
+        if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+            flexFullPath=os.path.abspath("thirdparty/win-util/flex.exe")
+            if (dashi): oslocalcmd(PREFIX+"/tmp", flexFullPath+" -i -P" + pre + " -olex.yy.c " + fn)
+            else:       oslocalcmd(PREFIX+"/tmp", flexFullPath+"    -P" + pre + " -olex.yy.c " + fn)
+            replaceInFile(PREFIX+'/tmp/lex.yy.c', dst, '#include <unistd.h>', '')
+        elif (COMPILER=="LINUXA"):
+            if (dashi): oslocalcmd(PREFIX+"/tmp", "flex -i -P" + pre + " -olex.yy.c " + fn)
+            else:       oslocalcmd(PREFIX+"/tmp", "flex    -P" + pre + " -olex.yy.c " + fn)
+            oscmd('cp '+PREFIX+'/tmp/lex.yy.c '+dst)
+        updatefiledate(dst)
+
+########################################################################
+##
+## CompileC
+##
+## Generate an OBJ file from a source CXX file.
+##
+########################################################################
+
+priorIPath=None
+def checkIfNewDir(path):
+    global priorIPath
+    if priorIPath != path:
+        print "\nStarting compile in \"%s\" (%s):\n"%(path,prettyTime(time.time()-STARTTIME),)
+    priorIPath=path
+
+def CompileC(obj=0,src=0,ipath=[],opts=[]):
+    global VERBOSE
+    if ((obj==0)|(src==0)): sys.exit("syntax error in CompileC directive")
+    ipath = [PREFIX+"/tmp"] + ipath + [PREFIX+"/include"]
+    fullsrc = CxxFindSource(src, ipath)
+    if (fullsrc == 0): sys.exit("Cannot find source file "+src)
+    dep = CxxCalcDependencies(fullsrc, ipath, [])
+
+    if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+        wobj = PREFIX+"/tmp/"+obj
+        if (older(wobj, dep)):
+            if VERBOSE >= 0:
+                checkIfNewDir(ipath[1])
+            cmd = "cl.exe /Fo" + wobj + " /nologo /c"
+            cmd = cmd + " /I" + PREFIX + "/python/include"
+            if (opts.count("DXSDK")): cmd = cmd + ' /I"' + DIRECTXSDK + '/include"'
+            for ver in ["MAYA5","MAYA6","MAYA65"]:
+              if (opts.count(ver)): cmd = cmd + ' /I"' + MAYASDK[ver] + '/include"'
+            for max in ["MAX5","MAX6","MAX7"]:
+                if (PkgSelected(opts,max)):
+                    cmd = cmd + ' /I"' + MAXSDK[max] + '/include" /I"' + MAXSDKCS[max] + '" /D' + max
+            for pkg in PACKAGES:
+                if (pkg[:4] != "MAYA") and PkgSelected(opts,pkg):
+                    cmd = cmd + " /I" + SDK_LIB_PATH.get(pkg.lower(), '.') + "/include"
+            for x in ipath: cmd = cmd + " /I" + x
+            if (opts.count('NOFLOATWARN')): cmd = cmd + ' /wd4244 /wd4305'
+            if (opts.count("WITHINPANDA")): cmd = cmd + ' /DWITHIN_PANDA'
+            if (OPTIMIZE==1): cmd = cmd + " /Zc:forScope /MD /Zi /O2 /Ob2 /DFORCE_INLINING /RTCs /GS"
+            if (OPTIMIZE==2): cmd = cmd + " /Zc:forScope /MD /Zi /O2 /Ob2 /DFORCE_INLINING "
+            if (OPTIMIZE==3): cmd = cmd + " /Zc:forScope /MD /Zi /O2 /Ob2 /DFORCE_INLINING "
+            if (OPTIMIZE==4): cmd = cmd + " /Zc:forScope /MD /Zi /O2 /Ob2 /DFORCE_INLINING /GL /DNDEBUG "
+            cmd = cmd + " /Fd" + wobj[:-4] + ".pdb"
+            building = buildingwhat(opts)
+            if (building): cmd = cmd + " /DBUILDING_" + building
+            cmd = cmd + " /EHsc /Zm300 /DWIN32_VC /DWIN32 /W3 " + fullsrc
+            oscmd(cmd)
+            updatefiledate(wobj)
+    elif (COMPILER=="LINUXA"):
+        wobj = PREFIX+"/tmp/" + obj[:-4] + ".o"
+        if (older(wobj, dep)):
+            if VERBOSE >= 0:
+                checkIfNewDir(ipath[1])
+            if (src[-2:]==".c"): cmd = 'gcc -c -o ' + wobj
+            else:                cmd = 'g++ -ftemplate-depth-30 -c -o ' + wobj
+            cmd = cmd + ' -I"' + PYTHONSDK + '"'
+            if (PkgSelected(opts,"VRPN")):     cmd = cmd + ' -I' + THIRDPARTY + '/linux-libs-a/vrpn/include'
+            if (PkgSelected(opts,"FFTW")):     cmd = cmd + ' -I' + THIRDPARTY + '/linux-libs-a/fftw/include'
+            if (PkgSelected(opts,"FMOD")):     cmd = cmd + ' -I' + THIRDPARTY + '/linux-libs-a/fmod/include'
+            if (PkgSelected(opts,"NVIDIACG")): cmd = cmd + ' -I' + THIRDPARTY + '/linux-libs-a/nvidiacg/include'
+            if (PkgSelected(opts,"NSPR")):     cmd = cmd + ' -I' + NSPR_SDK + '/include'
+            if (PkgSelected(opts,"FREETYPE")): cmd = cmd + ' -I/usr/include/freetype2'
+            for x in ipath: cmd = cmd + ' -I' + x
+            if (opts.count("WITHINPANDA")): cmd = cmd + ' -DWITHIN_PANDA'
+            if (OPTIMIZE==1): cmd = cmd + " -g"
+            if (OPTIMIZE==2): cmd = cmd + " -O1"
+            if (OPTIMIZE==3): cmd = cmd + " -O2"
+            if (OPTIMIZE==4): cmd = cmd + " -O2"
+            building = buildingwhat(opts)
+            if (building): cmd = cmd + " -DBUILDING_" + building
+            cmd = cmd + ' ' + fullsrc
+            oscmd(cmd)
+            updatefiledate(wobj)
+
+########################################################################
+##
+## CompileRES
+##
+## Generate an RES file from a source RC file.
+##
+########################################################################
+
+def CompileRES(obj=0,src=0,ipath=[],opts=[]):
+    if ((obj==0)|(src==0)): sys.exit("syntax error in CompileRES directive")
+    fullsrc = CxxFindSource(src, ipath)
+    if (fullsrc == 0): sys.exit("Cannot find source file "+src)
+    obj = PREFIX+"/tmp/"+obj
+    wdep = CxxCalcDependencies(fullsrc, ipath, [])
+
+    if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+        if (older(obj, wdep)):
+            cmd = 'rc.exe /d "NDEBUG" /l 0x409'
+            for x in ipath: cmd = cmd + " /I" + x
+            cmd = cmd + ' /fo' + obj
+            cmd = cmd + ' ' + fullsrc
+            oscmd(cmd)
+            updatefiledate(obj)
+    elif (COMPILER=="LINUXA"):
+        sys.exit("Can only compile RES files on Windows.")
+
+########################################################################
+##
+## Interrogate
+##
+## Generate an IN file and a CXX-stub file from CXX source files
+##
+########################################################################
+
+def Interrogate(ipath=0, opts=0, outd=0, outc=0, src=0, module=0, library=0, files=0):
+    if ((ipath==0)|(opts==0)|(outd==0)|(outc==0)|(src==0)|(module==0)|(library==0)|(files==0)):
+        sys.exit("syntax error in Interrogate directive")
+    ALLIN.append(outd)
+    ipath = [PREFIX+"/tmp"] + ipath + [PREFIX+"/include"]
+    outd = PREFIX+"/pandac/input/"+outd
+    outc = PREFIX+"/tmp/"+outc
+    paths = xpaths(src+"/",files,"")
+    dep = CxxCalcDependenciesAll(paths, ipath)
+    dotdots = ""
+    for i in range(0,src.count("/")+1): dotdots = dotdots + "../"
+    building = 0
+    for x in opts:
+        if (x[:9]=="BUILDING_"): building = x[9:]
+    if (older(outc, dep) or older(outd, dep)):
+        if (COMPILER=="MSVC7"):
+            cmd = dotdots + PREFIX + "/bin/interrogate.exe"
+            cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
+            cmd = cmd + ' -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
+            if (OPTIMIZE==1): cmd = cmd + ' '
+            if (OPTIMIZE==2): cmd = cmd + ' '
+            if (OPTIMIZE==3): cmd = cmd + ' -DFORCE_INLINING'
+            if (OPTIMIZE==4): cmd = cmd + ' -DFORCE_INLINING'
+            cmd = cmd + ' -S' + dotdots + PREFIX + '/include/parser-inc'
+            cmd = cmd + ' -I' + dotdots + PREFIX + '/python/include'
+            for pkg in PACKAGES:
+                if (PkgSelected(opts,pkg)):
+                    cmd = cmd + ' -I' + dotdots + THIRDPARTY + "/win-libs-vc7/" + pkg.lower() + "/include"
+        elif (COMPILER=="MSVC71"):
+            cmd = dotdots + PREFIX + "/bin/interrogate.exe"
+            cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32'
+            cmd = cmd + ' -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall'
+            if (OPTIMIZE==1): cmd = cmd + ' '
+            if (OPTIMIZE==2): cmd = cmd + ' '
+            if (OPTIMIZE==3): cmd = cmd + ' -DFORCE_INLINING'
+            if (OPTIMIZE==4): cmd = cmd + ' -DFORCE_INLINING'
+            cmd = cmd + ' -S' + dotdots + PREFIX + '/include/parser-inc'
+            cmd = cmd + ' -I' + dotdots + PREFIX + '/python/include'
+            for pkg in PACKAGES:
+                if (PkgSelected(opts,pkg)):
+                    cmd = cmd + ' -I' + dotdots + THIRDPARTY + "/win-libs-vc7/" + pkg.lower() + "/include"
+        elif (COMPILER=="LINUXA"):
+            cmd = dotdots + PREFIX + '/bin/interrogate'
+            cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__i386__ -D__const=const'
+            if (OPTIMIZE==1): cmd = cmd + ' '
+            if (OPTIMIZE==2): cmd = cmd + ' '
+            if (OPTIMIZE==3): cmd = cmd + ' '
+            if (OPTIMIZE==4): cmd = cmd + ' '
+            cmd = cmd + ' -S' + dotdots + PREFIX + '/include/parser-inc -S/usr/include'
+            cmd = cmd + ' -I' + dotdots + PREFIX + '/python/include'
+            for pkg in PACKAGES:
+                if (PkgSelected(opts,pkg)):
+                    cmd = cmd + ' -I' + dotdots + THIRDPARTY + "/linux-libs-a/" + pkg.lower() + "/include"
+        else:
+            cmd = dotdots + PREFIX + '/bin/interrogate'
+            cmd = cmd + ' -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__i386__ -D__const=const'
+            if (OPTIMIZE==1): cmd = cmd + ' '
+            if (OPTIMIZE==2): cmd = cmd + ' '
+            if (OPTIMIZE==3): cmd = cmd + ' '
+            if (OPTIMIZE==4): cmd = cmd + ' '
+            cmd = cmd + ' -S' + dotdots + PREFIX + '/include/parser-inc -S/usr/include'
+            cmd = cmd + ' -I' + dotdots + PREFIX + '/python/include'
+            for pkg in PACKAGES:
+                if (PkgSelected(opts,pkg)):
+                    cmd = cmd + ' -I' + dotdots + THIRDPARTY + "/linux-libs-a/" + pkg.lower() + "/include"
+        cmd = cmd + ' -oc ' + dotdots + outc + ' -od ' + dotdots + outd
+        cmd = cmd + ' -fnames -string -refcount -assert -python'
+        for x in ipath: cmd = cmd + ' -I' + dotdots + x
+        if (building): cmd = cmd + " -DBUILDING_"+building
+        if (opts.count("WITHINPANDA")): cmd = cmd + " -DWITHIN_PANDA"
+        cmd = cmd + ' -module ' + module + ' -library ' + library
+        if ((COMPILER=="MSVC7" or COMPILER=="MSVC71") and opts.count("DXSDK")):
+            cmd = cmd + ' -I"' + DIRECTXSDK + '/include"'
+        for ver in ["MAYA5","MAYA6","MAYA65"]:
+          if ((COMPILER=="MSVC7" or COMPILER=="MSVC71") and opts.count(ver)):
+              cmd = cmd + ' -I"' + MAYASDK[ver] + '/include"'
+        for x in files: cmd = cmd + ' ' + x
+        oslocalcmd(src, cmd)
+        updatefiledate(outd)
+        updatefiledate(outc)
+
+########################################################################
+##
+## InterrogateModule
+##
+## Generate a python-stub CXX file from a bunch of IN files.
+##
+########################################################################
+
+def InterrogateModule(outc=0, module=0, library=0, files=0):
+    if ((outc==0)|(module==0)|(library==0)|(files==0)):
+        sys.exit("syntax error in InterrogateModule directive")
+    outc = PREFIX+"/tmp/"+outc
+    files = xpaths(PREFIX+"/pandac/input/",files,"")
+    if (older(outc, files)):
+        global VERBOSE
+        if VERBOSE >= 1:
+            print "Generating Python-stub cxx file for %s"%(library,)
+        if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+            cmd = PREFIX + '/bin/interrogate_module.exe '
+        elif (COMPILER=="LINUXA"):
+            cmd = PREFIX + '/bin/interrogate_module '
+        cmd = cmd + ' -oc ' + outc + ' -module ' + module + ' -library ' + library + ' -python '
+        for x in files: cmd = cmd + ' ' + x
+        oscmd(cmd)
+        updatefiledate(outc)
+
+########################################################################
+##
+## CompileLIB
+##
+## Generate a LIB file from a bunch of OBJ files.
+##
+########################################################################
+
+def CompileLIB(lib=0, obj=[], opts=[]):
+    if (lib==0): sys.exit("syntax error in CompileLIB directive")
+
+    if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+        if (lib[-4:]==".ilb"): wlib = PREFIX+"/tmp/" + lib[:-4] + ".lib"
+        else:                  wlib = PREFIX+"/lib/" + lib[:-4] + ".lib"
+        wobj = xpaths(PREFIX+"/tmp/",obj,"")
+        ALLTARGETS.append(wlib)
+        if (older(wlib, wobj)):
+            cmd = 'lib.exe /nologo /OUT:' + wlib
+            if (OPTIMIZE==4): cmd = cmd + " /LTCG "
+            for x in wobj: cmd = cmd + ' ' + x
+            oscmd(cmd)
+            updatefiledate(wlib)
+    elif (COMPILER=="LINUXA"):
+        if (lib[-4:]==".ilb"): wlib = PREFIX+"/tmp/" + lib[:-4] + ".a"
+        else:                  wlib = PREFIX+"/lib/" + lib[:-4] + ".a"
+        wobj = []
+        for x in obj: wobj.append(PREFIX + "/tmp/" + x[:-4] + ".o")
+        if (older(wlib, wobj)):
+            cmd = 'ar cru ' + wlib
+            for x in wobj: cmd=cmd + ' ' + x
+            oscmd(cmd)
+            updatefiledate(wlib)
+
+########################################################################
+##
+## CompileLink
+##
+## Generate a DLL or EXE file from a bunch of OBJ and LIB files.
+##
+########################################################################
+
+def CompileLink(dll=0, obj=[], opts=[], xdep=[]):
+    if (dll==0): sys.exit("Syntax error in CompileLink directive")
+
+    if (COMPILER=="MSVC7" or COMPILER=="MSVC71"):
+        lib = PREFIX+"/lib/"+dll[:-4]+".lib"
+        if ((dll[-4:] != ".exe") and (dll[-4:] != ".dll")):
+            dll = PREFIX+"/plugins/"+dll
+        else:
+            dll = PREFIX+"/bin/"+dll
+        ALLTARGETS.append(dll)
+        wobj = []
+        for x in obj:
+            suffix = x[-4:]
+            if   (suffix==".obj"): wobj.append(PREFIX+"/tmp/"+x)
+            elif (suffix==".dll"): wobj.append(PREFIX+"/lib/"+x[:-4]+".lib")
+            elif (suffix==".lib"): wobj.append(PREFIX+"/lib/"+x)
+            elif (suffix==".ilb"): wobj.append(PREFIX+"/tmp/"+x[:-4]+".lib")
+            elif (suffix==".res"): wobj.append(PREFIX+"/tmp/"+x)
+            else: sys.exit("unknown suffix in object list.")
+        if (older(dll, wobj+xdep)):
+            cmd = 'link.exe /nologo /NODEFAULTLIB:LIBCI.LIB'
+            if (dll[-4:]!=".exe"): cmd = cmd + " /DLL"
+            if (OPTIMIZE==1): cmd = cmd + " /DEBUG /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF "
+            if (OPTIMIZE==2): cmd = cmd + " /DEBUG /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF "
+            if (OPTIMIZE==3): cmd = cmd + " /DEBUG /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF "
+            if (OPTIMIZE==4): cmd = cmd + " /DEBUG /NODEFAULTLIB:MSVCRTD.LIB /OPT:REF /LTCG "
+            cmd = cmd + " /MAP /MAPINFO:EXPORTS /MAPINFO:LINES /fixed:no /incremental:no /stack:4194304 "
+            if (opts.count("NOLIBCI")): cmd = cmd + " /NODEFAULTLIB:LIBCI.LIB "
+            if (opts.count("MAXEGGDEF")): cmd = cmd + ' /DEF:pandatool/src/maxegg/MaxEgg.def'
+            cmd = cmd + ' /OUT:' + dll + ' /IMPLIB:' + lib + ' /MAP:NUL'
+            cmd = cmd + ' /LIBPATH:' + PREFIX + '/python/libs '
+            for x in wobj: cmd = cmd + ' ' + x
+            if (dll[-4:]==".exe"): cmd = cmd + ' ' + PREFIX + '/tmp/pandaIcon.res'
+            if (opts.count("D3D8") or opts.count("D3D9") or opts.count("DXDRAW") or opts.count("DXSOUND") or opts.count("DXGUID")):
+                cmd = cmd + ' /LIBPATH:"' + DIRECTXSDK + '/lib/x86"'
+                cmd = cmd + ' /LIBPATH:"' + DIRECTXSDK + '/lib"'
+            if (opts.count("D3D8")):        cmd = cmd + ' d3d8.lib d3dx8.lib dxerr8.lib'
+            if (opts.count("D3D9")):        cmd = cmd + ' d3d9.lib d3dx9.lib dxerr9.lib'
+            if (opts.count("DXDRAW")):      cmd = cmd + ' ddraw.lib'
+            if (opts.count("DXSOUND")):     cmd = cmd + ' dsound.lib'
+            if (opts.count("DXGUID")):      cmd = cmd + ' dxguid.lib'
+            if (opts.count("WINSOCK")):     cmd = cmd + " wsock32.lib"
+            if (opts.count("WINSOCK2")):    cmd = cmd + " wsock32.lib ws2_32.lib"
+            if (opts.count("WINCOMCTL")):   cmd = cmd + ' comctl32.lib'
+            if (opts.count("WINCOMDLG")):   cmd = cmd + ' comdlg32.lib'
+            if (opts.count("WINUSER")):     cmd = cmd + " user32.lib"
+            if (opts.count("WINMM")):       cmd = cmd + " winmm.lib"
+            if (opts.count("WINIMM")):      cmd = cmd + " imm32.lib"
+            if (opts.count("WINKERNEL")):   cmd = cmd + " kernel32.lib"
+            if (opts.count("WINOLDNAMES")): cmd = cmd + " oldnames.lib"
+            if (opts.count("WINGDI")):      cmd = cmd + " gdi32.lib"
+            if (opts.count("ADVAPI")):      cmd = cmd + " advapi32.lib"
+            if (opts.count("GLUT")):        cmd = cmd + " opengl32.lib glu32.lib"
+            if (PkgSelected(opts,"ZLIB")):     cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/zlib/lib/libz.lib'
+            if (PkgSelected(opts,"PNG")):      cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/png/lib/libpng.lib'
+            if (PkgSelected(opts,"JPEG")):     cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/jpeg/lib/libjpeg.lib'
+            if (PkgSelected(opts,"TIFF")):     cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/tiff/lib/libtiff.lib'
+            if (PkgSelected(opts,"VRPN")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/vrpn/lib/vrpn.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/vrpn/lib/quat.lib'
+            if (PkgSelected(opts,"FMOD")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/fmod/lib/fmod.lib'
+            if (PkgSelected(opts,"MILES")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/miles/lib/mss32.lib'
+            if (PkgSelected(opts,"NVIDIACG")):
+                if (opts.count("CGGL")):
+                    cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/nvidiacg/lib/cgGL.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/nvidiacg/lib/cg.lib'
+            if (PkgSelected(opts,"HELIX")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/runtlib.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/syslib.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/contlib.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/debuglib.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/utillib.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/helix/lib/stlport_vc7.lib'
+            if (PkgSelected(opts,"NSPR")):
+                cmd = cmd + ' ' + SDK_LIB_PATH['nspr'] + '/nspr4.lib'
+            if (PkgSelected(opts,"SSL")):
+                cmd = cmd + ' ' + SDK_LIB_PATH['ssl'] + '/ssleay32.lib'
+                cmd = cmd + ' ' + SDK_LIB_PATH['ssl'] + '/libeay32.lib'
+            if (PkgSelected(opts,"FREETYPE")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/freetype/lib/libfreetype.lib'
+            if (PkgSelected(opts,"FFTW")):
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/fftw/lib/rfftw.lib'
+                cmd = cmd + ' ' + THIRDPARTY + '/win-libs-vc7/fftw/lib/fftw.lib'
+            for maya in ["MAYA5","MAYA6","MAYA65"]:
+                if (PkgSelected(opts,maya)):
+                    cmd = cmd + ' "' + MAYASDK[maya] +  '/lib/Foundation.lib"'
+                    cmd = cmd + ' "' + MAYASDK[maya] +  '/lib/OpenMaya.lib"'
+                    cmd = cmd + ' "' + MAYASDK[maya] +  '/lib/OpenMayaAnim.lib"'
+            for max in ["MAX5","MAX6","MAX7"]:
+                if PkgSelected(opts,max):
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/core.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/edmodel.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/gfx.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/geom.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/mesh.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/maxutil.lib"'
+                    cmd = cmd + ' "' + MAXSDK[max] +  '/lib/paramblk2.lib"'
+            oscmd(cmd)
+            updatefiledate(dll)
+            if ((OPTIMIZE == 1) and (dll[-4:]==".dll")):
+                CopyFile(dll[:-4]+"_d.dll", dll)
+    elif (COMPILER=="LINUXA"):
+        ALLTARGETS.append(PREFIX+"/lib/"+dll[:-4]+".so")
+        if (dll[-4:]==".exe"): wdll = PREFIX+"/bin/"+dll[:-4]
+        else: wdll = PREFIX+"/lib/"+dll[:-4]+".so"
+        wobj = []
+        for x in obj:
+            suffix = x[-4:]
+            if   (suffix==".obj"): wobj.append(PREFIX+"/tmp/"+x[:-4]+".o")
+            elif (suffix==".dll"): wobj.append(PREFIX+"/lib/"+x[:-4]+".so")
+            elif (suffix==".lib"): wobj.append(PREFIX+"/lib/"+x[:-4]+".a")
+            elif (suffix==".ilb"): wobj.append(PREFIX+"/tmp/"+x[:-4]+".a")
+            else: sys.exit("unknown suffix in object list.")
+        if (older(wdll, wobj+xdep)):
+            if (dll[-4:]==".exe"): cmd = 'g++ -o ' + wdll + ' -L' + PREFIX + '/lib'
+            else:                  cmd = 'g++ -shared -o ' + wdll + ' -L' + PREFIX + '/lib'
+            for x in obj:
+                suffix = x[-4:]
+                if   (suffix==".obj"): cmd = cmd + ' ' + PREFIX + '/tmp/' + x[:-4] + '.o'
+                elif (suffix==".dll"): cmd = cmd + ' -l' + x[3:-4]
+                elif (suffix==".lib"): cmd = cmd + ' ' + PREFIX + '/lib/' + x[:-4] + '.a'
+                elif (suffix==".ilb"): cmd = cmd + ' ' + PREFIX + '/tmp/' + x[:-4] + '.a'
+            if (PkgSelected(opts,"FMOD")):     cmd = cmd + ' -L' + THIRDPARTY + '/linux-libs-a/fmod/lib -lfmod-3.74'
+            if (PkgSelected(opts,"NVIDIACG")):
+                cmd = cmd + ' -L' + THIRDPARTY + 'nvidiacg/lib '
+                if (opts.count("CGGL")): cmd = cmd + " -lCgGL"
+                cmd = cmd + " -lCg"
+            if (PkgSelected(opts,"NSPR")):     cmd = cmd + ' -L' + NSPR_SDK + '/lib -lpandanspr4'
+            if (PkgSelected(opts,"ZLIB")):     cmd = cmd + " -lz"
+            if (PkgSelected(opts,"PNG")):      cmd = cmd + " -lpng"
+            if (PkgSelected(opts,"JPEG")):     cmd = cmd + " -ljpeg"
+            if (PkgSelected(opts,"TIFF")):     cmd = cmd + " -ltiff"
+            if (PkgSelected(opts,"SSL")):      cmd = cmd + " -lssl"
+            if (PkgSelected(opts,"FREETYPE")): cmd = cmd + " -lfreetype"
+            if (PkgSelected(opts,"VRPN")):     cmd = cmd + ' -L' + THIRDPARTY + '/linux-libs-a/vrpn/lib -lvrpn -lquat'
+            if (PkgSelected(opts,"FFTW")):     cmd = cmd + ' -L' + THIRDPARTY + '/linux-libs-a/fftw/lib -lrfftw -lfftw'
+            if (opts.count("GLUT")):           cmd = cmd + " -lGL -lGLU"
+            oscmd(cmd)
+            updatefiledate(wdll)
+
+##########################################################################################
+#
+# CompileBAM
+#
+# Generate a BAM file from an EGG or FLT
+#
+##########################################################################################
+
+def CompileBAM(preconv, bam, egg):
+    dotexe = ".exe"
+    if (sys.platform != "win32" or sys.platform == "cygwin"): dotexe = ""
+    if (older(bam, egg)):
+        if (egg[-4:]==".flt"):
+            oscmd(PREFIX + "/bin/flt2egg" + dotexe + " -pr " + preconv + " -o " + PREFIX + "/tmp/tmp.egg" + " " + egg)
+            oscmd(PREFIX + "/bin/egg2bam" + dotexe + " -o " + bam + " " + PREFIX + "/tmp/tmp.egg")
+        else:
+            oscmd(PREFIX + "/bin/egg2bam" + dotexe + " -pr " + preconv + " -o " + bam + " " + egg)
+
+##########################################################################################
+#
+# If the 'make depend' process discovers an 'include'
+# directive that includes one of the following files,
+# the specified file is not added as a dependency,
+# nor is it traversed.
+#
+##########################################################################################
+
+CxxIgnoreHeader["Python.h"] = 1
+CxxIgnoreHeader["Python/Python.h"] = 1
+CxxIgnoreHeader["alloc.h"] = 1
+CxxIgnoreHeader["ctype.h"] = 1
+CxxIgnoreHeader["stdlib.h"] = 1
+CxxIgnoreHeader["ipc_thread.h"] = 1
+CxxIgnoreHeader["platform/symbian/symbian_print.h"] = 1
+CxxIgnoreHeader["hxtypes.h"] = 1
+CxxIgnoreHeader["hxcom.h"] = 1
+CxxIgnoreHeader["hxiids.h"] = 1
+CxxIgnoreHeader["hxpiids.h"] = 1
+CxxIgnoreHeader["dsound.h"] = 1
+CxxIgnoreHeader["hlxosstr.h"] = 1
+CxxIgnoreHeader["ddraw.h"] = 1
+CxxIgnoreHeader["mss.h"] = 1
+CxxIgnoreHeader["MacSocket.h"] = 1
+CxxIgnoreHeader["textureTransition.h"] = 1
+CxxIgnoreHeader["transformTransition.h"] = 1
+CxxIgnoreHeader["billboardTransition.h"] = 1
+CxxIgnoreHeader["transformTransition.h"] = 1
+CxxIgnoreHeader["transparencyTransition.h"] = 1
+CxxIgnoreHeader["allTransitionsWrapper.h"] = 1
+CxxIgnoreHeader["allTransitionsWrapper.h"] = 1
+CxxIgnoreHeader["namedNode.h"] = 1
+CxxIgnoreHeader["renderRelation.h"] = 1
+CxxIgnoreHeader["renderTraverser.h"] = 1
+CxxIgnoreHeader["get_rel_pos.h"] = 1
+CxxIgnoreHeader["Max.h"] = 1
+CxxIgnoreHeader["iparamb2.h"] = 1
+CxxIgnoreHeader["iparamm2.h"] = 1
+CxxIgnoreHeader["istdplug.h"] = 1
+CxxIgnoreHeader["iskin.h"] = 1
+CxxIgnoreHeader["stdmat.h"] = 1
+CxxIgnoreHeader["phyexp.h"] = 1
+CxxIgnoreHeader["bipexp.h"] = 1
+CxxIgnoreHeader["windows.h"] = 1
+CxxIgnoreHeader["windef.h"] = 1
+CxxIgnoreHeader["modstack.h"] = 1
+CxxIgnoreHeader["afxres.h"] = 1
+
+##########################################################################################
+#
+# Generate pandaVersion.h
+#
+##########################################################################################
+
+VERSION1=int(VERSION.split(".")[0])
+VERSION2=int(VERSION.split(".")[1])
+VERSION3=int(VERSION.split(".")[2])
+NVERSION=VERSION1*1000000+VERSION2*1000+VERSION3
+
+conf="""
+#define PANDA_MAJOR_VERSION VERSION1
+#define PANDA_MINOR_VERSION VERSION2
+#define PANDA_SEQUENCE_VERSION VERSION2
+#undef  PANDA_OFFICIAL_VERSION
+#define PANDA_VERSION NVERSION
+#define PANDA_VERSION_STR "VERSION1.VERSION2.VERSION3"
+#define PANDA_DISTRIBUTOR "makepanda"
+"""
+
+conf = conf.replace("VERSION1",str(VERSION1))
+conf = conf.replace("VERSION2",str(VERSION2))
+conf = conf.replace("VERSION3",str(VERSION3))
+conf = conf.replace("NVERSION",str(NVERSION))
+
+ConditionalWriteFile(PREFIX+'/include/pandaVersion.h',conf)
+
+conf="""
+# include "dtoolbase.h"
+EXPCL_DTOOL int panda_version_VERSION1_VERSION2_VERSION3 = 0;
+"""
+
+conf = conf.replace("VERSION1",str(VERSION1))
+conf = conf.replace("VERSION2",str(VERSION2))
+conf = conf.replace("VERSION3",str(VERSION3))
+conf = conf.replace("NVERSION",str(NVERSION))
+
+ConditionalWriteFile(PREFIX+'/include/checkPandaVersion.cxx',conf)
+
+conf="""
+# include "dtoolbase.h"
+extern EXPCL_DTOOL int panda_version_VERSION1_VERSION2_VERSION3;
+# ifndef WIN32
+/* For Windows, exporting the symbol from the DLL is sufficient; the
+      DLL will not load unless all expected public symbols are defined.
+      Other systems may not mind if the symbol is absent unless we
+      explictly write code that references it. */
+static int check_panda_version = panda_version_VERSION1_VERSION2_VERSION3;
+# endif
+"""
+
+conf = conf.replace("VERSION1",str(VERSION1))
+conf = conf.replace("VERSION2",str(VERSION2))
+conf = conf.replace("VERSION3",str(VERSION3))
+conf = conf.replace("NVERSION",str(NVERSION))
+
+ConditionalWriteFile(PREFIX+'/include/checkPandaVersion.h',conf)
+
+ConditionalWriteFile(PREFIX + "/tmp/pythonversion", os.path.basename(PYTHONSDK))
+
+##########################################################################################
+#
+# If running under windows, compile up the icon.
+#
+##########################################################################################
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+  IPATH=["panda/src/configfiles"]
+  OPTS=[]
+  CompileRES(ipath=IPATH, opts=OPTS, src='pandaIcon.rc', obj='pandaIcon.res')
+
+##########################################################################################
+#
+# Generate direct/__init__.py
+#
+##########################################################################################
+
+DIRECTINIT="""
+import os,sys
+srcdir1 = os.path.join(__path__[0], 'src')
+srcdir2 = os.path.join(__path__[0], '..', '..', 'direct', 'src')
+if    (os.path.isdir(srcdir1)): __path__[0] = srcdir1
+elif  (os.path.isdir(srcdir2)): __path__[0] = srcdir2
+else: sys.exit("Cannot find the 'direct' tree")
+"""
+ConditionalWriteFile(PREFIX+'/direct/__init__.py', DIRECTINIT)
+
+##########################################################################################
+#
+# Generate dtool_have_xxx.dat
+#
+##########################################################################################
+
+for x in PACKAGES:
+    if (OMIT.count(x)): ConditionalWriteFile(PREFIX+'/tmp/dtool_have_'+x.lower()+'.dat',"0\n")
+    else:               ConditionalWriteFile(PREFIX+'/tmp/dtool_have_'+x.lower()+'.dat',"1\n")
+
+##########################################################################################
+#
+# Generate dtool_config.h
+#
+##########################################################################################
+
+conf = "/* dtool_config.h.  Generated automatically by makepanda.py */\n"
+for key,win,unix in DTOOLDEFAULTS:
+    val = DTOOLCONFIG[key]
+    if (val == 'UNDEF'): conf = conf + "#undef " + key + "\n"
+    else:                conf = conf + "#define " + key + " " + val + "\n"
+ConditionalWriteFile(PREFIX+'/include/dtool_config.h',conf)
+
+##########################################################################################
+#
+# Generate the PRC files into the ETC directory.
+#
+##########################################################################################
+
+CONFAUTOPRC="""
+###########################################################
+###                                                     ###
+### Panda3D Configuration File - Auto-Generated Portion ###
+###                                                     ###
+### Editing this file is not recommended. Most of these ###
+### directives can be overriden in Config.prc           ###
+###                                                     ###
+###########################################################
+
+# Define the display types that have been compiled in.  Panda will
+# pick one of these by going through the list in this order until one
+# is found that works, unless the user specifically requests a
+# particular display type with the load-display directive.
+
+aux-display pandagl
+aux-display pandadx9
+aux-display pandadx8
+aux-display pandadx7
+
+# The egg loader is handy to have available by default.  This allows
+# clients to load egg files.  (The bam loader is built-in so bam files
+# are always loadable).
+
+# By qualifying with the extension "egg", we indicate the egg loader
+# should be made available only if you explicitly name a file with an
+# .egg extension.
+
+load-file-type egg pandaegg
+
+# The following lines define some handy object types to use within the
+# egg syntax.  This remaps <ObjectType> { name } into whatever egg
+# syntax is given by egg-object-type-name, which makes a handy
+# abbreviation for modeling packages (like Maya) to insert
+# sophisticated egg syntax into the generated egg file, using a single
+# object type string.
+
+egg-object-type-portal          <Scalar> portal { 1 }
+egg-object-type-polylight       <Scalar> polylight { 1 }
+egg-object-type-seq24           <Switch> { 1 } <Scalar> fps { 24 }
+egg-object-type-seq12           <Switch> { 1 } <Scalar> fps { 12 }
+egg-object-type-indexed         <Scalar> indexed { 1 }
+
+# These are just shortcuts to define the Model and DCS flags, which
+# indicate nodes that should not be flattened out of the hierarchy
+# during the conversion process.  DCS goes one step further and
+# indicates that the node's transform is important and should be
+# preserved (DCS stands for Dynamic Coordinate System).
+
+egg-object-type-model           <Model> { 1 }
+egg-object-type-dcs             <DCS> { 1 }
+
+# The following define various kinds of collision geometry.  These
+# mark the geometry at this level and below as invisible collision
+# polygons, which can be used by Panda's collision system to detect
+# collisions more optimally than regular visible polygons.
+
+egg-object-type-barrier         <Collide> { Polyset descend }
+egg-object-type-sphere          <Collide> { Sphere descend }
+egg-object-type-invsphere       <Collide> { InvSphere descend }
+egg-object-type-tube            <Collide> { Tube descend }
+
+# As above, but these are flagged to be "intangible", so that they
+# will trigger an event but not stop an object from passing through.
+
+egg-object-type-trigger         <Collide> { Polyset descend intangible }
+egg-object-type-trigger-sphere  <Collide> { Sphere descend intangible }
+
+# "bubble" puts an invisible bubble around an object, but does not
+# otherwise remove the geometry.
+
+egg-object-type-bubble          <Collide> { Sphere keep descend }
+
+# "ghost" turns off the normal collide bit that is set on visible
+# geometry by default, so that if you are using visible geometry for
+# collisions, this particular geometry will not be part of those
+# collisions--it is ghostlike.
+
+egg-object-type-ghost           <Scalar> collide-mask { 0 }
+
+# This module allows direct loading of formats like .flt, .mb, or .dxf
+
+load-file-type ptloader
+
+# Define a new egg object type.  See the comments in _panda.prc about this.
+
+egg-object-type-direct-widget   <Scalar> collide-mask { 0x80000000 } <Collide> { Polyset descend }
+
+# Define a new cull bin that will render on top of everything else.
+
+cull-bin gui-popup 60 unsorted
+"""
+
+CONFIGPRC="""
+###########################################################
+###                                                     ###
+### Panda3D Configuration File -  User-Editable Portion ###
+###                                                     ###
+###########################################################
+
+# Uncomment one of the following lines to choose whether you should
+# run using OpenGL or DirectX rendering.
+
+load-display pandagl
+
+# These control the placement and size of the default rendering window.
+
+win-origin 100 0
+win-size 800 600
+
+# Uncomment this line if you want to run Panda fullscreen instead of
+# in a window.
+
+fullscreen #f
+
+# If you don't object to running OpenGL in software leave the keyword
+# "software" in the following line, otherwise remove it to force
+# hardware only.
+
+framebuffer-mode rgba double-buffer depth multisample hardware software
+
+# These control the amount of output Panda gives for some various
+# categories.  The severity levels, in order, are "spam", "debug",
+# "info", "warning", and "fatal"; the default is "info".  Uncomment
+# one (or define a new one for the particular category you wish to
+# change) to control this output.
+
+notify-level warning
+default-directnotify-level warning
+
+# These specify where model files may be loaded from.  You probably
+# want to set this to a sensible path for yourself.  $THIS_PRC_DIR is
+# a special variable that indicates the same directory as this
+# particular Config.prc file.
+
+model-path    .
+model-path    $THIS_PRC_DIR/..
+model-path    $THIS_PRC_DIR/../models
+sound-path    .
+sound-path    $THIS_PRC_DIR/..
+sound-path    $THIS_PRC_DIR/../models
+texture-path  .
+texture-path  $THIS_PRC_DIR/..
+texture-path  $THIS_PRC_DIR/../models
+
+# This enable the automatic creation of a TK window when running
+# Direct.
+
+want-directtools  #f
+want-tk           #f
+
+# This enables simple networked programs to easily provide a DC file
+
+dc-file sample.dc
+
+# Enable audio using the FMod audio library by default:
+
+audio-library-name fmod_audio
+"""
+
+if (sys.platform != "win32" or sys.platform == "cygwin"):
+    CONFAUTOPRC = CONFAUTOPRC.replace("aux-display pandadx9","")
+    CONFAUTOPRC = CONFAUTOPRC.replace("aux-display pandadx8","")
+    CONFAUTOPRC = CONFAUTOPRC.replace("aux-display pandadx7","")
+
+ConditionalWriteFile(PREFIX + "/etc/Confauto.prc", CONFAUTOPRC)
+ConditionalWriteFile(PREFIX + "/etc/Config.prc", CONFIGPRC)
+
+##########################################################################################
+#
+# Copy the precompiled binaries and DLLs into the build.
+#
+##########################################################################################
+
+for pkg in (PACKAGES + ["extras"]):
+    if (OMIT.count(pkg)==0):
+        if (COMPILER == "MSVC7" or COMPILER=="MSVC71"):
+            if (os.path.exists(THIRDPARTY+"/win-libs-vc7/"+pkg.lower()+"/bin")):
+                CopyAllFiles(PREFIX+"/bin/",THIRDPARTY+"/win-libs-vc7/"+pkg.lower()+"/bin/")
+        elif (COMPILER == "LINUXA"):
+            if (os.path.exists(THIRDPARTY+"/linux-libs-a/"+pkg.lower()+"/lib")):
+                CopyAllFiles(PREFIX+"/lib/",THIRDPARTY+"/linux-libs-a/"+pkg.lower()+"/lib/")
+
+if sys.platform == "win32" or sys.platform == "cygwin":
+    CopyTree(PREFIX+'/python', PYTHONSDK)
+    if os.path.isfile(PYTHONSDK+'/python22.dll'):
+        CopyFile(PREFIX+'/bin/',   PYTHONSDK+'/python22.dll')
+
+########################################################################
+##
+## Compile the 'ppython' executable and 'genpycode' executables
+##
+########################################################################
+
+IPATH=['direct/src/directbase']
+CompileC(ipath=IPATH, opts=['BUILDING_PPYTHON'], src='ppython.cxx', obj='ppython.obj')
+CompileLink(opts=['WINUSER'], dll='ppython.exe', obj=['ppython.obj'])
+
+IPATH=['direct/src/directbase']
+CompileC(ipath=IPATH, opts=['BUILDING_GENPYCODE'], src='ppython.cxx', obj='genpycode.obj')
+CompileLink(opts=['WINUSER'], dll='genpycode.exe', obj=['genpycode.obj'])
+
+########################################################################
+#
+# Copy header files to the PREFIX/include directory.
+#
+# Are we just copying *ALL* headers into the include directory?
+# If so, let's automate this.
+#
+# We're definitely not copying all headers.  We're only copying those
+# same headers that are copied by ppremake.  But the bigger question
+# is, did he *intend* to copy all headers?  Another good question is,
+# could we just put a little tag into the header file itself, indicating
+# that it is meant to be copied?
+#
+########################################################################
+
+ConditionalWriteFile(PREFIX+'/include/ctl3d.h', '/* dummy file to make MAX happy */')
+
+class FileList:
+    allFiles=['*']
+    includes=['/*_src.cxx', '/*.h', '/*.I', '/*.T']
+
+    def __init__(self):
+        self.files={}
+
+    def add(self, srcPattern="*"):
+        global VERBOSE
+        if VERBOSE:
+            print "FileList.add(\"%s\")"%(srcPattern,)
+        for i in glob(srcPattern):
+            self.files[i.replace("\\", "/")]=None
+
+    def addIncludes(self, srcPattern="."):
+        for i in self.includes:
+            self.add(srcPattern+i)
+
+    def omit(self, srcPattern="*"):
+        global VERBOSE
+        if VERBOSE:
+            print "FileList.omit(\"%s\")"%(srcPattern,)
+        for i in glob(srcPattern):
+            try: del self.files[i.replace("\\", "/")]
+            except: pass
+
+    def omitIncludes(self, srcPattern="."):
+        for i in self.includes:
+            self.omit(srcPattern+i)
+
+    def copyTo(self, dstDir="."):
+        global VERBOSE
+        if VERBOSE:
+            print "FileList.copyTo(\"%s\")"%(dstDir,)
+        for i in self.files.keys():
+            if os.path.isfile(i):
+                CopyFile(dstDir+'/'+os.path.split(i)[1], i)
+
+fileList=FileList()
+fileList.addIncludes('dtool/src/*')
+fileList.addIncludes('panda/src/*')
+fileList.addIncludes('pandatool/src/*')
+fileList.addIncludes('pandaapp/src/*')
+fileList.addIncludes('direct/src/*')
+fileList.omitIncludes('dtool/src/parser-inc')
+fileList.omitIncludes('dtool/src/parser-inc')
+fileList.copyTo(PREFIX+'/include')
+del fileList
+
+fileList=FileList()
+fileList.add('dtool/src/parser-inc/*')
+fileList.copyTo(PREFIX+'/include/parser-inc')
+fileList.copyTo(PREFIX+'/include/parser-inc/openssl')
+del fileList
+
+fileList=FileList()
+fileList.add('dtool/src/parser-inc/cg.h')
+fileList.add('dtool/src/parser-inc/cgGL.h')
+fileList.copyTo(PREFIX+'/include/parser-inc/Cg')
+del fileList
+
+
+########################################################################
+#
+# This file contains a list of all the files that need to be compiled.
+#
+########################################################################
+
+#
+# DIRECTORY: dtool/src/dtoolbase/
+#
+
+IPATH=['dtool/src/dtoolbase']
+OPTS=['BUILDING_DTOOL', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dtoolbase.cxx', obj='dtoolbase_dtoolbase.obj')
+
+#
+# DIRECTORY: dtool/src/dtoolutil/
+#
+
+IPATH=['dtool/src/dtoolutil']
+OPTS=['BUILDING_DTOOL', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='gnu_getopt.c',             obj='dtoolutil_gnu_getopt.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='gnu_getopt1.c',            obj='dtoolutil_gnu_getopt1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dtoolutil_composite1.cxx', obj='dtoolutil_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dtoolutil_composite2.cxx', obj='dtoolutil_composite2.obj')
+
+#
+# DIRECTORY: dtool/metalibs/dtool/
+#
+
+IPATH=['dtool/metalibs/dtool']
+OPTS=['BUILDING_DTOOL', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dtool.cxx', obj='dtool_dtool.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='libdtool.dll', obj=[
+             'dtool_dtool.obj',
+             'dtoolutil_gnu_getopt.obj',
+             'dtoolutil_gnu_getopt1.obj',
+             'dtoolutil_composite1.obj',
+             'dtoolutil_composite2.obj',
+             'dtoolbase_dtoolbase.obj',
+])
+
+#
+# DIRECTORY: dtool/src/cppparser/
+#
+
+IPATH=['dtool/src/cppparser']
+CompileBison(pre='cppyy', dstc='cppBison.cxx', dsth='cppBison.h', src='dtool/src/cppparser/cppBison.yxx')
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='cppParser_composite1.cxx', obj='cppParser_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='cppParser_composite2.cxx', obj='cppParser_composite2.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='cppBison.cxx', obj='cppParser_cppBison.obj')
+CompileLIB(lib='libcppParser.ilb', obj=[
+             'cppParser_composite1.obj',
+             'cppParser_composite2.obj',
+             'cppParser_cppBison.obj',
+])
+
+#
+# DIRECTORY: dtool/src/prc/
+#
+
+IPATH=['dtool/src/prc']
+OPTS=['BUILDING_DTOOLCONFIG', 'SSL', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='prc_composite1.cxx', obj='prc_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='prc_composite2.cxx', obj='prc_composite2.obj')
+
+#
+# DIRECTORY: dtool/src/dconfig/
+#
+
+IPATH=['dtool/src/dconfig']
+OPTS=['BUILDING_DTOOLCONFIG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dconfig_composite1.cxx', obj='dconfig_composite1.obj')
+
+#
+# DIRECTORY: dtool/src/interrogatedb/
+#
+
+IPATH=['dtool/src/interrogatedb']
+OPTS=['BUILDING_DTOOLCONFIG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='interrogatedb_composite1.cxx', obj='interrogatedb_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='interrogatedb_composite2.cxx', obj='interrogatedb_composite2.obj')
+
+#
+# DIRECTORY: dtool/metalibs/dtoolconfig/
+#
+
+IPATH=['dtool/metalibs/dtoolconfig']
+OPTS=['BUILDING_DTOOLCONFIG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dtoolconfig.cxx', obj='dtoolconfig_dtoolconfig.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pydtool.cxx', obj='dtoolconfig_pydtool.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='libdtoolconfig.dll', obj=[
+             'dtoolconfig_dtoolconfig.obj',
+             'dtoolconfig_pydtool.obj',
+             'interrogatedb_composite1.obj',
+             'interrogatedb_composite2.obj',
+             'dconfig_composite1.obj',
+             'prc_composite1.obj',
+             'prc_composite2.obj',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: dtool/src/pystub/
+#
+
+IPATH=['dtool/src/pystub']
+OPTS=['BUILDING_DTOOLCONFIG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pystub.cxx', obj='pystub_pystub.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='libpystub.dll', obj=[
+             'pystub_pystub.obj',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: dtool/src/interrogate/
+#
+
+IPATH=['dtool/src/interrogate', 'dtool/src/cppparser', 'dtool/src/interrogatedb']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='interrogate_composite1.cxx', obj='interrogate_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='interrogate_composite2.cxx', obj='interrogate_composite2.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='interrogate.exe', obj=[
+             'interrogate_composite1.obj',
+             'interrogate_composite2.obj',
+             'libcppParser.ilb',
+             'libpystub.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='interrogate_module.cxx', obj='interrogate_module_interrogate_module.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='interrogate_module.exe', obj=[
+             'interrogate_module_interrogate_module.obj',
+             'libcppParser.ilb',
+             'libpystub.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='parse_file.cxx', obj='parse_file_parse_file.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='parse_file.exe', obj=[
+             'parse_file_parse_file.obj',
+             'libcppParser.ilb',
+             'libpystub.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: dtool/src/prckeys/
+#
+
+if (OMIT.count("SSL")==0):
+  IPATH=['dtool/src/prckeys']
+  OPTS=['SSL', 'NSPR']
+  CompileC(ipath=IPATH, opts=OPTS, src='makePrcKey.cxx', obj='make-prc-key_makePrcKey.obj')
+  CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='make-prc-key.exe', obj=[
+               'make-prc-key_makePrcKey.obj',
+               'libpystub.dll',
+               'libdtool.dll',
+               'libdtoolconfig.dll',
+               ])
+
+#
+# DIRECTORY: dtool/src/test_interrogate/
+#
+
+IPATH=['dtool/src/test_interrogate']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='test_interrogate.cxx', obj='test_interrogate_test_interrogate.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='test_interrogate.exe', obj=[
+             'test_interrogate_test_interrogate.obj',
+             'libpystub.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/pandabase/
+#
+
+IPATH=['panda/src/pandabase']
+OPTS=['BUILDING_PANDAEXPRESS', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandabase.cxx', obj='pandabase_pandabase.obj')
+
+#
+# DIRECTORY: panda/src/express/
+#
+
+IPATH=['panda/src/express']
+OPTS=['BUILDING_PANDAEXPRESS', 'SSL', 'ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='express_composite1.cxx', obj='express_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='express_composite2.cxx', obj='express_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libexpress.in', outc='libexpress_igate.cxx',
+            src='panda/src/express',  module='pandaexpress', library='libexpress',
+            files=['atomicAdjustDummyImpl.h', 'atomicAdjust.h', 'atomicAdjustImpl.h', 'atomicAdjustNsprImpl.h', 'bigEndian.h', 'buffer.h', 'checksumHashGenerator.h', 'circBuffer.h', 'clockObject.h', 'conditionVarDummyImpl.h', 'conditionVar.h', 'conditionVarImpl.h', 'conditionVarNsprImpl.h', 'config_express.h', 'datagram.h', 'datagramGenerator.h', 'datagramIterator.h', 'datagramSink.h', 'dcast.h', 'encryptStreamBuf.h', 'encryptStream.h', 'error_utils.h', 'hashGeneratorBase.h', 'hashVal.h', 'indent.h', 'indirectLess.h', 'littleEndian.h', 'memoryInfo.h', 'memoryUsage.h', 'memoryUsagePointerCounts.h', 'memoryUsagePointers.h', 'multifile.h', 'mutexDummyImpl.h', 'pmutex.h', 'mutexHolder.h', 'mutexImpl.h', 'mutexNsprImpl.h', 'namable.h', 'nativeNumericData.h', 'numeric_types.h', 'ordered_vector.h', 'password_hash.h', 'patchfile.h', 'pointerTo.h', 'pointerToArray.h', 'pointerToBase.h', 'pointerToVoid.h', 'profileTimer.h', 'pta_uchar.h', 'ramfile.h', 'referenceCount.h', 'register_type.h', 'reversedNumericData.h', 'selectThreadImpl.h', 'streamReader.h', 'streamWriter.h', 'stringDecoder.h', 'subStream.h', 'subStreamBuf.h', 'textEncoder.h', 'threadDummyImpl.h', 'thread.h', 'threadImpl.h', 'threadNsprImpl.h', 'threadPriority.h', 'tokenBoard.h', 'trueClock.h', 'typeHandle.h', 'typedObject.h', 'typedReferenceCount.h', 'typedef.h', 'typeRegistry.h', 'typeRegistryNode.h', 'unicodeLatinMap.h', 'vector_uchar.h', 'virtualFileComposite.h', 'virtualFile.h', 'virtualFileList.h', 'virtualFileMount.h', 'virtualFileMountMultifile.h', 'virtualFileMountSystem.h', 'virtualFileSimple.h', 'virtualFileSystem.h', 'weakPointerTo.h', 'weakPointerToBase.h', 'weakPointerToVoid.h', 'weakReferenceList.h', 'windowsRegistry.h', 'zStream.h', 'zStreamBuf.h', 'express_composite1.cxx', 'express_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libexpress_igate.cxx', obj='libexpress_igate.obj')
+
+#
+# DIRECTORY: panda/src/downloader/
+#
+
+IPATH=['panda/src/downloader']
+OPTS=['BUILDING_PANDAEXPRESS', 'SSL', 'ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='downloader_composite1.cxx', obj='downloader_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='downloader_composite2.cxx', obj='downloader_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdownloader.in', outc='libdownloader_igate.cxx',
+            src='panda/src/downloader',  module='pandaexpress', library='libdownloader', files=[
+            'config_downloader.h', 'asyncUtility.h', 'bioPtr.h', 'bioStreamPtr.h', 'bioStream.h', 'bioStreamBuf.h',
+            'chunkedStream.h', 'chunkedStreamBuf.h', 'decompressor.h', 'documentSpec.h', 'downloadDb.h',
+            'download_utils.h', 'extractor.h', 'httpAuthorization.h', 'httpBasicAuthorization.h', 'httpChannel.h',
+            'httpClient.h', 'httpCookie.h', 'httpDate.h', 'httpDigestAuthorization.h', 'httpEntityTag.h',
+            'httpEnum.h', 'identityStream.h', 'identityStreamBuf.h', 'multiplexStream.h', 'multiplexStreamBuf.h',
+            'patcher.h', 'socketStream.h', 'ssl_utils.h', 'urlSpec.h',
+            'downloader_composite1.cxx', 'downloader_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdownloader_igate.cxx', obj='libdownloader_igate.obj')
+
+#
+# DIRECTORY: panda/metalibs/pandaexpress/
+#
+
+IPATH=['panda/metalibs/pandaexpress']
+OPTS=['BUILDING_PANDAEXPRESS', 'ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandaexpress.cxx', obj='pandaexpress_pandaexpress.obj')
+InterrogateModule(outc='libpandaexpress_module.cxx', module='pandaexpress', library='libpandaexpress',
+                  files=['libdownloader.in', 'libexpress.in'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpandaexpress_module.cxx', obj='libpandaexpress_module.obj')
+CompileLink(opts=['ADVAPI', 'WINSOCK2', 'NSPR', 'SSL', 'ZLIB'], dll='libpandaexpress.dll', obj=[
+             'pandaexpress_pandaexpress.obj',
+             'libpandaexpress_module.obj',
+             'downloader_composite1.obj',
+             'downloader_composite2.obj',
+             'libdownloader_igate.obj',
+             'express_composite1.obj',
+             'express_composite2.obj',
+             'libexpress_igate.obj',
+             'pandabase_pandabase.obj',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/putil/
+#
+
+IPATH=['panda/src/putil']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='putil_composite1.cxx', obj='putil_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='putil_composite2.cxx', obj='putil_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libputil.in', outc='libputil_igate.cxx',
+            src='panda/src/putil',  module='panda', library='libputil', files=[
+            'bam.h', 'bamReader.h', 'bamReaderParam.h', 'bamWriter.h', 'bitMask.h', 'buttonHandle.h',
+            'buttonRegistry.h', 'cachedTypedWritableReferenceCount.h', 'collideMask.h', 'portalMask.h',
+            'compareTo.h', 'config_util.h', 'configurable.h', 'cycleData.h', 'cycleDataReader.h',
+            'cycleDataWriter.h', 'datagramInputFile.h', 'datagramOutputFile.h', 'drawMask.h', 'factoryBase.h',
+            'factoryParam.h', 'factoryParams.h', 'firstOfPairCompare.h', 'firstOfPairLess.h',
+            'globalPointerRegistry.h', 'indirectCompareNames.h', 'indirectCompareTo.h', 'ioPtaDatagramFloat.h',
+            'ioPtaDatagramInt.h', 'ioPtaDatagramShort.h', 'keyboardButton.h', 'lineStream.h', 'lineStreamBuf.h',
+            'load_prc_file.h', 'modifierButtons.h', 'mouseButton.h', 'mouseData.h', 'nameUniquifier.h',
+            'pipeline.h', 'pipelineCycler.h', 'pipelineCyclerBase.h', 'pta_double.h', 'pta_float.h',
+            'pta_int.h', 'string_utils.h', 'timedCycle.h', 'typedWritable.h', 'typedWritableReferenceCount.h',
+            'updateSeq.h', 'uniqueIdAllocator.h', 'vector_double.h', 'vector_float.h', 'vector_typedWritable.h',
+            'vector_ushort.h', 'vector_writable.h', 'writableConfigurable.h', 'writableParam.h',
+            'putil_composite1.cxx', 'putil_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libputil_igate.cxx', obj='libputil_igate.obj')
+
+#
+# DIRECTORY: panda/src/audio/
+#
+
+IPATH=['panda/src/audio']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='audio_composite1.cxx', obj='audio_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libaudio.in', outc='libaudio_igate.cxx',
+            src='panda/src/audio',  module='panda', library='libaudio',
+            files=['audio.h'])
+CompileC(ipath=IPATH, opts=OPTS, src='libaudio_igate.cxx', obj='libaudio_igate.obj')
+
+#
+# DIRECTORY: panda/src/event/
+#
+
+IPATH=['panda/src/event']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='event_composite1.cxx', obj='event_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libevent.in', outc='libevent_igate.cxx',
+            src='panda/src/event',  module='panda', library='libevent', files=[
+            'config_event.h', 'buttonEvent.h', 'buttonEventList.h', 'event.h', 'eventHandler.h',
+            'eventParameter.h', 'eventQueue.h', 'eventReceiver.h', 'pt_Event.h', 'throw_event.h', 'event_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libevent_igate.cxx', obj='libevent_igate.obj')
+
+#
+# DIRECTORY: panda/src/linmath/
+#
+
+IPATH=['panda/src/linmath']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='linmath_composite1.cxx', obj='linmath_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='linmath_composite2.cxx', obj='linmath_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='liblinmath.in', outc='liblinmath_igate.cxx',
+            src='panda/src/linmath',  module='panda', library='liblinmath', files=[
+            'compose_matrix.h', 'compose_matrix_src.h', 'config_linmath.h', 'coordinateSystem.h', 'dbl2fltnames.h', 'dblnames.h', 'deg_2_rad.h', 'flt2dblnames.h', 'fltnames.h', 'ioPtaDatagramLinMath.h', 'lcast_to.h', 'lcast_to_src.h', 'lmatrix.h', 'lmatrix3.h', 'lmatrix3_src.h', 'lmatrix4.h', 'lmatrix4_src.h', 'lorientation.h', 'lorientation_src.h', 'lpoint2.h', 'lpoint2_src.h', 'lpoint3.h', 'lpoint3_src.h', 'lpoint4.h', 'lpoint4_src.h', 'lquaternion.h', 'lquaternion_src.h', 'lrotation.h', 'lrotation_src.h', 'luse.h', 'lvec2_ops.h', 'lvec2_ops_src.h', 'lvec3_ops.h', 'lvec3_ops_src.h', 'lvec4_ops.h', 'lvec4_ops_src.h', 'lvecBase2.h', 'lvecBase2_src.h', 'lvecBase3.h', 'lvecBase3_src.h', 'lvecBase4.h', 'lvecBase4_src.h', 'lvector2.h', 'lvector2_src.h', 'lvector3.h', 'lvector3_src.h', 'lvector4.h', 'lvector4_src.h', 'mathNumbers.h', 'pta_Colorf.h', 'pta_Normalf.h', 'pta_TexCoordf.h', 'pta_Vertexf.h', 'vector_Colorf.h', 'vector_LPoint2f.h', 'vector_LVecBase3f.h', 'vector_Normalf.h', 'vector_TexCoordf.h', 'vector_Vertexf.h', 'linmath_composite1.cxx', 'linmath_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='liblinmath_igate.cxx', obj='liblinmath_igate.obj')
+
+#
+# DIRECTORY: panda/src/mathutil/
+#
+
+IPATH=['panda/src/mathutil']
+OPTS=['BUILDING_PANDA', 'FFTW', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='mathutil_composite1.cxx', obj='mathutil_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='mathutil_composite2.cxx', obj='mathutil_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libmathutil.in', outc='libmathutil_igate.cxx',
+            src='panda/src/mathutil',  module='panda', library='libmathutil', files=[
+            'boundingHexahedron.h', 'boundingLine.h', 'boundingSphere.h', 'boundingVolume.h', 'config_mathutil.h', 'fftCompressor.h', 'finiteBoundingVolume.h', 'frustum.h', 'frustum_src.h', 'geometricBoundingVolume.h', 'linmath_events.h', 'look_at.h', 'look_at_src.h', 'omniBoundingVolume.h', 'plane.h', 'plane_src.h', 'rotate_to.h', 'mathutil_composite1.cxx', 'mathutil_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libmathutil_igate.cxx', obj='libmathutil_igate.obj')
+
+#
+# DIRECTORY: panda/src/gsgbase/
+#
+
+IPATH=['panda/src/gsgbase']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='gsgbase_composite1.cxx', obj='gsgbase_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libgsgbase.in', outc='libgsgbase_igate.cxx',
+            src='panda/src/gsgbase',  module='panda', library='libgsgbase', files=[
+            'config_gsgbase.h', 'graphicsStateGuardianBase.h', 'gsgbase_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libgsgbase_igate.cxx', obj='libgsgbase_igate.obj')
+
+#
+# DIRECTORY: panda/src/pnmimage/
+#
+
+IPATH=['panda/src/pnmimage']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pnmimage_composite1.cxx', obj='pnmimage_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pnmimage_composite2.cxx', obj='pnmimage_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libpnmimage.in', outc='libpnmimage_igate.cxx',
+            src='panda/src/pnmimage',  module='panda', library='libpnmimage', files=[
+            'config_pnmimage.h', 'pnmbitio.h', 'pnmFileType.h', 'pnmFileTypeRegistry.h', 'pnmImage.h', 'pnmImageHeader.h', 'pnmReader.h', 'pnmWriter.h', 'pnmimage_base.h', 'ppmcmap.h', 'pnmimage_composite1.cxx', 'pnmimage_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpnmimage_igate.cxx', obj='libpnmimage_igate.obj')
+
+#
+# DIRECTORY: panda/src/net/
+#
+
+if (OMIT.count("NSPR")==0):
+    IPATH=['panda/src/net']
+    OPTS=['BUILDING_PANDA', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='net_composite1.cxx', obj='net_composite1.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='net_composite2.cxx', obj='net_composite2.obj')
+    Interrogate(ipath=IPATH, opts=OPTS, outd='libnet.in', outc='libnet_igate.cxx',
+                src='panda/src/net',  module='panda', library='libnet', files=[
+                'config_net.h', 'connection.h', 'connectionListener.h', 'connectionManager.h',
+                'connectionReader.h', 'connectionWriter.h', 'datagramQueue.h', 'datagramTCPHeader.h',
+                'datagramUDPHeader.h', 'netAddress.h', 'netDatagram.h', 'pprerror.h', 'queuedConnectionListener.h',
+                'queuedConnectionManager.h', 'queuedConnectionReader.h', 'recentConnectionReader.h',
+                'queuedReturn.h', 'net_composite1.cxx', 'net_composite2.cxx'])
+    CompileC(ipath=IPATH, opts=OPTS, src='libnet_igate.cxx', obj='libnet_igate.obj')
+
+#
+# DIRECTORY: panda/src/pstatclient/
+#
+
+IPATH=['panda/src/pstatclient']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pstatclient_composite1.cxx', obj='pstatclient_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pstatclient_composite2.cxx', obj='pstatclient_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libpstatclient.in', outc='libpstatclient_igate.cxx',
+            src='panda/src/pstatclient',  module='panda', library='libpstatclient', files=[
+            'config_pstats.h', 'pStatClient.h', 'pStatClientImpl.h', 'pStatClientVersion.h', 'pStatClientControlMessage.h', 'pStatCollector.h', 'pStatCollectorDef.h', 'pStatFrameData.h', 'pStatProperties.h', 'pStatServerControlMessage.h', 'pStatThread.h', 'pStatTimer.h', 'pstatclient_composite1.cxx', 'pstatclient_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpstatclient_igate.cxx', obj='libpstatclient_igate.obj')
+
+#
+# DIRECTORY: panda/src/gobj/
+#
+
+IPATH=['panda/src/gobj']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='gobj_composite1.cxx', obj='gobj_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='gobj_composite2.cxx', obj='gobj_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libgobj.in', outc='libgobj_igate.cxx',
+            src='panda/src/gobj',  module='panda', library='libgobj', files=[
+            'boundedObject.h', 'config_gobj.h', 'drawable.h', 'geom.h',
+            'geomContext.h', 'geomLine.h', 'geomLinestrip.h', 'geomPoint.h',
+            'geomPolygon.h', 'geomQuad.h', 'geomSphere.h', 'geomSprite.h',
+            'geomTri.h', 'geomTrifan.h', 'geomTristrip.h', 'imageBuffer.h',
+            'material.h', 'materialPool.h', 'matrixLens.h', 'orthographicLens.h',
+            'perspectiveLens.h', 'pixelBuffer.h', 'preparedGraphicsObjects.h',
+            'lens.h', 'savedContext.h', 'texture.h', 'textureContext.h',
+            'texturePool.h', 'texCoordName.h', 'textureStage.h',
+            'gobj_composite1.cxx', 'gobj_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libgobj_igate.cxx', obj='libgobj_igate.obj')
+
+#
+# DIRECTORY: panda/src/lerp/
+#
+
+IPATH=['panda/src/lerp']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='lerp_composite1.cxx', obj='lerp_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='liblerp.in', outc='liblerp_igate.cxx',
+            src='panda/src/lerp',  module='panda', library='liblerp', files=[
+            'config_lerp.h', 'lerp.h', 'lerpblend.h', 'lerpfunctor.h', 'lerp_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='liblerp_igate.cxx', obj='liblerp_igate.obj')
+
+#
+# DIRECTORY: panda/src/pgraph/
+#
+
+IPATH=['panda/src/pgraph']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='nodePath.cxx', obj='pgraph_nodePath.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pgraph_composite1.cxx', obj='pgraph_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pgraph_composite2.cxx', obj='pgraph_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libpgraph.in', outc='libpgraph_igate.cxx',
+            src='panda/src/pgraph',  module='panda', library='libpgraph', files=[
+            'accumulatedAttribs.h', 'alphaTestAttrib.h', 'ambientLight.h', 'auxSceneData.h', 'bamFile.h', 'billboardEffect.h', 'binCullHandler.h', 'camera.h', 'clipPlaneAttrib.h', 'colorAttrib.h', 'colorBlendAttrib.h', 'colorScaleAttrib.h', 'colorWriteAttrib.h', 'compassEffect.h', 'config_pgraph.h', 'cullBin.h', 'cullBinAttrib.h', 'cullBinBackToFront.h', 'cullBinFixed.h', 'cullBinFrontToBack.h', 'cullBinManager.h', 'cullBinUnsorted.h', 'cullFaceAttrib.h', 'cullHandler.h', 'cullResult.h', 'cullTraverser.h', 'cullTraverserData.h', 'cullableObject.h', 'decalEffect.h', 'depthOffsetAttrib.h', 'depthTestAttrib.h', 'depthWriteAttrib.h', 'directionalLight.h', 'drawCullHandler.h', 'fadeLodNode.h', 'fadeLodNodeData.h', 'findApproxLevelEntry.h', 'findApproxPath.h', 'fog.h', 'fogAttrib.h', 'geomNode.h', 'geomTransformer.h', 'lensNode.h', 'light.h', 'lightAttrib.h', 'lightLensNode.h', 'lightNode.h', 'loader.h', 'loaderFileType.h', 'loaderFileTypeBam.h', 'loaderFileTypeRegistry.h', 'lodNode.h', 'materialAttrib.h', 'modelNode.h', 'modelPool.h', 'modelRoot.h', 'nodePath.h', 'nodePath.cxx', 'nodePathCollection.h', 'nodePathComponent.h', 'nodePathLerps.h', 'pandaNode.h', 'planeNode.h', 'pointLight.h', 'polylightNode.h', 'polylightEffect.h', 'portalNode.h', 'portalClipper.h', 'renderAttrib.h', 'renderEffect.h', 'renderEffects.h', 'renderModeAttrib.h', 'renderState.h', 'rescaleNormalAttrib.h', 'sceneGraphAnalyzer.h', 'sceneGraphReducer.h', 'sceneSetup.h', 'selectiveChildNode.h', 'sequenceNode.h', 'showBoundsEffect.h', 'spotlight.h', 'switchNode.h', 'texMatrixAttrib.h', 'texProjectorEffect.h', 'textureApplyAttrib.h', 'textureAttrib.h', 'texGenAttrib.h', 'textureCollection.h', 'textureStageCollection.h', 'transformState.h', 'transparencyAttrib.h', 'weakNodePath.h', 'workingNodePath.h', 'pgraph_composite1.cxx', 'pgraph_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpgraph_igate.cxx', obj='libpgraph_igate.obj')
+
+#
+# DIRECTORY: panda/src/chan/
+#
+
+IPATH=['panda/src/chan']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='chan_composite1.cxx', obj='chan_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='chan_composite2.cxx', obj='chan_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libchan.in', outc='libchan_igate.cxx',
+            src='panda/src/chan',  module='panda', library='libchan', files=[
+            'animBundle.h', 'animBundleNode.h', 'animChannel.h', 'animChannelBase.h', 'animChannelMatrixDynamic.h', 'animChannelMatrixXfmTable.h', 'animChannelScalarDynamic.h', 'animChannelScalarTable.h', 'animControl.h', 'animControlCollection.h', 'animGroup.h', 'auto_bind.h', 'config_chan.h', 'movingPartBase.h', 'movingPartMatrix.h', 'movingPartScalar.h', 'partBundle.h', 'partBundleNode.h', 'partGroup.h', 'vector_PartGroupStar.h', 'chan_composite1.cxx', 'chan_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libchan_igate.cxx', obj='libchan_igate.obj')
+
+#
+# DIRECTORY: panda/src/char/
+#
+
+IPATH=['panda/src/char']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='char_composite1.cxx', obj='char_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='char_composite2.cxx', obj='char_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libchar.in', outc='libchar_igate.cxx',
+            src='panda/src/char',  module='panda', library='libchar', files=[
+            'character.h', 'characterJoint.h', 'characterJointBundle.h', 'characterSlider.h', 'computedVertices.h', 'computedVerticesMorph.h', 'config_char.h', 'dynamicVertices.h', 'char_composite1.cxx', 'char_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libchar_igate.cxx', obj='libchar_igate.obj')
+
+#
+# DIRECTORY: panda/src/dgraph/
+#
+
+IPATH=['panda/src/dgraph']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dgraph_composite1.cxx', obj='dgraph_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dgraph_composite2.cxx', obj='dgraph_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdgraph.in', outc='libdgraph_igate.cxx',
+            src='panda/src/dgraph',  module='panda', library='libdgraph', files=[
+            'config_dgraph.h', 'dataGraphTraverser.h', 'dataNode.h', 'dataNodeTransmit.h', 'dgraph_composite1.cxx', 'dgraph_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdgraph_igate.cxx', obj='libdgraph_igate.obj')
+
+#
+# DIRECTORY: panda/src/display/
+#
+
+IPATH=['panda/src/display']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='display_composite1.cxx', obj='display_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='display_composite2.cxx', obj='display_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdisplay.in', outc='libdisplay_igate.cxx',
+            src='panda/src/display',  module='panda', library='libdisplay', files=[
+            'config_display.h', 'drawableRegion.h', 'displayRegion.h', 'displayRegionStack.h', 'frameBufferProperties.h', 'frameBufferStack.h', 'graphicsEngine.h', 'graphicsOutput.h', 'graphicsBuffer.h', 'graphicsPipe.h', 'graphicsPipeSelection.h', 'graphicsStateGuardian.h', 'graphicsThreadingModel.h', 'graphicsWindow.h', 'graphicsWindowInputDevice.h', 'graphicsDevice.h', 'parasiteBuffer.h', 'windowProperties.h', 'lensStack.h', 'savedFrameBuffer.h', 'display_composite1.cxx', 'display_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdisplay_igate.cxx', obj='libdisplay_igate.obj')
+
+#
+# DIRECTORY: panda/src/device/
+#
+
+IPATH=['panda/src/device']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='device_composite1.cxx', obj='device_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='device_composite2.cxx', obj='device_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdevice.in', outc='libdevice_igate.cxx',
+            src='panda/src/device',  module='panda', library='libdevice', files=[
+            'analogNode.h', 'buttonNode.h', 'clientAnalogDevice.h', 'clientBase.h', 'clientButtonDevice.h', 'clientDevice.h', 'clientDialDevice.h', 'clientTrackerDevice.h', 'config_device.h', 'dialNode.h', 'mouseAndKeyboard.h', 'trackerData.h', 'trackerNode.h', 'virtualMouse.h', 'device_composite1.cxx', 'device_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdevice_igate.cxx', obj='libdevice_igate.obj')
+
+#
+# DIRECTORY: panda/src/tform/
+#
+
+IPATH=['panda/src/tform']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='tform_composite1.cxx', obj='tform_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='tform_composite2.cxx', obj='tform_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libtform.in', outc='libtform_igate.cxx',
+            src='panda/src/tform',  module='panda', library='libtform', files=[
+            'buttonThrower.h', 'config_tform.h', 'driveInterface.h', 'mouseInterfaceNode.h', 'mouseWatcher.h', 'mouseWatcherGroup.h', 'mouseWatcherParameter.h', 'mouseWatcherRegion.h', 'trackball.h', 'transform2sg.h', 'tform_composite1.cxx', 'tform_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libtform_igate.cxx', obj='libtform_igate.obj')
+
+#
+# DIRECTORY: panda/src/collide/
+#
+
+IPATH=['panda/src/collide']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='collide_composite1.cxx', obj='collide_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='collide_composite2.cxx', obj='collide_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libcollide.in', outc='libcollide_igate.cxx',
+            src='panda/src/collide',  module='panda', library='libcollide', files=[
+            'collisionEntry.h', 'collisionHandler.h', 'collisionHandlerEvent.h', 'collisionHandlerFloor.h', 'collisionHandlerGravity.h', 'collisionHandlerPhysical.h', 'collisionHandlerPusher.h', 'collisionHandlerQueue.h', 'collisionInvSphere.h', 'collisionLine.h', 'collisionLevelState.h', 'collisionNode.h', 'collisionPlane.h', 'collisionPolygon.h', 'collisionRay.h', 'collisionRecorder.h', 'collisionSegment.h', 'collisionSolid.h', 'collisionSphere.h', 'collisionTraverser.h', 'collisionTube.h', 'collisionVisualizer.h', 'config_collide.h', 'collide_composite1.cxx', 'collide_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libcollide_igate.cxx', obj='libcollide_igate.obj')
+
+#
+# DIRECTORY: panda/src/pnmtext/
+#
+
+if (OMIT.count("FREETYPE")==0):
+    IPATH=['panda/src/pnmtext']
+    OPTS=['BUILDING_PANDA', 'NSPR', 'FREETYPE']
+    CompileC(ipath=IPATH, opts=OPTS, src='config_pnmtext.cxx', obj='pnmtext_config_pnmtext.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='freetypeFont.cxx', obj='pnmtext_freetypeFont.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='pnmTextGlyph.cxx', obj='pnmtext_pnmTextGlyph.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='pnmTextMaker.cxx', obj='pnmtext_pnmTextMaker.obj')
+
+#
+# DIRECTORY: panda/src/text/
+#
+
+IPATH=['panda/src/text']
+OPTS=['BUILDING_PANDA', 'ZLIB', 'NSPR', 'FREETYPE']
+CompileC(ipath=IPATH, opts=OPTS, src='text_composite1.cxx', obj='text_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='text_composite2.cxx', obj='text_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libtext.in', outc='libtext_igate.cxx',
+            src='panda/src/text',  module='panda', library='libtext', files=[
+            'config_text.h', 'default_font.h', 'dynamicTextFont.h', 'dynamicTextGlyph.h', 'dynamicTextPage.h', 'fontPool.h', 'geomTextGlyph.h', 'staticTextFont.h', 'textAssembler.h', 'textFont.h', 'textGlyph.h', 'textNode.h', 'textProperties.h', 'textPropertiesManager.h', 'text_composite1.cxx', 'text_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libtext_igate.cxx', obj='libtext_igate.obj')
+
+#
+# DIRECTORY: panda/src/grutil/
+#
+
+IPATH=['panda/src/grutil']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='multitexReducer.cxx', obj='grutil_multitexReducer.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='grutil_composite1.cxx', obj='grutil_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libgrutil.in', outc='libgrutil_igate.cxx',
+            src='panda/src/grutil',  module='panda', library='libgrutil', files=[
+            'cardMaker.h', 'config_grutil.h', 'frameRateMeter.h', 'lineSegs.h', 'multitexReducer.h', 'multitexReducer.cxx', 'grutil_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libgrutil_igate.cxx', obj='libgrutil_igate.obj')
+
+#
+# DIRECTORY: panda/src/gsgmisc/
+#
+
+IPATH=['panda/src/gsgmisc']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='geomIssuer.cxx', obj='gsgmisc_geomIssuer.obj')
+
+#
+# DIRECTORY: panda/src/helix/
+#
+
+if (OMIT.count("HELIX")==0):
+  IPATH=['panda/src/helix']
+  OPTS=['BUILDING_PANDA', 'NSPR', 'HELIX']
+  CompileC(ipath=IPATH, opts=OPTS, src='config_helix.cxx', obj='helix_config_helix.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='fivemmap.cxx', obj='helix_fivemmap.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HelixClient.cxx', obj='helix_HelixClient.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HxAdviseSink.cxx', obj='helix_HxAdviseSink.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HxAuthenticationManager.cxx', obj='helix_HxAuthenticationManager.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HxClientContext.cxx', obj='helix_HxClientContext.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HxErrorSink.cxx', obj='helix_HxErrorSink.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='HxSiteSupplier.cxx', obj='helix_HxSiteSupplier.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='iids.cxx', obj='helix_iids.obj')
+  CompileC(ipath=IPATH, opts=OPTS, src='print.cxx', obj='helix_print.obj')
+  Interrogate(ipath=IPATH, opts=OPTS, outd='libhelix.in', outc='libhelix_igate.cxx',
+              src='panda/src/helix',  module='panda', library='libhelix', files=['HelixClient.cxx'])
+  CompileC(ipath=IPATH, opts=OPTS, src='libhelix_igate.cxx', obj='libhelix_igate.obj')
+  CompileLIB(lib='libhelix.ilb', obj=[
+             'helix_config_helix.obj',
+             'helix_fivemmap.obj',
+             'helix_HelixClient.obj',
+             'helix_HxAdviseSink.obj',
+             'helix_HxAuthenticationManager.obj',
+             'helix_HxClientContext.obj',
+             'helix_HxErrorSink.obj',
+             'helix_HxSiteSupplier.obj',
+             'helix_iids.obj',
+             'helix_print.obj',
+             'libhelix_igate.obj'])
+
+#
+# DIRECTORY: panda/src/parametrics/
+#
+
+IPATH=['panda/src/parametrics']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='parametrics_composite1.cxx', obj='parametrics_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='parametrics_composite2.cxx', obj='parametrics_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libparametrics.in', outc='libparametrics_igate.cxx',
+            src='panda/src/parametrics',  module='panda', library='libparametrics', files=[
+            'classicNurbsCurve.h', 'config_parametrics.h', 'cubicCurveseg.h', 'parametricCurveDrawer.h',
+            'curveFitter.h', 'hermiteCurve.h', 'nurbsCurve.h', 'nurbsCurveDrawer.h', 'nurbsCurveEvaluator.h',
+            'nurbsCurveInterface.h', 'nurbsCurveResult.h', 'nurbsBasisVector.h', 'nurbsSurfaceEvaluator.h',
+            'nurbsSurfaceResult.h', 'nurbsVertex.h', 'parametricCurve.h', 'parametricCurveCollection.h',
+            'piecewiseCurve.h', 'ropeNode.h', 'sheetNode.h', 'parametrics_composite1.cxx', 'parametrics_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libparametrics_igate.cxx', obj='libparametrics_igate.obj')
+
+#
+# DIRECTORY: panda/src/pgui/
+#
+
+IPATH=['panda/src/pgui']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pgui_composite1.cxx', obj='pgui_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pgui_composite2.cxx', obj='pgui_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libpgui.in', outc='libpgui_igate.cxx',
+            src='panda/src/pgui',  module='panda', library='libpgui', files=[
+            'config_pgui.h', 'pgButton.h', 'pgSliderButton.h', 'pgCullTraverser.h', 'pgEntry.h',
+            'pgMouseWatcherGroup.h', 'pgMouseWatcherParameter.h', 'pgFrameStyle.h', 'pgItem.h',
+            'pgMouseWatcherBackground.h', 'pgMouseWatcherRegion.h', 'pgTop.h', 'pgWaitBar.h', 'pgSliderBar.h',
+            'pgui_composite1.cxx', 'pgui_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpgui_igate.cxx', obj='libpgui_igate.obj')
+
+#
+# DIRECTORY: panda/src/pnmimagetypes/
+#
+
+IPATH=['panda/src/pnmimagetypes', 'panda/src/pnmimage']
+OPTS=['BUILDING_PANDA', 'PNG', 'ZLIB', 'JPEG', 'ZLIB', 'NSPR', 'JPEG', 'TIFF']
+CompileC(ipath=IPATH, opts=OPTS, src='pnmFileTypePNG.cxx', obj='pnmimagetypes_pnmFileTypePNG.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pnmFileTypeTIFF.cxx', obj='pnmimagetypes_pnmFileTypeTIFF.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pnmimagetypes_composite1.cxx', obj='pnmimagetypes_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pnmimagetypes_composite2.cxx', obj='pnmimagetypes_composite2.obj')
+
+#
+# DIRECTORY: panda/src/recorder/
+#
+
+IPATH=['panda/src/recorder']
+OPTS=['BUILDING_PANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='recorder_composite1.cxx', obj='recorder_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='recorder_composite2.cxx', obj='recorder_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='librecorder.in', outc='librecorder_igate.cxx',
+            src='panda/src/recorder',  module='panda', library='librecorder', files=[
+            'config_recorder.h', 'mouseRecorder.h', 'recorderBase.h', 'recorderController.h', 'recorderFrame.h', 'recorderHeader.h', 'recorderTable.h', 'socketStreamRecorder.h', 'recorder_composite1.cxx', 'recorder_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='librecorder_igate.cxx', obj='librecorder_igate.obj')
+
+#
+# DIRECTORY: panda/src/vrpn/
+#
+
+if (OMIT.count("VRPN")==0):
+    IPATH=['panda/src/vrpn']
+    OPTS=['BUILDING_PANDA', 'NSPR', 'VRPN']
+    CompileC(ipath=IPATH, opts=OPTS, src='vrpn_composite1.cxx', obj='pvrpn_composite1.obj')
+    Interrogate(ipath=IPATH, opts=OPTS, outd='libpvrpn.in', outc='libpvrpn_igate.cxx',
+                src='panda/src/vrpn',  module='panda', library='libpvrpn', files=[
+                'config_vrpn.cxx', 'config_vrpn.h', 'vrpnClient.cxx', 'vrpnAnalog.cxx', 'vrpnAnalog.h',
+                'vrpnAnalogDevice.cxx', 'vrpnAnalogDevice.h', 'vrpnButton.cxx', 'vrpnButton.h',
+                'vrpnButtonDevice.cxx', 'vrpnButtonDevice.h', 'vrpnClient.h', 'vrpnDial.cxx', 'vrpnDial.h',
+                'vrpnDialDevice.cxx', 'vrpnDialDevice.h', 'vrpnTracker.cxx', 'vrpnTracker.h', 'vrpnTrackerDevice.cxx',
+                'vrpnTrackerDevice.h', 'vrpn_interface.h'])
+    CompileC(ipath=IPATH, opts=OPTS, src='libpvrpn_igate.cxx', obj='libpvrpn_igate.obj')
+
+#
+# DIRECTORY: panda/metalibs/panda/
+#
+
+IPATH=['panda/metalibs/panda']
+OPTS=['BUILDING_PANDA', 'ZLIB', 'VRPN', 'JPEG', 'PNG', 'TIFF', 'NSPR', 'FREETYPE', 'HELIX', 'FFTW',
+      'ADVAPI', 'WINSOCK2', 'WINUSER', 'WINMM']
+INFILES=['librecorder.in', 'libpgraph.in', 'libgrutil.in', 'libchan.in', 'libpstatclient.in',
+         'libchar.in', 'libcollide.in', 'libdevice.in', 'libdgraph.in', 'libdisplay.in', 'libevent.in',
+         'libgobj.in', 'libgsgbase.in', 'liblinmath.in', 'libmathutil.in', 'libparametrics.in',
+         'libpnmimage.in', 'libtext.in', 'libtform.in', 'liblerp.in', 'libputil.in', 'libaudio.in',
+         'libpgui.in']
+OBJFILES=['panda_panda.obj', 'libpanda_module.obj', 'recorder_composite1.obj',
+          'recorder_composite2.obj', 'librecorder_igate.obj',
+          'pgraph_nodePath.obj', 'pgraph_composite1.obj', 'pgraph_composite2.obj', 'libpgraph_igate.obj',
+          'grutil_multitexReducer.obj', 'grutil_composite1.obj', 'libgrutil_igate.obj',
+          'chan_composite1.obj', 'chan_composite2.obj', 'libchan_igate.obj', 'pstatclient_composite1.obj',
+          'pstatclient_composite2.obj', 'libpstatclient_igate.obj', 'char_composite1.obj',
+          'char_composite2.obj', 'libchar_igate.obj', 'collide_composite1.obj', 'collide_composite2.obj',
+          'libcollide_igate.obj', 'device_composite1.obj', 'device_composite2.obj', 'libdevice_igate.obj',
+          'dgraph_composite1.obj', 'dgraph_composite2.obj', 'libdgraph_igate.obj', 'display_composite1.obj',
+          'display_composite2.obj', 'libdisplay_igate.obj', 'event_composite1.obj', 'libevent_igate.obj',
+          'gobj_composite1.obj', 'gobj_composite2.obj', 'libgobj_igate.obj', 'gsgbase_composite1.obj',
+          'libgsgbase_igate.obj', 'gsgmisc_geomIssuer.obj', 'linmath_composite1.obj',
+          'linmath_composite2.obj', 'liblinmath_igate.obj',
+          'mathutil_composite1.obj', 'mathutil_composite2.obj', 'libmathutil_igate.obj',
+          'parametrics_composite1.obj', 'parametrics_composite2.obj', 'libparametrics_igate.obj',
+          'pnmimagetypes_pnmFileTypePNG.obj', 'pnmimagetypes_pnmFileTypeTIFF.obj', 'pnmimagetypes_composite1.obj',
+          'pnmimagetypes_composite2.obj', 'pnmimage_composite1.obj', 'pnmimage_composite2.obj', 'libpnmimage_igate.obj',
+          'text_composite1.obj', 'text_composite2.obj', 'libtext_igate.obj',
+          'tform_composite1.obj', 'tform_composite2.obj',
+          'libtform_igate.obj', 'lerp_composite1.obj', 'liblerp_igate.obj',
+          'putil_composite1.obj', 'putil_composite2.obj', 'libputil_igate.obj',
+          'audio_composite1.obj', 'libaudio_igate.obj', 'pgui_composite1.obj', 'pgui_composite2.obj',
+          'libpgui_igate.obj', 'pandabase_pandabase.obj', 'libpandaexpress.dll', 'libdtoolconfig.dll', 'libdtool.dll']
+if OMIT.count("HELIX")==0:
+    OBJFILES.append("libhelix.ilb")
+    INFILES.append("libhelix.in")
+if OMIT.count("VRPN")==0:
+    OBJFILES.append("pvrpn_composite1.obj")
+    OBJFILES.append("libpvrpn_igate.obj")
+    INFILES.append("libpvrpn.in")
+if OMIT.count("NSPR")==0:
+    OBJFILES.append("net_composite1.obj")
+    OBJFILES.append("net_composite2.obj")
+    OBJFILES.append("libnet_igate.obj")
+    INFILES.append("libnet.in")
+if OMIT.count("FREETYPE")==0:
+    OBJFILES.append("pnmtext_config_pnmtext.obj")
+    OBJFILES.append("pnmtext_freetypeFont.obj")
+    OBJFILES.append("pnmtext_pnmTextGlyph.obj")
+    OBJFILES.append("pnmtext_pnmTextMaker.obj")
+InterrogateModule(outc='libpanda_module.cxx', module='panda', library='libpanda', files=INFILES)
+CompileC(ipath=IPATH, opts=OPTS, src='panda.cxx', obj='panda_panda.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='libpanda_module.cxx', obj='libpanda_module.obj')
+CompileLink(opts=OPTS, dll='libpanda.dll', obj=OBJFILES, xdep=[
+        PREFIX+'/tmp/dtool_have_helix.dat',
+        PREFIX+'/tmp/dtool_have_vrpn.dat',
+        PREFIX+'/tmp/dtool_have_nspr.dat',
+        PREFIX+'/tmp/dtool_have_freetype.dat',
+])
+
+#
+# DIRECTORY: panda/src/audiotraits/
+#
+
+if OMIT.count("FMOD") == 0:
+  IPATH=['panda/src/audiotraits']
+  OPTS=['BUILDING_FMOD_AUDIO', 'NSPR', 'FMOD']
+  CompileC(ipath=IPATH, opts=OPTS, src='fmod_audio_composite1.cxx', obj='fmod_audio_fmod_audio_composite1.obj')
+  CompileLink(opts=['ADVAPI', 'WINUSER', 'WINMM', 'FMOD', 'NSPR'], dll='libfmod_audio.dll', obj=[
+               'fmod_audio_fmod_audio_composite1.obj',
+               'libpanda.dll',
+               'libpandaexpress.dll',
+               'libdtoolconfig.dll',
+               'libdtool.dll',
+  ])
+
+if OMIT.count("MILES") == 0:
+  IPATH=['panda/src/audiotraits']
+  OPTS=['BUILDING_MILES_AUDIO', 'NSPR', 'MILES']
+  CompileC(ipath=IPATH, opts=OPTS, src='miles_audio_composite1.cxx', obj='miles_audio_miles_audio_composite1.obj')
+  CompileLink(opts=['ADVAPI', 'WINUSER', 'WINMM', 'MILES', 'NSPR'], dll='libmiles_audio.dll', obj=[
+               'miles_audio_miles_audio_composite1.obj',
+               'libpanda.dll',
+               'libpandaexpress.dll',
+               'libdtoolconfig.dll',
+               'libdtool.dll',
+  ])
+
+#
+# DIRECTORY: panda/src/builder/
+#
+
+IPATH=['panda/src/builder']
+OPTS=['BUILDING_PANDAEGG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='builder_composite1.cxx', obj='builder_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='builder_composite2.cxx', obj='builder_composite2.obj')
+
+#
+# DIRECTORY: panda/src/distort/
+#
+
+IPATH=['panda/src/distort']
+OPTS=['BUILDING_PANDAFX', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='distort_composite1.cxx', obj='distort_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdistort.in', outc='libdistort_igate.cxx',
+            src='panda/src/distort',  module='pandafx', library='libdistort',
+            files=['config_distort.h', 'projectionScreen.h', 'cylindricalLens.h', 'fisheyeLens.h', 'nonlinearImager.h', 'pSphereLens.h', 'distort_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdistort_igate.cxx', obj='libdistort_igate.obj')
+
+#
+# DIRECTORY: panda/src/downloadertools/
+#
+
+if OMIT.count("SSL")==0:
+    IPATH=['panda/src/downloadertools']
+    OPTS=['SSL', 'ZLIB', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='apply_patch.cxx', obj='apply_patch_apply_patch.obj')
+    CompileLink(dll='apply_patch.exe', opts=['ADVAPI', 'NSPR'], obj=[
+                 'apply_patch_apply_patch.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='build_patch.cxx', obj='build_patch_build_patch.obj')
+    CompileLink(dll='build_patch.exe', opts=['ADVAPI', 'NSPR'], obj=[
+                 'build_patch_build_patch.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    IPATH=['panda/src/downloadertools']
+    OPTS=['SSL', 'ZLIB', 'ZLIB', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='check_adler.cxx', obj='check_adler_check_adler.obj')
+    CompileLink(dll='check_adler.exe', opts=['ADVAPI', 'NSPR', 'ZLIB'], obj=[
+                 'check_adler_check_adler.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='check_crc.cxx', obj='check_crc_check_crc.obj')
+    CompileLink(dll='check_crc.exe', opts=['ADVAPI', 'NSPR', 'ZLIB'], obj=[
+                 'check_crc_check_crc.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    IPATH=['panda/src/downloadertools']
+    OPTS=['SSL', 'ZLIB', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='check_md5.cxx', obj='check_md5_check_md5.obj')
+    CompileLink(dll='check_md5.exe', opts=['ADVAPI', 'NSPR', 'SSL'], obj=[
+                 'check_md5_check_md5.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='multify.cxx', obj='multify_multify.obj')
+    CompileLink(dll='multify.exe', opts=['ADVAPI', 'NSPR'], obj=[
+                 'multify_multify.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    IPATH=['panda/src/downloadertools']
+    OPTS=['SSL', 'ZLIB', 'ZLIB', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pcompress.cxx', obj='pcompress_pcompress.obj')
+    CompileLink(dll='pcompress.exe', opts=['ADVAPI', 'NSPR', 'ZLIB'], obj=[
+                 'pcompress_pcompress.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='pdecompress.cxx', obj='pdecompress_pdecompress.obj')
+    CompileLink(dll='pdecompress.exe', opts=['ADVAPI', 'NSPR', 'ZLIB'], obj=[
+                 'pdecompress_pdecompress.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    IPATH=['panda/src/downloadertools']
+    OPTS=['SSL', 'ZLIB', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pdecrypt.cxx', obj='pdecrypt_pdecrypt.obj')
+    CompileLink(dll='pdecrypt.exe', opts=['ADVAPI', 'NSPR', 'SSL'], obj=[
+                 'pdecrypt_pdecrypt.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='pencrypt.cxx', obj='pencrypt_pencrypt.obj')
+    CompileLink(dll='pencrypt.exe', opts=['ADVAPI', 'NSPR', 'SSL'], obj=[
+                 'pencrypt_pencrypt.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='show_ddb.cxx', obj='show_ddb_show_ddb.obj')
+    CompileLink(dll='show_ddb.exe', opts=['ADVAPI', 'NSPR'], obj=[
+                 'show_ddb_show_ddb.obj',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: panda/src/glgsg/
+#
+
+IPATH=['panda/src/glgsg', 'panda/src/glstuff', 'panda/src/gobj']
+OPTS=['BUILDING_PANDAGL', 'NSPR', 'NVIDIACG']
+CompileC(ipath=IPATH, opts=OPTS, src='config_glgsg.cxx', obj='glgsg_config_glgsg.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='glgsg.cxx', obj='glgsg_glgsg.obj')
+
+#
+# DIRECTORY: panda/src/effects/
+#
+
+IPATH=['panda/src/effects']
+OPTS=['BUILDING_PANDAFX', 'NSPR', 'NVIDIACG']
+CompileC(ipath=IPATH, opts=OPTS, src='effects_composite1.cxx', obj='effects_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libeffects.in', outc='libeffects_igate.cxx',
+            src='panda/src/effects',  module='pandafx', library='libeffects',
+            files=['config_effects.h', 'cgShader.h', 'cgShaderAttrib.h', 'cgShaderContext.h', 'lensFlareNode.h', 'effects_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libeffects_igate.cxx', obj='libeffects_igate.obj')
+
+#
+# DIRECTORY: panda/metalibs/pandafx/
+#
+
+IPATH=['panda/metalibs/pandafx', 'panda/src/distort']
+OPTS=['BUILDING_PANDAFX', 'NSPR', 'NVIDIACG']
+CompileC(ipath=IPATH, opts=OPTS, src='pandafx.cxx', obj='pandafx_pandafx.obj')
+InterrogateModule(outc='libpandafx_module.cxx', module='pandafx', library='libpandafx',
+                  files=['libdistort.in', 'libeffects.in'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpandafx_module.cxx', obj='libpandafx_module.obj')
+CompileLink(dll='libpandafx.dll', opts=['ADVAPI', 'NSPR', 'NVIDIACG'], obj=[
+             'pandafx_pandafx.obj',
+             'libpandafx_module.obj',
+             'distort_composite1.obj',
+             'libdistort_igate.obj',
+             'effects_composite1.obj',
+             'libeffects_igate.obj',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/glstuff/
+#
+
+IPATH=['panda/src/glstuff']
+OPTS=['NSPR', 'NVIDIACG', 'CGGL']
+CompileC(ipath=IPATH, opts=OPTS, src='glpure.cxx', obj='glstuff_glpure.obj')
+CompileLink(dll='libglstuff.dll', opts=['ADVAPI', 'GLUT', 'NSPR', 'NVIDIACG', 'CGGL'], obj=[
+             'glstuff_glpure.obj',
+             'libpanda.dll',
+             'libpandafx.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/windisplay/
+#
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['panda/src/windisplay']
+    OPTS=['BUILDING_PANDAWIN', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='winGraphicsWindow.cxx', obj='windisplay_winGraphicsWindow.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='config_windisplay.cxx', obj='windisplay_config_windisplay.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='winGraphicsPipe.cxx', obj='windisplay_winGraphicsPipe.obj')
+    CompileLink(opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NSPR'],
+                dll='libwindisplay.dll', obj=[
+      'windisplay_winGraphicsWindow.obj',
+      'windisplay_config_windisplay.obj',
+      'windisplay_winGraphicsPipe.obj',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/src/glxdisplay/
+#
+
+if (sys.platform != "win32" and sys.platform != "cygwin"):
+    IPATH=['panda/src/glxdisplay', 'panda/src/gobj']
+    OPTS=['BUILDING_PANDAGLUT', 'NSPR', 'GLUT', 'NVIDIACG', 'CGGL']
+    CompileC(ipath=IPATH, opts=OPTS, src='glxdisplay_composite1.cxx',     obj='glxdisplay_composite1.obj')
+    Interrogate(ipath=IPATH, opts=OPTS, outd='libglxdisplay.in', outc='libglxdisplay_igate.cxx',
+                src='panda/src/glxdisplay',  module='pandagl', library='libglxdisplay', files=['glxGraphicsPipe.h'])
+    CompileC(ipath=IPATH, opts=OPTS, src='libglxdisplay_igate.cxx',      obj='libglxdisplay_igate.obj')
+
+    IPATH=['panda/metalibs/pandagl']
+    OPTS=['BUILDING_PANDAGL', 'NSPR', 'NVIDIACG', 'CGGL']
+    CompileC(ipath=IPATH, opts=OPTS, src='pandagl.cxx', obj='pandagl_pandagl.obj')
+    CompileLink(opts=['GLUT', 'NVIDIACG', 'CGGL', 'NSPR'], dll='libpandagl.dll', obj=[
+      'pandagl_pandagl.obj',
+      'glgsg_config_glgsg.obj',
+      'glgsg_glgsg.obj',
+      'glxdisplay_composite1.obj',
+      'libglxdisplay_igate.obj',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libglstuff.dll',
+      'libpandafx.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/src/wgldisplay/
+#
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['panda/src/wgldisplay', 'panda/src/glstuff', 'panda/src/gobj']
+    OPTS=['BUILDING_PANDAGL', 'NSPR', 'NVIDIACG', 'CGGL']
+    CompileC(ipath=IPATH, opts=OPTS, src='wgldisplay_composite1.cxx', obj='wgldisplay_composite1.obj')
+
+    IPATH=['panda/metalibs/pandagl']
+    OPTS=['BUILDING_PANDAGL', 'NSPR', 'NVIDIACG', 'CGGL']
+    CompileC(ipath=IPATH, opts=OPTS, src='pandagl.cxx', obj='pandagl_pandagl.obj')
+    CompileLink(opts=['WINGDI', 'GLUT', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NSPR', 'NVIDIACG', 'CGGL'],
+                dll='libpandagl.dll', obj=[
+      'pandagl_pandagl.obj',
+      'glgsg_config_glgsg.obj',
+      'glgsg_glgsg.obj',
+      'wgldisplay_composite1.obj',
+      'libwindisplay.dll',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libglstuff.dll',
+      'libpandafx.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/metalibs/pandadx7/
+#
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['panda/src/dxgsg7']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='dxGraphicsStateGuardian7.cxx', obj='dxgsg7_dxGraphicsStateGuardian7.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='dxgsg7_composite1.cxx', obj='dxgsg7_composite1.obj')
+
+    IPATH=['panda/metalibs/pandadx7']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pandadx7.cxx', obj='pandadx7_pandadx7.obj')
+    CompileLink(dll='libpandadx7.dll', opts=['ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DXDRAW', 'DXGUID', 'D3D8', 'NSPR'], obj=[
+      'pandadx7_pandadx7.obj',
+      'dxgsg7_dxGraphicsStateGuardian7.obj',
+      'dxgsg7_composite1.obj',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libwindisplay.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/metalibs/pandadx8/
+#
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['panda/src/dxgsg8']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='dxGraphicsStateGuardian8.cxx', obj='dxgsg8_dxGraphicsStateGuardian8.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='dxgsg8_composite1.cxx', obj='dxgsg8_composite1.obj')
+
+    IPATH=['panda/metalibs/pandadx8']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pandadx8.cxx', obj='pandadx8_pandadx8.obj')
+    CompileLink(dll='libpandadx8.dll',
+      opts=['ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DXDRAW', 'DXGUID', 'D3D8', 'NSPR'], obj=[
+      'pandadx8_pandadx8.obj',
+      'dxgsg8_dxGraphicsStateGuardian8.obj',
+      'dxgsg8_composite1.obj',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libwindisplay.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/metalibs/pandadx9/
+#
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['panda/src/dxgsg9']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='dxGraphicsStateGuardian9.cxx', obj='dxgsg9_dxGraphicsStateGuardian9.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='dxgsg9_composite1.cxx', obj='dxgsg9_composite1.obj')
+
+    IPATH=['panda/metalibs/pandadx9']
+    OPTS=['BUILDING_PANDADX', 'DXSDK', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pandadx9.cxx', obj='pandadx9_pandadx9.obj')
+    CompileLink(dll='libpandadx9.dll',
+      opts=['ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DXDRAW', 'DXGUID', 'D3D9', 'NSPR'], obj=[
+      'pandadx9_pandadx9.obj',
+      'dxgsg9_dxGraphicsStateGuardian9.obj',
+      'dxgsg9_composite1.obj',
+      'libpanda.dll',
+      'libpandaexpress.dll',
+      'libwindisplay.dll',
+      'libdtoolconfig.dll',
+      'libdtool.dll',
+      ])
+
+#
+# DIRECTORY: panda/src/egg/
+#
+
+IPATH=['panda/src/egg']
+CompileBison(pre='eggyy', dstc='parser.cxx', dsth='parser.h', src='panda/src/egg/parser.yxx')
+CompileFlex(pre='eggyy', dst='lexer.cxx', src='panda/src/egg/lexer.lxx', dashi=1)
+OPTS=['BUILDING_PANDAEGG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='egg_composite1.cxx', obj='egg_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='egg_composite2.cxx', obj='egg_composite2.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='parser.cxx', obj='egg_parser.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='lexer.cxx', obj='egg_lexer.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libegg.in', outc='libegg_igate.cxx',
+            src='panda/src/egg',  module='pandaegg', library='libegg', files=[
+            'config_egg.h', 'eggAnimData.h', 'eggAttributes.h', 'eggBin.h', 'eggBinMaker.h', 'eggComment.h',
+            'eggCoordinateSystem.h', 'eggCurve.h', 'eggData.h', 'eggExternalReference.h', 'eggFilenameNode.h',
+            'eggGroup.h', 'eggGroupNode.h', 'eggGroupUniquifier.h', 'eggLine.h', 'eggMaterial.h',
+            'eggMaterialCollection.h', 'eggMiscFuncs.h', 'eggMorph.h', 'eggMorphList.h', 'eggNamedObject.h',
+            'eggNameUniquifier.h', 'eggNode.h', 'eggNurbsCurve.h', 'eggNurbsSurface.h', 'eggObject.h',
+            'eggParameters.h', 'eggPoint.h', 'eggPolygon.h', 'eggPolysetMaker.h', 'eggPoolUniquifier.h',
+            'eggPrimitive.h', 'eggRenderMode.h', 'eggSAnimData.h', 'eggSurface.h', 'eggSwitchCondition.h',
+            'eggTable.h', 'eggTexture.h', 'eggTextureCollection.h', 'eggTransform3d.h', 'eggUserData.h',
+            'eggUtilities.h', 'eggVertex.h', 'eggVertexPool.h', 'eggVertexUV.h', 'eggXfmAnimData.h',
+            'eggXfmSAnim.h', 'parserDefs.h', 'lexerDefs.h', 'pt_EggMaterial.h', 'vector_PT_EggMaterial.h',
+            'pt_EggTexture.h', 'vector_PT_EggTexture.h', 'pt_EggVertex.h', 'vector_PT_EggVertex.h',
+            'egg_composite1.cxx', 'egg_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libegg_igate.cxx', obj='libegg_igate.obj')
+
+#
+# DIRECTORY: panda/src/egg2pg/
+#
+
+IPATH=['panda/src/egg2pg']
+OPTS=['BUILDING_PANDAEGG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='egg2pg_composite1.cxx', obj='egg2pg_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='egg2pg_composite2.cxx', obj='egg2pg_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libegg2pg.in', outc='libegg2pg_igate.cxx',
+            src='panda/src/egg2pg',  module='pandaegg', library='libegg2pg', files=['load_egg_file.h'])
+CompileC(ipath=IPATH, opts=OPTS, src='libegg2pg_igate.cxx', obj='libegg2pg_igate.obj')
+
+#
+# DIRECTORY: panda/src/framework/
+#
+
+IPATH=['panda/src/framework']
+OPTS=['BUILDING_FRAMEWORK', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='config_framework.cxx', obj='framework_config_framework.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='pandaFramework.cxx', obj='framework_pandaFramework.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='windowFramework.cxx', obj='framework_windowFramework.obj')
+CompileLink(dll='libframework.dll', opts=['ADVAPI', 'NSPR'], obj=[
+             'framework_config_framework.obj',
+             'framework_pandaFramework.obj',
+             'framework_windowFramework.obj',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             ])
+
+#
+# DIRECTORY: panda/metalibs/pandaegg/
+#
+
+IPATH=['panda/metalibs/pandaegg', 'panda/src/egg']
+OPTS=['BUILDING_PANDAEGG', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandaegg.cxx', obj='pandaegg_pandaegg.obj')
+InterrogateModule(outc='libpandaegg_module.cxx', module='pandaegg', library='libpandaegg',
+                  files=['libegg2pg.in', 'libegg.in'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpandaegg_module.cxx', obj='libpandaegg_module.obj')
+CompileLink(dll='libpandaegg.dll', opts=['ADVAPI', 'NSPR'], obj=[
+             'pandaegg_pandaegg.obj',
+             'libpandaegg_module.obj',
+             'egg2pg_composite1.obj',
+             'egg2pg_composite2.obj',
+             'libegg2pg_igate.obj',
+             'egg_composite1.obj',
+             'egg_composite2.obj',
+             'egg_parser.obj',
+             'egg_lexer.obj',
+             'libegg_igate.obj',
+             'builder_composite1.obj',
+             'builder_composite2.obj',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/physics/
+#
+
+IPATH=['panda/src/physics']
+OPTS=['BUILDING_PANDAPHYSICS', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='physics_composite1.cxx', obj='physics_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='physics_composite2.cxx', obj='physics_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libphysics.in', outc='libphysics_igate.cxx',
+            src='panda/src/physics',  module='pandaphysics', library='libphysics',
+            files=['actorNode.h', 'angularEulerIntegrator.h', 'angularForce.h', 'angularIntegrator.h', 'angularVectorForce.h', 'baseForce.h', 'baseIntegrator.h', 'config_physics.h', 'forceNode.h', 'linearCylinderVortexForce.h', 'linearDistanceForce.h', 'linearEulerIntegrator.h', 'linearForce.h', 'linearFrictionForce.h', 'linearIntegrator.h', 'linearJitterForce.h', 'linearNoiseForce.h', 'linearRandomForce.h', 'linearSinkForce.h', 'linearSourceForce.h', 'linearUserDefinedForce.h', 'linearVectorForce.h', 'physical.h', 'physicalNode.h', 'physicsCollisionHandler.h', 'physicsManager.h', 'physicsObject.h', 'physics_composite1.cxx', 'physics_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libphysics_igate.cxx', obj='libphysics_igate.obj')
+
+#
+# DIRECTORY: panda/src/particlesystem/
+#
+
+IPATH=['panda/src/particlesystem']
+OPTS=['BUILDING_PANDAPHYSICS', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='particlesystem_composite1.cxx', obj='particlesystem_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='particlesystem_composite2.cxx', obj='particlesystem_composite2.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libparticlesystem.in', outc='libparticlesystem_igate.cxx',
+            src='panda/src/particlesystem',  module='pandaphysics', library='libparticlesystem',
+            files=['baseParticle.h', 'baseParticleEmitter.h', 'baseParticleFactory.h', 'baseParticleRenderer.h', 'boxEmitter.h', 'config_particlesystem.h', 'discEmitter.h', 'geomParticleRenderer.h', 'lineEmitter.h', 'lineParticleRenderer.h', 'particleSystem.h', 'particleSystemManager.h', 'pointEmitter.h', 'pointParticle.h', 'pointParticleFactory.h', 'pointParticleRenderer.h', 'rectangleEmitter.h', 'ringEmitter.h', 'sparkleParticleRenderer.h', 'sphereSurfaceEmitter.h', 'sphereVolumeEmitter.h', 'spriteParticleRenderer.h', 'tangentRingEmitter.h', 'zSpinParticle.h', 'zSpinParticleFactory.h', 'particleCommonFuncs.h', 'particlesystem_composite1.cxx', 'particlesystem_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libparticlesystem_igate.cxx', obj='libparticlesystem_igate.obj')
+
+#
+# DIRECTORY: panda/metalibs/pandaphysics/
+#
+
+IPATH=['panda/metalibs/pandaphysics']
+OPTS=['BUILDING_PANDAPHYSICS', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandaphysics.cxx', obj='pandaphysics_pandaphysics.obj')
+InterrogateModule(outc='libpandaphysics_module.cxx', module='pandaphysics', library='libpandaphysics',
+                  files=['libphysics.in', 'libparticlesystem.in'])
+CompileC(ipath=IPATH, opts=OPTS, src='libpandaphysics_module.cxx', obj='libpandaphysics_module.obj')
+CompileLink(dll='libpandaphysics.dll', opts=['ADVAPI', 'NSPR'], obj=[
+             'pandaphysics_pandaphysics.obj',
+             'libpandaphysics_module.obj',
+             'physics_composite1.obj',
+             'physics_composite2.obj',
+             'libphysics_igate.obj',
+             'particlesystem_composite1.obj',
+             'particlesystem_composite2.obj',
+             'libparticlesystem_igate.obj',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: panda/src/testbed/
+#
+
+IPATH=['panda/src/testbed']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pview.cxx', obj='pview_pview.obj')
+CompileLink(dll='pview.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'pview_pview.obj',
+             'libframework.dll',
+             'libpanda.dll',
+             'libpandafx.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: direct/src/directbase/
+#
+
+IPATH=['direct/src/directbase']
+OPTS=['BUILDING_DIRECT', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='directbase.cxx', obj='directbase_directbase.obj')
+
+#
+# DIRECTORY: direct/src/dcparser/
+#
+
+CompileBison(pre='dcyy', dstc='dcParser.cxx', dsth='dcParser.h', src='direct/src/dcparser/dcParser.yxx')
+CompileFlex(pre='dcyy', dst='dcLexer.cxx', src='direct/src/dcparser/dcLexer.lxx', dashi=0)
+IPATH=['direct/src/dcparser']
+OPTS=['WITHINPANDA', 'BUILDING_DIRECT', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dcparser_composite1.cxx', obj='dcparser_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dcparser_composite2.cxx', obj='dcparser_composite2.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dcParser.cxx', obj='dcparser_dcParser.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dcLexer.cxx', obj='dcparser_dcLexer.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdcparser.in', outc='libdcparser_igate.cxx',
+            src='direct/src/dcparser',  module='direct', library='libdcparser',
+            files=['dcAtomicField.h', 'dcClass.h', 'dcDeclaration.h', 'dcField.h', 'dcFile.h',
+            'dcLexerDefs.h', 'dcMolecularField.h', 'dcParserDefs.h', 'dcSubatomicType.h',
+            'dcPackData.h', 'dcPacker.h', 'dcPackerCatalog.h', 'dcPackerInterface.h',
+            'dcParameter.h', 'dcClassParameter.h', 'dcArrayParameter.h', 'dcSimpleParameter.h',
+            'dcSwitchParameter.h', 'dcNumericRange.h', 'dcSwitch.h', 'dcTypedef.h', 'dcPython.h',
+            'dcbase.h', 'dcindent.h', 'hashGenerator.h', 'primeNumberGenerator.h',
+            'dcparser_composite1.cxx', 'dcparser_composite2.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdcparser_igate.cxx', obj='libdcparser_igate.obj')
+
+#
+# DIRECTORY: direct/src/deadrec/
+#
+
+IPATH=['direct/src/deadrec']
+OPTS=['BUILDING_DIRECT', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='deadrec_composite1.cxx', obj='deadrec_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdeadrec.in', outc='libdeadrec_igate.cxx',
+            src='direct/src/deadrec',  module='direct', library='libdeadrec',
+            files=['smoothMover.h', 'deadrec_composite1.cxx'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdeadrec_igate.cxx', obj='libdeadrec_igate.obj')
+
+#
+# DIRECTORY: direct/src/distributed/
+#
+
+IPATH=['direct/src/distributed', 'direct/src/dcparser']
+OPTS=['WITHINPANDA', 'BUILDING_DIRECT', 'SSL', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='config_distributed.cxx', obj='distributed_config_distributed.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='cConnectionRepository.cxx', obj='distributed_cConnectionRepository.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='cDistributedSmoothNodeBase.cxx', obj='distributed_cDistributedSmoothNodeBase.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libdistributed.in', outc='libdistributed_igate.cxx',
+            src='direct/src/distributed',  module='direct', library='libdistributed',
+            files=['config_distributed.cxx', 'config_distributed.h', 'cConnectionRepository.cxx',
+            'cConnectionRepository.h', 'cDistributedSmoothNodeBase.cxx', 'cDistributedSmoothNodeBase.h'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdistributed_igate.cxx', obj='libdistributed_igate.obj')
+
+#
+# DIRECTORY: direct/src/interval/
+#
+
+IPATH=['direct/src/interval']
+OPTS=['BUILDING_DIRECT', 'NSPR']
+#CompileC(ipath=IPATH, opts=OPTS, src='config_interval.cxx', obj='interval_config_interval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cInterval.cxx', obj='interval_cInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cIntervalManager.cxx', obj='interval_cIntervalManager.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cLerpInterval.cxx', obj='interval_cLerpInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cLerpNodePathInterval.cxx', obj='interval_cLerpNodePathInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cLerpAnimEffectInterval.cxx', obj='interval_cLerpAnimEffectInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='cMetaInterval.cxx', obj='interval_cMetaInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='hideInterval.cxx', obj='interval_hideInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='showInterval.cxx', obj='interval_showInterval.obj')
+#CompileC(ipath=IPATH, opts=OPTS, src='waitInterval.cxx', obj='interval_waitInterval.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='interval_composite1.cxx', obj='interval_composite1.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libinterval.in', outc='libinterval_igate.cxx',
+            src='direct/src/interval',  module='direct', library='libinterval',
+            files=['config_interval.cxx', 'config_interval.h', 'cInterval.cxx', 'cInterval.h',
+            'cIntervalManager.cxx', 'cIntervalManager.h', 'cLerpInterval.cxx', 'cLerpInterval.h',
+            'cLerpNodePathInterval.cxx', 'cLerpNodePathInterval.h', 'cLerpAnimEffectInterval.cxx',
+            'cLerpAnimEffectInterval.h', 'cMetaInterval.cxx', 'cMetaInterval.h', 'hideInterval.cxx',
+            'hideInterval.h', 'showInterval.cxx', 'showInterval.h', 'waitInterval.cxx', 'waitInterval.h',
+            'lerp_helpers.h'])
+CompileC(ipath=IPATH, opts=OPTS, src='libinterval_igate.cxx', obj='libinterval_igate.obj')
+
+#
+# DIRECTORY: direct/src/showbase/
+#
+
+IPATH=['direct/src/showbase']
+OPTS=['BUILDING_DIRECT', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='showBase.cxx', obj='showbase_showBase.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='mersenne.cxx', obj='showbase_mersenne.obj')
+Interrogate(ipath=IPATH, opts=OPTS, outd='libshowbase.in', outc='libshowbase_igate.cxx',
+            src='direct/src/showbase', module='direct', library='libshowbase',
+            files=['showBase.cxx', 'showBase.h', 'mersenne.cxx', 'mersenne.h'])
+CompileC(ipath=IPATH, opts=OPTS, src='libshowbase_igate.cxx', obj='libshowbase_igate.obj')
+
+#
+# DIRECTORY: direct/metalibs/direct/
+#
+
+IPATH=['direct/metalibs/direct']
+OPTS=['BUILDING_DIRECT', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='direct.cxx', obj='direct_direct.obj')
+InterrogateModule(outc='libdirect_module.cxx', module='direct', library='libdirect',
+                  files=['libdcparser.in', 'libshowbase.in', 'libdeadrec.in', 'libinterval.in', 'libdistributed.in'])
+CompileC(ipath=IPATH, opts=OPTS, src='libdirect_module.cxx', obj='libdirect_module.obj')
+CompileLink(dll='libdirect.dll', opts=['ADVAPI', 'NSPR', 'SSL'], obj=[
+             'direct_direct.obj',
+             'libdirect_module.obj',
+             'directbase_directbase.obj',
+             'dcparser_composite1.obj',
+             'dcparser_composite2.obj',
+             'dcparser_dcParser.obj',
+             'dcparser_dcLexer.obj',
+             'libdcparser_igate.obj',
+             'showbase_showBase.obj',
+             'showbase_mersenne.obj',
+             'libshowbase_igate.obj',
+             'deadrec_composite1.obj',
+             'libdeadrec_igate.obj',
+             'interval_composite1.obj',
+             'libinterval_igate.obj',
+             'distributed_config_distributed.obj',
+             'distributed_cConnectionRepository.obj',
+             'distributed_cDistributedSmoothNodeBase.obj',
+             'libdistributed_igate.obj',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: direct/src/dcparse/
+#
+
+IPATH=['direct/src/dcparse', 'direct/src/dcparser']
+OPTS=['WITHINPANDA', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dcparse.cxx', obj='dcparse_dcparse.obj')
+CompileLink(dll='dcparse.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'dcparse_dcparse.obj',
+             'libdirect.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: direct/src/heapq/
+#
+
+IPATH=['direct/src/heapq']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='heapq.cxx', obj='heapq_heapq.obj')
+CompileLink(dll='libheapq.dll', opts=['ADVAPI', 'NSPR'], obj=[
+             'heapq_heapq.obj',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/pandatoolbase/
+#
+
+IPATH=['pandatool/src/pandatoolbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandatoolbase_composite1.cxx', obj='pandatoolbase_composite1.obj')
+CompileLIB(lib='libpandatoolbase.lib', obj=['pandatoolbase_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/converter/
+#
+
+IPATH=['pandatool/src/converter']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='somethingToEggConverter.cxx', obj='converter_somethingToEggConverter.obj')
+CompileLIB(lib='libconverter.lib', obj=['converter_somethingToEggConverter.obj'])
+
+#
+# DIRECTORY: pandatool/src/progbase/
+#
+
+IPATH=['pandatool/src/progbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='progbase_composite1.cxx', obj='progbase_composite1.obj')
+CompileLIB(lib='libprogbase.lib', obj=['progbase_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/eggbase/
+#
+
+IPATH=['pandatool/src/eggbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggbase_composite1.cxx', obj='eggbase_composite1.obj')
+CompileLIB(lib='libeggbase.lib', obj=['eggbase_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/bam/
+#
+
+IPATH=['pandatool/src/bam']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='bamInfo.cxx', obj='bam-info_bamInfo.obj')
+CompileLink(dll='bam-info.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'bam-info_bamInfo.obj',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='bamToEgg.cxx', obj='bam2egg_bamToEgg.obj')
+CompileLink(dll='bam2egg.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'bam2egg_bamToEgg.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggToBam.cxx', obj='egg2bam_eggToBam.obj')
+CompileLink(dll='egg2bam.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'egg2bam_eggToBam.obj',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libconverter.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/cvscopy/
+#
+
+IPATH=['pandatool/src/cvscopy']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='cvscopy_composite1.cxx', obj='cvscopy_composite1.obj')
+CompileLIB(lib='libcvscopy.lib', obj=['cvscopy_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/dxf/
+#
+
+IPATH=['pandatool/src/dxf']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dxf_composite1.cxx', obj='dxf_composite1.obj')
+CompileLIB(lib='libdxf.lib', obj=['dxf_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/dxfegg/
+#
+
+IPATH=['pandatool/src/dxfegg']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dxfToEggConverter.cxx', obj='dxfegg_dxfToEggConverter.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='dxfToEggLayer.cxx', obj='dxfegg_dxfToEggLayer.obj')
+CompileLIB(lib='libdxfegg.lib', obj=[
+             'dxfegg_dxfToEggConverter.obj',
+             'dxfegg_dxfToEggLayer.obj',
+])
+
+#
+# DIRECTORY: pandatool/src/dxfprogs/
+#
+
+IPATH=['pandatool/src/dxfprogs']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='dxfPoints.cxx', obj='dxf-points_dxfPoints.obj')
+CompileLink(dll='dxf-points.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'dxf-points_dxfPoints.obj',
+             'libprogbase.lib',
+             'libdxf.lib',
+             'libpandatoolbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='dxfToEgg.cxx', obj='dxf2egg_dxfToEgg.obj')
+CompileLink(dll='dxf2egg.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'dxf2egg_dxfToEgg.obj',
+             'libdxfegg.lib',
+             'libdxf.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggToDXF.cxx', obj='egg2dxf_eggToDXF.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='eggToDXFLayer.cxx', obj='egg2dxf_eggToDXFLayer.obj')
+CompileLink(dll='egg2dxf.exe', opts=['ADVAPI', 'NSPR', 'FFTW'], obj=[
+             'egg2dxf_eggToDXF.obj',
+             'egg2dxf_eggToDXFLayer.obj',
+             'libdxf.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/palettizer/
+#
+
+IPATH=['pandatool/src/palettizer']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='palettizer_composite1.cxx', obj='palettizer_composite1.obj')
+CompileLIB(lib='libpalettizer.lib', obj=['palettizer_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/egg-mkfont/
+#
+
+if OMIT.count("FREETYPE")==0:
+    IPATH=['pandatool/src/egg-mkfont', 'pandatool/src/palettizer']
+    OPTS=['NSPR', 'FREETYPE']
+    CompileC(ipath=IPATH, opts=OPTS, src='eggMakeFont.cxx', obj='egg-mkfont_eggMakeFont.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='rangeDescription.cxx', obj='egg-mkfont_rangeDescription.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='rangeIterator.cxx', obj='egg-mkfont_rangeIterator.obj')
+    CompileLink(dll='egg-mkfont.exe', opts=['ADVAPI', 'NSPR', 'FREETYPE'], obj=[
+                 'egg-mkfont_eggMakeFont.obj',
+                 'egg-mkfont_rangeDescription.obj',
+                 'egg-mkfont_rangeIterator.obj',
+                 'libpalettizer.lib',
+                 'libeggbase.lib',
+                 'libprogbase.lib',
+                 'libpandatoolbase.lib',
+                 'libconverter.lib',
+                 'libpandaegg.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: pandatool/src/eggcharbase/
+#
+
+IPATH=['pandatool/src/eggcharbase']
+OPTS=['ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggcharbase_composite1.cxx', obj='eggcharbase_composite1.obj')
+CompileLIB(lib='libeggcharbase.lib', obj=['eggcharbase_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/egg-optchar/
+#
+
+IPATH=['pandatool/src/egg-optchar']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='config_egg_optchar.cxx', obj='egg-optchar_config_egg_optchar.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='eggOptchar.cxx', obj='egg-optchar_eggOptchar.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='eggOptcharUserData.cxx', obj='egg-optchar_eggOptcharUserData.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vertexMembership.cxx', obj='egg-optchar_vertexMembership.obj')
+CompileLink(dll='egg-optchar.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-optchar_config_egg_optchar.obj',
+             'egg-optchar_eggOptchar.obj',
+             'egg-optchar_eggOptcharUserData.obj',
+             'egg-optchar_vertexMembership.obj',
+             'libeggcharbase.lib',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/egg-palettize/
+#
+
+IPATH=['pandatool/src/egg-palettize', 'pandatool/src/palettizer']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggPalettize.cxx', obj='egg-palettize_eggPalettize.obj')
+CompileLink(dll='egg-palettize.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-palettize_eggPalettize.obj',
+             'libpalettizer.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/egg-qtess/
+#
+
+IPATH=['pandatool/src/egg-qtess']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='egg-qtess_composite1.cxx', obj='egg-qtess_composite1.obj')
+CompileLink(dll='egg-qtess.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-qtess_composite1.obj',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libconverter.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/eggprogs/
+#
+
+IPATH=['pandatool/src/eggprogs']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggCrop.cxx', obj='egg-crop_eggCrop.obj')
+CompileLink(dll='egg-crop.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-crop_eggCrop.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggMakeTube.cxx', obj='egg-make-tube_eggMakeTube.obj')
+CompileLink(dll='egg-make-tube.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-make-tube_eggMakeTube.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggTextureCards.cxx', obj='egg-texture-cards_eggTextureCards.obj')
+CompileLink(dll='egg-texture-cards.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-texture-cards_eggTextureCards.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggTopstrip.cxx', obj='egg-topstrip_eggTopstrip.obj')
+CompileLink(dll='egg-topstrip.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-topstrip_eggTopstrip.obj',
+             'libeggcharbase.lib',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggTrans.cxx', obj='egg-trans_eggTrans.obj')
+CompileLink(dll='egg-trans.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg-trans_eggTrans.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='eggToC.cxx', obj='egg2c_eggToC.obj')
+CompileLink(dll='egg2c.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg2c_eggToC.obj',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/flt/
+#
+
+IPATH=['pandatool/src/flt']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='fltVectorRecord.cxx', obj='flt_fltVectorRecord.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='flt_composite1.cxx', obj='flt_composite1.obj')
+CompileLIB(lib='libflt.lib', obj=['flt_fltVectorRecord.obj', 'flt_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/fltegg/
+#
+
+IPATH=['pandatool/src/fltegg']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='fltToEggConverter.cxx', obj='fltegg_fltToEggConverter.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='fltToEggLevelState.cxx', obj='fltegg_fltToEggLevelState.obj')
+CompileLIB(lib='libfltegg.lib', obj=['fltegg_fltToEggConverter.obj', 'fltegg_fltToEggLevelState.obj'])
+
+#
+# DIRECTORY: pandatool/src/fltprogs/
+#
+
+IPATH=['pandatool/src/fltprogs', 'pandatool/src/flt', 'pandatool/src/cvscopy']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggToFlt.cxx', obj='egg2flt_eggToFlt.obj')
+CompileLink(dll='egg2flt.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg2flt_eggToFlt.obj',
+             'libflt.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libconverter.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='fltInfo.cxx', obj='flt-info_fltInfo.obj')
+CompileLink(dll='flt-info.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'flt-info_fltInfo.obj',
+             'libprogbase.lib',
+             'libflt.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='fltTrans.cxx', obj='flt-trans_fltTrans.obj')
+CompileLink(dll='flt-trans.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'flt-trans_fltTrans.obj',
+             'libprogbase.lib',
+             'libflt.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='fltToEgg.cxx', obj='flt2egg_fltToEgg.obj')
+CompileLink(dll='flt2egg.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'flt2egg_fltToEgg.obj',
+             'libflt.lib',
+             'libfltegg.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libconverter.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+CompileC(ipath=IPATH, opts=OPTS, src='fltCopy.cxx', obj='fltcopy_fltCopy.obj')
+CompileLink(dll='fltcopy.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'fltcopy_fltCopy.obj',
+             'libcvscopy.lib',
+             'libflt.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/imagebase/
+#
+
+IPATH=['pandatool/src/imagebase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='imagebase_composite1.cxx', obj='imagebase_composite1.obj')
+CompileLIB(lib='libimagebase.lib', obj=['imagebase_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/imageprogs/
+#
+
+IPATH=['pandatool/src/imageprogs']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='imageInfo.cxx', obj='image-info_imageInfo.obj')
+CompileLink(dll='image-info.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'image-info_imageInfo.obj',
+             'libimagebase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='imageResize.cxx', obj='image-resize_imageResize.obj')
+CompileLink(dll='image-resize.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'image-resize_imageResize.obj',
+             'libimagebase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='imageTrans.cxx', obj='image-trans_imageTrans.obj')
+CompileLink(dll='image-trans.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'image-trans_imageTrans.obj',
+             'libimagebase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/lwo/
+#
+
+IPATH=['pandatool/src/lwo']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='lwo_composite1.cxx', obj='lwo_composite1.obj')
+CompileLIB(lib='liblwo.lib', obj=['lwo_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/lwoegg/
+#
+
+IPATH=['pandatool/src/lwoegg']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='lwoegg_composite1.cxx', obj='lwoegg_composite1.obj')
+CompileLIB(lib='liblwoegg.lib', obj=['lwoegg_composite1.obj'])
+
+#
+# DIRECTORY: pandatool/src/lwoprogs/
+#
+
+IPATH=['pandatool/src/lwoprogs', 'pandatool/src/lwo']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='lwoScan.cxx', obj='lwo-scan_lwoScan.obj')
+CompileLink(dll='lwo-scan.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'lwo-scan_lwoScan.obj',
+             'liblwo.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='lwoToEgg.cxx', obj='lwo2egg_lwoToEgg.obj')
+CompileLink(dll='lwo2egg.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'lwo2egg_lwoToEgg.obj',
+             'liblwo.lib',
+             'liblwoegg.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/maya/
+#
+
+for VER in ["5","6","65"]:
+  if (OMIT.count("MAYA"+VER)==0):
+    IPATH=['pandatool/src/maya']
+    OPTS=['MAYA'+VER, 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='maya_composite1.cxx',    obj='maya'+VER+'_composite1.obj')
+    CompileLIB(lib='libmaya'+VER+'.lib', obj=[ 'maya'+VER+'_composite1.obj' ])
+
+#
+# DIRECTORY: pandatool/src/mayaegg/
+#
+
+for VER in ["5","6","65"]:
+  if (OMIT.count("MAYA"+VER)==0):
+    IPATH=['pandatool/src/mayaegg', 'pandatool/src/maya']
+    OPTS=['MAYA'+VER, 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='mayaegg_composite1.cxx',   obj='mayaegg'+VER+'_composite1.obj')
+    CompileLIB(lib='libmayaegg'+VER+'.lib', obj=[ 'mayaegg'+VER+'_composite1.obj' ])
+
+#
+# DIRECTORY: pandatool/src/maxegg/
+#
+
+for VER in ["5", "6", "7"]:
+  if (OMIT.count("MAX"+VER)==0):
+    IPATH=['pandatool/src/maxegg']
+    OPTS=['MAX'+VER, 'NSPR', "WINCOMCTL", "WINCOMDLG", "WINUSER", "MAXEGGDEF"]
+    CompileRES(ipath=IPATH, opts=OPTS, src='MaxEgg.rc', obj='maxegg'+VER+'_MaxEgg.res')
+    CompileC(ipath=IPATH, opts=OPTS, src='maxegg_composite1.cxx',obj='maxegg'+VER+'_composite1.obj')
+    CompileLink(opts=OPTS, dll='maxegg'+VER+'.dlo', obj=[
+                'maxegg'+VER+'_composite1.obj',
+                'maxegg'+VER+'_MaxEgg.res',
+                'libeggbase.lib',
+                'libprogbase.lib',
+                'libpandatoolbase.lib',
+                'libconverter.lib',
+                'libpandaegg.dll',
+                'libpanda.dll',
+                'libpandaexpress.dll',
+                'libdtoolconfig.dll',
+                'libdtool.dll',
+                'libpystub.dll'
+               ])
+
+#
+# DIRECTORY: pandatool/src/vrml/
+#
+
+CompileBison(pre='vrmlyy', dstc='vrmlParser.cxx', dsth='vrmlParser.h', src='pandatool/src/vrml/vrmlParser.yxx')
+CompileFlex(pre='vrmlyy', dst='vrmlLexer.cxx', src='pandatool/src/vrml/vrmlLexer.lxx', dashi=0)
+IPATH=['pandatool/src/vrml']
+OPTS=['ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='parse_vrml.cxx', obj='pvrml_parse_vrml.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='standard_nodes.cxx', obj='pvrml_standard_nodes.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlNode.cxx', obj='pvrml_vrmlNode.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlNodeType.cxx', obj='pvrml_vrmlNodeType.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlParser.cxx', obj='pvrml_vrmlParser.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlLexer.cxx', obj='pvrml_vrmlLexer.obj')
+CompileLIB(lib='libpvrml.lib', obj=[
+             'pvrml_parse_vrml.obj',
+             'pvrml_standard_nodes.obj',
+             'pvrml_vrmlNode.obj',
+             'pvrml_vrmlNodeType.obj',
+             'pvrml_vrmlParser.obj',
+             'pvrml_vrmlLexer.obj',
+])
+
+#
+# DIRECTORY: pandatool/src/vrmlegg/
+#
+
+IPATH=['pandatool/src/vrmlegg', 'pandatool/src/vrml']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='indexedFaceSet.cxx', obj='vrmlegg_indexedFaceSet.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlAppearance.cxx', obj='vrmlegg_vrmlAppearance.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlToEggConverter.cxx', obj='vrmlegg_vrmlToEggConverter.obj')
+CompileLIB(lib='libvrmlegg.lib', obj=[
+             'vrmlegg_indexedFaceSet.obj',
+             'vrmlegg_vrmlAppearance.obj',
+             'vrmlegg_vrmlToEggConverter.obj',
+])
+
+#
+# DIRECTORY: pandatool/src/xfile/
+#
+
+CompileBison(pre='xyy', dstc='xParser.cxx', dsth='xParser.h', src='pandatool/src/xfile/xParser.yxx')
+CompileFlex(pre='xyy', dst='xLexer.cxx', src='pandatool/src/xfile/xLexer.lxx', dashi=1)
+IPATH=['pandatool/src/xfile']
+OPTS=['ZLIB', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='xfile_composite1.cxx', obj='xfile_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='xParser.cxx', obj='xfile_xParser.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='xLexer.cxx', obj='xfile_xLexer.obj')
+CompileLIB(lib='libxfile.lib', obj=[
+             'xfile_composite1.obj',
+             'xfile_xParser.obj',
+             'xfile_xLexer.obj',
+])
+
+#
+# DIRECTORY: pandatool/src/xfileegg/
+#
+
+IPATH=['pandatool/src/xfileegg', 'pandatool/src/xfile']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='xfileegg_composite1.cxx', obj='xfileegg_composite1.obj')
+CompileLIB(lib='libxfileegg.lib', obj=[
+             'xfileegg_composite1.obj',
+])
+
+#
+# DIRECTORY: pandatool/src/ptloader/
+#
+
+IPATH=['pandatool/src/ptloader', 'pandatool/src/flt', 'pandatool/src/lwo', 'pandatool/src/xfile', 'pandatool/src/xfileegg']
+OPTS=['BUILDING_PTLOADER', 'NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='config_ptloader.cxx', obj='ptloader_config_ptloader.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='loaderFileTypePandatool.cxx', obj='ptloader_loaderFileTypePandatool.obj')
+CompileLink(dll='libptloader.dll', opts=['ADVAPI', 'NSPR'], obj=[
+             'ptloader_config_ptloader.obj',
+             'ptloader_loaderFileTypePandatool.obj',
+             'libfltegg.lib',
+             'libflt.lib',
+             'liblwoegg.lib',
+             'liblwo.lib',
+             'libdxfegg.lib',
+             'libdxf.lib',
+             'libvrmlegg.lib',
+             'libpvrml.lib',
+             'libxfileegg.lib',
+             'libxfile.lib',
+             'libconverter.lib',
+             'libpandatoolbase.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/mayaprogs/
+#
+
+for VER in ["5","6","65"]:
+  if (OMIT.count('MAYA'+VER)==0):
+    IPATH=['pandatool/src/mayaprogs', 'pandatool/src/maya', 'pandatool/src/mayaegg',
+           'pandatool/src/cvscopy']
+    OPTS=['BUILDING_MISC', 'MAYA'+VER, 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='config_mayaloader.cxx', obj='mayaloader'+VER+'_config_mayaloader.obj')
+    CompileLink(dll='libmayaloader'+VER+'.dll',                 opts=['ADVAPI', 'NSPR', 'MAYA'+VER], obj=[
+                 'mayaloader'+VER+'_config_mayaloader.obj',
+                 'libmayaegg'+VER+'.lib',
+                 'libptloader.lib',
+                 'libconverter.lib',
+                 'libpandatoolbase.lib',
+                 'libmaya'+VER+'.lib',
+                 'libfltegg.lib',
+                 'libflt.lib',
+                 'liblwoegg.lib',
+                 'liblwo.lib',
+                 'libdxfegg.lib',
+                 'libdxf.lib',
+                 'libvrmlegg.lib',
+                 'libpvrml.lib',
+                 'libxfileegg.lib',
+                 'libxfile.lib',
+                 'libeggbase.lib',
+                 'libprogbase.lib',
+                 'libpandaegg.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='mayaPview.cxx', obj='mayapview'+VER+'_mayaPview.obj')
+    CompileLink(dll='libmayapview'+VER+'.mll', opts=['ADVAPI', 'NSPR', 'MAYA'+VER], obj=[
+                 'mayapview'+VER+'_mayaPview.obj',
+                 'libmayaegg'+VER+'.lib',
+                 'libmaya'+VER+'.lib',
+                 'libconverter.lib',
+                 'libpandatoolbase.lib',
+                 'libpandaegg.dll',
+                 'libframework.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    IPATH=['pandatool/src/mayaprogs', 'pandatool/src/maya', 'pandatool/src/mayaegg',
+           'pandatool/src/cvscopy']
+    OPTS=['MAYA'+VER, 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='mayaSavePview.cxx', obj='mayasavepview'+VER+'_mayaSavePview.obj')
+    CompileLink(dll='libmayasavepview'+VER+'.mll', opts=['ADVAPI', 'NSPR', 'MAYA'+VER], obj=[
+                 'mayasavepview'+VER+'_mayaSavePview.obj',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='mayaToEgg.cxx', obj='maya2egg'+VER+'_mayaToEgg.obj')
+    CompileLink(dll='maya2egg'+VER+'.exe',                 opts=['ADVAPI', 'NSPR', 'MAYA'+VER], obj=[
+                 'maya2egg'+VER+'_mayaToEgg.obj',
+                 'libmayaegg'+VER+'.lib',
+                 'libmaya'+VER+'.lib',
+                 'libeggbase.lib',
+                 'libprogbase.lib',
+                 'libconverter.lib',
+                 'libpandatoolbase.lib',
+                 'libpandaegg.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+    CompileC(ipath=IPATH, opts=OPTS, src='mayaCopy.cxx', obj='mayacopy'+VER+'_mayaCopy.obj')
+    CompileLink(dll='mayacopy'+VER+'.exe',  opts=['ADVAPI', 'NSPR', 'MAYA'+VER], obj=[
+                 'mayacopy'+VER+'_mayaCopy.obj',
+                 'libcvscopy.lib',
+                 'libmaya'+VER+'.lib',
+                 'libprogbase.lib',
+                 'libpandatoolbase.lib',
+                 'libconverter.lib',
+                 'libpandaegg.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: pandatool/src/miscprogs/
+#
+
+IPATH=['pandatool/src/miscprogs']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='binToC.cxx', obj='bin2c_binToC.obj')
+CompileLink(dll='bin2c.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'bin2c_binToC.obj',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/pstatserver/
+#
+
+if OMIT.count("NSPR")==0:
+    IPATH=['pandatool/src/pstatserver']
+    OPTS=['NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='pstatserver_composite1.cxx', obj='pstatserver_composite1.obj')
+    CompileLIB(lib='libpstatserver.lib', obj=[ 'pstatserver_composite1.obj' ])
+
+#
+# DIRECTORY: pandatool/src/softprogs/
+#
+
+IPATH=['pandatool/src/softprogs']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='softCVS.cxx', obj='softcvs_softCVS.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='softFilename.cxx', obj='softcvs_softFilename.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='softcvs.exe', obj=[
+             'softcvs_softCVS.obj',
+             'softcvs_softFilename.obj',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/text-stats/
+#
+
+if OMIT.count("NSPR")==0:
+    IPATH=['pandatool/src/text-stats']
+    OPTS=['NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='textMonitor.cxx', obj='text-stats_textMonitor.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='textStats.cxx', obj='text-stats_textStats.obj')
+    CompileLink(opts=['ADVAPI', 'NSPR'], dll='text-stats.exe', obj=[
+                 'text-stats_textMonitor.obj',
+                 'text-stats_textStats.obj',
+                 'libprogbase.lib',
+                 'libpstatserver.lib',
+                 'libpandatoolbase.lib',
+                 'libpandaegg.dll',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtoolconfig.dll',
+                 'libdtool.dll',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: pandatool/src/vrmlprogs/
+#
+
+IPATH=['pandatool/src/vrmlprogs', 'pandatool/src/vrml', 'pandatool/src/vrmlegg']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlTrans.cxx', obj='vrml-trans_vrmlTrans.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='vrml-trans.exe', obj=[
+             'vrml-trans_vrmlTrans.obj',
+             'libprogbase.lib',
+             'libpvrml.lib',
+             'libpandatoolbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='vrmlToEgg.cxx', obj='vrml2egg_vrmlToEgg.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='vrml2egg.exe', obj=[
+             'vrml2egg_vrmlToEgg.obj',
+             'libvrmlegg.lib',
+             'libpvrml.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandatool/src/win-stats/
+#
+
+if (OMIT.count("NSPR")==0) and (sys.platform == "win32" or sys.platform == "cygwin"):
+    IPATH=['pandatool/src/win-stats']
+    OPTS=['NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='winstats_composite1.cxx', obj='pstats_composite1.obj')
+    CompileLink(opts=['WINSOCK', 'WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NSPR'],
+                dll='pstats.exe', obj=[
+                'pstats_composite1.obj',
+                'libprogbase.lib',
+                'libpstatserver.lib',
+                'libpandatoolbase.lib',
+                'libpandaexpress.dll',
+                'libpanda.dll',
+                'libdtoolconfig.dll',
+                'libdtool.dll',
+                'libpystub.dll',
+                ])
+
+#
+# DIRECTORY: pandatool/src/xfileprogs/
+#
+
+IPATH=['pandatool/src/xfileprogs', 'pandatool/src/xfile', 'pandatool/src/xfileegg']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='eggToX.cxx', obj='egg2x_eggToX.obj')
+CompileLink(dll='egg2x.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'egg2x_eggToX.obj',
+             'libxfileegg.lib',
+             'libxfile.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='xFileTrans.cxx', obj='x-trans_xFileTrans.obj')
+CompileLink(dll='x-trans.exe', opts=['ADVAPI', 'NSPR'], obj=[
+             'x-trans_xFileTrans.obj',
+             'libprogbase.lib',
+             'libxfile.lib',
+             'libpandatoolbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='xFileToEgg.cxx', obj='x2egg_xFileToEgg.obj')
+CompileLink(opts=['ADVAPI', 'NSPR'], dll='x2egg.exe', obj=[
+             'x2egg_xFileToEgg.obj',
+             'libxfileegg.lib',
+             'libxfile.lib',
+             'libconverter.lib',
+             'libeggbase.lib',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libpandaegg.dll',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libpystub.dll',
+])
+
+#
+# DIRECTORY: pandaapp/src/pandaappbase/
+#
+
+IPATH=['pandaapp/src/pandaappbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='pandaappbase.cxx', obj='pandaappbase_pandaappbase.obj')
+CompileLIB(lib='libpandaappbase.lib', obj=['pandaappbase_pandaappbase.obj'])
+
+#
+# DIRECTORY: pandaapp/src/httpbackup/
+#
+
+if OMIT.count("SSL")==0:
+    IPATH=['pandaapp/src/httpbackup', 'pandaapp/src/pandaappbase']
+    OPTS=['SSL', 'NSPR']
+    CompileC(ipath=IPATH, opts=OPTS, src='backupCatalog.cxx', obj='httpbackup_backupCatalog.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='httpBackup.cxx', obj='httpbackup_httpBackup.obj')
+    CompileLink(opts=['ADVAPI', 'NSPR', 'SSL'], dll='httpbackup.exe', obj=[
+                 'httpbackup_backupCatalog.obj',
+                 'httpbackup_httpBackup.obj',
+                 'libpandaappbase.lib',
+                 'libpandaexpress.dll',
+                 'libpanda.dll',
+                 'libdtool.dll',
+                 'libdtoolconfig.dll',
+                 'libprogbase.lib',
+                 'libpandatoolbase.lib',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: pandaapp/src/indexify/
+#
+
+if OMIT.count("FREETYPE")==0:
+    IPATH=['pandaapp/src/indexify']
+    OPTS=['NSPR', 'FREETYPE']
+    CompileC(ipath=IPATH, opts=OPTS, src='default_font.cxx', obj='font-samples_default_font.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='fontSamples.cxx', obj='font-samples_fontSamples.obj')
+    CompileLink(opts=['ADVAPI', 'NSPR', 'FREETYPE'], dll='font-samples.exe', obj=[
+                 'font-samples_default_font.obj',
+                 'font-samples_fontSamples.obj',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtool.dll',
+                 'libdtoolconfig.dll',
+                 'libprogbase.lib',
+                 'libpandatoolbase.lib',
+                 'libpystub.dll',
+    ])
+
+    CompileC(ipath=IPATH, opts=OPTS, src='default_index_icons.cxx', obj='indexify_default_index_icons.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='default_font.cxx', obj='indexify_default_font.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='indexImage.cxx', obj='indexify_indexImage.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='indexParameters.cxx', obj='indexify_indexParameters.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='indexify.cxx', obj='indexify_indexify.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='photo.cxx', obj='indexify_photo.obj')
+    CompileC(ipath=IPATH, opts=OPTS, src='rollDirectory.cxx', obj='indexify_rollDirectory.obj')
+    CompileLink(opts=['ADVAPI', 'NSPR', 'FREETYPE'], dll='indexify.exe', obj=[
+                 'indexify_default_index_icons.obj',
+                 'indexify_default_font.obj',
+                 'indexify_indexImage.obj',
+                 'indexify_indexParameters.obj',
+                 'indexify_indexify.obj',
+                 'indexify_photo.obj',
+                 'indexify_rollDirectory.obj',
+                 'libpanda.dll',
+                 'libpandaexpress.dll',
+                 'libdtool.dll',
+                 'libdtoolconfig.dll',
+                 'libprogbase.lib',
+                 'libpandatoolbase.lib',
+                 'libpystub.dll',
+    ])
+
+#
+# DIRECTORY: pandaapp/src/stitchbase/
+#
+
+CompileBison(pre='stitchyy', dstc='stitchParser.cxx', dsth='stitchParser.h', src='pandaapp/src/stitchbase/stitchParser.yxx')
+CompileFlex(pre='stitchyy', dst='stitchLexer.cxx', src='pandaapp/src/stitchbase/stitchLexer.lxx', dashi=1)
+IPATH=['pandaapp/src/stitchbase', 'pandaapp/src/pandaappbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='stitchbase_composite1.cxx', obj='stitchbase_composite1.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='stitchbase_composite2.cxx', obj='stitchbase_composite2.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='stitchParser.cxx', obj='stitchbase_stitchParser.obj')
+CompileC(ipath=IPATH, opts=OPTS, src='stitchLexer.cxx', obj='stitchbase_stitchLexer.obj')
+CompileLIB(lib='libstitchbase.lib', obj=[
+             'stitchbase_composite1.obj',
+             'stitchbase_composite2.obj',
+             'stitchbase_stitchParser.obj',
+             'stitchbase_stitchLexer.obj',
+])
+
+#
+# DIRECTORY: pandaapp/src/stitch/
+#
+
+IPATH=['pandaapp/src/stitch', 'pandaapp/src/stitchbase', 'pandaapp/src/pandaappbase']
+OPTS=['NSPR']
+CompileC(ipath=IPATH, opts=OPTS, src='stitchCommandProgram.cxx', obj='stitch-command_stitchCommandProgram.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'FFTW'], dll='stitch-command.exe', obj=[
+             'stitch-command_stitchCommandProgram.obj',
+             'libstitchbase.lib',
+             'libpandaappbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpystub.dll',
+])
+
+CompileC(ipath=IPATH, opts=OPTS, src='stitchImageProgram.cxx', obj='stitch-image_stitchImageProgram.obj')
+CompileLink(opts=['ADVAPI', 'NSPR', 'FFTW'], dll='stitch-image.exe', obj=[
+             'stitch-image_stitchImageProgram.obj',
+             'libstitchbase.lib',
+             'libpandaappbase.lib',
+             'libpanda.dll',
+             'libpandaexpress.dll',
+             'libdtoolconfig.dll',
+             'libdtool.dll',
+             'libprogbase.lib',
+             'libpandatoolbase.lib',
+             'libconverter.lib',
+             'libpystub.dll',
+])
+
+##########################################################################################
+#
+# Copy Sounds, Icons, and Models into the build.
+#
+##########################################################################################
+
+MakeDirectory(PREFIX+"/models")
+MakeDirectory(PREFIX+"/models/audio")
+MakeDirectory(PREFIX+"/models/audio/sfx")
+MakeDirectory(PREFIX+"/models/icons")
+MakeDirectory(PREFIX+"/models/maps")
+MakeDirectory(PREFIX+"/models/misc")
+MakeDirectory(PREFIX+"/models/gui")
+
+CopyAllFiles(PREFIX+"/models/audio/sfx/",  "dmodels/src/audio/sfx/", ".wav")
+CopyAllFiles(PREFIX+"/models/icons/",      "dmodels/src/icons/",     ".gif")
+
+CopyAllFiles(PREFIX+"/models/",            "models/",                ".egg")
+CopyAllFiles(PREFIX+"/models/",            "models/",                ".bam")
+
+CopyAllFiles(PREFIX+"/models/maps/",       "models/maps/",           ".jpg")
+CopyAllFiles(PREFIX+"/models/maps/",       "models/maps/",           ".png")
+CopyAllFiles(PREFIX+"/models/maps/",       "models/maps/",           ".rgb")
+CopyAllFiles(PREFIX+"/models/maps/",       "models/maps/",           ".rgba")
+
+CopyAllFiles(PREFIX+"/models/maps/",       "dmodels/src/maps/",      ".jpg")
+CopyAllFiles(PREFIX+"/models/maps/",       "dmodels/src/maps/",      ".png")
+CopyAllFiles(PREFIX+"/models/maps/",       "dmodels/src/maps/",      ".rgb")
+CopyAllFiles(PREFIX+"/models/maps/",       "dmodels/src/maps/",      ".rgba")
+
+CompileBAM("../=", PREFIX+"/models/gui/dialog_box_gui.bam",  "dmodels/src/gui/dialog_box_gui.flt")
+
+CompileBAM("../=", PREFIX+"/models/misc/camera.bam",         "dmodels/src/misc/camera.flt")
+CompileBAM("../=", PREFIX+"/models/misc/fade.bam",           "dmodels/src/misc/fade.flt")
+CompileBAM("../=", PREFIX+"/models/misc/fade_sphere.bam",    "dmodels/src/misc/fade_sphere.flt")
+CompileBAM("../=", PREFIX+"/models/misc/gridBack.bam",       "dmodels/src/misc/gridBack.flt")
+CompileBAM("../=", PREFIX+"/models/misc/iris.bam",           "dmodels/src/misc/iris.flt")
+CompileBAM("../=", PREFIX+"/models/misc/lilsmiley.bam",      "dmodels/src/misc/lilsmiley.egg")
+CompileBAM("../=", PREFIX+"/models/misc/objectHandles.bam",  "dmodels/src/misc/objectHandles.flt")
+CompileBAM("../=", PREFIX+"/models/misc/rgbCube.bam",        "dmodels/src/misc/rgbCube.flt")
+CompileBAM("../=", PREFIX+"/models/misc/smiley.bam",         "dmodels/src/misc/smiley.egg")
+CompileBAM("../=", PREFIX+"/models/misc/sphere.bam",         "dmodels/src/misc/sphere.flt")
+CompileBAM("../=", PREFIX+"/models/misc/xyzAxis.bam",        "dmodels/src/misc/xyzAxis.flt")
+CompileBAM("../=", PREFIX+"/models/misc/Pointlight.bam",     "dmodels/src/misc/Pointlight.egg")
+CompileBAM("../=", PREFIX+"/models/misc/Dirlight.bam",       "dmodels/src/misc/Dirlight.egg")
+CompileBAM("../=", PREFIX+"/models/misc/Spotlight.bam",      "dmodels/src/misc/Spotlight.egg")
+
+##########################################################################################
+#
+# Run genpycode
+#
+##########################################################################################
+
+if (older(PREFIX+'/pandac/PandaModules.pyz',xpaths(PREFIX+"/pandac/input/",ALLIN,""))):
+    ALLTARGETS.append(PREFIX+'/pandac/PandaModules.pyz')
+    if (sys.platform=="win32" or sys.platform == "cygwin"):
+        if (GENMAN): oscmd(PREFIX+"/bin/genpycode.exe -m")
+        else       : oscmd(PREFIX+"/bin/genpycode.exe")
+    else:
+        if (GENMAN): oscmd(PREFIX+"/bin/genpycode -m")
+        else       : oscmd(PREFIX+"/bin/genpycode")
+    updatefiledate(PREFIX+'/pandac/PandaModules.pyz')
+
+########################################################################
+##
+## Save the CXX include-cache for next time.
+##
+########################################################################
+
+try: icache = open(iCachePath,'wb')
+except: icache = 0
+if (icache!=0):
+    cPickle.dump(CxxIncludeCache, icache, 1)
+    icache.close()
+
+##########################################################################################
+#
+# 'Complete' mode.
+#
+# Copies the samples and direct into the build. Note that
+# this isn't usually what you want.  It is usually better to let the
+# compiled panda load this stuff directly from the source tree.
+# The only time you really want to do this is if you plan to move
+# the build somewhere and leave the source tree behind.
+#
+##########################################################################################
+
+if (COMPLETE):
+    CopyFile(PREFIX+'/', 'InstallerNotes')
+    CopyFile(PREFIX+'/', 'LICENSE')
+    CopyFile(PREFIX+'/', 'README')
+    CopyTree(PREFIX+'/samples', 'samples')
+    CopyTree(PREFIX+'/direct/src', 'direct/src')
+    CopyTree(PREFIX+'/SceneEditor', 'SceneEditor')
+
+##########################################################################################
+#
+# The Installers
+#
+##########################################################################################
+
+if (sys.platform == "win32" or sys.platform == "cygwin"):
+
+    def MakeInstaller(file,fullname,smdirectory,uninstallkey,installdir,ppgame):
+        if (older(file, ALLTARGETS)):
+            print "Building "+fullname+" installer. This can take up to an hour."
+            if (COMPRESSOR != "lzma"):
+                print("Note: you are using zlib, which is faster, but lzma gives better compression.")
+            if (os.path.exists(file)):
+                os.remove(file)
+            if (os.path.exists("nsis-output.exe")):
+                os.remove("nsis-output.exe")
+            def0 = '/DCOMPRESSOR="'   + COMPRESSOR   + '" '
+            def1 = '/DFULLNAME="'     + fullname     + '" '
+            def2 = '/DSMDIRECTORY="'  + smdirectory  + '" '
+            def3 = '/DUNINSTALLKEY="' + uninstallkey + '" '
+            def4 = '/DINSTALLDIR="'   + installdir   + '" '
+            def5 = ''
+            if (ppgame): def5 = '/DPPGAME="' + ppgame + '" '
+            oscmd("thirdparty/win-nsis/makensis.exe /V2 "+def0+def1+def2+def3+def4+def5+" makepanda/panda.nsi")
+            os.rename("nsis-output.exe", file)
+
+    if (INSTALLER!=0):
+        MakeInstaller("Panda3D-"+VERSION+".exe", "Panda3D", "Panda3D "+VERSION,
+                      "Panda3D "+VERSION, "C:\\Panda3D-"+VERSION, 0)
+
+    if (PPGAME!=0):
+        if (os.path.isdir(PPGAME)==0):
+            sys.exit("No such directory "+PPGAME)
+        if (os.path.exists(os.path.join(PPGAME,PPGAME+".py"))==0):
+            sys.exit("No such file "+PPGAME+"/"+PPGAME+".py")
+        MakeInstaller(PPGAME+"-"+VERSION+".exe", PPGAME, PPGAME+" "+VERSION,
+                      PPGAME+" "+VERSION, "C:\\"+PPGAME+"-"+VERSION, PPGAME)
+
+
+##########################################################################################
+#
+# Print final status report.
+#
+##########################################################################################
+
+WARNINGS.append("Elapsed Time: "+prettyTime(time.time() - STARTTIME))
+printStatus("Makepanda Final Status Report", WARNINGS)
+
+