- 论坛徽章:
- 0
|
刚开始看linux驱动程序开发,对其中makefile感到很迷惑,
比如下面程序中的,$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules,起到什么作用
而且下面这段代码并没有指出文件的依赖关系,所使用的编译器等等
关于内核模块的makefile写法,有没有相关的资料- ifeq ($(DEBUG),y)
- DEBFLAGS = -O -g -DSCULL_DEBUG # "-O" is needed to expand inlines
- else
- DEBFLAGS = -O2
- endif
- EXTRA_CFLAGS += $(DEBFLAGS)
- EXTRA_CFLAGS += -I$(LDDINC)
- ifneq ($(KERNELRELEASE),)
- # call from kernel build system
- scull-objs := main.o pipe.o access.o
- obj-m := scull.o
- else
- KERNELDIR ?= /lib/modules/$(shell uname -r)/build
- PWD := $(shell pwd)
- modules:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules
- endif
- clean:
- rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
- depend .depend dep:
- $(CC) $(EXTRA_CFLAGS) -M *.c > .depend
- ifeq (.depend,$(wildcard .depend))
- include .depend
- endif
复制代码 |
|