build_linux.sh (914B)
1 #!/bin/sh 2 3 PROTOCOLS="/usr/share/wayland-protocols" 4 5 WARNINGS="-Wall -Wextra -Wpedantic -Werror" 6 7 CFLAGS="-std=c11 -O0 -g" 8 CPPFLAGS="-DSTARFIELD_DEBUG -Iapi" 9 LDFLAGS="-fuse-ld=lld -Wl,--as-needed" 10 11 LINUX_LIBS="$(pkg-config --cflags --libs alsa wayland-client vulkan)" 12 13 set -ex 14 15 mkdir -p bin dep 16 17 clang -shared -o bin/starfield.so starfield/starfield.c \ 18 $WARNINGS $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib 19 20 glslc -mfmt=c shaders/shader.vert -o dep/shader.vert.spv.inc 21 glslc -mfmt=c shaders/shader.frag -o dep/shader.frag.spv.inc 22 23 wayland-scanner client-header $PROTOCOLS/stable/xdg-shell/xdg-shell.xml dep/xdg-shell.h 24 wayland-scanner private-code $PROTOCOLS/stable/xdg-shell/xdg-shell.xml dep/xdg-shell.c 25 26 # TODO: can we build a static binary that supports loading starfield.so? 27 clang -o bin/linux_starfield platform/linux_starfield.c dep/xdg-shell.c -Idep \ 28 $WARNINGS $CFLAGS $CPPFLAGS $LDFLAGS -lc -ldl $LINUX_LIBS