Skip to content
/ gem5 Public
forked from gem5/gem5

Commit

Permalink
misc: Use a Makefile to ensure util/packet_pb2.py is up to date.
Browse files Browse the repository at this point in the history
Rather than just ensuring that packet_pb2.py is available in general, use a
Makefile to ensure that it's also up to date in case packet.proto has
changed.

Also, remove a check that ensures that the protobuf module is available,
since python will complain if it needs it and can't find it.

Finally, remove a comment which talks about manually regenerating the
packet_pb2.py module, something that hasn't been necessary for a while, even
with the old version of this code.

Change-Id: I40c5c1f577e6d7ad1af9a209309a1eb92f073317
Reviewed-on: https://gem5-review.googlesource.com/5005
Reviewed-by: Andreas Sandberg <[email protected]>
Maintainer: Andreas Sandberg <[email protected]>
  • Loading branch information
gabemblack committed Oct 5, 2017
1 parent edc8cff commit 9de3d94
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 35 deletions.
4 changes: 4 additions & 0 deletions util/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
PROTO_PATH=../src/proto

packet_pb2.py: $(PROTO_PATH)/packet.proto
protoc --python_out=. --proto_path=$(PROTO_PATH) $<
42 changes: 7 additions & 35 deletions util/decode_packet_trace.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,45 +38,17 @@
# Authors: Andreas Hansson

# This script is used to dump protobuf packet traces to ASCII
# format. It assumes that protoc has been executed and already
# generated the Python package for the packet messages. This can
# be done manually using:
# protoc --python_out=. --proto_path=src/proto src/proto/packet.proto
#
# The ASCII trace format uses one line per request on the format cmd,
# addr, size, tick,flags. For example:
# r,128,64,4000,0
# w,232123,64,500000,0
# format.

import os
import protolib
import subprocess
import sys

# Import the packet proto definitions. If they are not found, attempt
# 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_dir,
'--proto_path=' + proto_dir, proto_file])
if not error:
print "Generated packet proto definitions"

try:
import google.protobuf
except:
print "Please install Python protobuf module"
exit(-1)

import packet_pb2
else:
print "Failed to import packet proto definitions"
exit(-1)
util_dir = os.path.dirname(os.path.realpath(__file__))
# Make sure the proto definitions are up to date.
subprocess.check_call(['make', '--quiet', '-C', util_dir, 'packet_pb2.py'])
import packet_pb2

def main():
if len(sys.argv) != 3:
Expand Down

0 comments on commit 9de3d94

Please sign in to comment.