blob: 8ed2492cd82d0b1e9a7325a77d9f50563d9cd87e [file] [log] [blame]
temporal40ee5512008-07-10 02:12:20 +00001# See README.txt.
2
3.PHONY: all cpp java python clean
4
5all: cpp java python
6
7cpp: add_person_cpp list_people_cpp
Sarah Zakarias969397b2018-10-15 09:30:34 +02008dart: add_person_dart list_people_dart
Tim Swast7e31c4d2015-11-20 15:32:53 -08009go: add_person_go list_people_go
10gotest: add_person_gotest list_people_gotest
temporal40ee5512008-07-10 02:12:20 +000011java: add_person_java list_people_java
12python: add_person_python list_people_python
13
14clean:
15 rm -f add_person_cpp list_people_cpp add_person_java list_people_java add_person_python list_people_python
16 rm -f javac_middleman AddPerson*.class ListPeople*.class com/example/tutorial/*.class
17 rm -f protoc_middleman addressbook.pb.cc addressbook.pb.h addressbook_pb2.py com/example/tutorial/AddressBookProtos.java
18 rm -f *.pyc
Dan Kortschak32af37a2021-04-21 00:55:58 +093019 rm -f protoc_middleman_go tutorial/*.pb.go add_person_go list_people_go go.mod go.sum
Sarah Zakarias969397b2018-10-15 09:30:34 +020020 rm -f protoc_middleman_dart dart_tutorial/*.pb*.dart
21 rmdir dart_tutorial 2>/dev/null || true
Tim Swast7e31c4d2015-11-20 15:32:53 -080022 rmdir tutorial 2>/dev/null || true
temporal40ee5512008-07-10 02:12:20 +000023 rmdir com/example/tutorial 2>/dev/null || true
24 rmdir com/example 2>/dev/null || true
25 rmdir com 2>/dev/null || true
26
27protoc_middleman: addressbook.proto
Feng Xiao8136ccb2017-09-12 12:00:20 -070028 protoc $$PROTO_PATH --cpp_out=. --java_out=. --python_out=. addressbook.proto
temporal40ee5512008-07-10 02:12:20 +000029 @touch protoc_middleman
30
Tim Swast7e31c4d2015-11-20 15:32:53 -080031protoc_middleman_go: addressbook.proto
Feng Xiao8136ccb2017-09-12 12:00:20 -070032 mkdir -p tutorial # make directory for go package
33 protoc $$PROTO_PATH --go_out=tutorial addressbook.proto
Tim Swast7e31c4d2015-11-20 15:32:53 -080034 @touch protoc_middleman_go
35
Sarah Zakarias969397b2018-10-15 09:30:34 +020036protoc_middleman_dart: addressbook.proto
37 mkdir -p dart_tutorial # make directory for the dart package
Sarah Zakariasf075cac2018-10-23 10:36:46 +020038 protoc -I ../src/:. --dart_out=dart_tutorial addressbook.proto ../src/google/protobuf/timestamp.proto
Sarah Zakarias969397b2018-10-15 09:30:34 +020039 pub get
40 @touch protoc_middleman_dart
41
temporal40ee5512008-07-10 02:12:20 +000042add_person_cpp: add_person.cc protoc_middleman
kenton@google.com3c66c2e2009-08-03 21:31:25 +000043 pkg-config --cflags protobuf # fails if protobuf is not installed
Zhao Junwangc562c932019-11-05 16:48:59 +080044 c++ -std=c++11 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
temporal40ee5512008-07-10 02:12:20 +000045
46list_people_cpp: list_people.cc protoc_middleman
kenton@google.com3c66c2e2009-08-03 21:31:25 +000047 pkg-config --cflags protobuf # fails if protobuf is not installed
Zhao Junwangc562c932019-11-05 16:48:59 +080048 c++ -std=c++11 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
temporal40ee5512008-07-10 02:12:20 +000049
Sarah Zakarias969397b2018-10-15 09:30:34 +020050add_person_dart: add_person.dart protoc_middleman_dart
51
52list_people_dart: list_people.dart protoc_middleman_dart
53
Dan Kortschak32af37a2021-04-21 00:55:58 +093054go_mod:
55 go mod init github.com/protocolbuffers/protobuf/examples
56 go mod tidy
57
58add_person_go: add_person.go protoc_middleman_go go_mod
Tim Swast7e31c4d2015-11-20 15:32:53 -080059 go build -o add_person_go add_person.go
60
Dan Kortschak32af37a2021-04-21 00:55:58 +093061add_person_gotest: add_person_test.go add_person_go go_mod
Tim Swast7e31c4d2015-11-20 15:32:53 -080062 go test add_person.go add_person_test.go
63
Dan Kortschak32af37a2021-04-21 00:55:58 +093064list_people_go: list_people.go protoc_middleman_go go_mod
Tim Swast7e31c4d2015-11-20 15:32:53 -080065 go build -o list_people_go list_people.go
66
Dan Kortschak32af37a2021-04-21 00:55:58 +093067list_people_gotest: list_people.go list_people_go go_mod
Tim Swast7e31c4d2015-11-20 15:32:53 -080068 go test list_people.go list_people_test.go
69
temporal40ee5512008-07-10 02:12:20 +000070javac_middleman: AddPerson.java ListPeople.java protoc_middleman
Feng Xiao74bf45f2017-09-08 15:44:09 -070071 javac -cp $$CLASSPATH AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java
temporal40ee5512008-07-10 02:12:20 +000072 @touch javac_middleman
73
74add_person_java: javac_middleman
75 @echo "Writing shortcut script add_person_java..."
76 @echo '#! /bin/sh' > add_person_java
77 @echo 'java -classpath .:$$CLASSPATH AddPerson "$$@"' >> add_person_java
78 @chmod +x add_person_java
79
80list_people_java: javac_middleman
81 @echo "Writing shortcut script list_people_java..."
82 @echo '#! /bin/sh' > list_people_java
83 @echo 'java -classpath .:$$CLASSPATH ListPeople "$$@"' >> list_people_java
84 @chmod +x list_people_java
85
86add_person_python: add_person.py protoc_middleman
87 @echo "Writing shortcut script add_person_python..."
88 @echo '#! /bin/sh' > add_person_python
89 @echo './add_person.py "$$@"' >> add_person_python
90 @chmod +x add_person_python
91
92list_people_python: list_people.py protoc_middleman
93 @echo "Writing shortcut script list_people_python..."
94 @echo '#! /bin/sh' > list_people_python
95 @echo './list_people.py "$$@"' >> list_people_python
96 @chmod +x list_people_python