summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2012-10-23 10:27:19 -0400
committerBen Noordhuis <info@bnoordhuis.nl>2012-11-06 00:18:35 +0100
commit73ff653a8db11cbe0142df4e764434f125e45e6b (patch)
treeda87420c5c0b1c795440c6b8e39bb380146042d6
parentbfd78b69fc7d0ac97106658e4eb6d475fa08e247 (diff)
downloadnode-73ff653a8db11cbe0142df4e764434f125e45e6b.tar.gz
build: allow linking against system c-ares
-rwxr-xr-xconfigure35
-rw-r--r--doc/api/process.markdown1
-rw-r--r--node.gyp6
3 files changed, 41 insertions, 1 deletions
diff --git a/configure b/configure
index 8562033a2..3417003e5 100755
--- a/configure
+++ b/configure
@@ -151,6 +151,26 @@ parser.add_option("--shared-http-parser-libname",
dest="shared_http_parser_libname",
help="Alternative lib name to link to (default: 'http_parser')")
+parser.add_option("--shared-cares",
+ action="store_true",
+ dest="shared_cares",
+ help="Link to a shared cares DLL instead of static linking")
+
+parser.add_option("--shared-cares-includes",
+ action="store",
+ dest="shared_cares_includes",
+ help="Directory containing cares header files")
+
+parser.add_option("--shared-cares-libpath",
+ action="store",
+ dest="shared_cares_libpath",
+ help="A directory to search for the shared cares DLL")
+
+parser.add_option("--shared-cares-libname",
+ action="store",
+ dest="shared_cares_libname",
+ help="Alternative lib name to link to (default: 'cares')")
+
parser.add_option("--with-dtrace",
action="store_true",
dest="with_dtrace",
@@ -456,6 +476,20 @@ def configure_http_parser(o):
o['include_dirs'] += [options.shared_http_parser_includes]
+def configure_cares(o):
+ o['variables']['node_shared_cares'] = b(options.shared_cares)
+
+ # assume shared cares if one of these is set?
+ if options.shared_cares_libpath:
+ o['libraries'] += ['-L%s' % options.shared_cares_libpath]
+ if options.shared_cares_libname:
+ o['libraries'] += ['-l%s' % options.shared_cares_libname]
+ elif options.shared_cares:
+ o['libraries'] += ['-lcares']
+ if options.shared_cares_includes:
+ o['include_dirs'] += [options.shared_cares_includes]
+
+
def configure_v8(o):
o['variables']['v8_use_snapshot'] = b(not options.without_snapshot)
o['variables']['node_shared_v8'] = b(options.shared_v8)
@@ -510,6 +544,7 @@ output = {
configure_node(output)
configure_libz(output)
configure_http_parser(output)
+configure_cares(output)
configure_v8(output)
configure_openssl(output)
diff --git a/doc/api/process.markdown b/doc/api/process.markdown
index 41b163a15..1593eec87 100644
--- a/doc/api/process.markdown
+++ b/doc/api/process.markdown
@@ -299,6 +299,7 @@ An example of the possible output looks like:
{ host_arch: 'x64',
node_install_npm: 'true',
node_prefix: '',
+ node_shared_cares: 'false',
node_shared_http_parser: 'false',
node_shared_v8: 'false',
node_shared_zlib: 'false',
diff --git a/node.gyp b/node.gyp
index 60b580833..2e72932b1 100644
--- a/node.gyp
+++ b/node.gyp
@@ -9,6 +9,7 @@
'node_shared_v8%': 'false',
'node_shared_zlib%': 'false',
'node_shared_http_parser%': 'false',
+ 'node_shared_cares%': 'false',
'node_use_openssl%': 'true',
'node_use_systemtap%': 'false',
'node_shared_openssl%': 'false',
@@ -59,7 +60,6 @@
'type': 'executable',
'dependencies': [
- 'deps/cares/cares.gyp:cares',
'deps/uv/uv.gyp:libuv',
'node_js2c#host',
],
@@ -205,6 +205,10 @@
'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
}],
+ [ 'node_shared_cares=="false"', {
+ 'dependencies': [ 'deps/cares/cares.gyp:cares' ],
+ }],
+
[ 'OS=="win"', {
'sources': [
'src/res/node.rc',