Makefile 633 B

12345678910111213141516171819202122232425262728293031323334
  1. OUT_EXT := .ko
  2. OBJ_EXT := .o
  3. RUN := hello
  4. RUN_EXT := $(RUN)$(OUT_EXT)
  5. obj-m += hello.o
  6. ccflags-y := -Wno-declaration-after-statement -std=gnu99
  7. .PHONY: clean ins log rm run my-ins
  8. all: $(RUN_EXT) ins_rm_mod.out
  9. hello.ko: hello.c
  10. make -C /lib/modules/$(shell uname -r)/build M="$(PWD)" modules
  11. clean:
  12. make -C /lib/modules/$(shell uname -r)/build M="$(PWD)" clean
  13. rm -f *.out
  14. ins: all
  15. sudo insmod '$(RUN_EXT)'
  16. log:
  17. dmesg
  18. rm:
  19. if lsmod | grep -Eq '^$(RUN) '; then sudo rmmod '$(RUN_EXT)'; fi
  20. ins_rm_mod.out: ins_rm_mod.c
  21. gcc -Wall -std=gnu99 -o '$@' '$<'
  22. ins_rm_run: ins_rm_mod.out $(RUN_EXT)
  23. sudo ./ins_rm_mod.out