1- .PHONY : generate specs jni java proto protoc grpc cli clean lint test test-tools build prove
1+ .PHONY : generate specs jni java clean lint test test-tools build prove
22
33# JDK detection for host tests (jni.h and libjvm.so).
44JDK_HOME ?= $(shell readlink -f $$(which javac ) 2>/dev/null | sed 's|/bin/javac$$||')
@@ -8,12 +8,8 @@ LIBJVM_DIR ?= $(shell find $(JDK_HOME) -name libjvm.so -printf '%h' -quit 2>/dev
88# Android SDK platform JAR for specgen.
99ANDROID_JAR ?= $(ANDROID_HOME ) /platforms/android-36/android.jar
1010
11- # Output directory for gRPC proxy code (proto/, grpc/, cmd/jnicli/).
12- # Set PROXY_DIR to a jni-proxy checkout to generate into that repo.
13- PROXY_DIR ?= .
14-
15- # Run all generators
16- generate : specs jni java proto protoc grpc cli
11+ # Run all generators (proto/grpc/cli generation moved to jni-proxy repo)
12+ generate : specs jni java
1713
1814# Run specgen — generates YAML specs from ref/ .class files
1915specs :
2723java :
2824 go run ./tools/cmd/javagen/ -specs spec/java/ -overlays spec/overlays/java/ -templates templates/java/ -output . -go-module github.com/AndroidGoLab/jni
2925
30- # Run protogen — generates .proto files from Java API specs
31- # Output goes to PROXY_DIR (set to jni-proxy checkout path).
32- proto :
33- go run ./tools/cmd/protogen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR ) /proto/ -go-module github.com/AndroidGoLab/jni-proxy
34- @mkdir -p $(PROXY_DIR ) /proto/handlestore
35- @cp spec/handlestore.proto $(PROXY_DIR ) /proto/handlestore/handlestore.proto
36-
37- # Run protoc — compiles .proto files to Go stubs
38- protoc : proto
39- @command -v protoc > /dev/null 2>&1 || { echo " protoc not found. Install: https://grpc.io/docs/protoc-installation/" ; exit 1; }
40- @for dir in $(PROXY_DIR ) /proto/* /; do \
41- pkg=$$(basename "$$dir") ; \
42- protoc -I. --go_out=. --go_opt=paths=source_relative \
43- --go-grpc_out=. --go-grpc_opt=paths=source_relative \
44- " $$ dir$$ pkg.proto" ; \
45- done
46-
47- # Run grpcgen — generates gRPC server and client wrappers
48- grpc : protoc
49- go run ./tools/cmd/grpcgen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR ) -go-module github.com/AndroidGoLab/jni-proxy
50-
51- # Run cligen — generates jnicli cobra commands from Java API specs
52- cli : grpc
53- go run ./tools/cmd/cligen/ -specs spec/java/ -overlays spec/overlays/java/ -output $(PROXY_DIR ) /cmd/jnicli/ -go-module github.com/AndroidGoLab/jni-proxy
54-
5526# Remove all generated files (identified by "DO NOT EDIT" header), excluding tools/
5627clean :
5728 grep -rl " Code generated by jnigen\. DO NOT EDIT\." --include=" *.go" --exclude-dir=tools . | xargs -r rm -f
0 commit comments