summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS4
-rwxr-xr-xemcc173
-rw-r--r--[-rwxr-xr-x]emcc.py0
-rw-r--r--src/jsifier.js10
-rw-r--r--src/library.js5
-rwxr-xr-xsrc/relooper/doit.sh2
-rwxr-xr-xsrc/relooper/testit.sh2
-rwxr-xr-xsrc/relooper/updateit.sh1
-rw-r--r--[-rwxr-xr-x]system/lib/embind/bind.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Box2D.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Box2DConfig.cmake0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2ChainShape.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2ChainShape.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2CircleShape.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2CircleShape.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/Shapes/b2Shape.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2BroadPhase.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2BroadPhase.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2CollideCircle.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2CollideEdge.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2CollidePolygon.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2Collision.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2Collision.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2Distance.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2Distance.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2DynamicTree.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2DynamicTree.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2TimeOfImpact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Collision/b2TimeOfImpact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2BlockAllocator.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2BlockAllocator.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Draw.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Draw.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2GrowableStack.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Math.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Math.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Settings.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Settings.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2StackAllocator.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2StackAllocator.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Timer.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Common/b2Timer.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2Contact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2Contact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2Joint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2Joint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Body.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Body.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2ContactManager.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2ContactManager.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Fixture.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Fixture.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Island.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2Island.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2TimeStep.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2World.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2World.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2WorldCallbacks.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Dynamics/b2WorldCallbacks.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Rope/b2Rope.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Box2D/Rope/b2Rope.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/Readme.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/Box2D.sln0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/Box2D.vcxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/Box2D.vcxproj.filters0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/FreeGLUT.vcxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/FreeGLUT.vcxproj.filters0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/GLUI.vcxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/GLUI.vcxproj.filters0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/HelloWorld.vcxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/HelloWorld.vcxproj.filters0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/Testbed.vcxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/vs2010/Testbed.vcxproj.filters0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/xcode4/Box2D.xcodeproj/project.pbxproj0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Build/xcode4/Box2D.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Building.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/HelloWorld/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/HelloWorld/HelloWorld.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/License.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Readme.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Framework/Main.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Framework/Render.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Framework/Render.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Framework/Test.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Framework/Test.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/AddPair.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/ApplyForce.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/BodyTypes.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Breakable.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Bridge.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/BulletTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Cantilever.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Car.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Chain.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/CharacterCollision.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/CollisionFiltering.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/CollisionProcessing.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/CompoundShapes.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Confined.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/ContinuousTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/DistanceTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Dominos.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/DumpShell.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/DynamicTreeTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/EdgeShapes.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/EdgeTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Gears.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/OneSidedPlatform.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Pinball.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/PolyCollision.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/PolyShapes.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Prismatic.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Pulleys.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Pyramid.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/RayCast.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Revolute.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Rope.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/RopeJoint.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/SensorTest.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/ShapeEditing.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/SliderCrank.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/SphereStack.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/TestEntries.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/TheoJansen.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Tiles.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/TimeOfImpact.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Tumbler.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/VaryingFriction.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/VaryingRestitution.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/VerticalStack.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/Testbed/Tests/Web.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/COPYING0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_callbacks.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_cursor.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_display.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_ext.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_ext.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_font.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_font_data.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_gamemode.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_geometry.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_glutfont_definitions.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_init.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_input_devices.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_internal.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_joystick.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_main.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_menu.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_misc.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_overlay.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_spaceball.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_state.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_std.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_stroke_mono_roman.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_stroke_roman.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_structure.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_teapot.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_teapot_data.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_videoresize.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/freeglut/freeglut_window.c0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/CMakeLists.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/algebra3.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/algebra3.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/arcball.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/arcball.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_add_controls.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_bitmap_img_data.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_bitmaps.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_button.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_checkbox.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_column.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_commandline.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_control.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_edittext.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_filebrowser.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_internal.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_internal_control.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_list.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_listbox.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_mouse_iaction.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_node.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_panel.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_radio.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_rollout.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_rotation.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_scrollbar.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_separator.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_spinner.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_statictext.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_string.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_textbox.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_translation.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_tree.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_treepanel.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/glui_window.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/quaternion.cpp0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/quaternion.h0
-rw-r--r--[-rwxr-xr-x]tests/box2d/glui/readme.txt0
-rw-r--r--[-rwxr-xr-x]tests/box2d/premake4.lua0
-rw-r--r--[-rwxr-xr-x]tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp0
-rw-r--r--[-rwxr-xr-x]tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h0
-rw-r--r--[-rwxr-xr-x]tests/bullet/src/LinearMath/btPoolAllocator.h0
-rw-r--r--[-rwxr-xr-x]tests/poppler/goo/GooTimer.h0
-rwxr-xr-xtests/runner.py43
-rw-r--r--tools/shared.py184
-rw-r--r--[-rwxr-xr-x]tools/split.py0
253 files changed, 269 insertions, 155 deletions
diff --git a/AUTHORS b/AUTHORS
index 43ea83dd..eae3d6e6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -70,3 +70,7 @@ a license to everyone to use it as detailed in LICENSE.)
* Todd Lee <tlee@imvu.com> (copyright owned by IMVU)
* Anthony Pesch <inolen@gmail.com>
* Robert Bragg <robert.bragg@intel.com> (copyright owned by Intel Corporation)
+* Sylvestre Ledru <sylvestre@debian.org>
+* Tom Fairfield <fairfield@cs.xu.edu>
+
+
diff --git a/emcc b/emcc
index 3df65236..584b7bca 100755
--- a/emcc
+++ b/emcc
@@ -75,12 +75,14 @@ emcc can be influenced by a few environment variables:
EMMAKEN_COMPILER - The compiler to be used, if you don't want the default clang.
'''
-import os, sys, shutil, tempfile, subprocess, shlex, time, re
+import os, sys, shutil, tempfile, subprocess, shlex, time, re, logging
from subprocess import PIPE, STDOUT
from tools import shared
from tools.shared import Compression, execute, suffix, unsuffixed, unsuffixed_basename
from tools.response_file import read_response_file
+logging = logging.getLogger('emcc')
+
# Mapping of emcc opt levels to llvm opt levels. We use llvm opt level 3 in emcc opt
# levels 2 and 3 (emcc 3 is unsafe opts, so unsuitable for the only level to get
# llvm opt level 3, and speed-wise emcc level 2 is already the slowest/most optimizing
@@ -107,10 +109,10 @@ AUTODEBUG = os.environ.get('EMCC_AUTODEBUG') # If set to 1, we will run the auto
# dlmalloc makes it hard to compare native and js builds
EMCC_CFLAGS = os.environ.get('EMCC_CFLAGS') # Additional compiler flags that we treat as if they were passed to us on the commandline
-if DEBUG: print >> sys.stderr, '\nemcc invocation: ', ' '.join(sys.argv), (' + ' + EMCC_CFLAGS if EMCC_CFLAGS else '')
+logging.debug('invocation: ' + ' '.join(sys.argv) + (' + ' + EMCC_CFLAGS if EMCC_CFLAGS else ''))
if EMCC_CFLAGS: sys.argv.append(EMCC_CFLAGS)
-if DEBUG and LEAVE_INPUTS_RAW: print >> sys.stderr, 'emcc: leaving inputs raw'
+if DEBUG and LEAVE_INPUTS_RAW: logging.warning('leaving inputs raw')
stdout = PIPE if not DEBUG else None # suppress output of child processes
stderr = PIPE if not DEBUG else None # unless we are in DEBUG mode
@@ -120,7 +122,7 @@ shared.check_sanity(force=DEBUG)
# Handle some global flags
if len(sys.argv) == 1:
- print 'emcc: no input files'
+ logging.warning('no input files')
exit(1)
# read response files very early on
@@ -136,23 +138,7 @@ while response_file:
sys.argv[index:index+1] = extra_args
break
-if sys.argv[1] == '--version':
- revision = '(unknown revision)'
- here = os.getcwd()
- os.chdir(shared.path_from_root())
- try:
- revision = execute(['git', 'show'], stdout=PIPE, stderr=PIPE)[0].split('\n')[0]
- except:
- pass
- finally:
- os.chdir(here)
- print '''emcc (Emscripten GCC-like replacement) %s (%s)
-Copyright (C) 2013 the Emscripten authors (see AUTHORS.txt)
-This is free and open source software under the MIT license.
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- ''' % (shared.EMSCRIPTEN_VERSION, revision)
- exit(0)
-elif sys.argv[1] == '--help':
+if len(sys.argv) == 1 or sys.argv[1] == '--help':
this = os.path.basename('em++' if os.environ.get('EMMAKEN_CXX') else 'emcc')
print '''%s [options] file...
@@ -497,6 +483,24 @@ emcc: supported targets: llvm bitcode, javascript, NOT elf
(autoconf likes to see elf above to enable shared object support)
''' % (this, this, this)
exit(0)
+
+elif sys.argv[1] == '--version':
+ revision = '(unknown revision)'
+ here = os.getcwd()
+ os.chdir(shared.path_from_root())
+ try:
+ revision = execute(['git', 'show'], stdout=PIPE, stderr=PIPE)[0].split('\n')[0]
+ except:
+ pass
+ finally:
+ os.chdir(here)
+ print '''emcc (Emscripten GCC-like replacement) %s (%s)
+Copyright (C) 2013 the Emscripten authors (see AUTHORS.txt)
+This is free and open source software under the MIT license.
+There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ ''' % (shared.EMSCRIPTEN_VERSION, revision)
+ exit(0)
+
elif len(sys.argv) == 2 and sys.argv[1] == '-v': # -v with no inputs
print 'emcc (Emscripten GCC-like replacement + linker emulating GNU ld ) 2.0'
exit(subprocess.call([shared.CLANG, '-v']))
@@ -506,7 +510,7 @@ def is_minus_s_for_emcc(newargs,i):
if i+1 < len(newargs) and '=' in newargs[i+1]: # -s OPT=VALUE is for us, -s by itself is a linker option
return True
else:
- print >> sys.stderr, 'emcc: warning: treating -s as linker option and not as -s OPT=VALUE for js compilation'
+ logging.warning('treating -s as linker option and not as -s OPT=VALUE for js compilation')
return False
# If this is a configure-type thing, do not compile to JavaScript, instead use clang
@@ -563,7 +567,7 @@ if CONFIGURE_CONFIG or CMAKE_CONFIG:
if not use_js: cmd += shared.EMSDK_OPTS + ['-DEMSCRIPTEN']
if use_js: cmd += ['-s', 'ERROR_ON_UNDEFINED_SYMBOLS=1'] # configure tests should fail when an undefined symbol exists
- if DEBUG: print >> sys.stderr, 'emcc, just configuring: ', ' '.join(cmd)
+ logging.debug('just configuring: ' + ' '.join(cmd))
if debug_configure: open(tempout, 'a').write('emcc, just configuring: ' + ' '.join(cmd) + '\n\n')
if not use_js:
@@ -634,7 +638,7 @@ def uniquename(name):
if len(sys.argv) == 1 or sys.argv[1] in ['x', 't']:
# noop ar
- if DEBUG: print >> sys.stderr, 'emcc, just ar'
+ logging.debug('just ar')
sys.exit(0)
use_cxx = True
@@ -651,7 +655,7 @@ for i in range(1, len(sys.argv)):
if '-M' in sys.argv or '-MM' in sys.argv:
# Just output dependencies, do not compile. Warning: clang and gcc behave differently with -MF! (clang seems to not recognize it)
cmd = [CC] + shared.COMPILER_OPTS + sys.argv[1:]
- if DEBUG: print >> sys.stderr, 'emcc, just dependencies: ', ' '.join(cmd)
+ logging.debug('just dependencies: ' + ' '.join(cmd))
exit(subprocess.call(cmd))
# Check if a target is specified
@@ -677,10 +681,10 @@ else:
if header: # header or such
if len(sys.argv) >= 3: # if there is a source and a target, then copy, otherwise do nothing
sys.argv = filter(lambda arg: not arg.startswith('-I'), sys.argv)
- if DEBUG: print >> sys.stderr, 'Just copy:', sys.argv[-1], target
+ logging.debug('Just copy:' + sys.argv[-1] + target)
shutil.copy(sys.argv[-1], target)
else:
- if DEBUG: print >> sys.stderr, 'No-op.'
+ logging.debug('No-op.')
exit(0)
if TEMP_DIR:
@@ -847,14 +851,14 @@ try:
newargs[i] = ''
newargs[i+1] = ''
elif newargs[i] == '--remove-duplicates':
- print >> sys.stderr, 'emcc: warning: --remove-duplicates is deprecated as it is no longer needed. If you cannot link without it, file a bug with a testcase'
+ logging.warning ('--remove-duplicates is deprecated as it is no longer needed. If you cannot link without it, file a bug with a testcase')
newargs[i] = ''
elif newargs[i] == '--jcache':
jcache = True
newargs[i] = ''
elif newargs[i] == '--clear-cache':
newargs[i] = ''
- print >> sys.stderr, 'emcc: clearing cache'
+ logging.warning('clearing cache')
shared.Cache.erase()
sys.exit(0)
elif newargs[i] == '--save-bc':
@@ -869,7 +873,7 @@ try:
newargs[i+1] = ''
elif newargs[i].startswith(('-I/', '-L/')):
if not absolute_warning_shown:
- print >> sys.stderr, 'emcc: warning: -I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)' # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not
+ logging.warning ('-I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)') # Of course an absolute path to a non-system-specific library or header is fine, and you can ignore this warning. The danger are system headers that are e.g. x86 specific and nonportable. The emscripten bundled headers are modified to be portable, local system ones are generally not
absolute_warning_shown = True
newargs = [ arg for arg in newargs if arg is not '' ]
@@ -886,7 +890,7 @@ try:
if DEBUG: start_time = time.time() # done after parsing arguments, which might affect debug state
if closure:
- assert os.path.exists(shared.CLOSURE_COMPILER), 'emcc: fatal: Closure compiler (%s) does not exist' % shared.CLOSURE_COMPILER
+ assert os.path.exists(shared.CLOSURE_COMPILER), logging.error('fatal: Closure compiler (%s) does not exist' % shared.CLOSURE_COMPILER)
for i in range(len(newargs)):
if newargs[i] == '-s':
@@ -939,9 +943,9 @@ try:
libs.append(l)
newargs[i] = ''
else:
- print >> sys.stderr, 'emcc: %s: warning: Not valid LLVM bitcode' % arg
+ logging.warning(arg + ' is not valid LLVM bitcode')
else:
- print >> sys.stderr, 'emcc: %s: error: No such file or directory' % arg
+ logging.error(arg + ': No such file or directory')
exit(1)
elif arg.startswith('-L'):
lib_dirs.append(arg[2:])
@@ -963,12 +967,12 @@ try:
# do not link in libs when just generating object code (not an 'executable', i.e. JS, or a library)
if ('.' + final_suffix) in BITCODE_SUFFIXES and len(libs) > 0:
- print >> sys.stderr, 'emcc: warning: not linking against libraries since only compiling to bitcode'
+ logging.warning('not linking against libraries since only compiling to bitcode')
libs = []
# Find library files
for lib in libs:
- if DEBUG: print >> sys.stderr, 'emcc: looking for library "%s"' % lib
+ logging.debug('looking for library "%s"' % lib)
found = False
for prefix in LIB_PREFIXES:
for suff in STATICLIB_SUFFIXES + DYNAMICLIB_SUFFIXES:
@@ -976,7 +980,7 @@ try:
for lib_dir in lib_dirs:
path = os.path.join(lib_dir, name)
if os.path.exists(path):
- if DEBUG: print >> sys.stderr, 'emcc: found library "%s" at %s' % (lib, path)
+ logging.debug('found library "%s" at %s' % (lib, path))
input_files.append(path)
found = True
break
@@ -987,8 +991,7 @@ try:
input_files = filter(lambda input_file: not input_file.endswith(DYNAMICLIB_SUFFIXES), input_files)
if len(input_files) == 0:
- print >> sys.stderr, 'emcc: no input files'
- print >> sys.stderr, 'note that input files without a known suffix are ignored, make sure your input files end with one of: ' + str(SOURCE_SUFFIXES + BITCODE_SUFFIXES + DYNAMICLIB_SUFFIXES + STATICLIB_SUFFIXES + ASSEMBLY_SUFFIXES)
+ logging.error('no input files\nnote that input files without a known suffix are ignored, make sure your input files end with one of: ' + str(SOURCE_SUFFIXES + BITCODE_SUFFIXES + DYNAMICLIB_SUFFIXES + STATICLIB_SUFFIXES + ASSEMBLY_SUFFIXES))
exit(0)
newargs += CC_ADDITIONAL_ARGS
@@ -1015,15 +1018,15 @@ try:
if bind:
shared.Settings.ASM_JS = 0
- print >> sys.stderr, 'emcc: warning: disabling asm.js because it is not compatible with embind yet'
+ logging.warning('disabling asm.js because it is not compatible with embind yet')
if closure:
- print >> sys.stderr, 'emcc: warning: disabling closure because it is not compatible with asm.js code generation'
+ logging.warning('disabling closure because it is not compatible with asm.js code generation')
closure = False
if shared.Settings.CORRECT_SIGNS != 1:
- print >> sys.stderr, 'emcc: warning: setting CORRECT_SIGNS to 1 for asm.js code generation'
+ logging.warning('setting CORRECT_SIGNS to 1 for asm.js code generation')
shared.Settings.CORRECT_SIGNS = 1
if shared.Settings.CORRECT_OVERFLOWS != 1:
- print >> sys.stderr, 'emcc: warning: setting CORRECT_OVERFLOWS to 1 for asm.js code generation'
+ logging.warning('setting CORRECT_OVERFLOWS to 1 for asm.js code generation')
shared.Settings.CORRECT_OVERFLOWS = 1
assert not shared.Settings.PGO, 'cannot run PGO in ASM_JS mode'
@@ -1031,7 +1034,7 @@ try:
keep_llvm_debug = True # must keep debug info to do line-by-line operations
if (keep_llvm_debug or keep_js_debug) and closure:
- print >> sys.stderr, 'emcc: warning: disabling closure because debug info was requested'
+ logging.warning('disabling closure because debug info was requested')
closure = False
if jcache and not keep_js_debug: print >> sys.stderr, 'emcc: warning: it is recommended to run jcache with -g when compiling bitcode to JS'
@@ -1053,31 +1056,31 @@ try:
## Compile source code to bitcode
- if DEBUG: print >> sys.stderr, 'emcc: compiling to bitcode'
+ logging.debug('compiling to bitcode')
temp_files = []
# First, generate LLVM bitcode. For each input file, we get base.o with bitcode
for input_file in input_files:
if input_file.endswith(SOURCE_SUFFIXES):
- if DEBUG: print >> sys.stderr, 'emcc: compiling source file: ', input_file
+ logging.debug('compiling source file: ' + input_file)
input_file = shared.Building.preprocess(input_file, in_temp(uniquename(input_file)))
output_file = in_temp(unsuffixed(uniquename(input_file)) + '.o')
temp_files.append(output_file)
args = newargs + ['-emit-llvm', '-c', input_file, '-o', output_file]
- if DEBUG: print >> sys.stderr, "emcc running:", call, ' '.join(args)
+ logging.debug("running:" + call + ' '.join(args))
execute([call] + args) # let compiler frontend print directly, so colors are saved (PIPE kills that)
if not os.path.exists(output_file):
- print >> sys.stderr, 'emcc: compiler frontend failed to generate LLVM bitcode, halting'
+ logging.error('compiler frontend failed to generate LLVM bitcode, halting')
sys.exit(1)
else: # bitcode
if input_file.endswith(BITCODE_SUFFIXES):
- if DEBUG: print >> sys.stderr, 'emcc: copying bitcode file: ', input_file
+ logging.debug('copying bitcode file: ' + input_file)
temp_file = in_temp(unsuffixed(uniquename(input_file)) + '.o')
shutil.copyfile(input_file, temp_file)
temp_files.append(temp_file)
elif input_file.endswith(DYNAMICLIB_SUFFIXES) or shared.Building.is_ar(input_file):
- if DEBUG: print >> sys.stderr, 'emcc: copying library file: ', input_file
+ logging.debug('copying library file: ' + input_file)
temp_file = in_temp(uniquename(input_file))
shutil.copyfile(input_file, temp_file)
temp_files.append(temp_file)
@@ -1085,7 +1088,7 @@ try:
if not LEAVE_INPUTS_RAW:
# Note that by assembling the .ll file, then disassembling it later, we will
# remove annotations which is a good thing for compilation time
- if DEBUG: print >> sys.stderr, 'emcc: assembling assembly file: ', input_file
+ logging.debug('assembling assembly file: ' + input_file)
temp_file = in_temp(unsuffixed(uniquename(input_file)) + '.o')
shared.Building.llvm_as(input_file, temp_file)
temp_files.append(temp_file)
@@ -1096,14 +1099,14 @@ try:
if final_suffix not in JS_CONTAINING_SUFFIXES:
if llvm_opts > 0:
if not os.environ.get('EMCC_OPTIMIZE_NORMALLY'):
- print >> sys.stderr, 'emcc: warning: -Ox flags ignored, since not generating JavaScript'
+ logging.warning('-Ox flags ignored, since not generating JavaScript')
else:
for input_file in input_files:
if input_file.endswith(SOURCE_SUFFIXES):
- if DEBUG: print >> sys.stderr, 'emcc: optimizing %s with -O%d since EMCC_OPTIMIZE_NORMALLY defined' % (input_file, llvm_opts)
+ logging.debug('optimizing %s with -O%d since EMCC_OPTIMIZE_NORMALLY defined' % (input_file, llvm_opts))
shared.Building.llvm_opt(in_temp(unsuffixed(uniquename(input_file)) + '.o'), llvm_opts)
else:
- if DEBUG: print >> sys.stderr, 'emcc: not optimizing %s despite EMCC_OPTIMIZE_NORMALLY since not source code' % (input_file)
+ logging.debug('not optimizing %s despite EMCC_OPTIMIZE_NORMALLY since not source code' % (input_file))
if not specified_target:
for input_file in input_files:
shutil.move(in_temp(unsuffixed(uniquename(input_file)) + '.o'), unsuffixed_basename(input_file) + '.' + final_suffix)
@@ -1114,13 +1117,13 @@ try:
assert len(original_input_files) == 1 or not has_dash_c, 'fatal error: cannot specify -o with -c with multiple files' + str(sys.argv) + ':' + str(original_input_files)
# We have a specified target (-o <target>), which is not JavaScript or HTML, and
# we have multiple files: Link them
- if DEBUG: print >> sys.stderr, 'emcc: link: ' + str(temp_files), specified_target
+ logging.debug('link: ' + str(temp_files) + specified_target)
shared.Building.link(temp_files, specified_target)
exit(0)
## Continue on to create JavaScript
- if DEBUG: print >> sys.stderr, 'emcc: will generate JavaScript'
+ logging.debug('will generate JavaScript')
extra_files_to_link = []
@@ -1169,7 +1172,7 @@ try:
# libc
def create_libc():
- if DEBUG: print >> sys.stderr, 'emcc: building libc for cache'
+ logging.debug(' building libc for cache')
libc_files = [
'dlmalloc.c',
os.path.join('libcxx', 'new.cpp'),
@@ -1199,7 +1202,7 @@ try:
# libcextra
def create_libcextra():
- if DEBUG: print >> sys.stderr, 'emcc: building libcextra for cache'
+ logging.debug('building libcextra for cache')
musl_files = [
['ctype', [
'iswalnum.c',
@@ -1278,7 +1281,7 @@ try:
# libcxx
def create_libcxx():
- if DEBUG: print >> sys.stderr, 'emcc: building libcxx for cache'
+ logging.debug('building libcxx for cache')
libcxx_files = [
'algorithm.cpp',
'condition_variable.cpp',
@@ -1309,11 +1312,11 @@ try:
assert shared.Settings.QUANTUM_SIZE == 4, 'We do not support libc++ with QUANTUM_SIZE == 1'
# libcxx might need corrections, so turn them all on. TODO: check which are actually needed
shared.Settings.CORRECT_SIGNS = shared.Settings.CORRECT_OVERFLOWS = shared.Settings.CORRECT_ROUNDINGS = 1
- #print >> sys.stderr, 'emcc: info: using libcxx turns on CORRECT_* options'
+ #logging.info('using libcxx turns on CORRECT_* options')
# libcxxabi - just for dynamic_cast for now
def create_libcxxabi():
- if DEBUG: print >> sys.stderr, 'emcc: building libcxxabi for cache'
+ logging.debug('building libcxxabi for cache')
libcxxabi_files = [
'typeinfo.cpp',
'private_typeinfo.cpp'
@@ -1322,7 +1325,7 @@ try:
def fix_libcxxabi(need):
assert shared.Settings.QUANTUM_SIZE == 4, 'We do not support libc++abi with QUANTUM_SIZE == 1'
- #print >> sys.stderr, 'emcc: info: using libcxxabi, this may need CORRECT_* options'
+ #logging.info('using libcxxabi, this may need CORRECT_* options')
#shared.Settings.CORRECT_SIGNS = shared.Settings.CORRECT_OVERFLOWS = shared.Settings.CORRECT_ROUNDINGS = 1
# If we have libcxx, we must force inclusion of libc, since libcxx uses new internally. Note: this is kind of hacky
@@ -1346,10 +1349,10 @@ try:
for haz in has: # remove symbols that are supplied by another of the inputs
if haz in need:
need.remove(haz)
- if DEBUG: print >> sys.stderr, 'emcc: considering including %s: we need %s and have %s' % (name, str(need), str(has))
+ logging.debug('considering %s: we need %s and have %s' % (name, str(need), str(has)))
if force or len(need) > 0:
# We need to build and link the library in
- if DEBUG: print >> sys.stderr, 'emcc: including %s' % name
+ logging.debug('including %s' % name)
libfile = shared.Cache.get(name, create)
extra_files_to_link.append(libfile)
force = True
@@ -1360,11 +1363,11 @@ try:
if len(input_files) + len(extra_files_to_link) > 1 or \
(not LEAVE_INPUTS_RAW and not (suffix(temp_files[0]) in BITCODE_SUFFIXES or suffix(temp_files[0]) in DYNAMICLIB_SUFFIXES) and shared.Building.is_ar(temp_files[0])):
linker_inputs = temp_files + extra_files_to_link
- if DEBUG: print >> sys.stderr, 'emcc: linking: ', linker_inputs
+ logging.debug('linking: ' + str(linker_inputs))
t0 = time.time()
shared.Building.link(linker_inputs, in_temp(target_basename + '.bc'))
t1 = time.time()
- if DEBUG: print >> sys.stderr, 'emcc: linking took %.2f seconds' % (t1 - t0)
+ logging.debug(' linking took %.2f seconds' % (t1 - t0))
final = in_temp(target_basename + '.bc')
else:
if not LEAVE_INPUTS_RAW:
@@ -1375,7 +1378,7 @@ try:
shutil.copyfile(input_files[0], final)
if DEBUG:
- print >> sys.stderr, 'emcc: saving intermediate processing steps to %s' % shared.EMSCRIPTEN_TEMP_DIR
+ logging.debug('saving intermediate processing steps to %s' % shared.EMSCRIPTEN_TEMP_DIR)
intermediate_counter = 0
intermediate_time = None
@@ -1385,7 +1388,7 @@ try:
intermediate_counter += 1
now = time.time()
if intermediate_time:
- print >> sys.stderr, 'emcc: step took %.2f seconds' % (now - intermediate_time)
+ logging.debug(' step took %.2f seconds' % (now - intermediate_time))
intermediate_time = now
if not LEAVE_INPUTS_RAW: save_intermediate('basebc', 'bc')
@@ -1399,7 +1402,7 @@ try:
if DEBUG: save_intermediate('opt', 'bc')
# Do LTO in a separate pass to work around LLVM bug XXX (see failure e.g. in cubescript)
else:
- if DEBUG: print >> sys.stderr, 'emcc: not running opt because EMCC_OPTIMIZE_NORMALLY was specified, opt should have been run before'
+ logging.debug('not running opt because EMCC_OPTIMIZE_NORMALLY was specified, opt should have been run before')
if shared.Building.can_build_standalone():
# If we can LTO, do it before dce, since it opens up dce opportunities
if llvm_lto and shared.Building.can_use_unsafe_opts():
@@ -1423,13 +1426,13 @@ try:
if DEBUG: save_intermediate('ll', 'll')
if AUTODEBUG:
- if DEBUG: print >> sys.stderr, 'emcc: autodebug'
+ logging.debug('autodebug')
execute([shared.PYTHON, shared.AUTODEBUGGER, final, final + '.ad.ll'])
final += '.ad.ll'
if DEBUG: save_intermediate('autodebug', 'll')
# Emscripten
- if DEBUG: print >> sys.stderr, 'emcc: LLVM => JS'
+ logging.debug('LLVM => JS')
extra_args = [] if not js_libraries else ['--libraries', ','.join(map(os.path.abspath, js_libraries))]
if jcache: extra_args.append('--jcache')
final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
@@ -1437,7 +1440,7 @@ try:
# Embed and preload files
if len(preload_files) + len(embed_files) > 0:
- if DEBUG: print >> sys.stderr, 'emcc: setting up files'
+ logging.debug('setting up files')
file_args = []
if len(preload_files) > 0:
file_args.append('--preload')
@@ -1457,7 +1460,7 @@ try:
# Apply pre and postjs files
if pre_js or post_js:
- if DEBUG: print >> sys.stderr, 'emcc: applying pre/postjses'
+ logging.debug('applying pre/postjses')
src = open(final).read()
final += '.pp.js'
open(final, 'w').write(pre_js + src + post_js)
@@ -1465,7 +1468,7 @@ try:
# Add bindings glue if used
if bind:
- if DEBUG: print >> sys.stderr, 'emcc: adding embind glue'
+ logging.debug('adding embind glue')
src = open(final).read().replace('// {{PRE_RUN_ADDITIONS}}', '// {{PRE_RUN_ADDITIONS}}\n' +
open(shared.path_from_root('src', 'embind', 'embind.js')).read() +
open(shared.path_from_root('src', 'embind', 'emval.js')).read()
@@ -1479,7 +1482,7 @@ try:
shutil.copyfile(final, final + '.tr.js')
final += '.tr.js'
posix = True if not shared.WINDOWS else False
- if DEBUG: print >> sys.stderr, 'emcc: applying transform: %s' % js_transform
+ logging.debug('applying transform: %s' % js_transform)
execute(shlex.split(js_transform, posix=posix) + [os.path.abspath(final)])
if DEBUG: save_intermediate('transformed')
@@ -1491,7 +1494,7 @@ try:
if DEBUG != '2':
if shared.Settings.ASM_JS:
js_optimizer_queue = ['asm'] + js_optimizer_queue
- if DEBUG: print >> sys.stderr, 'emcc: applying js optimization passes:', js_optimizer_queue
+ logging.debug('applying js optimization passes: %s', js_optimizer_queue)
final = shared.Building.js_optimizer(final, js_optimizer_queue, jcache)
if DEBUG: save_intermediate('js_opts')
else:
@@ -1499,13 +1502,13 @@ try:
passes = [name]
if shared.Settings.ASM_JS:
passes = ['asm'] + passes
- print >> sys.stderr, 'emcc: applying js optimization pass:', passes
+ logging.debug('applying js optimization pass: %s', passes)
final = shared.Building.js_optimizer(final, passes, jcache)
save_intermediate(name)
js_optimizer_queue = []
if opt_level >= 1:
- if DEBUG: print >> sys.stderr, 'emcc: running pre-closure post-opts'
+ logging.debug('running pre-closure post-opts')
if DEBUG == '2':
# Clean up the syntax a bit
@@ -1526,12 +1529,12 @@ try:
if closure:
flush_js_optimizer_queue()
- if DEBUG: print >> sys.stderr, 'emcc: running closure'
+ logging.debug('running closure')
final = shared.Building.closure_compiler(final)
if DEBUG: save_intermediate('closure')
if opt_level >= 1:
- if DEBUG: print >> sys.stderr, 'emcc: running post-closure post-opts'
+ logging.debug('running post-closure post-opts')
js_optimizer_queue += ['simplifyExpressionsPost']
if not closure and shared.Settings.RELOOP and not keep_js_debug:
@@ -1552,7 +1555,7 @@ try:
if memory_init_file:
if shared.Settings.USE_TYPED_ARRAYS != 2:
- if type(memory_init_file) == int: print >> sys.stderr, 'emcc: warning: memory init file requires typed arrays mode 2'
+ if type(memory_init_file) == int: logging.warning('memory init file requires typed arrays mode 2')
else:
memfile = target + '.mem'
shared.try_delete(memfile)
@@ -1574,13 +1577,13 @@ try:
if DEBUG:
if os.path.exists(memfile):
save_intermediate('meminit')
- print >> sys.stderr, 'emcc: wrote memory initialization to %s' % memfile
+ logging.debug('wrote memory initialization to %s' % memfile)
else:
- print >> sys.stderr, 'emcc: did not see memory initialization'
+ logging.debug('did not see memory initialization')
# If we were asked to also generate HTML, do that
if final_suffix == 'html':
- if DEBUG: print >> sys.stderr, 'emcc: generating HTML'
+ logging.debug('generating HTML')
shell = open(shell_path).read()
html = open(target, 'w')
if not Compression.on:
@@ -1657,7 +1660,7 @@ try:
# copy final JS to output
shutil.move(final, target)
- if DEBUG: print >> sys.stderr, 'emcc: total time: %.2f seconds' % (time.time() - start_time)
+ if DEBUG: logging.debug('total time: %.2f seconds' % (time.time() - start_time))
finally:
if not TEMP_DIR:
@@ -1666,5 +1669,5 @@ finally:
except:
pass
else:
- print >> sys.stderr, 'emcc saved files are in:', temp_dir
+ logging.info('emcc saved files are in:' + temp_dir)
diff --git a/emcc.py b/emcc.py
index 2c715b99..2c715b99 100755..100644
--- a/emcc.py
+++ b/emcc.py
diff --git a/src/jsifier.js b/src/jsifier.js
index 24fded72..46d8ae74 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -486,12 +486,18 @@ function JSify(data, functionsOnly, givenFunctions) {
item.JS = '';
} else {
// If this is not linkable, anything not in the library is definitely missing
+ var cancel = false;
if (!LINKABLE && !LibraryManager.library.hasOwnProperty(shortident) && !LibraryManager.library.hasOwnProperty(shortident + '__inline')) {
if (ERROR_ON_UNDEFINED_SYMBOLS) error('unresolved symbol: ' + shortident);
if (VERBOSE || WARN_ON_UNDEFINED_SYMBOLS) printErr('warning: unresolved symbol: ' + shortident);
- LibraryManager.library[shortident] = new Function("Module['printErr']('missing function: " + shortident + "'); abort(-1);");
+ if (ASM_JS) {
+ // emit a stub that will fail during runtime. this allows asm validation to succeed.
+ LibraryManager.library[shortident] = new Function("Module['printErr']('missing function: " + shortident + "'); abort(-1);");
+ } else {
+ cancel = true; // emit nothing, not even var X = undefined;
+ }
}
- item.JS = addFromLibrary(shortident);
+ item.JS = cancel ? ';' : addFromLibrary(shortident);
}
return ret;
}
diff --git a/src/library.js b/src/library.js
index 3a966ec8..dc0dcdd2 100644
--- a/src/library.js
+++ b/src/library.js
@@ -4442,9 +4442,10 @@ LibraryManager.library = {
strcat: function(pdest, psrc) {
pdest = pdest|0; psrc = psrc|0;
var i = 0;
- pdest = (pdest + (_strlen(pdest)|0))|0;
+ var pdestEnd = 0;
+ pdestEnd = (pdest + (_strlen(pdest)|0))|0;
do {
- {{{ makeCopyValues('pdest+i', 'psrc+i', 1, 'i8', null, 1) }}};
+ {{{ makeCopyValues('pdestEnd+i', 'psrc+i', 1, 'i8', null, 1) }}};
i = (i+1)|0;
} while ({{{ makeGetValueAsm('psrc', 'i-1', 'i8') }}});
return pdest|0;
diff --git a/src/relooper/doit.sh b/src/relooper/doit.sh
index bf2683d5..5a55dd79 100755
--- a/src/relooper/doit.sh
+++ b/src/relooper/doit.sh
@@ -1,3 +1,5 @@
+#!/bin/sh
+
echo "relooper"
g++ Relooper.cpp -c -g
g++ Relooper.cpp -c -g -DDEBUG -o RelooperDebug.o
diff --git a/src/relooper/testit.sh b/src/relooper/testit.sh
index 28413c0d..61e1a2fb 100755
--- a/src/relooper/testit.sh
+++ b/src/relooper/testit.sh
@@ -1,3 +1,5 @@
+#!/bin/sh
+
echo "test"
./test &> test.out
diff -U 5 test.txt test.out
diff --git a/src/relooper/updateit.sh b/src/relooper/updateit.sh
index 91ccd3ab..8c434753 100755
--- a/src/relooper/updateit.sh
+++ b/src/relooper/updateit.sh
@@ -1,3 +1,4 @@
+#!/bin/sh
./test &> test.txt
./test2 &> test2.txt
./test3 &> test3.txt
diff --git a/system/lib/embind/bind.cpp b/system/lib/embind/bind.cpp
index ec1648a9..ec1648a9 100755..100644
--- a/system/lib/embind/bind.cpp
+++ b/system/lib/embind/bind.cpp
diff --git a/tests/box2d/Box2D/Box2D.h b/tests/box2d/Box2D/Box2D.h
index 66d22174..66d22174 100755..100644
--- a/tests/box2d/Box2D/Box2D.h
+++ b/tests/box2d/Box2D/Box2D.h
diff --git a/tests/box2d/Box2D/Box2DConfig.cmake b/tests/box2d/Box2D/Box2DConfig.cmake
index b567c17d..b567c17d 100755..100644
--- a/tests/box2d/Box2D/Box2DConfig.cmake
+++ b/tests/box2d/Box2D/Box2DConfig.cmake
diff --git a/tests/box2d/Box2D/CMakeLists.txt b/tests/box2d/Box2D/CMakeLists.txt
index 445c248a..445c248a 100755..100644
--- a/tests/box2d/Box2D/CMakeLists.txt
+++ b/tests/box2d/Box2D/CMakeLists.txt
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.cpp b/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.cpp
index f7bbe06b..f7bbe06b 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.cpp
+++ b/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.cpp
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.h b/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.h
index 6aa41ea4..6aa41ea4 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.h
+++ b/tests/box2d/Box2D/Collision/Shapes/b2ChainShape.h
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.cpp b/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.cpp
index c03d662d..c03d662d 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.cpp
+++ b/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.cpp
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.h b/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.h
index 6c1fd543..6c1fd543 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.h
+++ b/tests/box2d/Box2D/Collision/Shapes/b2CircleShape.h
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.cpp b/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.cpp
index e204160b..e204160b 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.cpp
+++ b/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.cpp
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.h b/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.h
index 99f822be..99f822be 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.h
+++ b/tests/box2d/Box2D/Collision/Shapes/b2EdgeShape.h
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.cpp b/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.cpp
index 8be81333..8be81333 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.cpp
+++ b/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.cpp
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.h b/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.h
index fd11bd16..fd11bd16 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.h
+++ b/tests/box2d/Box2D/Collision/Shapes/b2PolygonShape.h
diff --git a/tests/box2d/Box2D/Collision/Shapes/b2Shape.h b/tests/box2d/Box2D/Collision/Shapes/b2Shape.h
index fd7de262..fd7de262 100755..100644
--- a/tests/box2d/Box2D/Collision/Shapes/b2Shape.h
+++ b/tests/box2d/Box2D/Collision/Shapes/b2Shape.h
diff --git a/tests/box2d/Box2D/Collision/b2BroadPhase.cpp b/tests/box2d/Box2D/Collision/b2BroadPhase.cpp
index 2aa62f94..2aa62f94 100755..100644
--- a/tests/box2d/Box2D/Collision/b2BroadPhase.cpp
+++ b/tests/box2d/Box2D/Collision/b2BroadPhase.cpp
diff --git a/tests/box2d/Box2D/Collision/b2BroadPhase.h b/tests/box2d/Box2D/Collision/b2BroadPhase.h
index e31ff3d2..e31ff3d2 100755..100644
--- a/tests/box2d/Box2D/Collision/b2BroadPhase.h
+++ b/tests/box2d/Box2D/Collision/b2BroadPhase.h
diff --git a/tests/box2d/Box2D/Collision/b2CollideCircle.cpp b/tests/box2d/Box2D/Collision/b2CollideCircle.cpp
index 0ad58f00..0ad58f00 100755..100644
--- a/tests/box2d/Box2D/Collision/b2CollideCircle.cpp
+++ b/tests/box2d/Box2D/Collision/b2CollideCircle.cpp
diff --git a/tests/box2d/Box2D/Collision/b2CollideEdge.cpp b/tests/box2d/Box2D/Collision/b2CollideEdge.cpp
index 28196718..28196718 100755..100644
--- a/tests/box2d/Box2D/Collision/b2CollideEdge.cpp
+++ b/tests/box2d/Box2D/Collision/b2CollideEdge.cpp
diff --git a/tests/box2d/Box2D/Collision/b2CollidePolygon.cpp b/tests/box2d/Box2D/Collision/b2CollidePolygon.cpp
index 2f0946b9..2f0946b9 100755..100644
--- a/tests/box2d/Box2D/Collision/b2CollidePolygon.cpp
+++ b/tests/box2d/Box2D/Collision/b2CollidePolygon.cpp
diff --git a/tests/box2d/Box2D/Collision/b2Collision.cpp b/tests/box2d/Box2D/Collision/b2Collision.cpp
index 4b092f0c..4b092f0c 100755..100644
--- a/tests/box2d/Box2D/Collision/b2Collision.cpp
+++ b/tests/box2d/Box2D/Collision/b2Collision.cpp
diff --git a/tests/box2d/Box2D/Collision/b2Collision.h b/tests/box2d/Box2D/Collision/b2Collision.h
index 71bf15b6..71bf15b6 100755..100644
--- a/tests/box2d/Box2D/Collision/b2Collision.h
+++ b/tests/box2d/Box2D/Collision/b2Collision.h
diff --git a/tests/box2d/Box2D/Collision/b2Distance.cpp b/tests/box2d/Box2D/Collision/b2Distance.cpp
index 1010c8c0..1010c8c0 100755..100644
--- a/tests/box2d/Box2D/Collision/b2Distance.cpp
+++ b/tests/box2d/Box2D/Collision/b2Distance.cpp
diff --git a/tests/box2d/Box2D/Collision/b2Distance.h b/tests/box2d/Box2D/Collision/b2Distance.h
index 54ed1e13..54ed1e13 100755..100644
--- a/tests/box2d/Box2D/Collision/b2Distance.h
+++ b/tests/box2d/Box2D/Collision/b2Distance.h
diff --git a/tests/box2d/Box2D/Collision/b2DynamicTree.cpp b/tests/box2d/Box2D/Collision/b2DynamicTree.cpp
index 1a42c3a5..1a42c3a5 100755..100644
--- a/tests/box2d/Box2D/Collision/b2DynamicTree.cpp
+++ b/tests/box2d/Box2D/Collision/b2DynamicTree.cpp
diff --git a/tests/box2d/Box2D/Collision/b2DynamicTree.h b/tests/box2d/Box2D/Collision/b2DynamicTree.h
index a9bfbf37..a9bfbf37 100755..100644
--- a/tests/box2d/Box2D/Collision/b2DynamicTree.h
+++ b/tests/box2d/Box2D/Collision/b2DynamicTree.h
diff --git a/tests/box2d/Box2D/Collision/b2TimeOfImpact.cpp b/tests/box2d/Box2D/Collision/b2TimeOfImpact.cpp
index 5c33e828..5c33e828 100755..100644
--- a/tests/box2d/Box2D/Collision/b2TimeOfImpact.cpp
+++ b/tests/box2d/Box2D/Collision/b2TimeOfImpact.cpp
diff --git a/tests/box2d/Box2D/Collision/b2TimeOfImpact.h b/tests/box2d/Box2D/Collision/b2TimeOfImpact.h
index 179a1700..179a1700 100755..100644
--- a/tests/box2d/Box2D/Collision/b2TimeOfImpact.h
+++ b/tests/box2d/Box2D/Collision/b2TimeOfImpact.h
diff --git a/tests/box2d/Box2D/Common/b2BlockAllocator.cpp b/tests/box2d/Box2D/Common/b2BlockAllocator.cpp
index f5060daa..f5060daa 100755..100644
--- a/tests/box2d/Box2D/Common/b2BlockAllocator.cpp
+++ b/tests/box2d/Box2D/Common/b2BlockAllocator.cpp
diff --git a/tests/box2d/Box2D/Common/b2BlockAllocator.h b/tests/box2d/Box2D/Common/b2BlockAllocator.h
index 8ba29a5e..8ba29a5e 100755..100644
--- a/tests/box2d/Box2D/Common/b2BlockAllocator.h
+++ b/tests/box2d/Box2D/Common/b2BlockAllocator.h
diff --git a/tests/box2d/Box2D/Common/b2Draw.cpp b/tests/box2d/Box2D/Common/b2Draw.cpp
index 327b5807..327b5807 100755..100644
--- a/tests/box2d/Box2D/Common/b2Draw.cpp
+++ b/tests/box2d/Box2D/Common/b2Draw.cpp
diff --git a/tests/box2d/Box2D/Common/b2Draw.h b/tests/box2d/Box2D/Common/b2Draw.h
index a27f335a..a27f335a 100755..100644
--- a/tests/box2d/Box2D/Common/b2Draw.h
+++ b/tests/box2d/Box2D/Common/b2Draw.h
diff --git a/tests/box2d/Box2D/Common/b2GrowableStack.h b/tests/box2d/Box2D/Common/b2GrowableStack.h
index a36d3bbb..a36d3bbb 100755..100644
--- a/tests/box2d/Box2D/Common/b2GrowableStack.h
+++ b/tests/box2d/Box2D/Common/b2GrowableStack.h
diff --git a/tests/box2d/Box2D/Common/b2Math.cpp b/tests/box2d/Box2D/Common/b2Math.cpp
index 4974fe18..4974fe18 100755..100644
--- a/tests/box2d/Box2D/Common/b2Math.cpp
+++ b/tests/box2d/Box2D/Common/b2Math.cpp
diff --git a/tests/box2d/Box2D/Common/b2Math.h b/tests/box2d/Box2D/Common/b2Math.h
index 84382a6f..84382a6f 100755..100644
--- a/tests/box2d/Box2D/Common/b2Math.h
+++ b/tests/box2d/Box2D/Common/b2Math.h
diff --git a/tests/box2d/Box2D/Common/b2Settings.cpp b/tests/box2d/Box2D/Common/b2Settings.cpp
index 05a32230..05a32230 100755..100644
--- a/tests/box2d/Box2D/Common/b2Settings.cpp
+++ b/tests/box2d/Box2D/Common/b2Settings.cpp
diff --git a/tests/box2d/Box2D/Common/b2Settings.h b/tests/box2d/Box2D/Common/b2Settings.h
index 391b6f84..391b6f84 100755..100644
--- a/tests/box2d/Box2D/Common/b2Settings.h
+++ b/tests/box2d/Box2D/Common/b2Settings.h
diff --git a/tests/box2d/Box2D/Common/b2StackAllocator.cpp b/tests/box2d/Box2D/Common/b2StackAllocator.cpp
index 4a862835..4a862835 100755..100644
--- a/tests/box2d/Box2D/Common/b2StackAllocator.cpp
+++ b/tests/box2d/Box2D/Common/b2StackAllocator.cpp
diff --git a/tests/box2d/Box2D/Common/b2StackAllocator.h b/tests/box2d/Box2D/Common/b2StackAllocator.h
index 796c51df..796c51df 100755..100644
--- a/tests/box2d/Box2D/Common/b2StackAllocator.h
+++ b/tests/box2d/Box2D/Common/b2StackAllocator.h
diff --git a/tests/box2d/Box2D/Common/b2Timer.cpp b/tests/box2d/Box2D/Common/b2Timer.cpp
index ea3479f1..ea3479f1 100755..100644
--- a/tests/box2d/Box2D/Common/b2Timer.cpp
+++ b/tests/box2d/Box2D/Common/b2Timer.cpp
diff --git a/tests/box2d/Box2D/Common/b2Timer.h b/tests/box2d/Box2D/Common/b2Timer.h
index 19bde287..19bde287 100755..100644
--- a/tests/box2d/Box2D/Common/b2Timer.h
+++ b/tests/box2d/Box2D/Common/b2Timer.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
index 3886dfd7..3886dfd7 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
index 2dad0b64..2dad0b64 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
index 02bcaaf6..02bcaaf6 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
index 8f30ee86..8f30ee86 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.cpp
index 584ef2f1..584ef2f1 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.h
index aac1f0bd..aac1f0bd 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2CircleContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.cpp
index 557af7f0..557af7f0 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.h
index 7c132f92..7c132f92 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2Contact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
index c990d7fb..c990d7fb 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.h b/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.h
index ca9de04d..ca9de04d 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2ContactSolver.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
index 04336507..04336507 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
index 11b61b88..11b61b88 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
index 8bac536a..8bac536a 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
index 74b27ee0..74b27ee0 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
index 880f83e2..880f83e2 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
index 6beca16a..6beca16a 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.cpp b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
index 52e1be87..52e1be87 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.h b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.h
index 45932148..45932148 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.h
+++ b/tests/box2d/Box2D/Dynamics/Contacts/b2PolygonContact.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
index 1ced7d9d..1ced7d9d 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.h
index 63eadd93..63eadd93 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2DistanceJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
index 075e72bb..075e72bb 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.h
index 7e261fc9..7e261fc9 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2FrictionJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.cpp
index 201f0123..201f0123 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.h
index 97283e13..97283e13 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2GearJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2Joint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2Joint.cpp
index 85322f77..85322f77 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2Joint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2Joint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2Joint.h b/tests/box2d/Box2D/Dynamics/Joints/b2Joint.h
index 90154ccb..90154ccb 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2Joint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2Joint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.cpp
index be7c3834..be7c3834 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.h
index f6df2b31..f6df2b31 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2MouseJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
index 88a38807..88a38807 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.h
index b1b50a88..b1b50a88 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2PrismaticJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
index e0bb7da5..e0bb7da5 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.h
index d27583c9..d27583c9 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2PulleyJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
index ffb17252..ffb17252 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.h
index 672ef169..672ef169 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2RevoluteJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.cpp
index 107ce1fa..107ce1fa 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.h
index eb67a998..eb67a998 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2RopeJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.cpp
index 9a86686e..9a86686e 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.h
index 02f33d4f..02f33d4f 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2WeldJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.cpp b/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.cpp
index 998c627d..998c627d 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.cpp
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.cpp
diff --git a/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.h b/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.h
index 00afa6ac..00afa6ac 100755..100644
--- a/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.h
+++ b/tests/box2d/Box2D/Dynamics/Joints/b2WheelJoint.h
diff --git a/tests/box2d/Box2D/Dynamics/b2Body.cpp b/tests/box2d/Box2D/Dynamics/b2Body.cpp
index b50bf45a..b50bf45a 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Body.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2Body.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2Body.h b/tests/box2d/Box2D/Dynamics/b2Body.h
index 3b1be1c3..3b1be1c3 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Body.h
+++ b/tests/box2d/Box2D/Dynamics/b2Body.h
diff --git a/tests/box2d/Box2D/Dynamics/b2ContactManager.cpp b/tests/box2d/Box2D/Dynamics/b2ContactManager.cpp
index 5ac12b35..5ac12b35 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2ContactManager.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2ContactManager.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2ContactManager.h b/tests/box2d/Box2D/Dynamics/b2ContactManager.h
index dc1f77fe..dc1f77fe 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2ContactManager.h
+++ b/tests/box2d/Box2D/Dynamics/b2ContactManager.h
diff --git a/tests/box2d/Box2D/Dynamics/b2Fixture.cpp b/tests/box2d/Box2D/Dynamics/b2Fixture.cpp
index 77537b27..77537b27 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Fixture.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2Fixture.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2Fixture.h b/tests/box2d/Box2D/Dynamics/b2Fixture.h
index d92751fd..d92751fd 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Fixture.h
+++ b/tests/box2d/Box2D/Dynamics/b2Fixture.h
diff --git a/tests/box2d/Box2D/Dynamics/b2Island.cpp b/tests/box2d/Box2D/Dynamics/b2Island.cpp
index 0e2129cf..0e2129cf 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Island.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2Island.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2Island.h b/tests/box2d/Box2D/Dynamics/b2Island.h
index ef3d9b1d..ef3d9b1d 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2Island.h
+++ b/tests/box2d/Box2D/Dynamics/b2Island.h
diff --git a/tests/box2d/Box2D/Dynamics/b2TimeStep.h b/tests/box2d/Box2D/Dynamics/b2TimeStep.h
index abe6fb6e..abe6fb6e 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2TimeStep.h
+++ b/tests/box2d/Box2D/Dynamics/b2TimeStep.h
diff --git a/tests/box2d/Box2D/Dynamics/b2World.cpp b/tests/box2d/Box2D/Dynamics/b2World.cpp
index baacded4..baacded4 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2World.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2World.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2World.h b/tests/box2d/Box2D/Dynamics/b2World.h
index eba75727..eba75727 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2World.h
+++ b/tests/box2d/Box2D/Dynamics/b2World.h
diff --git a/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.cpp b/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.cpp
index 82b28cc0..82b28cc0 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.cpp
+++ b/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.cpp
diff --git a/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.h b/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.h
index a64c1abe..a64c1abe 100755..100644
--- a/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.h
+++ b/tests/box2d/Box2D/Dynamics/b2WorldCallbacks.h
diff --git a/tests/box2d/Box2D/Rope/b2Rope.cpp b/tests/box2d/Box2D/Rope/b2Rope.cpp
index 97578b26..97578b26 100755..100644
--- a/tests/box2d/Box2D/Rope/b2Rope.cpp
+++ b/tests/box2d/Box2D/Rope/b2Rope.cpp
diff --git a/tests/box2d/Box2D/Rope/b2Rope.h b/tests/box2d/Box2D/Rope/b2Rope.h
index bc5375dd..bc5375dd 100755..100644
--- a/tests/box2d/Box2D/Rope/b2Rope.h
+++ b/tests/box2d/Box2D/Rope/b2Rope.h
diff --git a/tests/box2d/Build/Readme.txt b/tests/box2d/Build/Readme.txt
index f28e90b3..f28e90b3 100755..100644
--- a/tests/box2d/Build/Readme.txt
+++ b/tests/box2d/Build/Readme.txt
diff --git a/tests/box2d/Build/vs2010/Box2D.sln b/tests/box2d/Build/vs2010/Box2D.sln
index e6fd1a02..e6fd1a02 100755..100644
--- a/tests/box2d/Build/vs2010/Box2D.sln
+++ b/tests/box2d/Build/vs2010/Box2D.sln
diff --git a/tests/box2d/Build/vs2010/Box2D.vcxproj b/tests/box2d/Build/vs2010/Box2D.vcxproj
index 9e0460e2..9e0460e2 100755..100644
--- a/tests/box2d/Build/vs2010/Box2D.vcxproj
+++ b/tests/box2d/Build/vs2010/Box2D.vcxproj
diff --git a/tests/box2d/Build/vs2010/Box2D.vcxproj.filters b/tests/box2d/Build/vs2010/Box2D.vcxproj.filters
index 6576c6ba..6576c6ba 100755..100644
--- a/tests/box2d/Build/vs2010/Box2D.vcxproj.filters
+++ b/tests/box2d/Build/vs2010/Box2D.vcxproj.filters
diff --git a/tests/box2d/Build/vs2010/FreeGLUT.vcxproj b/tests/box2d/Build/vs2010/FreeGLUT.vcxproj
index 68214339..68214339 100755..100644
--- a/tests/box2d/Build/vs2010/FreeGLUT.vcxproj
+++ b/tests/box2d/Build/vs2010/FreeGLUT.vcxproj
diff --git a/tests/box2d/Build/vs2010/FreeGLUT.vcxproj.filters b/tests/box2d/Build/vs2010/FreeGLUT.vcxproj.filters
index d4cd78c4..d4cd78c4 100755..100644
--- a/tests/box2d/Build/vs2010/FreeGLUT.vcxproj.filters
+++ b/tests/box2d/Build/vs2010/FreeGLUT.vcxproj.filters
diff --git a/tests/box2d/Build/vs2010/GLUI.vcxproj b/tests/box2d/Build/vs2010/GLUI.vcxproj
index a526d3a1..a526d3a1 100755..100644
--- a/tests/box2d/Build/vs2010/GLUI.vcxproj
+++ b/tests/box2d/Build/vs2010/GLUI.vcxproj
diff --git a/tests/box2d/Build/vs2010/GLUI.vcxproj.filters b/tests/box2d/Build/vs2010/GLUI.vcxproj.filters
index 587ea867..587ea867 100755..100644
--- a/tests/box2d/Build/vs2010/GLUI.vcxproj.filters
+++ b/tests/box2d/Build/vs2010/GLUI.vcxproj.filters
diff --git a/tests/box2d/Build/vs2010/HelloWorld.vcxproj b/tests/box2d/Build/vs2010/HelloWorld.vcxproj
index 8ebf4c62..8ebf4c62 100755..100644
--- a/tests/box2d/Build/vs2010/HelloWorld.vcxproj
+++ b/tests/box2d/Build/vs2010/HelloWorld.vcxproj
diff --git a/tests/box2d/Build/vs2010/HelloWorld.vcxproj.filters b/tests/box2d/Build/vs2010/HelloWorld.vcxproj.filters
index 1cbc00cb..1cbc00cb 100755..100644
--- a/tests/box2d/Build/vs2010/HelloWorld.vcxproj.filters
+++ b/tests/box2d/Build/vs2010/HelloWorld.vcxproj.filters
diff --git a/tests/box2d/Build/vs2010/Testbed.vcxproj b/tests/box2d/Build/vs2010/Testbed.vcxproj
index 1723c9ab..1723c9ab 100755..100644
--- a/tests/box2d/Build/vs2010/Testbed.vcxproj
+++ b/tests/box2d/Build/vs2010/Testbed.vcxproj
diff --git a/tests/box2d/Build/vs2010/Testbed.vcxproj.filters b/tests/box2d/Build/vs2010/Testbed.vcxproj.filters
index 52961731..52961731 100755..100644
--- a/tests/box2d/Build/vs2010/Testbed.vcxproj.filters
+++ b/tests/box2d/Build/vs2010/Testbed.vcxproj.filters
diff --git a/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.pbxproj b/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.pbxproj
index a8bd2490..a8bd2490 100755..100644
--- a/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.pbxproj
+++ b/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.pbxproj
diff --git a/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 9641d889..9641d889 100755..100644
--- a/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/tests/box2d/Build/xcode4/Box2D.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/tests/box2d/Building.txt b/tests/box2d/Building.txt
index fa3741f1..fa3741f1 100755..100644
--- a/tests/box2d/Building.txt
+++ b/tests/box2d/Building.txt
diff --git a/tests/box2d/CMakeLists.txt b/tests/box2d/CMakeLists.txt
index a9dc06cb..a9dc06cb 100755..100644
--- a/tests/box2d/CMakeLists.txt
+++ b/tests/box2d/CMakeLists.txt
diff --git a/tests/box2d/HelloWorld/CMakeLists.txt b/tests/box2d/HelloWorld/CMakeLists.txt
index c6ae2b2f..c6ae2b2f 100755..100644
--- a/tests/box2d/HelloWorld/CMakeLists.txt
+++ b/tests/box2d/HelloWorld/CMakeLists.txt
diff --git a/tests/box2d/HelloWorld/HelloWorld.cpp b/tests/box2d/HelloWorld/HelloWorld.cpp
index b8e04384..b8e04384 100755..100644
--- a/tests/box2d/HelloWorld/HelloWorld.cpp
+++ b/tests/box2d/HelloWorld/HelloWorld.cpp
diff --git a/tests/box2d/License.txt b/tests/box2d/License.txt
index 622772e5..622772e5 100755..100644
--- a/tests/box2d/License.txt
+++ b/tests/box2d/License.txt
diff --git a/tests/box2d/Readme.txt b/tests/box2d/Readme.txt
index d97240a2..d97240a2 100755..100644
--- a/tests/box2d/Readme.txt
+++ b/tests/box2d/Readme.txt
diff --git a/tests/box2d/Testbed/CMakeLists.txt b/tests/box2d/Testbed/CMakeLists.txt
index b030a484..b030a484 100755..100644
--- a/tests/box2d/Testbed/CMakeLists.txt
+++ b/tests/box2d/Testbed/CMakeLists.txt
diff --git a/tests/box2d/Testbed/Framework/Main.cpp b/tests/box2d/Testbed/Framework/Main.cpp
index 048ed886..048ed886 100755..100644
--- a/tests/box2d/Testbed/Framework/Main.cpp
+++ b/tests/box2d/Testbed/Framework/Main.cpp
diff --git a/tests/box2d/Testbed/Framework/Render.cpp b/tests/box2d/Testbed/Framework/Render.cpp
index 0533479c..0533479c 100755..100644
--- a/tests/box2d/Testbed/Framework/Render.cpp
+++ b/tests/box2d/Testbed/Framework/Render.cpp
diff --git a/tests/box2d/Testbed/Framework/Render.h b/tests/box2d/Testbed/Framework/Render.h
index a1d0e881..a1d0e881 100755..100644
--- a/tests/box2d/Testbed/Framework/Render.h
+++ b/tests/box2d/Testbed/Framework/Render.h
diff --git a/tests/box2d/Testbed/Framework/Test.cpp b/tests/box2d/Testbed/Framework/Test.cpp
index 3c5b4ad8..3c5b4ad8 100755..100644
--- a/tests/box2d/Testbed/Framework/Test.cpp
+++ b/tests/box2d/Testbed/Framework/Test.cpp
diff --git a/tests/box2d/Testbed/Framework/Test.h b/tests/box2d/Testbed/Framework/Test.h
index 71e3b46e..71e3b46e 100755..100644
--- a/tests/box2d/Testbed/Framework/Test.h
+++ b/tests/box2d/Testbed/Framework/Test.h
diff --git a/tests/box2d/Testbed/Tests/AddPair.h b/tests/box2d/Testbed/Tests/AddPair.h
index 8f0893ac..8f0893ac 100755..100644
--- a/tests/box2d/Testbed/Tests/AddPair.h
+++ b/tests/box2d/Testbed/Tests/AddPair.h
diff --git a/tests/box2d/Testbed/Tests/ApplyForce.h b/tests/box2d/Testbed/Tests/ApplyForce.h
index c04f8642..c04f8642 100755..100644
--- a/tests/box2d/Testbed/Tests/ApplyForce.h
+++ b/tests/box2d/Testbed/Tests/ApplyForce.h
diff --git a/tests/box2d/Testbed/Tests/BodyTypes.h b/tests/box2d/Testbed/Tests/BodyTypes.h
index 1e04b27f..1e04b27f 100755..100644
--- a/tests/box2d/Testbed/Tests/BodyTypes.h
+++ b/tests/box2d/Testbed/Tests/BodyTypes.h
diff --git a/tests/box2d/Testbed/Tests/Breakable.h b/tests/box2d/Testbed/Tests/Breakable.h
index 3fbdd476..3fbdd476 100755..100644
--- a/tests/box2d/Testbed/Tests/Breakable.h
+++ b/tests/box2d/Testbed/Tests/Breakable.h
diff --git a/tests/box2d/Testbed/Tests/Bridge.h b/tests/box2d/Testbed/Tests/Bridge.h
index ef836499..ef836499 100755..100644
--- a/tests/box2d/Testbed/Tests/Bridge.h
+++ b/tests/box2d/Testbed/Tests/Bridge.h
diff --git a/tests/box2d/Testbed/Tests/BulletTest.h b/tests/box2d/Testbed/Tests/BulletTest.h
index 10f1f000..10f1f000 100755..100644
--- a/tests/box2d/Testbed/Tests/BulletTest.h
+++ b/tests/box2d/Testbed/Tests/BulletTest.h
diff --git a/tests/box2d/Testbed/Tests/Cantilever.h b/tests/box2d/Testbed/Tests/Cantilever.h
index 26994d6f..26994d6f 100755..100644
--- a/tests/box2d/Testbed/Tests/Cantilever.h
+++ b/tests/box2d/Testbed/Tests/Cantilever.h
diff --git a/tests/box2d/Testbed/Tests/Car.h b/tests/box2d/Testbed/Tests/Car.h
index d86201e7..d86201e7 100755..100644
--- a/tests/box2d/Testbed/Tests/Car.h
+++ b/tests/box2d/Testbed/Tests/Car.h
diff --git a/tests/box2d/Testbed/Tests/Chain.h b/tests/box2d/Testbed/Tests/Chain.h
index 33b8de9b..33b8de9b 100755..100644
--- a/tests/box2d/Testbed/Tests/Chain.h
+++ b/tests/box2d/Testbed/Tests/Chain.h
diff --git a/tests/box2d/Testbed/Tests/CharacterCollision.h b/tests/box2d/Testbed/Tests/CharacterCollision.h
index b000a828..b000a828 100755..100644
--- a/tests/box2d/Testbed/Tests/CharacterCollision.h
+++ b/tests/box2d/Testbed/Tests/CharacterCollision.h
diff --git a/tests/box2d/Testbed/Tests/CollisionFiltering.h b/tests/box2d/Testbed/Tests/CollisionFiltering.h
index 82871759..82871759 100755..100644
--- a/tests/box2d/Testbed/Tests/CollisionFiltering.h
+++ b/tests/box2d/Testbed/Tests/CollisionFiltering.h
diff --git a/tests/box2d/Testbed/Tests/CollisionProcessing.h b/tests/box2d/Testbed/Tests/CollisionProcessing.h
index c8cc3283..c8cc3283 100755..100644
--- a/tests/box2d/Testbed/Tests/CollisionProcessing.h
+++ b/tests/box2d/Testbed/Tests/CollisionProcessing.h
diff --git a/tests/box2d/Testbed/Tests/CompoundShapes.h b/tests/box2d/Testbed/Tests/CompoundShapes.h
index bc14e882..bc14e882 100755..100644
--- a/tests/box2d/Testbed/Tests/CompoundShapes.h
+++ b/tests/box2d/Testbed/Tests/CompoundShapes.h
diff --git a/tests/box2d/Testbed/Tests/Confined.h b/tests/box2d/Testbed/Tests/Confined.h
index f2d205eb..f2d205eb 100755..100644
--- a/tests/box2d/Testbed/Tests/Confined.h
+++ b/tests/box2d/Testbed/Tests/Confined.h
diff --git a/tests/box2d/Testbed/Tests/ContinuousTest.h b/tests/box2d/Testbed/Tests/ContinuousTest.h
index 817103a5..817103a5 100755..100644
--- a/tests/box2d/Testbed/Tests/ContinuousTest.h
+++ b/tests/box2d/Testbed/Tests/ContinuousTest.h
diff --git a/tests/box2d/Testbed/Tests/DistanceTest.h b/tests/box2d/Testbed/Tests/DistanceTest.h
index 81e96de3..81e96de3 100755..100644
--- a/tests/box2d/Testbed/Tests/DistanceTest.h
+++ b/tests/box2d/Testbed/Tests/DistanceTest.h
diff --git a/tests/box2d/Testbed/Tests/Dominos.h b/tests/box2d/Testbed/Tests/Dominos.h
index 01e8bbdb..01e8bbdb 100755..100644
--- a/tests/box2d/Testbed/Tests/Dominos.h
+++ b/tests/box2d/Testbed/Tests/Dominos.h
diff --git a/tests/box2d/Testbed/Tests/DumpShell.h b/tests/box2d/Testbed/Tests/DumpShell.h
index 8437687d..8437687d 100755..100644
--- a/tests/box2d/Testbed/Tests/DumpShell.h
+++ b/tests/box2d/Testbed/Tests/DumpShell.h
diff --git a/tests/box2d/Testbed/Tests/DynamicTreeTest.h b/tests/box2d/Testbed/Tests/DynamicTreeTest.h
index 4456a396..4456a396 100755..100644
--- a/tests/box2d/Testbed/Tests/DynamicTreeTest.h
+++ b/tests/box2d/Testbed/Tests/DynamicTreeTest.h
diff --git a/tests/box2d/Testbed/Tests/EdgeShapes.h b/tests/box2d/Testbed/Tests/EdgeShapes.h
index 56a6d627..56a6d627 100755..100644
--- a/tests/box2d/Testbed/Tests/EdgeShapes.h
+++ b/tests/box2d/Testbed/Tests/EdgeShapes.h
diff --git a/tests/box2d/Testbed/Tests/EdgeTest.h b/tests/box2d/Testbed/Tests/EdgeTest.h
index 2cabf2e3..2cabf2e3 100755..100644
--- a/tests/box2d/Testbed/Tests/EdgeTest.h
+++ b/tests/box2d/Testbed/Tests/EdgeTest.h
diff --git a/tests/box2d/Testbed/Tests/Gears.h b/tests/box2d/Testbed/Tests/Gears.h
index c1bc7955..c1bc7955 100755..100644
--- a/tests/box2d/Testbed/Tests/Gears.h
+++ b/tests/box2d/Testbed/Tests/Gears.h
diff --git a/tests/box2d/Testbed/Tests/OneSidedPlatform.h b/tests/box2d/Testbed/Tests/OneSidedPlatform.h
index 9d3c84e3..9d3c84e3 100755..100644
--- a/tests/box2d/Testbed/Tests/OneSidedPlatform.h
+++ b/tests/box2d/Testbed/Tests/OneSidedPlatform.h
diff --git a/tests/box2d/Testbed/Tests/Pinball.h b/tests/box2d/Testbed/Tests/Pinball.h
index 640edf47..640edf47 100755..100644
--- a/tests/box2d/Testbed/Tests/Pinball.h
+++ b/tests/box2d/Testbed/Tests/Pinball.h
diff --git a/tests/box2d/Testbed/Tests/PolyCollision.h b/tests/box2d/Testbed/Tests/PolyCollision.h
index 43ede334..43ede334 100755..100644
--- a/tests/box2d/Testbed/Tests/PolyCollision.h
+++ b/tests/box2d/Testbed/Tests/PolyCollision.h
diff --git a/tests/box2d/Testbed/Tests/PolyShapes.h b/tests/box2d/Testbed/Tests/PolyShapes.h
index 60bb7340..60bb7340 100755..100644
--- a/tests/box2d/Testbed/Tests/PolyShapes.h
+++ b/tests/box2d/Testbed/Tests/PolyShapes.h
diff --git a/tests/box2d/Testbed/Tests/Prismatic.h b/tests/box2d/Testbed/Tests/Prismatic.h
index fb58cba5..fb58cba5 100755..100644
--- a/tests/box2d/Testbed/Tests/Prismatic.h
+++ b/tests/box2d/Testbed/Tests/Prismatic.h
diff --git a/tests/box2d/Testbed/Tests/Pulleys.h b/tests/box2d/Testbed/Tests/Pulleys.h
index 9c716267..9c716267 100755..100644
--- a/tests/box2d/Testbed/Tests/Pulleys.h
+++ b/tests/box2d/Testbed/Tests/Pulleys.h
diff --git a/tests/box2d/Testbed/Tests/Pyramid.h b/tests/box2d/Testbed/Tests/Pyramid.h
index ac3cd465..ac3cd465 100755..100644
--- a/tests/box2d/Testbed/Tests/Pyramid.h
+++ b/tests/box2d/Testbed/Tests/Pyramid.h
diff --git a/tests/box2d/Testbed/Tests/RayCast.h b/tests/box2d/Testbed/Tests/RayCast.h
index 5eefd9b0..5eefd9b0 100755..100644
--- a/tests/box2d/Testbed/Tests/RayCast.h
+++ b/tests/box2d/Testbed/Tests/RayCast.h
diff --git a/tests/box2d/Testbed/Tests/Revolute.h b/tests/box2d/Testbed/Tests/Revolute.h
index 86ac28a5..86ac28a5 100755..100644
--- a/tests/box2d/Testbed/Tests/Revolute.h
+++ b/tests/box2d/Testbed/Tests/Revolute.h
diff --git a/tests/box2d/Testbed/Tests/Rope.h b/tests/box2d/Testbed/Tests/Rope.h
index 38ff81d4..38ff81d4 100755..100644
--- a/tests/box2d/Testbed/Tests/Rope.h
+++ b/tests/box2d/Testbed/Tests/Rope.h
diff --git a/tests/box2d/Testbed/Tests/RopeJoint.h b/tests/box2d/Testbed/Tests/RopeJoint.h
index 038dede0..038dede0 100755..100644
--- a/tests/box2d/Testbed/Tests/RopeJoint.h
+++ b/tests/box2d/Testbed/Tests/RopeJoint.h
diff --git a/tests/box2d/Testbed/Tests/SensorTest.h b/tests/box2d/Testbed/Tests/SensorTest.h
index a2680415..a2680415 100755..100644
--- a/tests/box2d/Testbed/Tests/SensorTest.h
+++ b/tests/box2d/Testbed/Tests/SensorTest.h
diff --git a/tests/box2d/Testbed/Tests/ShapeEditing.h b/tests/box2d/Testbed/Tests/ShapeEditing.h
index c900bbcb..c900bbcb 100755..100644
--- a/tests/box2d/Testbed/Tests/ShapeEditing.h
+++ b/tests/box2d/Testbed/Tests/ShapeEditing.h
diff --git a/tests/box2d/Testbed/Tests/SliderCrank.h b/tests/box2d/Testbed/Tests/SliderCrank.h
index 52e6e9cf..52e6e9cf 100755..100644
--- a/tests/box2d/Testbed/Tests/SliderCrank.h
+++ b/tests/box2d/Testbed/Tests/SliderCrank.h
diff --git a/tests/box2d/Testbed/Tests/SphereStack.h b/tests/box2d/Testbed/Tests/SphereStack.h
index 22485c6d..22485c6d 100755..100644
--- a/tests/box2d/Testbed/Tests/SphereStack.h
+++ b/tests/box2d/Testbed/Tests/SphereStack.h
diff --git a/tests/box2d/Testbed/Tests/TestEntries.cpp b/tests/box2d/Testbed/Tests/TestEntries.cpp
index 85db6615..85db6615 100755..100644
--- a/tests/box2d/Testbed/Tests/TestEntries.cpp
+++ b/tests/box2d/Testbed/Tests/TestEntries.cpp
diff --git a/tests/box2d/Testbed/Tests/TheoJansen.h b/tests/box2d/Testbed/Tests/TheoJansen.h
index 6fb808b9..6fb808b9 100755..100644
--- a/tests/box2d/Testbed/Tests/TheoJansen.h
+++ b/tests/box2d/Testbed/Tests/TheoJansen.h
diff --git a/tests/box2d/Testbed/Tests/Tiles.h b/tests/box2d/Testbed/Tests/Tiles.h
index a437961c..a437961c 100755..100644
--- a/tests/box2d/Testbed/Tests/Tiles.h
+++ b/tests/box2d/Testbed/Tests/Tiles.h
diff --git a/tests/box2d/Testbed/Tests/TimeOfImpact.h b/tests/box2d/Testbed/Tests/TimeOfImpact.h
index f836e0e0..f836e0e0 100755..100644
--- a/tests/box2d/Testbed/Tests/TimeOfImpact.h
+++ b/tests/box2d/Testbed/Tests/TimeOfImpact.h
diff --git a/tests/box2d/Testbed/Tests/Tumbler.h b/tests/box2d/Testbed/Tests/Tumbler.h
index b654915c..b654915c 100755..100644
--- a/tests/box2d/Testbed/Tests/Tumbler.h
+++ b/tests/box2d/Testbed/Tests/Tumbler.h
diff --git a/tests/box2d/Testbed/Tests/VaryingFriction.h b/tests/box2d/Testbed/Tests/VaryingFriction.h
index a28354a9..a28354a9 100755..100644
--- a/tests/box2d/Testbed/Tests/VaryingFriction.h
+++ b/tests/box2d/Testbed/Tests/VaryingFriction.h
diff --git a/tests/box2d/Testbed/Tests/VaryingRestitution.h b/tests/box2d/Testbed/Tests/VaryingRestitution.h
index 8a1bed69..8a1bed69 100755..100644
--- a/tests/box2d/Testbed/Tests/VaryingRestitution.h
+++ b/tests/box2d/Testbed/Tests/VaryingRestitution.h
diff --git a/tests/box2d/Testbed/Tests/VerticalStack.h b/tests/box2d/Testbed/Tests/VerticalStack.h
index 7d545e23..7d545e23 100755..100644
--- a/tests/box2d/Testbed/Tests/VerticalStack.h
+++ b/tests/box2d/Testbed/Tests/VerticalStack.h
diff --git a/tests/box2d/Testbed/Tests/Web.h b/tests/box2d/Testbed/Tests/Web.h
index 9ed279ec..9ed279ec 100755..100644
--- a/tests/box2d/Testbed/Tests/Web.h
+++ b/tests/box2d/Testbed/Tests/Web.h
diff --git a/tests/box2d/freeglut/CMakeLists.txt b/tests/box2d/freeglut/CMakeLists.txt
index 8c97446d..8c97446d 100755..100644
--- a/tests/box2d/freeglut/CMakeLists.txt
+++ b/tests/box2d/freeglut/CMakeLists.txt
diff --git a/tests/box2d/freeglut/COPYING b/tests/box2d/freeglut/COPYING
index fc36ad99..fc36ad99 100755..100644
--- a/tests/box2d/freeglut/COPYING
+++ b/tests/box2d/freeglut/COPYING
diff --git a/tests/box2d/freeglut/freeglut.h b/tests/box2d/freeglut/freeglut.h
index 0e6f8c6a..0e6f8c6a 100755..100644
--- a/tests/box2d/freeglut/freeglut.h
+++ b/tests/box2d/freeglut/freeglut.h
diff --git a/tests/box2d/freeglut/freeglut_callbacks.c b/tests/box2d/freeglut/freeglut_callbacks.c
index b6b25b37..b6b25b37 100755..100644
--- a/tests/box2d/freeglut/freeglut_callbacks.c
+++ b/tests/box2d/freeglut/freeglut_callbacks.c
diff --git a/tests/box2d/freeglut/freeglut_cursor.c b/tests/box2d/freeglut/freeglut_cursor.c
index f0ba136a..f0ba136a 100755..100644
--- a/tests/box2d/freeglut/freeglut_cursor.c
+++ b/tests/box2d/freeglut/freeglut_cursor.c
diff --git a/tests/box2d/freeglut/freeglut_display.c b/tests/box2d/freeglut/freeglut_display.c
index 2f2c5752..2f2c5752 100755..100644
--- a/tests/box2d/freeglut/freeglut_display.c
+++ b/tests/box2d/freeglut/freeglut_display.c
diff --git a/tests/box2d/freeglut/freeglut_ext.c b/tests/box2d/freeglut/freeglut_ext.c
index cf854341..cf854341 100755..100644
--- a/tests/box2d/freeglut/freeglut_ext.c
+++ b/tests/box2d/freeglut/freeglut_ext.c
diff --git a/tests/box2d/freeglut/freeglut_ext.h b/tests/box2d/freeglut/freeglut_ext.h
index aca85e7b..aca85e7b 100755..100644
--- a/tests/box2d/freeglut/freeglut_ext.h
+++ b/tests/box2d/freeglut/freeglut_ext.h
diff --git a/tests/box2d/freeglut/freeglut_font.c b/tests/box2d/freeglut/freeglut_font.c
index 6e37b95d..6e37b95d 100755..100644
--- a/tests/box2d/freeglut/freeglut_font.c
+++ b/tests/box2d/freeglut/freeglut_font.c
diff --git a/tests/box2d/freeglut/freeglut_font_data.c b/tests/box2d/freeglut/freeglut_font_data.c
index 5ffef5a0..5ffef5a0 100755..100644
--- a/tests/box2d/freeglut/freeglut_font_data.c
+++ b/tests/box2d/freeglut/freeglut_font_data.c
diff --git a/tests/box2d/freeglut/freeglut_gamemode.c b/tests/box2d/freeglut/freeglut_gamemode.c
index db776b51..db776b51 100755..100644
--- a/tests/box2d/freeglut/freeglut_gamemode.c
+++ b/tests/box2d/freeglut/freeglut_gamemode.c
diff --git a/tests/box2d/freeglut/freeglut_geometry.c b/tests/box2d/freeglut/freeglut_geometry.c
index 1b6cb7d8..1b6cb7d8 100755..100644
--- a/tests/box2d/freeglut/freeglut_geometry.c
+++ b/tests/box2d/freeglut/freeglut_geometry.c
diff --git a/tests/box2d/freeglut/freeglut_glutfont_definitions.c b/tests/box2d/freeglut/freeglut_glutfont_definitions.c
index 0a24cce7..0a24cce7 100755..100644
--- a/tests/box2d/freeglut/freeglut_glutfont_definitions.c
+++ b/tests/box2d/freeglut/freeglut_glutfont_definitions.c
diff --git a/tests/box2d/freeglut/freeglut_init.c b/tests/box2d/freeglut/freeglut_init.c
index 73310eaa..73310eaa 100755..100644
--- a/tests/box2d/freeglut/freeglut_init.c
+++ b/tests/box2d/freeglut/freeglut_init.c
diff --git a/tests/box2d/freeglut/freeglut_input_devices.c b/tests/box2d/freeglut/freeglut_input_devices.c
index b500e830..b500e830 100755..100644
--- a/tests/box2d/freeglut/freeglut_input_devices.c
+++ b/tests/box2d/freeglut/freeglut_input_devices.c
diff --git a/tests/box2d/freeglut/freeglut_internal.h b/tests/box2d/freeglut/freeglut_internal.h
index 2d77ab01..2d77ab01 100755..100644
--- a/tests/box2d/freeglut/freeglut_internal.h
+++ b/tests/box2d/freeglut/freeglut_internal.h
diff --git a/tests/box2d/freeglut/freeglut_joystick.c b/tests/box2d/freeglut/freeglut_joystick.c
index 47127f54..47127f54 100755..100644
--- a/tests/box2d/freeglut/freeglut_joystick.c
+++ b/tests/box2d/freeglut/freeglut_joystick.c
diff --git a/tests/box2d/freeglut/freeglut_main.c b/tests/box2d/freeglut/freeglut_main.c
index 47043a03..47043a03 100755..100644
--- a/tests/box2d/freeglut/freeglut_main.c
+++ b/tests/box2d/freeglut/freeglut_main.c
diff --git a/tests/box2d/freeglut/freeglut_menu.c b/tests/box2d/freeglut/freeglut_menu.c
index 9bdf8895..9bdf8895 100755..100644
--- a/tests/box2d/freeglut/freeglut_menu.c
+++ b/tests/box2d/freeglut/freeglut_menu.c
diff --git a/tests/box2d/freeglut/freeglut_misc.c b/tests/box2d/freeglut/freeglut_misc.c
index d0a65bde..d0a65bde 100755..100644
--- a/tests/box2d/freeglut/freeglut_misc.c
+++ b/tests/box2d/freeglut/freeglut_misc.c
diff --git a/tests/box2d/freeglut/freeglut_overlay.c b/tests/box2d/freeglut/freeglut_overlay.c
index fbc3250d..fbc3250d 100755..100644
--- a/tests/box2d/freeglut/freeglut_overlay.c
+++ b/tests/box2d/freeglut/freeglut_overlay.c
diff --git a/tests/box2d/freeglut/freeglut_spaceball.c b/tests/box2d/freeglut/freeglut_spaceball.c
index a92a75c4..a92a75c4 100755..100644
--- a/tests/box2d/freeglut/freeglut_spaceball.c
+++ b/tests/box2d/freeglut/freeglut_spaceball.c
diff --git a/tests/box2d/freeglut/freeglut_state.c b/tests/box2d/freeglut/freeglut_state.c
index 783e7b44..783e7b44 100755..100644
--- a/tests/box2d/freeglut/freeglut_state.c
+++ b/tests/box2d/freeglut/freeglut_state.c
diff --git a/tests/box2d/freeglut/freeglut_std.h b/tests/box2d/freeglut/freeglut_std.h
index 3a4207fa..3a4207fa 100755..100644
--- a/tests/box2d/freeglut/freeglut_std.h
+++ b/tests/box2d/freeglut/freeglut_std.h
diff --git a/tests/box2d/freeglut/freeglut_stroke_mono_roman.c b/tests/box2d/freeglut/freeglut_stroke_mono_roman.c
index f2a0d6d6..f2a0d6d6 100755..100644
--- a/tests/box2d/freeglut/freeglut_stroke_mono_roman.c
+++ b/tests/box2d/freeglut/freeglut_stroke_mono_roman.c
diff --git a/tests/box2d/freeglut/freeglut_stroke_roman.c b/tests/box2d/freeglut/freeglut_stroke_roman.c
index 619a9044..619a9044 100755..100644
--- a/tests/box2d/freeglut/freeglut_stroke_roman.c
+++ b/tests/box2d/freeglut/freeglut_stroke_roman.c
diff --git a/tests/box2d/freeglut/freeglut_structure.c b/tests/box2d/freeglut/freeglut_structure.c
index 524242c9..524242c9 100755..100644
--- a/tests/box2d/freeglut/freeglut_structure.c
+++ b/tests/box2d/freeglut/freeglut_structure.c
diff --git a/tests/box2d/freeglut/freeglut_teapot.c b/tests/box2d/freeglut/freeglut_teapot.c
index 2b4fc24e..2b4fc24e 100755..100644
--- a/tests/box2d/freeglut/freeglut_teapot.c
+++ b/tests/box2d/freeglut/freeglut_teapot.c
diff --git a/tests/box2d/freeglut/freeglut_teapot_data.h b/tests/box2d/freeglut/freeglut_teapot_data.h
index 3bf83e11..3bf83e11 100755..100644
--- a/tests/box2d/freeglut/freeglut_teapot_data.h
+++ b/tests/box2d/freeglut/freeglut_teapot_data.h
diff --git a/tests/box2d/freeglut/freeglut_videoresize.c b/tests/box2d/freeglut/freeglut_videoresize.c
index 2b27ddeb..2b27ddeb 100755..100644
--- a/tests/box2d/freeglut/freeglut_videoresize.c
+++ b/tests/box2d/freeglut/freeglut_videoresize.c
diff --git a/tests/box2d/freeglut/freeglut_window.c b/tests/box2d/freeglut/freeglut_window.c
index 176487e7..176487e7 100755..100644
--- a/tests/box2d/freeglut/freeglut_window.c
+++ b/tests/box2d/freeglut/freeglut_window.c
diff --git a/tests/box2d/glui/CMakeLists.txt b/tests/box2d/glui/CMakeLists.txt
index 1e502988..1e502988 100755..100644
--- a/tests/box2d/glui/CMakeLists.txt
+++ b/tests/box2d/glui/CMakeLists.txt
diff --git a/tests/box2d/glui/algebra3.cpp b/tests/box2d/glui/algebra3.cpp
index ddc18f4f..ddc18f4f 100755..100644
--- a/tests/box2d/glui/algebra3.cpp
+++ b/tests/box2d/glui/algebra3.cpp
diff --git a/tests/box2d/glui/algebra3.h b/tests/box2d/glui/algebra3.h
index 7849673d..7849673d 100755..100644
--- a/tests/box2d/glui/algebra3.h
+++ b/tests/box2d/glui/algebra3.h
diff --git a/tests/box2d/glui/arcball.cpp b/tests/box2d/glui/arcball.cpp
index d233c7fc..d233c7fc 100755..100644
--- a/tests/box2d/glui/arcball.cpp
+++ b/tests/box2d/glui/arcball.cpp
diff --git a/tests/box2d/glui/arcball.h b/tests/box2d/glui/arcball.h
index ef69afc9..ef69afc9 100755..100644
--- a/tests/box2d/glui/arcball.h
+++ b/tests/box2d/glui/arcball.h
diff --git a/tests/box2d/glui/glui.cpp b/tests/box2d/glui/glui.cpp
index 221e68d2..221e68d2 100755..100644
--- a/tests/box2d/glui/glui.cpp
+++ b/tests/box2d/glui/glui.cpp
diff --git a/tests/box2d/glui/glui.h b/tests/box2d/glui/glui.h
index f1daea8e..f1daea8e 100755..100644
--- a/tests/box2d/glui/glui.h
+++ b/tests/box2d/glui/glui.h
diff --git a/tests/box2d/glui/glui_add_controls.cpp b/tests/box2d/glui/glui_add_controls.cpp
index 9db92939..9db92939 100755..100644
--- a/tests/box2d/glui/glui_add_controls.cpp
+++ b/tests/box2d/glui/glui_add_controls.cpp
diff --git a/tests/box2d/glui/glui_bitmap_img_data.cpp b/tests/box2d/glui/glui_bitmap_img_data.cpp
index 6ec7e6df..6ec7e6df 100755..100644
--- a/tests/box2d/glui/glui_bitmap_img_data.cpp
+++ b/tests/box2d/glui/glui_bitmap_img_data.cpp
diff --git a/tests/box2d/glui/glui_bitmaps.cpp b/tests/box2d/glui/glui_bitmaps.cpp
index d04e9b11..d04e9b11 100755..100644
--- a/tests/box2d/glui/glui_bitmaps.cpp
+++ b/tests/box2d/glui/glui_bitmaps.cpp
diff --git a/tests/box2d/glui/glui_button.cpp b/tests/box2d/glui/glui_button.cpp
index 0b912d2c..0b912d2c 100755..100644
--- a/tests/box2d/glui/glui_button.cpp
+++ b/tests/box2d/glui/glui_button.cpp
diff --git a/tests/box2d/glui/glui_checkbox.cpp b/tests/box2d/glui/glui_checkbox.cpp
index 3bf3984d..3bf3984d 100755..100644
--- a/tests/box2d/glui/glui_checkbox.cpp
+++ b/tests/box2d/glui/glui_checkbox.cpp
diff --git a/tests/box2d/glui/glui_column.cpp b/tests/box2d/glui/glui_column.cpp
index 172d3c1e..172d3c1e 100755..100644
--- a/tests/box2d/glui/glui_column.cpp
+++ b/tests/box2d/glui/glui_column.cpp
diff --git a/tests/box2d/glui/glui_commandline.cpp b/tests/box2d/glui/glui_commandline.cpp
index e98c2e1e..e98c2e1e 100755..100644
--- a/tests/box2d/glui/glui_commandline.cpp
+++ b/tests/box2d/glui/glui_commandline.cpp
diff --git a/tests/box2d/glui/glui_control.cpp b/tests/box2d/glui/glui_control.cpp
index 056916f3..056916f3 100755..100644
--- a/tests/box2d/glui/glui_control.cpp
+++ b/tests/box2d/glui/glui_control.cpp
diff --git a/tests/box2d/glui/glui_edittext.cpp b/tests/box2d/glui/glui_edittext.cpp
index 5f2a1d84..5f2a1d84 100755..100644
--- a/tests/box2d/glui/glui_edittext.cpp
+++ b/tests/box2d/glui/glui_edittext.cpp
diff --git a/tests/box2d/glui/glui_filebrowser.cpp b/tests/box2d/glui/glui_filebrowser.cpp
index 13171fbf..13171fbf 100755..100644
--- a/tests/box2d/glui/glui_filebrowser.cpp
+++ b/tests/box2d/glui/glui_filebrowser.cpp
diff --git a/tests/box2d/glui/glui_internal.h b/tests/box2d/glui/glui_internal.h
index 20efc6f9..20efc6f9 100755..100644
--- a/tests/box2d/glui/glui_internal.h
+++ b/tests/box2d/glui/glui_internal.h
diff --git a/tests/box2d/glui/glui_internal_control.h b/tests/box2d/glui/glui_internal_control.h
index ef0db159..ef0db159 100755..100644
--- a/tests/box2d/glui/glui_internal_control.h
+++ b/tests/box2d/glui/glui_internal_control.h
diff --git a/tests/box2d/glui/glui_list.cpp b/tests/box2d/glui/glui_list.cpp
index a5b09393..a5b09393 100755..100644
--- a/tests/box2d/glui/glui_list.cpp
+++ b/tests/box2d/glui/glui_list.cpp
diff --git a/tests/box2d/glui/glui_listbox.cpp b/tests/box2d/glui/glui_listbox.cpp
index 3eda3107..3eda3107 100755..100644
--- a/tests/box2d/glui/glui_listbox.cpp
+++ b/tests/box2d/glui/glui_listbox.cpp
diff --git a/tests/box2d/glui/glui_mouse_iaction.cpp b/tests/box2d/glui/glui_mouse_iaction.cpp
index bc9f0610..bc9f0610 100755..100644
--- a/tests/box2d/glui/glui_mouse_iaction.cpp
+++ b/tests/box2d/glui/glui_mouse_iaction.cpp
diff --git a/tests/box2d/glui/glui_node.cpp b/tests/box2d/glui/glui_node.cpp
index 96aa1dd9..96aa1dd9 100755..100644
--- a/tests/box2d/glui/glui_node.cpp
+++ b/tests/box2d/glui/glui_node.cpp
diff --git a/tests/box2d/glui/glui_panel.cpp b/tests/box2d/glui/glui_panel.cpp
index 687b7797..687b7797 100755..100644
--- a/tests/box2d/glui/glui_panel.cpp
+++ b/tests/box2d/glui/glui_panel.cpp
diff --git a/tests/box2d/glui/glui_radio.cpp b/tests/box2d/glui/glui_radio.cpp
index 157d18e8..157d18e8 100755..100644
--- a/tests/box2d/glui/glui_radio.cpp
+++ b/tests/box2d/glui/glui_radio.cpp
diff --git a/tests/box2d/glui/glui_rollout.cpp b/tests/box2d/glui/glui_rollout.cpp
index f0aa7fc4..f0aa7fc4 100755..100644
--- a/tests/box2d/glui/glui_rollout.cpp
+++ b/tests/box2d/glui/glui_rollout.cpp
diff --git a/tests/box2d/glui/glui_rotation.cpp b/tests/box2d/glui/glui_rotation.cpp
index e3e84bed..e3e84bed 100755..100644
--- a/tests/box2d/glui/glui_rotation.cpp
+++ b/tests/box2d/glui/glui_rotation.cpp
diff --git a/tests/box2d/glui/glui_scrollbar.cpp b/tests/box2d/glui/glui_scrollbar.cpp
index 9540d407..9540d407 100755..100644
--- a/tests/box2d/glui/glui_scrollbar.cpp
+++ b/tests/box2d/glui/glui_scrollbar.cpp
diff --git a/tests/box2d/glui/glui_separator.cpp b/tests/box2d/glui/glui_separator.cpp
index b10cf361..b10cf361 100755..100644
--- a/tests/box2d/glui/glui_separator.cpp
+++ b/tests/box2d/glui/glui_separator.cpp
diff --git a/tests/box2d/glui/glui_spinner.cpp b/tests/box2d/glui/glui_spinner.cpp
index 85e7e3e0..85e7e3e0 100755..100644
--- a/tests/box2d/glui/glui_spinner.cpp
+++ b/tests/box2d/glui/glui_spinner.cpp
diff --git a/tests/box2d/glui/glui_statictext.cpp b/tests/box2d/glui/glui_statictext.cpp
index b0db4b94..b0db4b94 100755..100644
--- a/tests/box2d/glui/glui_statictext.cpp
+++ b/tests/box2d/glui/glui_statictext.cpp
diff --git a/tests/box2d/glui/glui_string.cpp b/tests/box2d/glui/glui_string.cpp
index 910e6eb8..910e6eb8 100755..100644
--- a/tests/box2d/glui/glui_string.cpp
+++ b/tests/box2d/glui/glui_string.cpp
diff --git a/tests/box2d/glui/glui_textbox.cpp b/tests/box2d/glui/glui_textbox.cpp
index 56fc0158..56fc0158 100755..100644
--- a/tests/box2d/glui/glui_textbox.cpp
+++ b/tests/box2d/glui/glui_textbox.cpp
diff --git a/tests/box2d/glui/glui_translation.cpp b/tests/box2d/glui/glui_translation.cpp
index 73b1fa32..73b1fa32 100755..100644
--- a/tests/box2d/glui/glui_translation.cpp
+++ b/tests/box2d/glui/glui_translation.cpp
diff --git a/tests/box2d/glui/glui_tree.cpp b/tests/box2d/glui/glui_tree.cpp
index 1ed456d5..1ed456d5 100755..100644
--- a/tests/box2d/glui/glui_tree.cpp
+++ b/tests/box2d/glui/glui_tree.cpp
diff --git a/tests/box2d/glui/glui_treepanel.cpp b/tests/box2d/glui/glui_treepanel.cpp
index 4849aed4..4849aed4 100755..100644
--- a/tests/box2d/glui/glui_treepanel.cpp
+++ b/tests/box2d/glui/glui_treepanel.cpp
diff --git a/tests/box2d/glui/glui_window.cpp b/tests/box2d/glui/glui_window.cpp
index 83559782..83559782 100755..100644
--- a/tests/box2d/glui/glui_window.cpp
+++ b/tests/box2d/glui/glui_window.cpp
diff --git a/tests/box2d/glui/quaternion.cpp b/tests/box2d/glui/quaternion.cpp
index 3e80242a..3e80242a 100755..100644
--- a/tests/box2d/glui/quaternion.cpp
+++ b/tests/box2d/glui/quaternion.cpp
diff --git a/tests/box2d/glui/quaternion.h b/tests/box2d/glui/quaternion.h
index 8bd45823..8bd45823 100755..100644
--- a/tests/box2d/glui/quaternion.h
+++ b/tests/box2d/glui/quaternion.h
diff --git a/tests/box2d/glui/readme.txt b/tests/box2d/glui/readme.txt
index 43ba3ed5..43ba3ed5 100755..100644
--- a/tests/box2d/glui/readme.txt
+++ b/tests/box2d/glui/readme.txt
diff --git a/tests/box2d/premake4.lua b/tests/box2d/premake4.lua
index dec685c3..dec685c3 100755..100644
--- a/tests/box2d/premake4.lua
+++ b/tests/box2d/premake4.lua
diff --git a/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp b/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp
index b69f46da..b69f46da 100755..100644
--- a/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp
+++ b/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp
diff --git a/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h b/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
index 2edc8d2b..2edc8d2b 100755..100644
--- a/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
+++ b/tests/bullet/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
diff --git a/tests/bullet/src/LinearMath/btPoolAllocator.h b/tests/bullet/src/LinearMath/btPoolAllocator.h
index ef208453..ef208453 100755..100644
--- a/tests/bullet/src/LinearMath/btPoolAllocator.h
+++ b/tests/bullet/src/LinearMath/btPoolAllocator.h
diff --git a/tests/poppler/goo/GooTimer.h b/tests/poppler/goo/GooTimer.h
index f55ffcce..f55ffcce 100755..100644
--- a/tests/poppler/goo/GooTimer.h
+++ b/tests/poppler/goo/GooTimer.h
diff --git a/tests/runner.py b/tests/runner.py
index b3f88ea0..0aefb8e1 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -413,7 +413,7 @@ process(sys.argv[1])
int suppInt = 76;
'''
- supp_name = os.path.join(self.get_dir(), 'supp.c')
+ supp_name = os.path.join(self.get_dir(), 'supp.cpp')
open(supp_name, 'w').write(supp)
main = r'''
@@ -2051,8 +2051,9 @@ Succeeded!
char *two = "fa la sa ho fi FI FO FUM WHEN WHERE WHY HOW WHO";
char three[1000];
strcpy(three, &one[argc*2]);
- strcat(three, &two[argc*3]);
+ char *four = strcat(three, &two[argc*3]);
printf("cat |%s|\\n", three);
+ printf("returned |%s|\\n", four);
}
return 0;
@@ -2062,7 +2063,8 @@ Succeeded!
print named
Settings.NAMED_GLOBALS = named
self.do_run(src, '''4:10,177,543,def\n4\nwowie\ntoo\n76\n5\n(null)\n/* a comment */\n// another\ntest\nwaka ....e 1 O...wo 2 T................................
-cat |umber one top notchfi FI FO FUM WHEN WHERE WHY HOW WHO|''', ['wowie', 'too', '74'])
+cat |umber one top notchfi FI FO FUM WHEN WHERE WHY HOW WHO|
+returned |umber one top notchfi FI FO FUM WHEN WHERE WHY HOW WHO|''', ['wowie', 'too', '74'])
if self.emcc_args == []:
gen = open(self.in_dir('src.cpp.o.js')).read()
assert ('var __str1;' in gen) == named
@@ -4344,10 +4346,11 @@ The current type of b is: 9
# This will fail! See explanation near the warning we check for, in the compiler source code
output = Popen([PYTHON, EMCC, all_name], stderr=PIPE).communicate()
+
# Check for warning in the generated code
generated = open(os.path.join(self.get_dir(), 'src.cpp.o.js')).read()
if 'i386-pc-linux-gnu' in COMPILER_OPTS:
- assert 'Casting a function pointer type to another with a different number of arguments' in output[1], 'Missing expected warning'
+ assert 'Casting a function pointer type to a potentially incompatible one' in output[1], 'Missing expected warning'
else:
print >> sys.stderr, 'skipping C/C++ conventions warning check, since not i386-pc-linux-gnu'
@@ -5025,8 +5028,8 @@ The current type of b is: 9
Settings.BUILD_AS_SHARED_LIB = 2
Settings.NAMED_GLOBALS = 1
- self.build(supp, self.get_dir(), self.in_dir('supp.c'))
- shutil.move(self.in_dir('supp.c.o.js'), self.in_dir('liblib.so'))
+ self.build(supp, self.get_dir(), self.in_dir('supp.cpp'))
+ shutil.move(self.in_dir('supp.cpp.o.js'), self.in_dir('liblib.so'))
Settings.BUILD_AS_SHARED_LIB = 0
Settings.RUNTIME_LINKED_LIBS = ['liblib.so'];
@@ -9401,7 +9404,7 @@ Options that are modified or new in %s include:
self.assertContained('error: invalid preprocessing directive', output[1])
self.assertContained(["error: use of undeclared identifier 'cheez", "error: unknown type name 'cheez'"], output[1])
self.assertContained('errors generated', output[1])
- assert 'emcc: compiler frontend failed to generate LLVM bitcode, halting' in output[1].split('errors generated.')[1]
+ assert 'compiler frontend failed to generate LLVM bitcode, halting' in output[1].split('errors generated.')[1]
# emcc src.cpp -c and emcc src.cpp -o src.[o|bc] ==> should give a .bc file
# regression check: -o js should create "js", with bitcode content
@@ -9494,11 +9497,11 @@ Options that are modified or new in %s include:
assert len(output[0]) == 0, output[0]
if bc_params is not None:
if '-O1' in params and 'something.bc' in params:
- assert 'warning: -Ox flags ignored, since not generating JavaScript' in output[1]
+ assert '-Ox flags ignored, since not generating JavaScript' in output[1]
assert os.path.exists('something.bc'), output[1]
output = Popen([PYTHON, compiler, 'something.bc', '-o', 'something.js'] + bc_params, stdout=PIPE, stderr=PIPE).communicate()
assert os.path.exists('something.js'), output[1]
- assert ('Warning: Applying some potentially unsafe optimizations!' in output[1]) == (opt_level >= 3), 'unsafe warning should appear in opt >= 3'
+ assert ('Applying some potentially unsafe optimizations!' in output[1]) == (opt_level >= 3), 'unsafe warning should appear in opt >= 3'
self.assertContained('hello, world!', run_js('something.js'))
# Verify optimization level etc. in the generated code
@@ -9571,7 +9574,7 @@ Options that are modified or new in %s include:
assert not os.path.exists(target), 'We should only have created bitcode here: ' + '\n'.join(output)
# Compiling one of them alone is expected to fail
- output = Popen([PYTHON, compiler, 'twopart_main.o'] + args, stdout=PIPE, stderr=PIPE).communicate()
+ output = Popen([PYTHON, compiler, 'twopart_main.o', '-O1', '-g'] + args, stdout=PIPE, stderr=PIPE).communicate()
assert os.path.exists(target), '\n'.join(output)
#print '\n'.join(output)
self.assertContained('missing function', run_js(target, stderr=STDOUT))
@@ -9924,7 +9927,7 @@ f.close()
(['-Lsubdir/something'], False),
([], False)]:
err = Popen([PYTHON, EMCC, 'main.c'] + args, stderr=PIPE).communicate()[1]
- assert ('emcc: warning: -I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)' in err) == expected, err
+ assert ('-I or -L of an absolute path encountered. If this is to a local system header/library, it may cause problems (local system files make sense for compiling natively on your system, but not necessarily to JavaScript)' in err) == expected, err
def test_local_link(self):
# Linking a local library directly, like /usr/lib/libsomething.so, cannot work of course since it
@@ -10692,7 +10695,7 @@ seeked= file.
Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'supp.cpp'), '-o', 'supp.o']).communicate()
output = Popen([PYTHON, EMCC, os.path.join(self.get_dir(), 'main.o'), '-s', os.path.join(self.get_dir(), 'supp.o'), '-s', 'SAFE_HEAP=1'], stderr=PIPE).communicate()
- self.assertContained('emcc: warning: treating -s as linker option', output[1])
+ self.assertContained('treating -s as linker option', output[1])
output = run_js('a.out.js')
assert 'yello' in output, 'code works'
code = open('a.out.js').read()
@@ -12999,11 +13002,11 @@ elif 'sanity' in str(sys.argv):
if 'LLVM_ROOT' not in settings:
self.assertContained('Error in evaluating %s' % EM_CONFIG, output)
elif 'runner.py' not in ' '.join(command):
- self.assertContained('FATAL', output) # sanity check should fail
+ self.assertContained('CRITICAL', output) # sanity check should fail
def test_closure_compiler(self):
CLOSURE_FATAL = 'fatal: Closure compiler'
- CLOSURE_WARNING = 'WARNING: Closure compiler'
+ CLOSURE_WARNING = 'does not exist'
# Sanity check should find closure
restore()
@@ -13030,7 +13033,7 @@ elif 'sanity' in str(sys.argv):
assert os.path.exists('a.out.js'), output
def test_llvm(self):
- LLVM_WARNING = 'warning: LLVM version appears incorrect'
+ LLVM_WARNING = 'LLVM version appears incorrect'
restore()
@@ -13068,8 +13071,8 @@ elif 'sanity' in str(sys.argv):
del os.environ['EM_IGNORE_SANITY']
def test_node(self):
- NODE_WARNING = 'warning: node version appears too old'
- NODE_WARNING_2 = 'warning: cannot check node version'
+ NODE_WARNING = 'node version appears too old'
+ NODE_WARNING_2 = 'cannot check node version'
restore()
@@ -13191,9 +13194,9 @@ fi
try_delete(CANONICAL_TEMP_DIR)
def test_emcc_caching(self):
- INCLUDING_MESSAGE = 'emcc: including X'
- BUILDING_MESSAGE = 'emcc: building X for cache'
- ERASING_MESSAGE = 'emcc: clearing cache'
+ INCLUDING_MESSAGE = 'including X'
+ BUILDING_MESSAGE = 'building X for cache'
+ ERASING_MESSAGE = 'clearing cache'
EMCC_CACHE = Cache.dirname
diff --git a/tools/shared.py b/tools/shared.py
index 3f695142..2bd219a9 100644
--- a/tools/shared.py
+++ b/tools/shared.py
@@ -3,6 +3,7 @@ from subprocess import Popen, PIPE, STDOUT
from tempfile import mkstemp
import jsrun, cache, tempfiles
from response_file import create_response_file
+import logging, platform
def listify(x):
if type(x) is not list: return [x]
@@ -46,7 +47,7 @@ class WindowsPopen:
# Call the process with fixed streams.
self.process = subprocess.Popen(args, bufsize, executable, self.stdin_, self.stdout_, self.stderr_, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
except Exception, e:
- print >> sys.stderr, '\nsubprocess.Popen(args=%s) failed! Exception %s\n' % (' '.join(args), str(e))
+ logging.error('\nsubprocess.Popen(args=%s) failed! Exception %s\n' % (' '.join(args), str(e)))
raise e
def communicate(self, input=None):
@@ -90,6 +91,100 @@ __rootpath__ = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
def path_from_root(*pathelems):
return os.path.join(__rootpath__, *pathelems)
+def add_coloring_to_emit_windows(fn):
+ def _out_handle(self):
+ import ctypes
+ return ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE)
+ out_handle = property(_out_handle)
+
+ def _set_color(self, code):
+ import ctypes
+ # Constants from the Windows API
+ self.STD_OUTPUT_HANDLE = -11
+ hdl = ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE)
+ ctypes.windll.kernel32.SetConsoleTextAttribute(hdl, code)
+
+ setattr(logging.StreamHandler, '_set_color', _set_color)
+
+ def new(*args):
+ FOREGROUND_BLUE = 0x0001 # text color contains blue.
+ FOREGROUND_GREEN = 0x0002 # text color contains green.
+ FOREGROUND_RED = 0x0004 # text color contains red.
+ FOREGROUND_INTENSITY = 0x0008 # text color is intensified.
+ FOREGROUND_WHITE = FOREGROUND_BLUE|FOREGROUND_GREEN |FOREGROUND_RED
+ # winbase.h
+ STD_INPUT_HANDLE = -10
+ STD_OUTPUT_HANDLE = -11
+ STD_ERROR_HANDLE = -12
+
+ # wincon.h
+ FOREGROUND_BLACK = 0x0000
+ FOREGROUND_BLUE = 0x0001
+ FOREGROUND_GREEN = 0x0002
+ FOREGROUND_CYAN = 0x0003
+ FOREGROUND_RED = 0x0004
+ FOREGROUND_MAGENTA = 0x0005
+ FOREGROUND_YELLOW = 0x0006
+ FOREGROUND_GREY = 0x0007
+ FOREGROUND_INTENSITY = 0x0008 # foreground color is intensified.
+
+ BACKGROUND_BLACK = 0x0000
+ BACKGROUND_BLUE = 0x0010
+ BACKGROUND_GREEN = 0x0020
+ BACKGROUND_CYAN = 0x0030
+ BACKGROUND_RED = 0x0040
+ BACKGROUND_MAGENTA = 0x0050
+ BACKGROUND_YELLOW = 0x0060
+ BACKGROUND_GREY = 0x0070
+ BACKGROUND_INTENSITY = 0x0080 # background color is intensified.
+ levelno = args[1].levelno
+ if(levelno >= 50):
+ color = BACKGROUND_YELLOW | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_INTENSITY
+ elif(levelno >= 40):
+ color = FOREGROUND_RED | FOREGROUND_INTENSITY
+ elif(levelno >= 30):
+ color = FOREGROUND_YELLOW | FOREGROUND_INTENSITY
+ elif(levelno >= 20):
+ color = FOREGROUND_GREEN
+ elif(levelno >= 10):
+ color = FOREGROUND_MAGENTA
+ else:
+ color = FOREGROUND_WHITE
+ args[0]._set_color(color)
+ ret = fn(*args)
+ args[0]._set_color( FOREGROUND_WHITE )
+ #print "after"
+ return ret
+ return new
+
+def add_coloring_to_emit_ansi(fn):
+ # add methods we need to the class
+ def new(*args):
+ levelno = args[1].levelno
+ if(levelno >= 50):
+ color = '\x1b[31m' # red
+ elif(levelno >= 40):
+ color = '\x1b[31m' # red
+ elif(levelno >= 30):
+ color = '\x1b[33m' # yellow
+ elif(levelno >= 20):
+ color = '\x1b[32m' # green
+ elif(levelno >= 10):
+ color = '\x1b[35m' # pink
+ else:
+ color = '\x1b[0m' # normal
+ args[1].msg = color + args[1].msg + '\x1b[0m' # normal
+ #print "after"
+ return fn(*args)
+ return new
+
+WINDOWS = sys.platform.startswith('win')
+
+if WINDOWS:
+ logging.StreamHandler.emit = add_coloring_to_emit_windows(logging.StreamHandler.emit)
+else:
+ logging.StreamHandler.emit = add_coloring_to_emit_ansi(logging.StreamHandler.emit)
+
# Emscripten configuration is done through the EM_CONFIG environment variable.
# If the string value contained in this environment variable contains newline
# separated definitions, then these definitions will be used to configure
@@ -122,7 +217,7 @@ else:
except:
pass
config_file = config_file.replace('{{{ NODE }}}', node)
- python = 'python'
+ python = sys.executable or 'python'
try:
python = Popen(['which', 'python2'], stdout=PIPE).communicate()[0].replace('\n', '') or \
Popen(['which', 'python'], stdout=PIPE).communicate()[0].replace('\n', '') or python
@@ -157,7 +252,7 @@ try:
config_text = open(CONFIG_FILE, 'r').read() if CONFIG_FILE else EM_CONFIG
exec(config_text)
except Exception, e:
- print >> sys.stderr, 'Error in evaluating %s (at %s): %s, text: %s' % (EM_CONFIG, CONFIG_FILE, str(e), config_text)
+ logging.error('Error in evaluating %s (at %s): %s, text: %s' % (EM_CONFIG, CONFIG_FILE, str(e), config_text))
sys.exit(1)
# Expectations
@@ -169,14 +264,14 @@ def check_clang_version():
actual = Popen([CLANG, '-v'], stderr=PIPE).communicate()[1].split('\n')[0]
if expected in actual:
return True
- print >> sys.stderr, 'warning: LLVM version appears incorrect (seeing "%s", expected "%s")' % (actual, expected)
+ logging.warning('LLVM version appears incorrect (seeing "%s", expected "%s")' % (actual, expected))
return False
def check_llvm_version():
try:
check_clang_version();
except Exception, e:
- print >> sys.stderr, 'warning: Could not verify LLVM version: %s' % str(e)
+ logging.warning('Could not verify LLVM version: %s' % str(e))
EXPECTED_NODE_VERSION = (0,6,8)
@@ -187,10 +282,10 @@ def check_node_version():
version = tuple(map(int, actual.replace('v', '').split('.')))
if version >= EXPECTED_NODE_VERSION:
return True
- print >> sys.stderr, 'warning: node version appears too old (seeing "%s", expected "%s")' % (actual, 'v' + ('.'.join(map(str, EXPECTED_NODE_VERSION))))
+ logging.warning('node version appears too old (seeing "%s", expected "%s")' % (actual, 'v' + ('.'.join(map(str, EXPECTED_NODE_VERSION)))))
return False
except Exception, e:
- print >> sys.stderr, 'warning: cannot check node version:', e
+ logging.warning('cannot check node version: %s', e)
return False
# Check that basic stuff we need (a JS engine to compile, Node.js, and Clang and LLVM)
@@ -200,7 +295,7 @@ def check_node_version():
# we re-check sanity when the settings are changed)
# We also re-check sanity and clear the cache when the version changes
-EMSCRIPTEN_VERSION = '1.4.1'
+EMSCRIPTEN_VERSION = '1.4.2'
def generate_sanity():
return EMSCRIPTEN_VERSION + '|' + get_llvm_target()
@@ -227,7 +322,7 @@ def check_sanity(force=False):
except Exception, e:
reason = 'unknown: ' + str(e)
if reason:
- print >> sys.stderr, '(Emscripten: %s, clearing cache)' % reason
+ logging.warning('(Emscripten: %s, clearing cache)' % reason)
Cache.erase()
# some warning, not fatal checks - do them even if EM_IGNORE_SANITY is on
@@ -235,32 +330,32 @@ def check_sanity(force=False):
check_node_version()
if os.environ.get('EM_IGNORE_SANITY'):
- print >> sys.stderr, 'EM_IGNORE_SANITY set, ignoring sanity checks'
+ logging.info('EM_IGNORE_SANITY set, ignoring sanity checks')
return
- print >> sys.stderr, '(Emscripten: Running sanity checks)'
+ logging.info('(Emscripten: Running sanity checks)')
if not check_engine(COMPILER_ENGINE):
- print >> sys.stderr, 'FATAL: The JavaScript shell used for compiling (%s) does not seem to work, check the paths in %s' % (COMPILER_ENGINE, EM_CONFIG)
+ logging.critical('The JavaScript shell used for compiling (%s) does not seem to work, check the paths in %s' % (COMPILER_ENGINE, EM_CONFIG))
sys.exit(1)
if NODE_JS != COMPILER_ENGINE:
if not check_engine(NODE_JS):
- print >> sys.stderr, 'FATAL: Node.js (%s) does not seem to work, check the paths in %s' % (NODE_JS, EM_CONFIG)
+ logging.critical('Node.js (%s) does not seem to work, check the paths in %s' % (NODE_JS, EM_CONFIG))
sys.exit(1)
for cmd in [CLANG, LLVM_LINK, LLVM_AR, LLVM_OPT, LLVM_AS, LLVM_DIS, LLVM_NM]:
if not os.path.exists(cmd) and not os.path.exists(cmd + '.exe'): # .exe extension required for Windows
- print >> sys.stderr, 'FATAL: Cannot find %s, check the paths in %s' % (cmd, EM_CONFIG)
+ logging.critical('Cannot find %s, check the paths in %s' % (cmd, EM_CONFIG))
sys.exit(1)
try:
subprocess.call([JAVA, '-version'], stdout=PIPE, stderr=PIPE)
except:
- print >> sys.stderr, 'WARNING: java does not seem to exist, required for closure compiler. -O2 and above will fail. You need to define JAVA in ~/.emscripten'
+ logging.warning('java does not seem to exist, required for closure compiler. -O2 and above will fail. You need to define JAVA in ~/.emscripten')
if not os.path.exists(CLOSURE_COMPILER):
- print >> sys.stderr, 'WARNING: Closure compiler (%s) does not exist, check the paths in %s. -O2 and above will fail' % (CLOSURE_COMPILER, EM_CONFIG)
+ logging.warning('Closure compiler (%s) does not exist, check the paths in %s. -O2 and above will fail' % (CLOSURE_COMPILER, EM_CONFIG))
# Sanity check passed!
@@ -335,7 +430,7 @@ class Configuration:
try:
self.TEMP_DIR = TEMP_DIR
except NameError:
- print >> sys.stderr, 'TEMP_DIR not defined in ~/.emscripten, using /tmp'
+ logging.debug('TEMP_DIR not defined in ~/.emscripten, using /tmp')
self.TEMP_DIR = '/tmp'
self.CANONICAL_TEMP_DIR = os.path.join(self.TEMP_DIR, 'emscripten_temp')
@@ -346,23 +441,22 @@ class Configuration:
if not os.path.exists(self.EMSCRIPTEN_TEMP_DIR):
os.makedirs(self.EMSCRIPTEN_TEMP_DIR)
except Exception, e:
- print >> sys.stderr, e, 'Could not create canonical temp dir. Check definition of TEMP_DIR in ~/.emscripten'
+ logging.debug(e + 'Could not create canonical temp dir. Check definition of TEMP_DIR in ~/.emscripten')
def get_temp_files(self):
return tempfiles.TempFiles(
tmp=self.TEMP_DIR if not self.DEBUG else self.EMSCRIPTEN_TEMP_DIR,
save_debug_files=os.environ.get('EMCC_DEBUG_SAVE'))
- def debug_log(self, msg):
- if self.DEBUG:
- print >> sys.stderr, msg
-
configuration = Configuration(environ=os.environ)
DEBUG = configuration.DEBUG
EMSCRIPTEN_TEMP_DIR = configuration.EMSCRIPTEN_TEMP_DIR
DEBUG_CACHE = configuration.DEBUG_CACHE
CANONICAL_TEMP_DIR = configuration.CANONICAL_TEMP_DIR
+level = logging.DEBUG if os.environ.get('EMCC_DEBUG') else logging.INFO
+logging.basicConfig(level=level, format='%(levelname)-8s %(name)s: %(message)s')
+
if not EMSCRIPTEN_TEMP_DIR:
EMSCRIPTEN_TEMP_DIR = tempfile.mkdtemp(prefix='emscripten_temp_', dir=configuration.TEMP_DIR)
def clean_temp():
@@ -388,13 +482,13 @@ except:
try:
PYTHON
except:
- if DEBUG: print >> sys.stderr, 'PYTHON not defined in ~/.emscripten, using "python"'
+ logging.debug('PYTHON not defined in ~/.emscripten, using "python"')
PYTHON = 'python'
try:
JAVA
except:
- if DEBUG: print >> sys.stderr, 'JAVA not defined in ~/.emscripten, using "java"'
+ logging.debug('JAVA not defined in ~/.emscripten, using "java"')
JAVA = 'java'
# Additional compiler options
@@ -412,7 +506,7 @@ except:
COMPILER_OPTS = COMPILER_OPTS + ['-m32', '-U__i386__', '-U__i386', '-Ui386',
'-U__SSE__', '-U__SSE_MATH__', '-U__SSE2__', '-U__SSE2_MATH__', '-U__MMX__',
'-DEMSCRIPTEN', '-D__EMSCRIPTEN__', '-U__STRICT_ANSI__',
- '-D__IEEE_LITTLE_ENDIAN', '-fno-math-errno',
+ '-D__IEEE_LITTLE_ENDIAN', '-fno-math-errno', '-fno-threadsafe-statics',
'-target', LLVM_TARGET]
USE_EMSDK = not os.environ.get('EMMAKEN_NO_SDK')
@@ -450,8 +544,6 @@ try:
except NameError:
pass
-WINDOWS = sys.platform.startswith('win')
-
# If we have 'env', we should use that to find python, because |python| may fail while |env python| may work
# (For example, if system python is 3.x while we need 2.x, and env gives 2.x if told to do so.)
ENV_PREFIX = []
@@ -585,7 +677,7 @@ class Settings:
# Aside from these, -O3 also runs closure compiler and llvm lto
Settings.DOUBLE_MODE = 0
Settings.PRECISE_I64_MATH = 0
- if noisy: print >> sys.stderr, 'Warning: Applying some potentially unsafe optimizations! (Use -O2 if this fails.)'
+ if noisy: logging.warning('Applying some potentially unsafe optimizations! (Use -O2 if this fails.)')
global Settings
Settings = Settings2
@@ -671,7 +763,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
process = Popen(args, stdout=stdout, stderr=stderr, env=env)
process.communicate()
except Exception, e:
- print >> sys.stderr, 'Error: Exception thrown when invoking Popen in configure with args: "%s"!' % ' '.join(args)
+ logging.error('Exception thrown when invoking Popen in configure with args: "%s"!' % ' '.join(args))
raise
del env['EMMAKEN_JUST_CONFIGURE']
if process.returncode is not 0:
@@ -682,14 +774,14 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
if env is None:
env = Building.get_building_env()
if not args:
- print >> sys.stderr, 'Error: Executable to run not specified.'
+ logging.error('Executable to run not specified.')
sys.exit(1)
#args += ['VERBOSE=1']
try:
process = Popen(args, stdout=stdout, stderr=stderr, env=env)
process.communicate()
except Exception, e:
- print >> sys.stderr, 'Error: Exception thrown when invoking Popen in make with args: "%s"!' % ' '.join(args)
+ logging.error('Exception thrown when invoking Popen in make with args: "%s"!' % ' '.join(args))
raise
if process.returncode is not 0:
raise subprocess.CalledProcessError(cmd=args, returncode=process.returncode)
@@ -796,7 +888,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
contents = filter(lambda x: len(x) > 0, Popen([LLVM_AR, 't', f], stdout=PIPE).communicate()[0].split('\n'))
#print >> sys.stderr, ' considering archive', f, ':', contents
if len(contents) == 0:
- print >> sys.stderr, 'Warning: Archive %s appears to be empty (recommendation: link an .so instead of .a)' % f
+ logging.debug('Archive %s appears to be empty (recommendation: link an .so instead of .a)' % f)
else:
for content in contents: # ar will silently fail if the directory for the file does not exist, so make all the necessary directories
dirname = os.path.dirname(content)
@@ -833,7 +925,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
# Finish link
actual_files = unique_ordered(actual_files) # tolerate people trying to link a.so a.so etc.
- if DEBUG: print >>sys.stderr, 'emcc: llvm-linking:', actual_files
+ logging.debug('emcc: llvm-linking: %s', actual_files)
# check for too-long command line
link_cmd = [LLVM_LINK] + actual_files + ['-o', target]
@@ -841,7 +933,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
# for max command line size before we use a respose file
response_file = None
if WINDOWS and len(' '.join(link_cmd)) > 8192:
- if DEBUG: print >>sys.stderr, 'using response file for llvm-link'
+ logging.debug('using response file for llvm-link')
[response_fd, response_file] = mkstemp(suffix='.response', dir=TEMP_DIR)
link_cmd = [LLVM_LINK, "@" + response_file]
@@ -858,7 +950,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
link_cmd.append(target)
if len(' '.join(link_cmd)) > 8192:
- print >>sys.stderr, 'emcc: warning: link command line is very long, even with response file -- use paths with no spaces'
+ logging.warning('emcc: link command line is very long, even with response file -- use paths with no spaces')
output = Popen(link_cmd, stdout=PIPE).communicate()[0]
@@ -887,7 +979,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
if type(opts) is int:
opts = Building.pick_llvm_opts(opts)
#opts += ['-debug-pass=Arguments']
- if DEBUG: print >> sys.stderr, 'emcc: LLVM opts:', opts
+ logging.debug('emcc: LLVM opts: ' + str(opts))
output = Popen([LLVM_OPT, filename] + opts + ['-o=' + filename + '.opt.bc'], stdout=PIPE).communicate()[0]
assert os.path.exists(filename + '.opt.bc'), 'Failed to run llvm optimizations: ' + output
shutil.move(filename + '.opt.bc', filename)
@@ -928,7 +1020,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
@staticmethod
def llvm_nm(filename, stdout=PIPE, stderr=None):
if filename in Building.nm_cache:
- #if DEBUG: print >> sys.stderr, 'loading nm results for %s from cache' % filename
+ #logging.debug('loading nm results for %s from cache' % filename)
return Building.nm_cache[filename]
# LLVM binary ==> list of symbols
@@ -1148,7 +1240,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
Building._is_ar_cache[filename] = sigcheck
return sigcheck
except Exception, e:
- if DEBUG: print >> sys.stderr, 'shared.Building.is_ar failed to test whether file \'%s\' is a llvm archive file! Failed on exception: %s' % (filename, e)
+ logging.debug('Building.is_ar failed to test whether file \'%s\' is a llvm archive file! Failed on exception: %s' % (filename, e))
return False
@staticmethod
@@ -1175,8 +1267,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
curr = os.getcwd()
try:
ok = False
- print >> sys.stderr, '======================================='
- print >> sys.stderr, 'bootstrapping relooper...'
+ logging.info('=======================================')
+ logging.info('bootstrapping relooper...')
os.chdir(path_from_root('src'))
emcc_debug = os.environ.get('EMCC_DEBUG')
@@ -1201,19 +1293,19 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e
f.close()
# bootstrap phase 1: generate unrelooped relooper, for which we do not need a relooper (so we cannot recurse infinitely in this function)
- print >> sys.stderr, ' bootstrap phase 1'
+ logging.info(' bootstrap phase 1')
make(1)
# bootstrap phase 2: generate relooped relooper, using the unrelooped relooper (we see relooper.js exists so we cannot recurse infinitely in this function)
- print >> sys.stderr, ' bootstrap phase 2'
+ logging.info(' bootstrap phase 2')
make(2)
- print >> sys.stderr, 'bootstrapping relooper succeeded'
- print >> sys.stderr, '======================================='
+ logging.info('bootstrapping relooper succeeded')
+ logging.info('=======================================')
ok = True
finally:
os.chdir(curr)
if emcc_debug: os.environ['EMCC_DEBUG'] = emcc_debug
if not ok:
- print >> sys.stderr, 'bootstrapping relooper failed. You may need to manually create relooper.js by compiling it, see src/relooper/emscripten'
+ logging.error('bootstrapping relooper failed. You may need to manually create relooper.js by compiling it, see src/relooper/emscripten')
1/0
@staticmethod
@@ -1274,7 +1366,7 @@ def execute(cmd, *args, **kw):
except:
if not isinstance(cmd, str):
cmd = ' '.join(cmd)
- print >> sys.stderr, 'Invoking Process failed: <<< ' + cmd + ' >>>'
+ logging.error('Invoking Process failed: <<< ' + cmd + ' >>>')
raise
def suffix(name):
diff --git a/tools/split.py b/tools/split.py
index f9e338aa..f9e338aa 100755..100644
--- a/tools/split.py
+++ b/tools/split.py