11ROOT =..
2- SBE_TOOL_VERSION =` cat $( ROOT) /version.txt `
2+ SBE_TOOL_VERSION =$( shell cat $(ROOT ) /version.txt)
33SBE_JAR =$(ROOT ) /sbe-all/build/libs/sbe-all-${SBE_TOOL_VERSION}.jar
44
5- SCHEMA_DIR =$(ROOT ) /sbe-samples/src/main/resources
6- EXAMPLES_SCHEMA =$(SCHEMA_DIR ) /example-schema.xml
7- EXAMPLES_OUTPUT =EXAMPLES_OUTPUT
8-
95# JAVA=/usr/lib/jvm/java-8-openjdk-amd64/bin/java
106JAVA =java
117
128TESTDIR =$(ROOT ) /sbe-tool/src/test/golang
139
1410JAVA_FILES ="-jar ${SBE_JAR}"
1511
16- # During development we can speed up a build by selective building and
17- # using this but it needs periodic refresh for agrona version
18- # JAVA_FILES="-cp ${$CP}"
19- # CP=$(ROOT)/sbe-all/build/classes/main:$(ROOT)/sbe-all/build/resources/main:$(ROOT)/sbe-tool/build/libs/sbe-tool-$(SBE_TOOL_VERSION).jar:/home/bill/.gradle/caches/modules-2/files-2.1/org.agrona/Agrona/0.5.5/5a576d17c57c5c85b9a1ce19f030746e214e281b/Agrona-0.5.5.jar
20-
2112# FIXME: Go doesn't like relative paths so us a gnumake extension for now
2213GOPATH =$(realpath $(ROOT ) /gocode)
2314OUTPUTDIR =$(GOPATH ) /src
15+ XMLLOCAL =$(GOPATH ) /resources
2416
2517# Local examples to get started
26- SIMPLE =$(GOPATH ) /resources /simple.xml
27- COMPOSITE =$(GOPATH ) /resources /example-composite.xml
18+ SIMPLE =$(XMLLOCAL ) /simple.xml
19+ COMPOSITE =$(XMLLOCAL ) /example-composite.xml
2820
2921# Existing test cases
3022XMLTESTDIR =$(ROOT ) /sbe-tool/src/test/resources
@@ -35,12 +27,27 @@ COMPOSITE4=$(XMLTESTDIR)/composite-elements-schema-rc4.xml
3527NESTED_GROUP =$(XMLTESTDIR ) /group-with-data-schema.xml
3628FIX_BINARY =$(XMLTESTDIR ) /FixBinary.xml
3729
30+ SCHEMA_DIR =$(ROOT ) /sbe-samples/src/main/resources
31+ EXAMPLES_SCHEMA =$(SCHEMA_DIR ) /example-schema.xml
32+ EXTENSION_SCHEMA =$(SCHEMA_DIR ) /example-extension-schema.xml
33+ EXTENSION2_SCHEMA =$(XMLLOCAL ) /example-extension-2-schema.xml
34+ GROUP_EXTENSION =$(XMLLOCAL ) /group-with-data-extension-schema.xml
35+
3836# Convenience during development
3937# SAVE_FORMAT=mkdir -p fmt && cp *.go fmt &&
4038SAVE_FORMAT =
4139
40+ $(OUTPUTDIR ) /example-schema/example-schema : $(SBE_JAR ) $(OUTPUTDIR ) /baseline/Car.go $(OUTPUTDIR ) /extension/Car.go $(OUTPUTDIR ) /extension2/Car.go $(OUTPUTDIR ) /example-schema/CarExample.go
41+ (export GOPATH=$( GOPATH) && \
42+ cd $(OUTPUTDIR ) /example-schema && \
43+ go build && \
44+ go fmt && \
45+ ./example-schema)
4246
43- GeneratedStubExample : $(STUB_EXAMPLE )
47+ clean :
48+ rm -f $(OUTPUTDIR ) /baseline/Car.go $(OUTPUTDIR ) /extension/Car.go $(OUTPUTDIR ) /extension2/Car.go
49+
50+ $(OUTPUTDIR ) /baseline/Car.go : $(SBE_JAR )
4451 $(JAVA ) \
4552 -Dsbe.output.dir=$(OUTPUTDIR ) \
4653 -Dsbe.generate.ir=" false" \
@@ -50,13 +57,41 @@ GeneratedStubExample: $(STUB_EXAMPLE)
5057 (export GOPATH=$( GOPATH) && \
5158 cd $(OUTPUTDIR)/baseline && \
5259 go build && \
60+ go fmt && \
5361 go test && \
54- go install && \
55- cd $(OUTPUTDIR)/example-schema && \
62+ go install)
63+
64+ $(OUTPUTDIR ) /extension/Car.go : $(SBE_JAR )
65+ $(JAVA ) \
66+ -Dsbe.output.dir=$(OUTPUTDIR ) \
67+ -Dsbe.generate.ir=" false" \
68+ -Dsbe.target.language=" golang" \
69+ -jar ${SBE_JAR} \
70+ $(EXTENSION_SCHEMA ) && \
71+ (export GOPATH=$( GOPATH) && \
72+ cd $(OUTPUTDIR)/extension && \
5673 go build && \
57- ./example-schema )
74+ go install )
5875
59- test : fix-binary nested-group basic-vardata basic-group basic-types simple composite composite-elements
76+ $(OUTPUTDIR ) /extension2/Car.go : $(SBE_JAR )
77+ $(JAVA ) \
78+ -Dsbe.output.dir=$(OUTPUTDIR ) \
79+ -Dsbe.generate.ir=" false" \
80+ -Dsbe.target.language=" golang" \
81+ -jar ${SBE_JAR} \
82+ $(EXTENSION2_SCHEMA ) && \
83+ (export GOPATH=$( GOPATH) && \
84+ cd $(OUTPUTDIR)/extension2 && \
85+ go build && \
86+ go install)
87+
88+ bench : $(SBE_JAR ) $(OUTPUTDIR ) /example-schema/example-schema
89+ (export GOPATH=$( GOPATH) && \
90+ cd $(OUTPUTDIR)/example-schema && \
91+ go test --bench . -cpuprofile=cpu.out && \
92+ go tool pprof -text example-schema cpu.out)
93+
94+ test : fix-binary nested-group nested-group-extension basic-vardata basic-group basic-types simple composite composite-elements
6095
6196fix-binary :
6297 $(JAVA ) \
@@ -68,12 +103,14 @@ fix-binary:
68103 -Duser.variant \
69104 -jar ${SBE_JAR} \
70105 $(FIX_BINARY )
71- (cd $( OUTPUTDIR) /mktdata && \
106+ (export GOPATH=$( GOPATH) && \
107+ cd $(OUTPUTDIR ) /mktdata && \
72108 go build && \
73109 $(SAVE_FORMAT ) \
74110 go fmt && echo && \
75111 go test)
76112
113+ # Note this one installs so it can be used in the extension below
77114nested-group :
78115 $(JAVA ) \
79116 -Dsbe.output.dir=$(OUTPUTDIR ) \
@@ -84,7 +121,26 @@ nested-group:
84121 -Duser.variant \
85122 -jar ${SBE_JAR} \
86123 $(NESTED_GROUP )
87- (cd $( OUTPUTDIR) /group_with_data && \
124+ (export GOPATH=$( GOPATH) && \
125+ cd $(OUTPUTDIR ) /group_with_data && \
126+ go build && \
127+ $(SAVE_FORMAT ) \
128+ go fmt && echo && \
129+ go install && \
130+ go test)
131+
132+ nested-group-extension :
133+ $(JAVA ) \
134+ -Dsbe.output.dir=$(OUTPUTDIR ) \
135+ -Dsbe.target.language=golang \
136+ -Dfile.encoding=US-ASCII \
137+ -Duser.country=US \
138+ -Duser.langimuage=en \
139+ -Duser.variant \
140+ -jar ${SBE_JAR} \
141+ $(GROUP_EXTENSION )
142+ (export GOPATH=$( GOPATH) && \
143+ cd $(OUTPUTDIR ) /group_with_data_extension && \
88144 go build && \
89145 $(SAVE_FORMAT ) \
90146 go fmt && echo && \
@@ -100,7 +156,8 @@ composite-elements:
100156 -Duser.variant \
101157 -jar ${SBE_JAR} \
102158 $(COMPOSITE4 )
103- (cd $( OUTPUTDIR) /composite_elements && \
159+ (export GOPATH=$( GOPATH) && \
160+ cd $(OUTPUTDIR ) /composite_elements && \
104161 go build && \
105162 $(SAVE_FORMAT ) \
106163 go fmt && echo && \
@@ -116,7 +173,8 @@ basic-vardata:
116173 -Duser.variant \
117174 -jar ${SBE_JAR} \
118175 $(BASIC_VARDATA )
119- (cd $( OUTPUTDIR) /vardata/' SBE tests' && \
176+ (export GOPATH=$( GOPATH) /vardata && \
177+ cd $(OUTPUTDIR ) /vardata/' SBE tests' && \
120178 go build && \
121179 $(SAVE_FORMAT ) \
122180 go fmt && echo && \
@@ -132,7 +190,8 @@ basic-group:
132190 -Duser.variant \
133191 -jar ${SBE_JAR} \
134192 $(BASIC_GROUP )
135- (cd $( OUTPUTDIR) /group/' SBE tests' && \
193+ (export GOPATH=$( GOPATH) /group && \
194+ cd $(OUTPUTDIR ) /group/' SBE tests' && \
136195 go build && \
137196 $(SAVE_FORMAT ) \
138197 go fmt && echo && \
@@ -148,7 +207,8 @@ basic-types:
148207 -Duser.variant \
149208 -jar ${SBE_JAR} \
150209 $(BASIC_TYPES )
151- (cd $( OUTPUTDIR) /basic/' SBE tests' && \
210+ (export GOPATH=$( GOPATH) /basic && \
211+ cd $(OUTPUTDIR ) /basic/' SBE tests' && \
152212 go build && \
153213 $(SAVE_FORMAT ) \
154214 go fmt && echo && \
@@ -165,8 +225,8 @@ composite:
165225 -Duser.variant \
166226 -jar ${SBE_JAR} \
167227 $(COMPOSITE )
168- (cd $( OUTPUTDIR ) /composite && \
169- go build && \
228+ (export GOPATH= $( GOPATH ) && \
229+ cd $( OUTPUTDIR ) /composite && \
170230 $(SAVE_FORMAT ) \
171231 go fmt && echo && \
172232 go test)
@@ -181,7 +241,8 @@ simple:
181241 -Duser.variant \
182242 -jar ${SBE_JAR} \
183243 $(SIMPLE )
184- (cd $( OUTPUTDIR) /simple && \
244+ (export GOPATH=$( GOPATH) && \
245+ cd $(OUTPUTDIR ) /simple && \
185246 go build && \
186247 $(SAVE_FORMAT ) \
187248 go fmt && echo && \
0 commit comments