1
+ PROTO_PATH =${GOPATH}/src
2
+ PROJECT_PATH =${PROTO_PATH}/github.com/kom0055/go-hadoop
3
+
4
+ COMMON_DIR =${PROJECT_PATH}/proto/common
5
+
6
+
7
+ HDFS_DIR =${PROJECT_PATH}/proto/hdfs
8
+ HDFS_CLIENT_DIR =${HDFS_DIR}/client
9
+ HDFS_RBF_DIR =${HDFS_DIR}/rbf
10
+ HDFS_DATANODE_DIR =${HDFS_DIR}/datanode
11
+ HDFS_NAMENODE_DIR =${HDFS_DIR}/namenode
12
+ HDFS_QJOURNAL_DIR =${HDFS_DIR}/qjournal
13
+
14
+
15
+ YARN_DIR =${PROJECT_PATH}/proto/yarn
16
+ YARN_API_DIR =${YARN_DIR}/api
17
+ YARN_API_SERVER_DIR =${YARN_DIR}/api/server
18
+ YARN_COMMON_DIR =${YARN_DIR}/common
19
+ YARN_AM_DIR =${YARN_DIR}/am
20
+ YARN_SERVER_DIR =${YARN_DIR}/server
21
+ YARN_SERVER_COMMON_DIR =${YARN_DIR}/server/common
22
+ YARN_SERVER_APP_DIR =${YARN_DIR}/server/app
23
+ YARN_SERVER_NM_DIR =${YARN_DIR}/server/nm
24
+ YARN_SERVER_RM_DIR =${YARN_DIR}/server/rm
25
+
26
+
27
+
28
+ MR_DIR =${PROJECT_PATH}/proto/mr
29
+ MR_CLIENT_DIR =${MR_DIR}/client
30
+ MR_CLIENT_COMMON_DIR =${MR_CLIENT_DIR}/common
31
+ MR_CLIENT_SHUFFLE_DIR =${MR_CLIENT_DIR}/shuffle
32
+
33
+ .PHONY : common
34
+ common :
35
+ for file in $( COMMON_DIR) /* .proto; do \
36
+ protoc $${file} --go_out=${COMMON_DIR} --go_opt=paths=source_relative \
37
+ --proto_path=${COMMON_DIR} :${PROTO_PATH}; \
38
+ done
39
+
40
+
41
+ .PHONY : hdfs
42
+ hdfs : common
43
+ for file in $( HDFS_CLIENT_DIR) /* .proto; do \
44
+ protoc $${file} --go_out=${HDFS_CLIENT_DIR} --go_opt=paths=source_relative \
45
+ --proto_path=${HDFS_CLIENT_DIR} :${PROTO_PATH} \
46
+ -I${COMMON_DIR} -I${HDFS_CLIENT_DIR}; \
47
+ done
48
+
49
+ for file in $(HDFS_RBF_DIR)/*.proto; do \
50
+ protoc $${file} --go_out=${HDFS_RBF_DIR} --go_opt=paths=source_relative \
51
+ --proto_path=${HDFS_RBF_DIR} :${PROTO_PATH} \
52
+ -I${COMMON_DIR} -I${HDFS_CLIENT_DIR} -I${HDFS_RBF_DIR}; \
53
+ done
54
+
55
+ for file in $(HDFS_DIR)/*.proto; do \
56
+ protoc $${file} --go_out=${HDFS_DIR} --go_opt=paths=source_relative \
57
+ --proto_path=${HDFS_DIR} :${PROTO_PATH} \
58
+ -I${HDFS_DIR} -I${COMMON_DIR} -I${HDFS_CLIENT_DIR} -I${HDFS_RBF_DIR}; \
59
+ done
60
+
61
+ for file in $(HDFS_DATANODE_DIR)/*.proto; do \
62
+ protoc $${file} --go_out=${HDFS_DATANODE_DIR} --go_opt=paths=source_relative \
63
+ --proto_path=${HDFS_DATANODE_DIR} :${PROTO_PATH} \
64
+ -I${HDFS_DIR} -I${COMMON_DIR} -I${HDFS_CLIENT_DIR} -I${HDFS_RBF_DIR}; \
65
+ done
66
+
67
+ for file in $(HDFS_NAMENODE_DIR)/*.proto; do \
68
+ protoc $${file} --go_out=${HDFS_NAMENODE_DIR} --go_opt=paths=source_relative \
69
+ --proto_path=${HDFS_NAMENODE_DIR} :${PROTO_PATH} \
70
+ -I${HDFS_DIR} -I${COMMON_DIR} -I${HDFS_CLIENT_DIR} -I${HDFS_RBF_DIR}; \
71
+ done
72
+
73
+ for file in $(HDFS_QJOURNAL_DIR)/*.proto; do \
74
+ protoc $${file} --go_out=${HDFS_QJOURNAL_DIR} --go_opt=paths=source_relative \
75
+ --proto_path=${HDFS_QJOURNAL_DIR} :${PROTO_PATH} \
76
+ -I${HDFS_DIR} -I${COMMON_DIR} -I${HDFS_CLIENT_DIR} -I${HDFS_RBF_DIR}; \
77
+ done
78
+
79
+
80
+ .PHONY : yarn
81
+ yarn : common
82
+ for file in $( YARN_API_DIR) /* .proto; do \
83
+ protoc $${file} --go_out=${YARN_API_DIR} --go_opt=paths=source_relative \
84
+ --proto_path=${YARN_API_DIR} :${PROTO_PATH} \
85
+ -I${YARN_API_DIR} -I${COMMON_DIR}; \
86
+ done
87
+
88
+ for file in $(YARN_API_SERVER_DIR)/*.proto; do \
89
+ protoc $${file} --go_out=${YARN_API_SERVER_DIR} --go_opt=paths=source_relative \
90
+ --proto_path=${YARN_API_SERVER_DIR} :${PROTO_PATH} \
91
+ -I${YARN_API_SERVER_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
92
+ done
93
+
94
+ for file in $(YARN_COMMON_DIR)/*.proto; do \
95
+ protoc $${file} --go_out=${YARN_COMMON_DIR} --go_opt=paths=source_relative \
96
+ --proto_path=${YARN_COMMON_DIR} :${PROTO_PATH} \
97
+ -I${YARN_COMMON_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
98
+ done
99
+
100
+ for file in $(YARN_AM_DIR)/*.proto; do \
101
+ protoc $${file} --go_out=${YARN_AM_DIR} --go_opt=paths=source_relative \
102
+ --proto_path=${YARN_AM_DIR} :${PROTO_PATH} \
103
+ -I${YARN_COMMON_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
104
+ done
105
+
106
+ for file in $(YARN_SERVER_COMMON_DIR)/*.proto; do \
107
+ protoc $${file} --go_out=${YARN_SERVER_COMMON_DIR} --go_opt=paths=source_relative \
108
+ --proto_path=${YARN_SERVER_COMMON_DIR} :${PROTO_PATH} \
109
+ -I${YARN_COMMON_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
110
+ done
111
+
112
+ for file in $(YARN_SERVER_APP_DIR)/*.proto; do \
113
+ protoc $${file} --go_out=${YARN_SERVER_APP_DIR} --go_opt=paths=source_relative \
114
+ --proto_path=${YARN_SERVER_APP_DIR} :${PROTO_PATH} \
115
+ -I${YARN_SERVER_COMMON_DIR} -I${YARN_COMMON_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
116
+ done
117
+
118
+ for file in $(YARN_SERVER_NM_DIR)/*.proto; do \
119
+ protoc $${file} --go_out=${YARN_SERVER_NM_DIR} --go_opt=paths=source_relative \
120
+ --proto_path=${YARN_SERVER_NM_DIR} :${PROTO_PATH} \
121
+ -I${YARN_SERVER_COMMON_DIR} -I${YARN_COMMON_DIR} -I${YARN_API_DIR} -I${COMMON_DIR}; \
122
+ done
123
+
124
+ for file in $(YARN_SERVER_RM_DIR)/*.proto; do \
125
+ protoc $${file} --go_out=${YARN_SERVER_RM_DIR} --go_opt=paths=source_relative \
126
+ --proto_path=${YARN_SERVER_RM_DIR} :${PROTO_PATH} \
127
+ -I${YARN_SERVER_COMMON_DIR} -I${COMMON_DIR} -I${YARN_COMMON_DIR} -I${YARN_API_DIR}; \
128
+ done
129
+
130
+
131
+
132
+
133
+
134
+ .PHONY : mr
135
+ mr : yarn
136
+ for file in $( MR_CLIENT_COMMON_DIR) /* .proto; do \
137
+ protoc $${file} --go_out=${MR_CLIENT_COMMON_DIR} --go_opt=paths=source_relative \
138
+ --proto_path=${MR_CLIENT_COMMON_DIR} :${PROTO_PATH} \
139
+ -I${MR_CLIENT_COMMON_DIR} -I${COMMON_DIR} -I${YARN_API_DIR}; \
140
+ done
141
+
142
+ for file in $(MR_CLIENT_SHUFFLE_DIR)/*.proto; do \
143
+ protoc $${file} --go_out=${MR_CLIENT_SHUFFLE_DIR} --go_opt=paths=source_relative \
144
+ --proto_path=${MR_CLIENT_SHUFFLE_DIR} :${PROTO_PATH} \
145
+ -I${MR_CLIENT_SHUFFLE_DIR} -I${COMMON_DIR} -I${YARN_API_DIR}; \
146
+ done
147
+
148
+
149
+
150
+
151
+ .PHONY : all
152
+ all : common hdfs yarn mr
0 commit comments