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 = -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):~/${NAME}.vert
	@scp ${NAME}.frag $(SSH_DUT):~/${NAME}.frag
	@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

clean: check
	@rm -f ${NAME} ${NAME}.png ${NAME}.vert ${NAME}.frag
ifneq ($(target), local)
	@ssh $(SSH_DUT) 'rm -f ~/${NAME} ~/${NAME}.png ~/${NAME}.vert ~/${NAME}.frag'
endif

check:
ifeq ($(CXX), INVALID)
	$(error $$target must be one of [atlas, cheza, local] )
endif
