我是使用makefile编译内核模块以包含树源文件的新手。我已经阅读了一些教程,但仍然不足。在没有得到太多细节的情况下,我创建了一个场景来描述问题和生成的生成文件。
dir1/main.c
dir2/subdir2/file.c
dir2/subdir2/include/file.h
下面是生成的makefile
obj-m:=main.o
main-y := ../dir2/include/file.o
KDIR := /home/userid/rowboat-android/kernel/
PWD := $(shell pwd)
default:
$(MAKE) ARCH=arm CROSS_COMPILE=/home/userid/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- -C $(KDIR) SUBDIRS=$(PWD) modules
clean
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
根据所描述的场景,这个 Makefile 是否正确?
参考资料讲的是ccflags-y和EXTRA_CFLAGS。有人可以解释这些开关的用途吗?
我的主要参考来源是
- 构建外部模块
- Linux 内核 Makefile
- Stackoverflow 上的问答
提前感谢您的时间