Make addon building work for Cygwin.
authorBrian McKenna <brian@brianmckenna.org>
Fri, 11 Jun 2010 11:25:05 +0000 (21:25 +1000)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 11 Jun 2010 20:25:03 +0000 (13:25 -0700)
tools/wafadmin/Tools/node_addon.py
wscript

index 9462b603accfc92402cc792dcd42a93d17a01f9e..72748c910b24cfe4f524700a2e7f23ccbe06a6ee 100644 (file)
@@ -41,6 +41,9 @@ def detect(conf):
   found = os.path.exists(join(prefix, "bin/node"))
   conf.check_message('node prefix', '', found, prefix)
 
+  ## On Cygwin we need to link to the generated symbol definitions
+  if Options.platform.startswith('cygwin'): conf.env['LIB_NODE'] = 'node'
+
   ## On Mac OSX we need to use mac bundles
   if Options.platform == 'darwin': conf.check_tool('osx')
 
diff --git a/wscript b/wscript
index a939657b400aea89bfc0dfa562cc630f34f26263..9efca2fdfa79177025d3c4b8f13ba3e994484e18 100644 (file)
--- a/wscript
+++ b/wscript
@@ -486,6 +486,12 @@ def build(bld):
     node.add_objects += ' cares '
     node.includes += '  deps/c-ares deps/c-ares/' + bld.env['DEST_OS'] + '-' + bld.env['DEST_CPU']
 
+  if sys.platform.startswith('cygwin'):
+    bld.env.append_value('LINKFLAGS', '-Wl,--export-all-symbols')
+    bld.env.append_value('LINKFLAGS', '-Wl,--out-implib,default/libnode.dll.a')
+    bld.env.append_value('LINKFLAGS', '-Wl,--output-def,default/libnode.def')
+    bld.install_files('${PREFIX}/lib', "build/default/libnode.*")
+
   def subflags(program):
     if os.path.exists(join(cwd, ".git")):
       actual_version=cmd_output("git describe").strip()