Add work-around for configure --debug with Python 2.4.3
authorRyan Dahl <ry@tinyclouds.org>
Fri, 16 Oct 2009 20:53:44 +0000 (22:53 +0200)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 16 Oct 2009 20:53:44 +0000 (22:53 +0200)
This is the error that was encountered:

  : make
  Waf: Entering directory `/dcs/06/csugds/node/ry-node-cfe5876/build'
  Traceback (most recent call last):
    File "tools/waf-light", line 148, in ?
      Scripting.prepare(t, cwd, VERSION, wafdir)
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Scripting.py", line 142, in prepare
      prepare_impl(t, cwd, ver, wafdir)
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Scripting.py", line 132, in prepare_impl
      main()
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Scripting.py", line 185, in main
      fun(ctx)
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Scripting.py", line 382, in build
      return build_impl(bld)
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Scripting.py", line 395, in build_impl
      bld.add_subdirs([os.path.split(Utils.g_module.root_path)[0]])
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Build.py", line 924, in add_subdirs
      self.recurse(dirs, 'build')
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/Utils.py", line 599, in recurse
      f(self)
    File "<string>", line 312, in build
    File "/dcs/06/csugds/node/ry-node-cfe5876/tools/wafadmin/TaskGen.py", line 297, in clone
      setattr(newobj, x, copy.copy(getattr(self, x)))
    File "/usr/lib/python2.4/copy.py", line 108, in copy
      return _reconstruct(x, rv, 0)
    File "/usr/lib/python2.4/copy.py", line 336, in _reconstruct
      y = callable(*args)
    File "/usr/lib/python2.4/copy_reg.py", line 92, in __newobj__
      return cls.__new__(cls, *args)
  TypeError: function() takes at least 2 arguments (0 given)
  make: *** [all] Error 1

wscript

diff --git a/wscript b/wscript
index 27dcb45..0659990 100644 (file)
--- a/wscript
+++ b/wscript
@@ -304,12 +304,18 @@ def build(bld):
       src/node.js
     """,
     target="src/node_natives.h",
-    rule=javascript_in_c,
     before="cxx"
   )
   native_cc.install_path = None
+
+  # Add the rule /after/ cloning the debug
+  # This is a work around for an error had in python 2.4.3 (I'll paste the
+  # error that was had into the git commit meessage. git-blame to find out
+  # where.)
   if bld.env["USE_DEBUG"]:
-    native_cc.clone("debug")
+    native_cc_debug = native_cc.clone("debug")
+    native_cc_debug.rule = javascript_in_c
+  native_cc.rule = javascript_in_c
 
   ### node lib
   node = bld.new_task_gen("cxx", "program")