From fe7440ce19c2ee406b2895766ff191479bea1014 Mon Sep 17 00:00:00 2001 From: Dave Pacheco Date: Thu, 28 Mar 2013 11:36:00 -0700 Subject: [PATCH] build: allow building with dtrace on osx --- configure | 2 +- node.gyp | 34 +++++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/configure b/configure index a5a18e3..09f3c40 100755 --- a/configure +++ b/configure @@ -468,7 +468,7 @@ def configure_node(o): # By default, enable DTrace on SunOS systems. Don't allow it on other # systems, since it won't work. (The MacOS build process is different than # SunOS, and we haven't implemented it.) - if sys.platform.startswith('sunos'): + if sys.platform.startswith('sunos') or sys.platform.startswith('darwin'): o['variables']['node_use_dtrace'] = b(not options.without_dtrace) elif sys.platform.startswith('linux'): o['variables']['node_use_dtrace'] = 'false' diff --git a/node.gyp b/node.gyp index b07a1e0..fc7e215 100644 --- a/node.gyp +++ b/node.gyp @@ -160,17 +160,33 @@ 'dependencies': [ 'node_dtrace_header' ], 'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ], # - # node_dtrace_provider.cc and node_dtrace_ustack.cc do not actually - # exist. They're here to trick GYP into linking the corresponding - # object files into the final "node" executable. These files are - # generated by "dtrace -G" using custom actions below, and the - # GYP-generated Makefiles will properly build them when needed. + # DTrace is supported on solaris, mac, and bsd. There are three + # object files associated with DTrace support, but they're not all + # used all the time: + # + # node_dtrace.o all configurations + # node_dtrace_ustack.o not supported on OS X + # node_dtrace_provider.o All except OS X. "dtrace -G" is not + # used on OS X. + # + # Note that node_dtrace_provider.cc and node_dtrace_ustack.cc do not + # actually exist. They're listed here to trick GYP into linking the + # corresponding object files into the final "node" executable. These + # object files are generated by "dtrace -G" using custom actions + # below, and the GYP-generated Makefiles will properly build them when + # needed. # 'sources': [ 'src/node_dtrace.cc', - 'src/node_dtrace_provider.cc', - 'src/node_dtrace_ustack.cc', ], + 'conditions': [ [ + 'OS!="mac"', { + 'sources': [ + 'src/node_dtrace_ustack.cc', + 'src/node_dtrace_provider.cc', + ] + } + ] ] } ], [ 'node_use_systemtap=="true"', { 'defines': [ 'HAVE_SYSTEMTAP=1', 'STAP_SDT_V1=1' ], @@ -397,7 +413,7 @@ 'target_name': 'node_dtrace_provider', 'type': 'none', 'conditions': [ - [ 'node_use_dtrace=="true"', { + [ 'node_use_dtrace=="true" and OS!="mac"', { 'actions': [ { 'action_name': 'node_dtrace_provider_o', @@ -419,7 +435,7 @@ 'target_name': 'node_dtrace_ustack', 'type': 'none', 'conditions': [ - [ 'node_use_dtrace=="true"', { + [ 'node_use_dtrace=="true" and OS!="mac"', { 'actions': [ { 'action_name': 'node_dtrace_ustack_constants', -- 2.7.4