ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf .o *~ core .depend ..cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean
else
obj-m := globalmem.o
endif
ifeq ($(KERNELRELEASE),)這一句執行之後,else便不會再執行,但是為什麼else還能起作用呢???
是這樣的
ifeq...else...endif
也就是說,ifeq滿足條件,那麼就會執行下面的語句,而else就不會被執行了,否則執行else
也就是說他們兩個只有一個會起作用,但是我發現他們兩個都起作用了,改任何一個都會報錯,為什麼???
@ Drifter011 ,對對,就是這裡不明白。按照代碼分析——這句應該不起作用啊~~~但是按照邏輯分析——這句話應該起作用。就是這裡不太明白
不知道代碼怎麼執行的???