#!/usr/bin/make -f export INSTALL_PATH = /usr/share/bazel/tools export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) REMOTE_JDK_FLAGS = $(foreach ver,8 11 17 21,$(foreach plat,linux linux_aarch64 linux_ppc64le linux_s390x linux_riscv64 linux_loongarch64 linux_loong64 linux_mips64el linux_arm,$(foreach prefix,remotejdk remote_jdk,--override_repository=rules_java~~toolchains~$(prefix)$(ver)_$(plat)=$(CURDIR)/debian/mock_repos/local_jdk --override_repository=$(prefix)$(ver)_$(plat)=$(CURDIR)/debian/mock_repos/local_jdk))) %: dh $@ override_dh_auto_build: # Compile proto locally mkdir -p src/main/java/com/google/devtools/build/lib/starlarkdocextract protoc --java_out=src/main/java stardoc/proto/stardoc_output.proto echo 'load("@rules_java//java:defs.bzl", "java_library")' > src/main/java/com/google/devtools/build/lib/starlarkdocextract/BUILD echo 'java_library(name = "starlarkdocextract_java_proto", srcs = ["StardocOutputProtos.java"], visibility = ["//visibility:public"], deps = ["@com_google_protobuf//:protobuf_java"])' >> src/main/java/com/google/devtools/build/lib/starlarkdocextract/BUILD # Create symlinks for mock repos mkdir -p debian/mock_repos/stardoc_maven ln -sf /usr/share/java/jcommander.jar debian/mock_repos/stardoc_maven/jcommander.jar ln -sf /usr/share/java/guava.jar debian/mock_repos/stardoc_maven/guava.jar ln -sf /usr/share/java/escapevelocity.jar debian/mock_repos/stardoc_maven/escapevelocity.jar ln -sf /usr/share/java/truth.jar debian/mock_repos/stardoc_maven/truth.jar ln -sf /usr/share/java/junit4.jar debian/mock_repos/stardoc_maven/junit4.jar # Create symlinks for mock protobuf module ln -sf /usr/share/java/protobuf.jar debian/mock_modules/protobuf/protobuf-java.jar # Build the renderer bazel build \ $(REMOTE_JDK_FLAGS) \ --override_repository=rules_java~~toolchains~remote_java_tools=/usr/lib/$(DEB_HOST_MULTIARCH)/bazel/java_tools \ --override_repository=rules_java~~toolchains~remote_java_tools_linux=/usr/lib/$(DEB_HOST_MULTIARCH)/bazel/java_tools \ --override_repository=rules_jvm_external~~maven~stardoc_maven=$(CURDIR)/debian/mock_repos/stardoc_maven \ --override_module=rules_jvm_external=$(CURDIR)/debian/mock_modules/rules_jvm_external \ --override_module=buildozer=$(CURDIR)/debian/mock_modules/buildozer \ --override_module=zlib=$(CURDIR)/debian/mock_modules/zlib \ --override_module=apple_support=$(CURDIR)/debian/mock_modules/apple_support \ --override_module=protobuf=$(CURDIR)/debian/mock_modules/protobuf \ --override_module=rules_pkg=/usr/share/bazel/rules/pkg \ --override_module=rules_shell=/usr/share/bazel/rules/shell \ --java_runtime_version=local_jdk \ --tool_java_runtime_version=local_jdk \ --javabase=@bazel_tools//tools/jdk:local_jdk \ --host_javabase=@bazel_tools//tools/jdk:local_jdk \ --java_header_compilation=false \ --strategy=Javac=local \ //src/main/java/com/google/devtools/build/stardoc/renderer:renderer_deploy.jar # Copy the built jar to debian/ for installation cp bazel-bin/src/main/java/com/google/devtools/build/stardoc/renderer/renderer_deploy.jar renderer_prebuilt.jar chmod 644 renderer_prebuilt.jar override_dh_auto_install: execute_before_dh_auto_clean: rm -rf /tmp/bazel-debian-build rm -rf src/main/java/com/google/devtools/build/lib/starlarkdocextract find debian/mock_repos/stardoc_maven -type l -delete || true rm -f debian/mock_modules/protobuf/protobuf-java.jar