gdbus移植至mips

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 


發佈了140 篇原創文章 · 獲贊 14 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章