2 JAVA_HOME=/opt/jdk-foreign/jvm/openjdk-19-internal
3 JAVAC=$(JAVA_HOME)/bin/javac
4 JAVA=$(JAVA_HOME)/bin/java
6 zvk_TEMPLATES := $(wildcard template/*.java)
7 zvk_SOURCES := $(wildcard src/zvk/*.java)
8 zvk_demo_SOURCES := $(wildcard src/zvk/test/*.java)
13 all:: bin/demo.built bin/classes/zvk/test/mandelbrot.bin
15 bin/api.built: bin/api.gen $(zvk_SOURCES)
16 $(JAVAC) --add-modules jdk.incubator.foreign -d bin/classes \
17 $(shell find bin/gen -name '*.java') \
21 bin/api.gen: /usr/share/vulkan/registry/vk.xml generate-vulkan $(zvk_TEMPLATES)
22 PERL_HASH_SEED=0 ./generate-vulkan -d bin/gen
25 bin/demo.built: bin/api.built $(zvk_demo_SOURCES)
26 $(JAVAC) --add-modules jdk.incubator.foreign -d bin/classes -cp bin/classes \
30 bin/classes/zvk/test/mandelbrot.bin: mandelbrot.comp
32 glslangValidator --target-env vulkan1.0 -V -o $@ $<
34 demo: bin/demo.built bin/classes/zvk/test/mandelbrot.bin
35 $(JAVA) --enable-native-access=ALL-UNNAMED --add-modules jdk.incubator.foreign \
36 -cp bin/classes zvk.test.TestVulkan
39 rm -rf api bin mandelbrot.pam
41 .PHONY: demo clean all