misc: When building packet_pb2.py, don't assume a particular CWD.
Allow the script to be run from anywhere, and compute the paths relative to
where the script is. The script is assumed to be in util.
Change-Id: I8500ef959f2ff8119540c956f2b27789c96de60e
Reviewed-on: https://gem5-review.googlesource.com/5004
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
diff --git a/util/decode_packet_trace.py b/util/decode_packet_trace.py
index c21a150..dab43c3 100755
--- a/util/decode_packet_trace.py
+++ b/util/decode_packet_trace.py
@@ -52,15 +52,18 @@
import sys
# Import the packet proto definitions. If they are not found, attempt
-# to generate them automatically. This assumes that the script is
-# executed from the gem5 root.
+# to generate them automatically.
try:
import packet_pb2
except:
print "Did not find packet proto definitions, attempting to generate"
+ import os
+ util_dir = os.path.dirname(os.path.realpath(__file__))
+ proto_dir = os.path.join(os.path.dirname(util_dir), 'src', 'proto')
+ proto_file = os.path.join(proto_dir, 'packet.proto')
from subprocess import call
- error = call(['protoc', '--python_out=util', '--proto_path=src/proto',
- 'src/proto/packet.proto'])
+ error = call(['protoc', '--python_out=' + util_dir,
+ '--proto_path=' + proto_dir, proto_file])
if not error:
print "Generated packet proto definitions"