我有一个内核模块,我想在其中包含一个特殊文件。该文件是 ASM 文件。没什么特别的,但文件扩展名也是 gcc 无法识别的“.asm”。由于可移植性,我想避免任何重命名。(它也用于另一个非 GNU 编译器。)
通常我的 makefile 看起来像这样:
obj-m := chardev.o
chardev-objs := chardev2.o file2.o asm_test.o
all:
make -C $(uClinux_dist_path) M=$$PWD modules
clean:
make -C $(uClinux_dist_path) M=$$PWD clean
asm_test 是有问题的,因为它被命名为“asm_test.asm”。(如果命名为“asm_test.S”,它将起作用。)
在我的用户空间程序中,我可以通过插入以下规则来解决这个问题:
asm_test.o:
$(CC) -c -x assembler-with-cpp asm_test.asm
但这似乎在内核makefile中不起作用。
任何人都知道如何在内核makefile中创建特殊的文件规则?
顺便说一句,我正在使用交叉编译的 Blackfin uClinux dist。如果它有所作为。