ifneq (${KERNELRELEASE},)

# KERNELRELEASE defined: we are being compiled as part of the Kernel
        obj-m := mnist_accel.o

else

# We are being compiled as a module: use the Kernel build system

	KERNEL_SOURCE := /usr/src/linux-headers-$(shell uname -r)
        PWD := $(shell pwd)

default: module mnist_run mnist_pick

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

mnist_run: mnist_run.c mnist_accel.h
	${CC} -O2 -Wall -o mnist_run mnist_run.c

mnist_pick: mnist_pick.c mnist_accel.h
	${CC} -O2 -Wall -o mnist_pick mnist_pick.c

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

TARFILES = Makefile README mnist_accel.h mnist_accel.c mnist_run.c mnist_pick.c
TARFILE = project-sw.tar.gz
.PHONY : tar
tar : $(TARFILE)

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

endif
