我有一個內核模塊,我想在其中包含一個特殊文件。該文件是一個ASM文件。沒有什麼特別的,但文件擴展名也是「.asm」,它不被gcc識別。由於可移植性,我想避免任何重命名。 (它也可用於其他非GNU編譯器。)Linux內核模塊makefile中的特殊文件編譯
通常我的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。如果它有所作爲。
這也應該與內核的Makefile一起工作。你得到什麼錯誤? –
錯誤消息是:make [3]:***目標'/home/mk/workspace/chardev/asm_test.o'沒有規則可用,這是'/home/mk/workspace/chardev/chardev.o'需要的。停止。 – Illishar
您的問題的答案取決於編寫它們的彙編程序 – Vineet1982