Makefile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. obj-m := pciDriver.o
  2. pciDriver-objs := base.o int.o umem.o kmem.o sysfs.o ioctl.o
  3. KERNELDIR ?= /lib/modules/$(shell uname -r)/build
  4. INSTALLDIR ?= /lib/modules/$(shell uname -r)/extra
  5. PWD := $(shell pwd)
  6. EXTRA_CFLAGS += -I$(M)/..
  7. default:
  8. @KERNEL_GCC_VERSION=`cat /proc/version | head -n1 | cut -d " " -f 7` ;\
  9. GCC_VERSION=`$(CC) --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\
  10. if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \
  11. echo "Kernel is compiled with gcc $$KERNEL_GCC_VERSION, but you are now using $$GCC_VERSION" ;\
  12. GCC_MAJOR=`echo $$KERNEL_GCC_VERSION | cut -d "." -f 1-2` ;\
  13. newCC=gcc-$$GCC_MAJOR ;\
  14. CC=`which $$newCC 2>/dev/null` ;\
  15. if [ $$? -ne 0 ]; then \
  16. echo "No compiler of $$GCC_MAJOR series is installed" ;\
  17. exit 1 ;\
  18. fi ;\
  19. GCC_VERSION=`$$CC --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | head -n 1` ;\
  20. if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \
  21. echo "The $$GCC_VERSION of $$GCC_MAJOR series is installed" ;\
  22. exit 1 ;\
  23. fi ;\
  24. echo "Setting CC to $$newCC" ;\
  25. else \
  26. CC=$(CC) ;\
  27. fi ;\
  28. $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) CC=$$CC modules
  29. install:
  30. @mkdir -p $(INSTALLDIR)
  31. @echo "INSTALL $(INSTALLDIR)/pciDriver.ko"
  32. @install -m 755 pciDriver.ko $(INSTALLDIR)
  33. @echo "INSTALL /usr/include/pciDriver/driver/pciDriver.h"
  34. @mkdir -p /usr/include/pciDriver/driver
  35. @install -m 644 pciDriver.h /usr/include/pciDriver/driver
  36. uninstall:
  37. @echo "UNINSTALL $(INSTALLDIR)/pciDriver.ko"
  38. @rm -f $(INSTALLDIR)/pciDriver.ko
  39. @echo "UNINSTALL /usr/include/pciDriver/driver/pciDriver.h"
  40. @rm -rf /usr/include/pciDriver/driver
  41. clean:
  42. rm -rf *.o *.ko *.mod.c .*.o.cmd .*.o.tmp .*.ko.cmd .*.o *.symvers modules.order .tmp_versions