Linux内核SDK中纳入库源码方法

Linux内核SDK中纳入库源码方法

 

概述:要把库源码纳入SDK中,需要自己写makefile(注意:“m”是小写),这个makefile完成linux下安装源码的“三步走”步骤(./configure;make;make install;),主要是这个makefile的书写。

 

EG:移植libmad库到RT288X_SDK中

1) 拷贝库源码到SDK目录中

         #cplibmad xxx/source/lib

2) 添加makefile文件,我的makefile例子

TOPDIR=../
include $(TOPDIR)Rules.mak

CONFOPTS= --host=mipsel-linux

LIB_LDFLAGS := $(subst -z defs,,$(LDFLAGS))

# libmad
LIBMAD_A= .libs/libmad.a
LIBMAD_SHARED=libmad.so
LIBMAD_SHARED_FULLNAME=libmad-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so

all: Makefile
make -f Makefile all

Makefile:
AR= AS= CC=$(CROSS_COMPILE)gcc CFLAGS= CROSS= CROSS_COMPILE= CXX= HOSTCC= LD=$(CONFIG_CROSS_COMPILER_PATH)/mipsel-linux-ld OBJCOPY= RANLIB= STRIP= GCC_DIR= ./configure $(CONFOPTS)
# CC="/opt/buildroot-gdb/bin/mipsel-linux-uclibc-gcc" ./configure $(CONFOPTS)


# the is a proxy section --YY
all-recursive: Makefile
make -f Makefile all-recursive

# the is a proxy section --YY
all-am: Makefile
make -f Makefile all-am


# the is a proxy section --YY
clean-am: Makefile
make -f Makefile clean-am


clean: Makefile
rm -rf *.so *.a
make -f Makefile clean
find ./ -name Makefile -exec rm -f {} \;

romfs:
shared: all
$(LD) $(LIB_LDFLAGS) -soname=$(LIBMAD_SHARED).$(MAJOR_VERSION) \
           -o $(LIBMAD_SHARED_FULLNAME) --whole-archive $(LIBMAD_A) \
           --no-whole-archive $(TOPDIR)libc/misc/internals/interp.o \
           -L$(TOPDIR)lib -lc $(LDADD_LIBFLOAT) $(LIBGCC);

$(INSTALL) -d $(TOPDIR)lib
$(RM) $(TOPDIR)lib/$(LIBMAD_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBMAD_SHARED).$(MAJOR_VERSION)
$(INSTALL) -m 644 $(LIBMAD_SHARED_FULLNAME) $(TOPDIR)lib
$(INSTALL) -m 644 $(LIBMAD_A) $(TOPDIR)lib
$(LN) -sf $(LIBMAD_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBMAD_SHARED)
$(LN) -sf $(LIBMAD_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBMAD_SHARED).$(MAJOR_VERSION)

3) 修改lib目录下的Makefile,添加如下类似内容

         ifeq($(CONFIG_LIB_LIBMAD_FORCE),y)

         DIRS+= libmad

         endif

 

         ifeq($(CONFIG_LIB_LIBMAD_FORCE),y)

         @$(MAKE)-C libmad shared

         endif

4) 修改source/config/config.in

         bool'Build libmad'   CONFIG_LIB_LIBMAD_FORCE

5) 配置

         make menuconfig

        

6) 编译库

         #makedep

         #makelib_only

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武溪嵌人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值