作者egglet (拒收作业)
看板LinuxDev
标题Re: [问题] 请问2.4跟2.6的makefile写法的不同
时间Mon Dec 11 23:53:09 2006
※ 引述《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)