diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | gyp/all.gyp | 68 | ||||
-rw-r--r-- | src/macros.py | 11 | ||||
-rw-r--r-- | src/node.cc | 6 | ||||
-rw-r--r-- | src/node_version.h | 3 |
5 files changed, 75 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore index 4d94a0443f..cd220fcfd5 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,6 @@ gyp/all.Makefile gyp/js2c.host.mk gyp/node.target.mk gyp/node_js2c.host.mk +gyp/node_js2c.target.mk out/ Makefile diff --git a/gyp/all.gyp b/gyp/all.gyp index f08afca630..2a15f7c2d6 100644 --- a/gyp/all.gyp +++ b/gyp/all.gyp @@ -13,6 +13,8 @@ 'variables': { 'v8_use_snapshot': 'true', 'target_arch': 'x64', + 'node_use_dtrace': 'false', + 'node_use_openssl': 'true' }, 'targets': [ @@ -24,9 +26,14 @@ '../deps/http_parser/http_parser.gyp:http_parser', '../deps/v8/tools/gyp/v8.gyp:v8', '../deps/uv/build/all.gyp:uv', - 'node_js2c#host' + 'node_js2c#host', ], - 'include_dirs': [ 'src' ], + + 'include_dirs': [ + '../src', + '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h + ], + 'sources': [ '../src/cares_wrap.cc', '../src/handle_wrap.cc', @@ -48,12 +55,28 @@ '../src/stream_wrap.cc', '../src/tcp_wrap.cc', '../src/timer_wrap.cc', + '../src/process_wrap.cc', + ], + + 'defines': [ + 'ARCH="<(target_arch)"', + 'PLATFORM="<(OS)"', + '_LARGEFILE_SOURCE', + '_FILE_OFFSET_BITS=64', ], 'conditions': [ + [ 'node_use_openssl=="true"', { + 'libraries': [ '-lssl', '-lcrypto' ], + 'defines': [ 'HAVE_OPENSSL=1' ] + }, { + 'defines': [ 'HAVE_OPENSSL=0' ] + }], + [ 'OS=="win"', { 'defines': [ - 'PTW32_STATIC_LIB' + 'PTW32_STATIC_LIB', + 'FD_SETSIZE=1024' ], 'libraries': [ '-lws2_32', @@ -65,6 +88,7 @@ '../src/node_stdio_win32.cc' ] },{ # POSIX + 'defines': [ '__POSIX__' ], 'sources': [ '../src/node_cares.cc', '../src/node_net.cc', @@ -77,10 +101,8 @@ ] }], [ 'OS=="mac"', { - 'sources': [ - '../src/platform_darwin.cc', - '../src/platform_darwin_proctitle.cc' - ] + 'sources': [ '../src/platform_darwin.cc' ], + 'libraries': [ '-framework Carbon' ], }] ] }, @@ -135,22 +157,42 @@ '../lib/vm.js', ], }, + 'actions': [ { 'action_name': 'node_js2c', + 'inputs': [ '../tools/js2c.py', '<@(library_files)', ], + 'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_natives.h', ], - 'action': [ - 'python', - '../tools/js2c.py', - '<@(_outputs)', - '<@(library_files)' - ], + + # FIXME can the following conditions be shorted by just setting + # macros.py into some variable which then gets included in the + # action? + + 'conditions': [ + [ 'node_use_dtrace=="true"', { + 'action': [ + 'python', + '../tools/js2c.py', + '<@(_outputs)', + '<@(library_files)' + ], + }, { # No Dtrace + 'action': [ + 'python', + '../tools/js2c.py', + '<@(_outputs)', + '<@(library_files)', + '../src/macros.py' + ], + }] + ] }, ], }, # end node_js2c diff --git a/src/macros.py b/src/macros.py new file mode 100644 index 0000000000..0e03a1652d --- /dev/null +++ b/src/macros.py @@ -0,0 +1,11 @@ +# This file is used by tools/js2c.py to preprocess out the DTRACE symbols in +# builds that don't support DTrace. This is not used in builds that support +# DTrace. +macro DTRACE_HTTP_CLIENT_REQUEST(x) = ; +macro DTRACE_HTTP_CLIENT_RESPONSE(x) = ; +macro DTRACE_HTTP_SERVER_REQUEST(x) = ; +macro DTRACE_HTTP_SERVER_RESPONSE(x) = ; +macro DTRACE_NET_SERVER_CONNECTION(x) = ; +macro DTRACE_NET_STREAM_END(x) = ; +macro DTRACE_NET_SOCKET_READ(x) = ; +macro DTRACE_NET_SOCKET_WRITE(x) = ; diff --git a/src/node.cc b/src/node.cc index 413baf1934..384d39aabd 100644 --- a/src/node.cc +++ b/src/node.cc @@ -2068,8 +2068,10 @@ Handle<Object> SetupProcessObject(int argc, char *argv[]) { // process.version process->Set(String::NewSymbol("version"), String::New(NODE_VERSION)); +#ifdef NODE_PREFIX // process.installPrefix process->Set(String::NewSymbol("installPrefix"), String::New(NODE_PREFIX)); +#endif // process.moduleLoadList module_load_list = Persistent<Array>::New(Array::New()); @@ -2317,8 +2319,12 @@ static void ParseArgs(int argc, char **argv) { printf("%s\n", NODE_VERSION); exit(0); } else if (strcmp(arg, "--vars") == 0) { +#ifdef NODE_PREFIX printf("NODE_PREFIX: %s\n", NODE_PREFIX); +#endif +#ifdef NODE_CFLAGS printf("NODE_CFLAGS: %s\n", NODE_CFLAGS); +#endif exit(0); } else if (strstr(arg, "--max-stack-size=") == arg) { const char *p = 0; diff --git a/src/node_version.h b/src/node_version.h index 5196c1c6d5..bb2e901575 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -19,8 +19,9 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. - +#if 0 /* commenting out to build via gyp faster */ #include "node_config.h" +#endif #ifndef NODE_VERSION_H #define NODE_VERSION_H |