Skip to content

Commit a3a89bb

Browse files
xaionaro@dx.centerxaionaro@dx.center
authored andcommitted
refactor: delete old generators, update Makefile for spec-first pipeline
Deleted 9 old generators replaced by the spec-first pipeline: - genaidl → aidl2spec + spec2go - genbindercli → spec2cli - gen_e2e_smoke → spec2go (smoke test generation) - genservicemap → java2spec - genaccessors → java2spec + spec2go - genparcelspec → java2spec - genparcelgo → spec2go - genconstants → java2spec - genreadme → spec2readme New Makefile targets: - make specs: extract AIDL + Java → YAML specs - make generate: specs → Go code - make cli: specs → bindercli commands - make readme: specs → README.md - make specs-versions: include multi-API-level AOSP tables
1 parent 87ffe44 commit a3a89bb

11 files changed

Lines changed: 38 additions & 4214 deletions

File tree

Makefile

Lines changed: 38 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,54 @@
1-
.PHONY: generate genversions test e2e e2e-bindercli vet build build-examples lint clean readme smoke \
2-
bindercli genbindercli genservicemap genaccessors genparcelspec genparcelgo genconstants list-commands check-generated release
1+
.PHONY: specs generate cli readme test e2e e2e-bindercli vet build lint clean \
2+
bindercli list-commands check-generated release
33

44
# Generated top-level directories.
55
GENERATED_DIRS := android com fuzztest libgui_test_server parcelables src
66

77
# All non-3rdparty Go packages.
88
GO_PACKAGES = $(shell go list -e ./... | grep -v /3rdparty/)
99

10-
# Regenerate version-aware transaction code tables from AOSP tags.
11-
genversions:
12-
go run ./tools/cmd/genaidl -3rdparty tools/pkg/3rdparty -output . -codes-output binder/versionaware/codes_gen.go -versions
10+
# --- Spec-first pipeline ---
1311

14-
# Generate all Go code from AOSP AIDL definitions.
15-
generate:
16-
go run ./tools/cmd/genaidl -3rdparty tools/pkg/3rdparty -output . -smoke-tests
12+
# Extract specs from AIDL sources.
13+
specs:
14+
go run ./tools/cmd/aidl2spec -3rdparty tools/pkg/3rdparty -output specs/
15+
go run ./tools/cmd/java2spec -3rdparty tools/pkg/3rdparty -config tools/cmd/java2spec/constants.yaml -output specs/
1716

18-
# Run unit tests (compiler + runtime packages).
17+
# Extract specs with multi-version AOSP transaction code tables.
18+
specs-versions:
19+
go run ./tools/cmd/aidl2spec -3rdparty tools/pkg/3rdparty -output specs/ -versions
20+
go run ./tools/cmd/java2spec -3rdparty tools/pkg/3rdparty -config tools/cmd/java2spec/constants.yaml -output specs/
21+
22+
# Generate all Go code from specs.
23+
generate: specs
24+
go run ./tools/cmd/spec2go -specs specs/ -output . -smoke-tests -codes-output binder/versionaware/codes_gen.go
25+
26+
# Generate bindercli commands from specs.
27+
cli: specs
28+
go run ./tools/cmd/spec2cli -specs specs/ -output cmd/bindercli/
29+
30+
# Generate README from specs.
31+
readme: specs
32+
go run ./tools/cmd/spec2readme -specs specs/ -output README.md
33+
34+
# --- Testing ---
35+
36+
# Run unit tests.
1937
test:
2038
go test -v -race $(GO_PACKAGES)
2139

2240
# Run E2E tests on a connected device via adb.
23-
# Cross-compiles the test binary, pushes it, and runs on the device.
24-
# bindercli tests are skipped (they require an emulator); on-device tests
25-
# open /dev/binder directly.
2641
e2e:
2742
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go test -tags e2e -c -o build/e2e_test ./tests/e2e/
2843
adb push build/e2e_test /data/local/tmp/
2944
adb shell /data/local/tmp/e2e_test -test.v -test.timeout 300s
3045

31-
# Run bindercli E2E tests via emulator (starts emulator if needed).
46+
# Run bindercli E2E tests via emulator.
3247
e2e-bindercli:
3348
go test -tags e2e ./tests/e2e/... -run TestBindercli -v -timeout 300s
3449

50+
# --- Build ---
51+
3552
# Run go vet on all packages.
3653
vet:
3754
go vet $(GO_PACKAGES)
@@ -43,62 +60,21 @@ build:
4360
@for d in cmd/*/; do echo "Building $$d..."; go build -o "build/$$(basename $$d)" "./$$d"; done
4461
@for d in examples/*/; do echo "Building $$d..."; go build -o "build/$$(basename $$d)" "./$$d"; done
4562

46-
# Build bindercli release binaries for arm64 and amd64.
63+
# Build bindercli release binaries.
4764
release:
4865
@mkdir -p build
4966
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o build/bindercli-linux-arm64 ./cmd/bindercli/
5067
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/bindercli-linux-amd64 ./cmd/bindercli/
5168

52-
# Run linter.
53-
lint:
54-
golangci-lint run ./...
55-
56-
# Regenerate README package table.
57-
readme:
58-
go run ./tools/cmd/genreadme
59-
60-
# Regenerate E2E smoke tests.
61-
smoke:
62-
go run ./tools/cmd/gen_e2e_smoke .
63-
64-
# Generate service name constants and JSON service map from AOSP Java sources.
65-
genservicemap:
66-
go run ./tools/cmd/genservicemap \
67-
-frameworks-base tools/pkg/3rdparty/frameworks-base \
68-
-go-constants servicemanager/service_names_gen.go \
69-
-output /tmp/servicemap.json
70-
71-
# Generate typed service accessor functions from the service map.
72-
genaccessors:
73-
go run ./tools/cmd/genaccessors \
74-
-service-map /tmp/servicemap.json \
75-
-output .
76-
77-
# Extract Java Parcelable wire formats into YAML specs.
78-
genparcelspec:
79-
go run ./tools/cmd/genparcelspec \
80-
-frameworks-base tools/pkg/3rdparty/frameworks-base \
81-
-output parcelspecs/
82-
83-
# Generate Go marshal/unmarshal from Parcelable specs.
84-
genparcelgo:
85-
go run ./tools/cmd/genparcelgo \
86-
-specs parcelspecs/ \
87-
-output .
88-
89-
# Generate typed Go constants from Java source files.
90-
genconstants:
91-
go run ./tools/cmd/genconstants
92-
93-
# Regenerate bindercli registry and command dispatch code.
94-
genbindercli:
95-
go run ./tools/cmd/genbindercli
96-
9769
# Build the bindercli tool.
9870
bindercli:
9971
@mkdir -p build
10072
go build -o build/bindercli ./cmd/bindercli
10173

74+
# Run linter.
75+
lint:
76+
golangci-lint run ./...
77+
10278
# List all available bindercli subcommands.
10379
list-commands:
10480
go run ./cmd/bindercli --help 2>&1 | grep '^ ' | awk '{print $$1}'
@@ -107,17 +83,12 @@ list-commands:
10783
check-generated:
10884
make clean
10985
make generate
110-
make genparcelspec
111-
make genparcelgo
112-
make genservicemap
113-
make genaccessors
114-
make genconstants
115-
make smoke
86+
make cli
11687
make readme
11788
git diff --exit-code
11889

119-
# Remove all generated code.
90+
# Remove all generated code and specs.
12091
clean:
121-
rm -rf $(GENERATED_DIRS) parcelspecs
92+
rm -rf $(GENERATED_DIRS) specs
12293
find . -maxdepth 1 -name '*.go' -exec grep -l 'Code generated' {} \; | xargs -r rm -f
12394
rm -f servicemanager/service_names_gen.go

0 commit comments

Comments
 (0)