ifeq ($(target), cheza) CXX = /usr/bin/armv7a-cros-linux-gnueabihf-clang++ CC = /usr/bin/armv7a-cros-linux-gnueabihf-clang SYSROOT = /build/cheza SSH_DUT = cheza 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 else ifeq ($(target), local) CXX = clang++ CC = clang else CXX = INVALID CC = INVALID endif NAME = occlusion CFLAGS = -std=c++17 --sysroot="$(SYSROOT)" -Wall LDFLAGS = -lvulkan -lpng all: build deploy run build: check @echo Building... @$(CXX) $(CFLAGS) -o ${NAME} ${NAME}.cc $(LDFLAGS) deploy: check ifneq ($(target), local) @echo Deploying to $(SSH_DUT)... @scp ${NAME}.vert.spv $(SSH_DUT):~/${NAME}.vert.spv @scp ${NAME}.frag.spv $(SSH_DUT):~/${NAME}.frag.spv @scp ${NAME} $(SSH_DUT):~/ endif run: check ifneq ($(target), local) @echo Running on $(SSH_DUT)... @ssh $(SSH_DUT) '~/${NAME}' @echo Copying artifacts back to local device... @scp $(SSH_DUT):~/${NAME}.png . else @echo Running locally... @./$(NAME) endif shaders: @glslc -c ${NAME}.vert @glslc -c ${NAME}.frag clean: check @rm -f ${NAME} @rm -f ${NAME}.png @rm -f ${NAME}.vert.spv @rm -f ${NAME}.frag.spv ifneq ($(target), local) @ssh $(SSH_DUT) 'rm -f ~/${NAME} ~/${NAME}.png' endif check: ifeq ($(CXX), INVALID) $(error $$target must be one of [atlas, cheza, local] ) endif