summaryrefslogtreecommitdiffstats
path: root/dtrace.in
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-12-08 03:23:20 +0100
committerMark Wielaard <mjw@redhat.com>2009-12-08 17:27:08 +0100
commit2d971c6b8835c7e38ce78dd554827f5f96bc7c04 (patch)
tree72d06f7a1cc47b70dd149162ff3037712b3d0937 /dtrace.in
parentb2ea60606801aa9bf243f22318ac4bd8a25094fe (diff)
downloadsystemtap-steved-2d971c6b8835c7e38ce78dd554827f5f96bc7c04.tar.gz
systemtap-steved-2d971c6b8835c7e38ce78dd554827f5f96bc7c04.tar.xz
systemtap-steved-2d971c6b8835c7e38ce78dd554827f5f96bc7c04.zip
Add dtrace -I support.
dtrace -I is used to pass through include paths to cpp when run. Thanks to David Malcolm <dmalcolm@redhat.com> for python coding and testing. * dtrace.in: Add -I support. * testsuite/systemtap.base/dtrace.exp: Add testcases for -C -I and -G -I.
Diffstat (limited to 'dtrace.in')
-rwxr-xr-xdtrace.in15
1 files changed, 11 insertions, 4 deletions
diff --git a/dtrace.in b/dtrace.in
index 74d70e77..10bd19e3 100755
--- a/dtrace.in
+++ b/dtrace.in
@@ -120,13 +120,15 @@ class provider:
def usage ():
- print "Usage " + sys.argv[0] + " [--help] [-h | -G] -s File.d [-o File]"
+ print "Usage " + sys.argv[0] + " [--help] [-h | -G] [-C [-I<Path>]] -s File.d [-o <File>]"
def help ():
usage()
print "Where -h builds a systemtap header file from the .d file"
+ print " -C when used with -h, also run cpp preprocessor"
print " -o specifies an explicit output file name,"
- print " The default for -G is file.o and -h is file.h"
+ print " the default for -G is file.o and -h is file.h"
+ print " -I when running cpp pass through this -I include Path"
print " -s specifies the name of the .d input file"
print " -G builds a stub file.o from file.d,"
print " which is required by some packages that use dtrace."
@@ -159,6 +161,8 @@ keep_temps = False
use_cpp = False
h_ext = '.h'
filename = ""
+s_filename = ""
+includes = []
while (i < len (sys.argv)):
if (sys.argv[i] == "-o"):
i += 1
@@ -170,6 +174,8 @@ while (i < len (sys.argv)):
use_cpp = True
elif (sys.argv[i] == "-h"):
build_header = True
+ elif (sys.argv[i].startswith("-I")):
+ includes.append(sys.argv[i])
elif (sys.argv[i] == "-G"):
build_source = True
elif (sys.argv[i] == "-k"):
@@ -185,9 +191,10 @@ if (build_header == False and build_source == False):
if (s_filename != "" and use_cpp):
(d,fn) = mkstemp(suffix=".d")
- retcode = call(["cpp", s_filename, fn])
+ args = ['cpp'] + includes + [s_filename, fn]
+ retcode = call(args)
if (retcode != 0):
- print "\"cpp s_filename\" failed"
+ print "\"cpp includes s_filename\" failed"
usage()
sys.exit(1)
s_filename = fn