0

我在使用 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。

4

0 回答 0