编译gstreamer依赖glib、libxml2等。glib又依赖zlib、libffi。。。。各种依赖关系,让人在编译的过程中很容易忘记自己下一步要编哪个库。个人觉得自己写个简单的Makefile可以记录编译过程,理清依赖关系,解决遗忘问题。点此下载gstreamer及其依赖的各种库的源码。废话不说了,上代码:
MAKE:=make -w
PWD:=$(shell pwd)
#PATH := 自己的环境变量(在PC或虚拟机上执行export可以看到)
CROSS_COMPILE :=自己的路径/mips-gcc472-glibc216-32bit/bin/mips-linux-gnu-gcc
SYSROOT := 自己的路径/mips-gcc472-glibc216-32bit/mips-linux-gnu/libc
GST_RTSP_DIR=$(shell pwd)/gst-rtsp-0.10.8
GST_PLUGINS_BASE=$(shell pwd)/gst-plugins-base-0.10.36
LIB_XML_DIR=$(shell pwd)/libxml2-2.9.1
GLIB_DIR=$(shell pwd)/glib-2.40.0
ZLIB_DIR=$(shell pwd)/zlib-1.2.8
LIBFFI_DIR=$(shell pwd)/libffi-3.0.13
GETTEXT_DIR=$(shell pwd)/gettext-0.19.8.1
GSTREAMER_DIR=$(shell pwd)/gstreamer-0.10.36
LIBOGG_DIR=$(shell pwd)/libogg-1.3.3
LIBVORBIS_DIR=$(shell pwd)/libvorbis-1.3.6
gstreamer:
if [ ! -f $(GSTREAMER_DIR)/config.log ];then cd $(GSTREAMER_DIR) && ./configure --build=i686-pc-linux-gnu --host=mips-linux-gnu --prefix=$(SYSROOT)/usr PKG_CONFIG_PATH=$(SYSROOT)/usr/lib/pkgconfig CC=$(CROSS_COMPILE) --enable-net;fi
$(MAKE) -C $(GSTREAMER_DIR)
$(MAKE) -C $(GSTREAMER_DIR) install
libxml:
if [ ! -f $(LIB_XML_DIR)/config.log ];then cd $(LIB_XML_DIR) && ./configure --build=i686-pc-linux-gnu --host=mips-linux-gnu --prefix=$(SYSROOT)/usr CC=$(CROSS_COMPILE) --without-python;fi
$(MAKE) -C $(LIB_XML_DIR)
$(MAKE) -C $(LIB_XML_DIR) install
zlib:
if [ ! -f $(ZLIB_DIR)/config.log ];then cd $(ZLIB_DIR) && ./configure --prefix=$(SYSROOT)/usr;fi
$(MAKE) -C $(ZLIB_DIR) CC=mips-linux-gnu-gcc
$(MAKE) -C $(ZLIB_DIR) install
libffi:
if [ ! -f $(LIBFFI_DIR)/config.log ];then cd $(LIBFFI_DIR) && ./configure --host=mips-linux-gnu --prefix=$(SYSROOT)/usr;fi
$(MAKE) -C $(LIBFFI_DIR)
$(MAKE) -C $(LIBFFI_DIR) install
glib:
if [ ! -f $(GLIB_DIR)/config.log ];then cd $(GLIB_DIR) && ./configure --host=mips-linux-gnu --prefix=$(SYSROOT)/usr PKG_CONFIG_PATH=$(SYSROOT)/usr/lib/pkgconfig glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes;fi
$(MAKE) -C $(GLIB_DIR)
$(MAKE) -C $(GLIB_DIR) install