Makefile 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # See README.txt.
  2. .PHONY: all cpp java python clean
  3. all: cpp java python
  4. cpp: add_person_cpp list_people_cpp
  5. go: add_person_go list_people_go
  6. gotest: add_person_gotest list_people_gotest
  7. java: add_person_java list_people_java
  8. python: add_person_python list_people_python
  9. clean:
  10. rm -f add_person_cpp list_people_cpp add_person_java list_people_java add_person_python list_people_python
  11. rm -f javac_middleman AddPerson*.class ListPeople*.class com/example/tutorial/*.class
  12. rm -f protoc_middleman addressbook.pb.cc addressbook.pb.h addressbook_pb2.py com/example/tutorial/AddressBookProtos.java
  13. rm -f *.pyc
  14. rm -f protoc_middleman_go tutorial/*.pb.go add_person_go list_people_go
  15. rmdir tutorial 2>/dev/null || true
  16. rmdir com/example/tutorial 2>/dev/null || true
  17. rmdir com/example 2>/dev/null || true
  18. rmdir com 2>/dev/null || true
  19. protoc_middleman: addressbook.proto
  20. protoc --cpp_out=. --java_out=. --python_out=. addressbook.proto
  21. @touch protoc_middleman
  22. protoc_middleman_go: addressbook.proto
  23. mkdir tutorial # make directory for go package
  24. protoc --go_out=tutorial addressbook.proto
  25. @touch protoc_middleman_go
  26. add_person_cpp: add_person.cc protoc_middleman
  27. pkg-config --cflags protobuf # fails if protobuf is not installed
  28. c++ add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
  29. list_people_cpp: list_people.cc protoc_middleman
  30. pkg-config --cflags protobuf # fails if protobuf is not installed
  31. c++ list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
  32. add_person_go: add_person.go protoc_middleman_go
  33. go build -o add_person_go add_person.go
  34. add_person_gotest: add_person_test.go add_person_go
  35. go test add_person.go add_person_test.go
  36. list_people_go: list_people.go protoc_middleman_go
  37. go build -o list_people_go list_people.go
  38. list_people_gotest: list_people.go list_people_go
  39. go test list_people.go list_people_test.go
  40. javac_middleman: AddPerson.java ListPeople.java protoc_middleman
  41. javac AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java
  42. @touch javac_middleman
  43. add_person_java: javac_middleman
  44. @echo "Writing shortcut script add_person_java..."
  45. @echo '#! /bin/sh' > add_person_java
  46. @echo 'java -classpath .:$$CLASSPATH AddPerson "$$@"' >> add_person_java
  47. @chmod +x add_person_java
  48. list_people_java: javac_middleman
  49. @echo "Writing shortcut script list_people_java..."
  50. @echo '#! /bin/sh' > list_people_java
  51. @echo 'java -classpath .:$$CLASSPATH ListPeople "$$@"' >> list_people_java
  52. @chmod +x list_people_java
  53. add_person_python: add_person.py protoc_middleman
  54. @echo "Writing shortcut script add_person_python..."
  55. @echo '#! /bin/sh' > add_person_python
  56. @echo './add_person.py "$$@"' >> add_person_python
  57. @chmod +x add_person_python
  58. list_people_python: list_people.py protoc_middleman
  59. @echo "Writing shortcut script list_people_python..."
  60. @echo '#! /bin/sh' > list_people_python
  61. @echo './list_people.py "$$@"' >> list_people_python
  62. @chmod +x list_people_python