android 如何加入第一3正方形lib图书馆kernel于

注意:只能lib图书馆kernel编译到位。例如下列:
alps/kernel/
alps/mediatek/custom/common/kernel/
alps/mediatek/custom/$platform/kernel/
alps/mediatek/custom/$proj/kernel/
alps/mediatek/kernel/
alps/mediatek/platform/$platform/kernel/core/
alps/mediatek/platform/$platform/kernel/drivers/
如果第3方库名称为test.a
(1). 假设存放的文件夹存在Makefile,那么仅仅需在该Makefile最后加入:
    obj-y += test.a
    然后将test.a文件拷贝到该文件夹下,
    又一次命名为test.a_shipped,目的是防止clean kernel阶段把该库给清除掉!
    又一次编译kernel就可以。


(2). 假设存放的文件夹不存在Makefile。比方在alps/mediatek/custom/文件夹下的kernel文件夹都没有Makefile,这时须要自行加入一个Makefile,内容和第1种方法差点儿相同:
    obj-y := xxx.o yyy.o test.a
    以上表示将xxx.c/yyy.c和test.a编译到kernel
    然后将test.a文件拷贝到该文件夹下并又一次命名为test.a_shipped
    又一次编译kernel就可以。


注意:alps/mediatek/custom/common/kernel/touchpanel/xxx文件夹下的文件会和alps/mediatek/custom/common/kernel/touchpanel/src文件夹合并,obj-y要将两个文件夹下的obj所有增加才行,否则编译失败。也能够用下面Makefile,自己主动将所有obj增加obj-y。省却麻烦。其它文件夹如有类似的情形一样处理。
    加入的Makefile(将全部*.c变为*.o并加入obj-y):
    include $(MTK_PATH_BUILD)/common.mk
    path := $(if $(filter yes,$(KBUILD_OUTPUT_SUPPORT)),$(srctree)/$(obj),$(obj))
    obj-y := $(patsubst %.c,%.o,$(subst $(path)/,,$(call wildcard2,$(path)/*.c)))
    obj-y += test.a
 
说明:对于kernel的Makefile编写规则说明,能够到网络搜索相关材料參考。比方obj-y表示要编译kernel,和obj-m说是编译module,obj-n要么obj-他说,他们并没有编译

版权声明:本文博主原创文章。博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/mengfanrong/p/4777869.html