我在使用 KBUILD 有选择地从不同目录构建模块时遇到了麻烦。我有 2 个内核目录 Kernel / kernel-XXX
让驱动程序目录结构如下
----kernel
| |
| |-----drivers
| |
| |-----boom
| |
| |----virtual_driver.c
| |----a.c
| |----b.c
| |----c.c
|
|---kernel-XXX
|
|-----drivers
|
|-----boom
|
|---virtual_driver_XXX.c
虚拟驱动需要 ac,bc,cc 进行编译。我在 kernel-XXX 中有一个更新版本的 virtual_driver_XXX.c,它也依赖于 ac、bc、cc
如何修改 kernel/drivers/boom 目录中的 makefile 以从 kernel-XXX 目录中获取 virtual_directory_XXX.o。这里应该采取什么方法。
kernel/drivers/boom 目录下的当前makefile如下。
生成文件
obj-y += t.o
t-y += a.o
t-y += b.o
t-y += c.o
t-y += virtual_driver.o
obj-y += <...>.o
我想要类似的东西
生成文件
obj-y += t.o
t-y += a.o
t-y += b.o
t-y += c.o
if (a give condition)
t-y += virtual_driver_XXX.o
else
t-y += virtual_driver.o
obj-y += <...>.o
问题是我在 kernel-XXX/drivers/boom 中没有 Makefile,因为我不知道如何使用 kernel/drivers/boom 目录中的 ao/bo/co 构建 virtual_driver_XXX。