JAVA_HOME=/opt/jdk-foreign/jvm/openjdk-19-internal JAVAC=$(JAVA_HOME)/bin/javac JAVA=$(JAVA_HOME)/bin/java zvk_TEMPLATES := $(wildcard template/*.java) zvk_SOURCES := $(wildcard src/zvk/*.java) zvk_demo_SOURCES := $(wildcard src/zvk/test/*.java) all:: mkdir -p bin all:: bin/demo.built bin/classes/zvk/test/mandelbrot.bin bin/api.built: bin/api.gen $(zvk_SOURCES) $(JAVAC) --add-modules jdk.incubator.foreign -d bin/classes \ $(shell find bin/gen -name '*.java') \ $(zvk_SOURCES) touch $@ bin/api.gen: /usr/share/vulkan/registry/vk.xml generate-vulkan $(zvk_TEMPLATES) PERL_HASH_SEED=0 ./generate-vulkan -d bin/gen touch $@ bin/demo.built: bin/api.built $(zvk_demo_SOURCES) $(JAVAC) --add-modules jdk.incubator.foreign -d bin/classes -cp bin/classes \ $(zvk_demo_SOURCES) touch $@ bin/classes/zvk/test/mandelbrot.bin: mandelbrot.comp mkdir -p $(@D) glslangValidator --target-env vulkan1.0 -V -o $@ $< demo: bin/demo.built bin/classes/zvk/test/mandelbrot.bin $(JAVA) --enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.foreign \ -cp bin/classes zvk.test.TestVulkan clean: rm -rf api bin mandelbrot.pam .PHONY: demo clean all