# 如果已经定义KERNELRELEASE,则说明是从内核构造系统调用的?嘛意思?
# 因此可以利用其内建语句
ifneq ($(KERNELRELEASE),)
obj-m :=hello.o
# 否则,是直接从命令行调用的
# 这时候要调用内核构造系统
else
KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
gcc前一定要有一个tab分隔符,不能有空格;否则会出现“makefile:2: *** 遗漏分隔符 。 停止。”问题
make中规定每一Shell命令之前的开头必须使用<tab>字符。