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例子(参见source/user/madplay-0.15.2b/makefile)

         这个makefile主要实现了对源码的全局管理。

TOPDIR=../../
CROSS_COMPILE=/opt/buildroot-gcc342/bin/mipsel-linux-
CONFIG_CROSS_COMPILER_PATH=/opt/buildroot-gcc342/bin
CONFOPTS= --host=mipsel-linux
ROOTDIR=$(shell pwd)
LIB_LDFLAGS := $(subst -z defs,,$(LDFLAGS))

# libmad
LIBMAD_A=
LIBMAD_SHARED=madplay
LIBMAD_SHARED_FULLNAME=madplay-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
CONFOPTS +=--disable-debugging --disable-shared --enable-static \
  CPPFLAGS=-I$(ROOTDIR)/lib/_install/include
CONFOPTS += LDFLAGS=-L$(ROOTDIR)/lib/_install/lib

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) #$(CONFOPTS1) $(CONFOPTS2) $(CONFOPTS3) $(CONFOPTS4)
  #CPPFLAGS=-I/home/armmlinux/zdfwork/svndir/Mist-link-RT5350/source/lib/libmad-0.15.1b/include
# 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 *.o
make -f Makefile clean
find ./ -name Makefile -exec rm -f {} \;

romfs:
$(ROMFSINST) /bin/madplay

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)user -lc $(LDADD_LIBFLOAT) $(LIBGCC);


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

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

         dir_$(CONFIG_USER_MADPLAY_0_15_2B)                 += madplay-0.15.2b

4) 修改source/config/config.in

         bool'madplay-0.15.2b'                                CONFIG_USER_MADPLAY_0_15_2B

5) 配置

         makemenuconfig

        

6) 编译应用程序

         #makedep

         #make

7) 在source/romfs/bin/目录下看看有没有madplay

         若有,则基本编译通过,可以烧写测试!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

武溪嵌人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值