| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- SUBDIR = geometry
- NAME = geometry
- CFLAGS = -std=c++17 --sysroot="$(SYSROOT)" -Wall
- LDFLAGS = -lvulkan -lpng
-
- TRACE = False
- ifeq ($(target),$(filter $(target), cheza cheza-trace))
- CXX = /usr/bin/armv7a-cros-linux-gnueabihf-clang++
- CC = /usr/bin/armv7a-cros-linux-gnueabihf-clang
- SYSROOT = /build/cheza
- SSH_DUT = cheza-lab
- TARGET = cheza
- ifeq ($(target), cheza-trace)
- TRACE = True
- endif
- else ifeq ($(target), atlas)
- CXX = /usr/bin/x86_64-cros-linux-gnu-clang++
- CC = /usr/bin/x86_64-cros-linux-gnu-clang
- SYSROOT = /build/atlas
- SSH_DUT = atlas
- TARGET = atlas
- else ifeq ($(target), android)
- ANDROID_ROOT = ~/android
- SSH_DUT = android
- TARGET = android
- else ifeq ($(target), android-trace)
- ANDROID_ROOT = ~/android
- SSH_DUT = android
- TRACE = True
- TARGET = android
- else ifeq ($(target), local)
- CXX = clang++
- CC = clang
- TARGET = local
- else
- CXX = INVALID
- CC = INVALID
- TARGET = INVALID
- endif
-
- all: shaders build deploy run
-
- build: check
- @echo Building...
- ifeq ($(TARGET), android)
- @NDK_PROJECT_PATH=. \
- NDK_ROOT=${ANDROID_ROOT}/ndk/ \
- TARGET_NAME=${NAME} \
- COMPILE_ROOT=${ANDROID_ROOT}/compile \
- ${ANDROID_ROOT}/ndk/ndk-build NDK_APPLICATION_MK=./Application.mk
- else
- @$(CXX) $(CFLAGS) -o ${NAME} ${NAME}.cc $(LDFLAGS)
- endif
-
- deploy: check
- @echo Deploying to $(SSH_DUT)...
- ifeq ($(TARGET), android)
- @adb push ${NAME}.vert.spv /data/vulkan/${SUBDIR}/${NAME}.vert.spv
- @adb push ${NAME}.geom.spv /data/vulkan/${SUBDIR}/${NAME}.geom.spv
- @adb push ${NAME}.frag.spv /data/vulkan/${SUBDIR}/${NAME}.frag.spv
- @adb push libs/arm64-v8a/${NAME} /data/vulkan/${SUBDIR}/
- else ifneq ($(TARGET), local)
- @scp ${NAME}.vert.spv $(SSH_DUT):~/${SUBDIR}/${NAME}.vert.spv
- @scp ${NAME}.geom.spv $(SSH_DUT):~/${SUBDIR}/${NAME}.geom.spv
- @scp ${NAME}.frag.spv $(SSH_DUT):~/${SUBDIR}/${NAME}.frag.spv
- @scp ${NAME} $(SSH_DUT):~/${SUBDIR}/
- endif
-
- run: check
- ifeq ($(TARGET), android)
- @echo Running on $(SSH_DUT)...
- ifeq ($(TRACE), True)
- @adb shell "cd /data/vulkan/${SUBDIR} && LD_PRELOAD=/data/vulkan/libwrap.so ./${NAME}"
- @echo Copying artifacts back to local device...
- @adb pull /data/vulkan/${SUBDIR}/${NAME}.png .
- @adb pull /sdcard/trace.rd .
- else
- @adb shell "cd /data/vulkan/${SUBDIR} && ./${NAME}"
- @echo Copying artifacts back to local device...
- @adb pull /data/vulkan/${SUBDIR}/${NAME}.png .
- endif
- else ifneq ($(TARGET), local)
- @echo Running on $(SSH_DUT)...
- ifeq ($(TRACE), True)
- @ssh -tt $(SSH_DUT) "~/trace.sh 'cd ~/${SUBDIR} && TU_DEBUG=nobin ./${NAME}'"
- @echo Copying artifacts back to local device...
- @scp $(SSH_DUT):~/${SUBDIR}/${NAME}.png .
- @scp $(SSH_DUT):/tmp/trace.rd .
- else
- @ssh -tt $(SSH_DUT) 'cd ~/${SUBDIR} && ./${NAME}'
- @echo Copying artifacts back to local device...
- @scp $(SSH_DUT):~/${SUBDIR}/${NAME}.png .
- endif
- else
- @echo Running locally...
- @./$(NAME)
- endif
-
- shaders:
- @glslc -c ${NAME}.vert
- @glslc -c ${NAME}.geom
- @glslc -c ${NAME}.frag
-
- clean: check
- @rm -f ${NAME}
- @rm -f ${NAME}.png
- @rm -f ${NAME}.vert.spv
- @rm -f ${NAME}.geom.spv
- @rm -f ${NAME}.frag.spv
- @rm -f trace.rd
- @rm -rf libs
- @rm -rf obj
- ifneq ($(TARGET), local)
- ifeq ($(TARGET), android)
- @adb shell rm /data/vulkan/${SUBDIR}/*
- else
- @ssh $(SSH_DUT) 'rm -f ~/${SUBDIR}/${NAME} ~/${SUBDIR}/${NAME}.vert.spv \
- ~/${SUBDIR}/${NAME}.geom.spv ~/${SUBDIR}/${NAME}.frag.spv \
- ~/${SUBDIR}/${NAME}.png'
- endif
- endif
-
- check:
- ifeq ($(TARGET), INVALID)
- $(error $$target must be one of [atlas, cheza, cheza-trace, android, android-trace, local])
- endif
|