From 55dc14eff1b9d3dfad43136774b0d2f3dbe61fd2 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Sun, 19 Jun 2016 05:01:41 +0200 Subject: Add makefile --- .gitignore | 1 - Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 Makefile diff --git a/.gitignore b/.gitignore index 60901a5..dec295f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ CMakeCache.txt CMakeFiles CMakeScripts -Makefile cmake_install.cmake install_manifest.txt CTestTestfile.cmake diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2b2668f --- /dev/null +++ b/Makefile @@ -0,0 +1,46 @@ +obj-m := nvtrace.o +kmm-objs := nvtrace.o + +KERNELDIR ?= /lib/modules/$(shell uname -r)/build +INSTALLDIR ?= /lib/modules/$(shell uname -r)/kernel/extra +PWD := $(shell pwd) + +EXTRA_CFLAGS += -I$(M)/.. + +default: + @KERNEL_GCC_VERSION=`cat /proc/version | head -n1 | cut -d " " -f 7` ;\ + GCC_VERSION=`$(CC) --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\ + if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \ + echo "Kernel is compiled with gcc $$KERNEL_GCC_VERSION, but you are now using $$GCC_VERSION" ;\ + GCC_MAJOR=`echo $$KERNEL_GCC_VERSION | cut -d "." -f 1-2` ;\ + newCC=gcc-$$GCC_MAJOR ;\ + CC=`which $$newCC 2>/dev/null` ;\ + if [ $$? -ne 0 ]; then \ + echo "No compiler of $$GCC_MAJOR series is installed" ;\ + exit 1 ;\ + fi ;\ + GCC_VERSION=`$$CC --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\ + if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION -a -z "$$RELAXED_GCC_CHECK" ]; then \ + echo "The $$GCC_VERSION of $$GCC_MAJOR series is installed" ;\ + exit 1 ;\ + fi ;\ + echo "Setting CC to $$newCC" ;\ + else \ + CC=$(CC) ;\ + fi ;\ + $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) CC=$$CC modules + +test: test.c + /usr/local/cuda/bin/nvcc -o test test.c -lOpenCL + +install: + @mkdir -p $(INSTALLDIR) + @echo "INSTALL $(INSTALLDIR)/nvtrace.ko" + @install -m 755 nvtrace.ko $(INSTALLDIR) + +uninstall: + @echo "UNINSTALL $(INSTALLDIR)/nvtrace.ko" + @rm -f $(INSTALLDIR)/nvtrace.ko + +clean: + rm -rf *.o *.ko *.mod.c .*.o.cmd .*.o.tmp .*.ko.cmd .*.o *.symvers modules.order .tmp_versions test -- cgit v1.2.3