summaryrefslogtreecommitdiffstats
path: root/dtrace.in
diff options
context:
space:
mode:
Diffstat (limited to 'dtrace.in')
-rwxr-xr-xdtrace.in14
1 files changed, 14 insertions, 0 deletions
diff --git a/dtrace.in b/dtrace.in
index 990d62fe..aea1ef74 100755
--- a/dtrace.in
+++ b/dtrace.in
@@ -137,6 +137,7 @@ i = 1
build_header = False
build_source = False
add_typedefs = False
+use_cpp = False
h_ext = '.h'
filename = ""
while (i < len (sys.argv)):
@@ -146,6 +147,8 @@ while (i < len (sys.argv)):
elif (sys.argv[i] == "-s"):
i += 1
s_filename = sys.argv[i]
+ elif (sys.argv[i] == "-C"):
+ use_cpp = True
elif (sys.argv[i] == "-h"):
build_header = True
elif (sys.argv[i] == "-G"):
@@ -159,6 +162,14 @@ if (build_header == False and build_source == False):
usage()
sys.exit(1)
+if (s_filename != "" and use_cpp):
+ (d,fn) = mkstemp(suffix=".d")
+ retcode = call(["cpp", s_filename, fn])
+ if (retcode != 0):
+ print "\"cpp s_filename\" failed"
+ usage()
+ sys.exit(1)
+ s_filename = fn
if (filename == ""):
if (s_filename != ""):
(filename,ext) = os.path.splitext(s_filename)
@@ -181,3 +192,6 @@ elif (build_source):
f.close()
call(["gcc", "-fPIC", "-I.", "-I@prefix@/include", "-g", "-c", fn, "-o", filename + ".o"], shell=False)
os.remove(fn)
+if (use_cpp):
+ os.remove(s_filename)
+