# =====================================================================
# Software Makefile - Maze Chase Game
#
# Builds (lab3 pattern):
#   game.ko    - kernel module that exposes /dev/game
#   game_app   - user-space binary that runs the game loop
# =====================================================================

ifneq (${KERNELRELEASE},)

# We are being included from the kernel build system.
        obj-m := game.o

else

# Standalone make: ARM cross-compile by default for DE1-SoC.
        KERNEL_SOURCE := /usr/src/linux-headers-$(shell uname -r)
        PWD := $(shell pwd)

default: module game_app

module:
	${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

game_app: game_app.c usbkeyboard.c usbkeyboard.h game.h maze_data.h
	$(CC) -O2 -Wall -Wextra -o $@ game_app.c usbkeyboard.c \
		-lusb-1.0 -lpthread

clean:
	${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
	${RM} game_app

TARFILES = Makefile README game.h game.c game_app.c \
	   usbkeyboard.h usbkeyboard.c maze_data.h
TARFILE  = final_project-sw.tar.gz
.PHONY: tar
tar: $(TARFILE)

$(TARFILE): $(TARFILES)
	tar zcfC $(TARFILE) .. $(TARFILES:%=final_project-sw/%)

endif
