概述:要把应用程序源码纳入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
若有,则基本编译通过,可以烧写测试!