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 else ifeq ($(target), local) CXX = clang++ CC = clang else CXX = INVALID CC = INVALID endif SUBDIR = "geometry-gl/" NAME = geometry CFLAGS = -std=c++17 --sysroot="$(SYSROOT)" -Wall LDFLAGS = -lEGL -lGLESv2 -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 $(SSH_DUT):~/${SUBDIR}${NAME}.vert @scp ${NAME}.geom $(SSH_DUT):~/${SUBDIR}${NAME}.geom @scp ${NAME}.frag $(SSH_DUT):~/${SUBDIR}${NAME}.frag @scp blit.vert $(SSH_DUT):~/${SUBDIR}blit.vert @scp blit.frag $(SSH_DUT):~/${SUBDIR}blit.frag @scp ${NAME} $(SSH_DUT):~/${SUBDIR} endif run: check ifneq ($(TARGET), local) @echo Running on $(SSH_DUT)... ifeq ($(TRACE), True) @ssh -tt $(SSH_DUT) "~/trace.sh 'cd ~/${SUBDIR} && ./${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 clean: check @rm -f ${NAME} ${NAME}.png ifneq ($(target), local) @ssh $(SSH_DUT) 'rm -f ~/${SUBDIR}${NAME} ~/${SUBDIR}${NAME}.png \ ~/${SUBDIR}${NAME}.vert ~/${SUBDIR}${NAME}.frag ~/${SUBDIR}${NAME}.geom' endif check: ifeq ($(CXX), INVALID) $(error $$target must be one of [atlas, cheza, cheza-trace, local] ) endif