.PHONY: requirements common gw api integration stream PROTOC := python -m grpc_tools.protoc PROTOC_ARGS := -I=proto --python_out=src --grpc_python_out=src --pyi_out=src PACKAGE_NAME := import \"chirpstack-api/ all: requirements pre-build common gw api integration stream requirements: pip install grpcio-tools # See: https://github.com/protocolbuffers/protobuf/issues/7061 pre-build: rm -rf proto mkdir -p proto/chirpstack-api cp -r ../proto/* proto/chirpstack-api/ mv proto/chirpstack-api/google proto/google sed -i 's@^import "common/@$(PACKAGE_NAME)common/@g' `find proto/chirpstack-api -type f -name "*.proto*"` sed -i 's@^import "gw/@$(PACKAGE_NAME)gw/@g' `find proto/chirpstack-api -type f -name "*.proto*"` sed -i 's@^import "api/@$(PACKAGE_NAME)api/@g' `find proto/chirpstack-api -type f -name "*.proto*"` mkdir -p src common: $(PROTOC) $(PROTOC_ARGS) chirpstack-api/common/common.proto gw: $(PROTOC) $(PROTOC_ARGS) chirpstack-api/gw/gw.proto api: $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/internal.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/user.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/tenant.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/application.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device_profile.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device_profile_template.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/device.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/gateway.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/multicast_group.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/api/relay.proto integration: $(PROTOC) ${PROTOC_ARGS} chirpstack-api/integration/integration.proto stream: $(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/meta.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/frame.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/api_request.proto $(PROTOC) ${PROTOC_ARGS} chirpstack-api/stream/backend_interfaces.proto