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 SUBDIR = "subpass/" NAME = subpass 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):~/${SUBDIR}${NAME}.vert.spv @scp ${NAME}.frag.spv $(SSH_DUT):~/${SUBDIR}${NAME}.frag.spv @scp ${NAME} $(SSH_DUT):~/${SUBDIR} endif run: check ifneq ($(target), local) @echo Running on $(SSH_DUT)... @ssh $(SSH_DUT) 'cd ~/${SUBDIR} && ./${NAME}' @echo Copying artifacts back to local device... @scp $(SSH_DUT):~/${SUBDIR}${NAME}.png . else @echo Running locally... @./$(NAME) endif shaders: @glslc -c ${NAME}.vert @glslc -c ${NAME}.frag clean: check @rm -f ${NAME} ${NAME}.png ${NAME}.vert.spv ${NAME}.frag.spv ifneq ($(target), local) @ssh $(SSH_DUT) 'rm -f ~/${SUBDIR}${NAME} ~/${SUBDIR}${NAME}.png \ ~/${SUBDIR}${NAME}.vert.spv ~/${SUBDIR}${NAME}.frag.spv' endif check: ifeq ($(CXX), INVALID) $(error $$target must be one of [atlas, cheza, local] ) endif