Makefile 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. obj-m := test.o
  2. test-objs := mod.o dev.o sysfs.o
  3. KERNELDIR ?= /lib/modules/$(shell uname -r)/build
  4. INSTALLDIR ?= /lib/modules/$(shell uname -r)/extra
  5. PWD := $(shell pwd)
  6. KBUILD_EXTRA_SYMBOLS := ${INSTALLDIR}/pciDriver.symvers
  7. EXTRA_CFLAGS += -I$(M)/..
  8. default: app
  9. @KERNEL_GCC_VERSION=`cat /proc/version | head -n1 | cut -d " " -f 7` ;\
  10. GCC_VERSION=`$(CC) --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\
  11. if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION ]; then \
  12. echo "Kernel is compiled with gcc $$KERNEL_GCC_VERSION, but you are now using $$GCC_VERSION" ;\
  13. GCC_MAJOR=`echo $$KERNEL_GCC_VERSION | cut -d "." -f 1-2` ;\
  14. newCC=gcc-$$GCC_MAJOR ;\
  15. CC=`which $$newCC 2>/dev/null` ;\
  16. if [ $$? -ne 0 ]; then \
  17. echo "No compiler of $$GCC_MAJOR series is installed" ;\
  18. exit 1 ;\
  19. fi ;\
  20. GCC_VERSION=`$$CC --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\
  21. if [ $$KERNEL_GCC_VERSION != $$GCC_VERSION -a -z "$$RELAXED_GCC_CHECK" ]; then \
  22. echo "The $$GCC_VERSION of $$GCC_MAJOR series is installed" ;\
  23. exit 1 ;\
  24. fi ;\
  25. echo "Setting CC to $$newCC" ;\
  26. else \
  27. CC=$(CC) ;\
  28. fi ;\
  29. $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) CC=$$CC modules
  30. app: app.c
  31. gcc app.c -o app -lpcilib
  32. clean:
  33. rm -rf *.o *.ko *.mod.c .*.o.cmd .*.o.tmp .*.ko.cmd .*.o *.symvers modules.order .tmp_versions