Re: [問題] 請問2.4跟2.6的makefile寫法的不同

看板LinuxDev作者 (拒收作業)時間18年前 (2006/12/11 23:43), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《blair0 (iNeEdmOretIme)》之銘言: : 大家好 : 目前正在移植一些driver到kernel 2.6去 : 不過Makefile的改變讓我摸不著頭緒阿~ : 以下是問題: : 要合併數個已make好的obj file(*.o)產生一個clnkapi.a : 只是合併而已,所以沒有clnkapi.c這類的source code : 在2.4的環境Makefile可以寫成 : TARGET = clnkapi.a : OBJ = ../clnkethapilnx.o ../persist.o posix_crc.o : (FLAGS省略...) : all: $(TARGET) : $(TARGET): $(OBJ) : @echo Creating $@ library : $(AR) $(ARFLAGS) $@ $(OBJ) : clean: : @-rm *.o *.a : 這樣的寫法2.6不吃,可是把TARGET改成obj-y也不行阿 : 請問我該怎麼改呢? kernel2.4 和 kernel 2.6接受的模組格式不一樣 kernel 2.4 收 .o即可,但在 kernel 2.6 改收 .ko 因此 Makefile上的寫法就會有小小的不同 在下達 make 指令時同時產生 .o ,.ko,.mod.c ,.mod.o 這些檔案 最快的方式,就是把 Makefile 重寫,但其實也不用重頭到尾自己寫 我是直接參考O'REILLY 的 Linux 驅動程式 第三版範例中的Makefile並改成自己要用的 範例下載:http://www.oreilly.com.tw/product_linux.php?id=a184 可以參考misc-modules 資料夾底下的 Makefile 及 最外層的 Makefile 順便提醒一下,書中範例中(Makefile)的 KERNELDIR 是指向你放 kernel source的地方 如果你放的地方跟書中範例的不一樣時,要記得改成自己的,或者將 kernel source 放在跟書中範例一樣的地方 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.22.138 ※ 編輯: egglet 來自: 210.58.22.138 (12/11 23:57) ※ 編輯: egglet 來自: 210.58.22.138 (12/12 00:08)
文章代碼(AID): #15VNoLn0 (LinuxDev)
文章代碼(AID): #15VNoLn0 (LinuxDev)