您的位置:首页 > 其它

gdbus移植至mips

2016-07-19 19:49 435 查看
glib版本:glib-2.48.1、libffi-3.2.1、libiconv.so.2.5.1
 、gettext-0.18.1 、zlib-1.2.8
CROSS=mips-linux-uclibc-
APP_PUBLIC_DIR=~/work/mips-linux/apps/public/
FILESYSTEM_DIR=~/work/mips-linux/rootfs/



APP_DBUS_DIR=$(APP_PUBLIC_DIR)/dbus-1.10.8
APP_DBUS_INSTALL_DIR=$(APP_DBUS_DIR)/install
APP_DBUS_TEST_DIR=$(APP_PRIVATE_DIR)/dbus_test
export APP_DBUS_TEST_DIR
export APP_DBUS_DIR
export APP_DBUS_INSTALL_DIR
APP_LIBEXPAT_DIR=$(APP_PUBLIC_DIR)/expat-2.1.0
APP_LIBEXPAT_INSTALL_DIR=$(APP_LIBEXPAT_DIR)/install

APP_LIB_GLIB_DIR=$(APP_PUBLIC_DIR)/glib-2.48.1
APP_LIB_GLIB_INSTALL=$(APP_LIB_GLIB_DIR)/install
export APP_LIB_GLIB_DIR
export APP_LIB_GLIB_INSTALL

APP_LIB_INTL_DIR=$(APP_PUBLIC_DIR)/gettext-0.18.1/
APP_LIB_INTL_INSTALL_DIR=$(APP_LIB_INTL_DIR)/install
export APP_LIB_INTL_DIR
export APP_LIB_INTL_INSTALL_DIR

APP_LIB_ICONV_DIR=$(APP_PUBLIC_DIR)/libiconv/
APP_LIB_ICONV_INSTALL_DIR=$(APP_LIB_ICONV_DIR)/install
export APP_LIB_ICONV_DIR
export APP_LIB_ICONV_INSTALL_DIR

APP_LIB_FFI_DIR=$(APP_PUBLIC_DIR)/libffi/
APP_LIB_FFI_INSTALL_DIR=$(APP_LIB_FFI_DIR)/install
export APP_LIB_FFI_DIR
export APP_LIB_FFI_INSTALL_DIR

APP_LIB_ZLIB_DIR=$(APP_PUBLIC_DIR)/zlib-1.2.8/
APP_LIB_ZLIB_INSTALL_DIR=$(APP_LIB_ZLIB_DIR)/install
export APP_LIB_ZLIB_DIR
export APP_LIB_ZLIB_INSTALL_DIR

dbus_test:
@echo "Compiling $@"
#@cd $(APP_DBUS_TEST_DIR) ; mkdir -p lib include
#@cp -rf $(APP_DBUS_INSTALL_DIR)/include/dbus-1.0/dbus $(APP_DBUS_TEST_DIR)/include/
#@cp -rf $(APP_LIBEXPAT_INSTALL_DIR)/lib/libexpat.so* $(APP_DBUS_TEST_DIR)/lib/
#@cp -rf $(APP_DBUS_INSTALL_DIR)/lib/libdbus-1.so* $(APP_DBUS_TEST_DIR)/lib/
@make -C $(APP_DBUS_TEST_DIR)

dbus_test_clean:
@make -C $(APP_DBUS_TEST_DIR) clean

libexpat:
@echo "Compiling $@"
cd $(APP_LIBEXPAT_DIR); ./configure CC=$(CROSS)gcc --host=$(COMPILE_TOOLCHAIN) --target=$(COMPILE_TOOLCHAIN) --prefix=$(APP_LIBEXPAT_INSTALL_DIR)
make -C $(APP_LIBEXPAT_DIR)
make -C $(APP_LIBEXPAT_DIR) install

libexpat_clean:
@echo "Cleaning $@"
make -C $(APP_LIBEXPAT_DIR) clean

dbus: libexpat
@echo "Compiling $@"
@cd $(APP_DBUS_DIR); ./configure CC=$(CROSS)gcc --host=$(COMPILE_TOOLCHAIN) --target=$(COMPILE_TOOLCHAIN) --prefix=$(APP_DBUS_INSTALL_DIR) CPPFLAGS=-I$(APP_LIBEXPAT_INSTALL_DIR)/include LIBS=-lexpat LDFLAGS=-L$(APP_LIBEXPAT_INSTALL_DIR)/lib --without-x  --disable-tests
make -C $(APP_DBUS_DIR)
make -C $(APP_DBUS_DIR) install

dbus_clean:
@echo "Cleaning $@"
make -C $(APP_DBUS_DIR) clean

libintl:
@echo "Compiling $@"
cd $(APP_LIB_INTL_DIR); \
./configure --prefix=$(APP_LIB_INTL_INSTALL_DIR) CC=$(CROSS)gcc --host=$(COMPILE_TOOLCHAIN) --target=$(COMPILE_TOOLCHAIN) --enable-shared --enable-silent-rules; \
make -i -C $(APP_LIB_INTL_DIR) && make -i -C $(APP_LIB_INTL_DIR) install

libintl_install:
@echo "Installing libintl."
cd $(APP_LIB_INTL_INSTALL_DIR)/lib/;\
$(STRIP) --strip-unneeded libintl.so*;\
cp -fr libintl.so* $(FILESYSTEM_DIR)/lib/

libintl_clean:
make -i -C $(APP_LIB_INTL_DIR) clean

libzlib:
@echo "Compiling $@"
cd $(APP_LIB_ZLIB_DIR); \
./configure --prefix=$(APP_LIB_ZLIB_INSTALL_DIR) ; \
make -C $(APP_LIB_ZLIB_DIR)

libzlib_install:
@echo "Installing libzlib."
cd $(APP_LIB_ZLIB_DIR) ;\
$(STRIP) --strip-unneeded libz.so* ;\
cp -fr $(APP_LIB_ZLIB_DIR)/libz.so* $(FILESYSTEM_DIR)/lib/;

libzlib_clean:
make -C $(APP_LIB_ZLIB_DIR) clean

libffi:
@echo "Compiling $@"
@cd $(APP_LIB_FFI_DIR); ./configure CC=$(CROSS)gcc --build=$(COMPILE_TOOLCHAIN) --host=mips-linux --target=$(COMPILE_TOOLCHAIN) --prefix=$(APP_LIB_FFI_INSTALL_DIR)
make -C $(APP_LIB_FFI_DIR) && make -C $(APP_LIB_FFI_DIR) install

libffi_install:
@echo "Installing libffi."
cd $(APP_LIB_FFI_INSTALL_DIR)/lib; \
$(STRIP) --strip-unneeded *.so ;\
cp -fr $(APP_LIB_FFI_INSTALL_DIR)/lib/libffi.so* $(FILESYSTEM_DIR)/lib/;

libffi_clean:
make -C $(APP_LIB_FFI_DIR) clean

libiconv:
@echo "Compiling $@"
@cd $(APP_LIB_ICONV_DIR)/; ./configure CC=$(CROSS)gcc --host=$(COMPILE_TOOLCHAIN) --target=$(COMPILE_TOOLCHAIN) --prefix=$(APP_LIB_ICONV_INSTALL_DIR)
make -C $(APP_LIB_ICONV_DIR) && make -C $(APP_LIB_ICONV_DIR) install

libiconv_install:
@echo "Installing libiconv."
cd $(APP_LIB_ICONV_INSTALL_DIR)/lib; \
$(STRIP) --strip-unneeded *.so ; \
cp -fr $(APP_LIB_ICONV_INSTALL_DIR)/lib/libiconv.so* $(FILESYSTEM_DIR)/lib/;

libiconv_clean:
make -C $(APP_LIB_ICONV_DIR) clean

glib_depends:libintl libintl_install libffi libffi_install libiconv libiconv_install libzlib

glib_prepare: glib_depends
@cd $(APP_LIB_GLIB_DIR);\
echo glib_cv_long_long_format=ll > mips-linux.cache;\
echo glib_cv_stack_grows=no >> mips-linux.cache;\
echo glib_cv_uscore=no >> mips-linux.cache;\
echo ac_cv_func_posix_getpwuid_r=yes >> mips-linux.cache ;\
echo ac_cv_func_posix_getgrgid_r=yes >> mips-linux.cache ; \
./configure CC=$(CROSS)gcc --build=mips-linux --host=mips --target=$(COMPILE_TOOLCHAIN) --prefix=$(APP_LIB_GLIB_INSTALL) --enable-shared --with-pcre=internal  --with-threads=posix CFLAGS="-O3 -fPIC"  CPPFLAGS="-I$(APP_LIB_ICONV_INSTALL_DIR)/include -I$(APP_LIB_INTL_INSTALL_DIR)/include -I$(APP_LIB_ZLIB_DIR)" LIBS="-liconv -lintl" LDFLAGS="-L$(APP_LIB_ICONV_INSTALL_DIR)/lib -L$(APP_LIB_INTL_INSTALL_DIR)/lib " --enable-debug=no LIBFFI_CFLAGS="-I$(APP_LIB_FFI_INSTALL_DIR)/lib/libffi-3.2.1/include" LIBFFI_LIBS="-lffi -L$(APP_LIB_FFI_INSTALL_DIR)/lib/"  ZLIB_LIBS="-lz -L$(APP_LIB_ZLIB_DIR)" --cache-file=mips-linux.cache

glib: libintl libintl_install libffi libffi_install libiconv libiconv_install libzlib glib_prepare
@echo "Compiling $@"
make -C $(APP_LIB_GLIB_DIR) && make -C $(APP_LIB_GLIB_DIR) install

glib_install: libintl_install libiconv_install libffi_install libzlib_install
@echo "Installing glib"
cd $(APP_LIB_GLIB_INSTALL)/lib;\
rm -rf libgio libglib libgmodule libgobject libgthread lib_statics lib_shared;\
mkdir -p libgio libglib libgmodule libgobject libgthread;\
mkdir -p lib_statics lib_shared;\
mv -f ./*.a lib_statics/ ; \
mv -f ./*.la lib_statics/ ;\
mv -f lib_statics/libgio-2.0.a libgio/ ;\
mv -f lib_statics/libglib-2.0.a libglib/ ;\
mv -f lib_statics/libgmodule-2.0.a libgmodule/ ; \
mv -f lib_statics/libgobject-2.0.a libgobject/ ; \
mv -f lib_statics/libgthread-2.0.a libgthread/ ; \
cd libgio ; $(CROSS)ar -x libgio-2.0.a;\
$(CROSS)gcc -fPIC -shared -o $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgio-2.0.so.4800.1 *.o ;\
$(STRIP) --strip-unneeded $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgio-2.0.so.4800.1;\
cd ../libglib ;$(CROSS)ar -x libglib-2.0.a;\
$(CROSS)gcc -fPIC -shared -o $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libglib-2.0.so.4800.1 *.o;\
$(STRIP) --strip-unneeded $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libglib-2.0.so.4800.1;\
cd ../libgmodule ; $(CROSS)ar -x libgmodule-2.0.a;\
$(CROSS)gcc -fPIC -shared -o $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgmodule-2.0.so.4800.1 *.o;\
$(STRIP) --strip-unneeded $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgmodule-2.0.so.4800.1;\
cd ../libgobject ; $(CROSS)ar -x libgobject-2.0.a;\
$(CROSS)gcc -fPIC -shared -o $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgobject-2.0.so.4800.1 *.o;\
$(STRIP) --strip-unneeded $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgobject-2.0.so.4800.1;\
cd ../libgthread ; $(CROSS)ar -x libgthread-2.0.a;\
$(CROSS)gcc -fPIC -shared -o $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgthread-2.0.so.4800.1 *.o;\
$(STRIP) --strip-unneeded $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/libgthread-2.0.so.4800.1;\
cd $(APP_LIB_GLIB_INSTALL)/lib/lib_shared ;    ln -s libgio-2.0.so.4800.1 libgio-2.0.so.0 && ln -s libgio-2.0.so.0 libgio-2.0.so &&\
ln -s libglib-2.0.so.4800.1 libglib-2.0.so.0 && ln -s libglib-2.0.so.0 libglib-2.0.so && \
ln -s libgmodule-2.0.so.4800.1 libgmodule-2.0.so.0 && ln -s libgmodule-2.0.so.0 libgmodule-2.0.so && \
ln -s libgobject-2.0.so.4800.1 libgobject-2.0.so.0 && ln -s libgobject-2.0.so.0 libgobject-2.0.so && \
ln -s libgthread-2.0.so.4800.1 libgthread-2.0.so.0 && ln -s libgthread-2.0.so.0 libgthread-2.0.so;\
cp -fr    $(APP_LIB_GLIB_INSTALL)/lib/lib_shared/* $(FILESYSTEM_DIR)/lib/;
@echo "done!"

glib_clean:
make -C $(APP_LIB_GLIB_DIR) clean
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  glib gdbus gnu