各路神仙帮帮我这个凡人个忙!!(Makefile)
小弟初入程序员江湖,武功浅薄,求一名师而不得。近日兴致勃发,挥手而就几行linux内核代码(大神不要笑我),然Makefile不知其要领,访某一网站临摹而成,虽得结果,然不明其理,求各神解说,弟不胜感激!
Makefile内容如下:
ifeq ($(KERNELRELEASE),)
#$(KERNELRELEASE),何解?
KERNELSRCDIR = /usr/src/kernels/2.6.18-194.el5-x86_64
BUILD_DIR :=$(shell pwd)
all: modules
modules:
make -C $(KERNELSRCDIR) M=$(BUILD_DIR) modules
clean:
rm -rf *.o *~ core .depend *.ko *.mod.c .tmp_versions mykernel
.PHONY: modules clean
#.PHONY何解?
else
obj-m := mykernel.o
endif
#为何使用ifeq else endif结构?为何obj-m := mykernel.o写在else下??