我想重定向我的模块构建的输出以将工件与源隔离。
我的makefile看起来像:
obj-m += hello-1.o
all:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) modules
clean:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) clean
这可以正常工作,除了模块输出恰好在我的源目录中。我尝试在每一行中添加 O={path to my output dirctory} ,但是它无法使用类似...
错误:内核配置无效。缺少 include/generated/autoconf.h 或 include/config/auto.conf。在内核 src 上运行“make oldconfig && make prepare”来修复它。
警告:符号版本转储 /work/development/linux/driver/blah/Module.symvers 丢失;模块将没有依赖项和 modversions。
我认为这源于这样一个事实,即模块构建中使用了内核构建中的一些输出文件,并且使用“O =”更改输出目录会与之发生冲突。
有没有一种方法可以使用现有的构建基础设施来实现这一点?