From 44a9ec5bca140979a35ab21704ea1aada1c2f0f4 Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Tue, 24 Dec 2013 14:07:16 +0100 Subject: added/fixed few things necessary to cross-compile i686 ddb on x86_64 host (WIP) --- PORTABLE_BUILD | 2 +- PORTABLE_VERSION | 2 +- configure.ac | 4 ++++ plugins/converter/Makefile.am | 2 +- plugins/gtkui/Makefile.am | 4 ++-- plugins/lastfm/Makefile.am | 2 +- plugins/pltbrowser/Makefile.am | 2 +- plugins/shellexecui/Makefile.am | 2 +- plugins/vfs_curl/Makefile.am | 2 +- scripts/static_build.sh | 32 ++++++++++++++++++++++++-------- tools/apbuild/apsymbols.h.i686 | 2 +- 11 files changed, 38 insertions(+), 18 deletions(-) diff --git a/PORTABLE_BUILD b/PORTABLE_BUILD index b8626c4c..d00491fd 100644 --- a/PORTABLE_BUILD +++ b/PORTABLE_BUILD @@ -1 +1 @@ -4 +1 diff --git a/PORTABLE_VERSION b/PORTABLE_VERSION index a918a2aa..d64531f1 100644 --- a/PORTABLE_VERSION +++ b/PORTABLE_VERSION @@ -1 +1 @@ -0.6.0 +devel diff --git a/configure.ac b/configure.ac index c1457b0d..2980f33b 100644 --- a/configure.ac +++ b/configure.ac @@ -291,7 +291,9 @@ dnl curl lib AS_IF([test "${enable_staticlink}" != "no"], [ HAVE_CURL=yes CURL_LIBS="../../$LIB/lib/libcurl.a -lrt" + CURL_CFLAGS="-I../../$LIB/include" AC_SUBST(CURL_LIBS) + AC_SUBST(CURL_CFLAGS) ], [ AC_CHECK_LIB([curl], [main], [HAVE_CURL=yes]) CURL_LIBS="-lcurl" @@ -386,6 +388,8 @@ AS_IF([test "${enable_vfs_curl}" != "no"], [ HAVE_VFS_CURL=yes VFS_CURL_LIBS="$CURL_LIBS" AC_SUBST(VFS_CURL_LIBS) + VFS_CURL_CFLAGS="$CURL_CFLAGS" + AC_SUBST(VFS_CURL_CFLAGS) ]) ]) diff --git a/plugins/converter/Makefile.am b/plugins/converter/Makefile.am index d14d3f40..54cbea95 100644 --- a/plugins/converter/Makefile.am +++ b/plugins/converter/Makefile.am @@ -52,7 +52,7 @@ converter_gtk3_la_LDFLAGS = -module if STATICLINK GTK_ROOT_300=@top_srcdir@/$(LIB)/gtk-3.0.0 -converter_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig $(SM_LIBADD) +converter_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype $(SM_LIBADD) converter_gtk3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) diff --git a/plugins/gtkui/Makefile.am b/plugins/gtkui/Makefile.am index afce48f5..830775e2 100644 --- a/plugins/gtkui/Makefile.am +++ b/plugins/gtkui/Makefile.am @@ -157,7 +157,7 @@ ddb_gui_GTK2_la_LDFLAGS = -module if STATICLINK GTK_ROOT_216=@top_srcdir@/$(LIB)/gtk-2.16.0 -ddb_gui_GTK2_la_LIBADD = $(LDADD) -L$(GTK_ROOT_216)/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT2_LIBS) +ddb_gui_GTK2_la_LIBADD = $(LDADD) -L$(GTK_ROOT_216)/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT2_LIBS) ddb_gui_GTK2_la_CFLAGS = -std=c99 -I$(GTK_ROOT_216)/include/gtk-2.0 -I$(GTK_ROOT_216)/lib/gtk-2.0/include -I$(GTK_ROOT_216)/include/atk-1.0 -I$(GTK_ROOT_216)/include/cairo -I$(GTK_ROOT_216)/include/pango-1.0 -I$(GTK_ROOT_216)/include -I$(GTK_ROOT_216)/include/glib-2.0 -I$(GTK_ROOT_216)/lib/glib-2.0/include $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK2) else @@ -237,7 +237,7 @@ if STATICLINK ddb_gui_GTK3_la_SOURCES = $(GTKUI_SOURCES_GTK3) GTK_ROOT_300=@top_srcdir@/$(LIB)/gtk-3.0.0 -ddb_gui_GTK3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lfreetype -lfontconfig $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT3_LIBS) +ddb_gui_GTK3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lfreetype $(SM_LIBADD) ../libparser/libparser.a $(GTKGLEXT3_LIBS) ddb_gui_GTK3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) $(GTKGLEXT_CFLAGS_GTK3) else diff --git a/plugins/lastfm/Makefile.am b/plugins/lastfm/Makefile.am index 87499d7e..b7f9b8d2 100644 --- a/plugins/lastfm/Makefile.am +++ b/plugins/lastfm/Makefile.am @@ -5,5 +5,5 @@ lastfm_la_SOURCES = lastfm.c lastfm_la_LDFLAGS = -module lastfm_la_LIBADD = $(LDADD) $(CURL_LIBS) -AM_CFLAGS = -std=c99 +AM_CFLAGS = -std=c99 $(CURL_CFLAGS) endif diff --git a/plugins/pltbrowser/Makefile.am b/plugins/pltbrowser/Makefile.am index 73923b55..66adf45c 100644 --- a/plugins/pltbrowser/Makefile.am +++ b/plugins/pltbrowser/Makefile.am @@ -35,7 +35,7 @@ pltbrowser_gtk3_la_LDFLAGS = -module if STATICLINK GTK_ROOT_300=@top_srcdir@/$(LIB)/gtk-3.0.0 -pltbrowser_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig $(SM_LIBADD) +pltbrowser_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype $(SM_LIBADD) pltbrowser_gtk3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) diff --git a/plugins/shellexecui/Makefile.am b/plugins/shellexecui/Makefile.am index e8945130..4fb4e018 100644 --- a/plugins/shellexecui/Makefile.am +++ b/plugins/shellexecui/Makefile.am @@ -37,7 +37,7 @@ shellexecui_gtk3_la_LDFLAGS = -module if STATICLINK GTK_ROOT_300=@top_srcdir@/$(LIB)/gtk-3.0.0 -shellexecui_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig $(SM_LIBADD) +shellexecui_gtk3_la_LIBADD = $(LDADD) -L$(GTK_ROOT_300)/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lfreetype $(SM_LIBADD) shellexecui_gtk3_la_CFLAGS = -std=c99 -I$(GTK_ROOT_300)/include/gtk-3.0 -I$(GTK_ROOT_300)/include/pango-1.0 -I$(GTK_ROOT_300)/include/gio-unix-2.0/ -I$(GTK_ROOT_300)/include/atk-1.0 -I$(GTK_ROOT_300)/include/cairo -I$(GTK_ROOT_300)/include/gdk-pixbuf-2.0 -I$(GTK_ROOT_300)/include/freetype2 -I$(GTK_ROOT_300)/include/glib-2.0 -I$(GTK_ROOT_300)/lib/glib-2.0/include $(SM_CFLAGS) diff --git a/plugins/vfs_curl/Makefile.am b/plugins/vfs_curl/Makefile.am index 4c69c51f..f092e3fe 100644 --- a/plugins/vfs_curl/Makefile.am +++ b/plugins/vfs_curl/Makefile.am @@ -5,5 +5,5 @@ vfs_curl_la_SOURCES = vfs_curl.c vfs_curl_la_LDFLAGS = -module vfs_curl_la_LIBADD = $(LDADD) $(VFS_CURL_LIBS) -AM_CFLAGS = $(CFLAGS) -std=c99 +AM_CFLAGS = $(CFLAGS) $(VFS_CURL_CFLAGS) -std=c99 endif diff --git a/scripts/static_build.sh b/scripts/static_build.sh index 9b8937d7..b1cdfe0e 100755 --- a/scripts/static_build.sh +++ b/scripts/static_build.sh @@ -1,11 +1,27 @@ -#!/bin/sh +#!/bin/bash VERSION=`cat PORTABLE_VERSION | perl -ne 'chomp and print'` ORIGIN=`pwd | perl -ne 'chomp and print'` AP=$ORIGIN/tools/apbuild -ARCH=`uname -m | perl -ne 'chomp and print'` +#ARCH=`uname -m | perl -ne 'chomp and print'` +if [[ "$ARCH" == "i686" ]]; then + export CFLAGS='-m32' + export LDFLAGS='-m32' + export CONFIGURE_FLAGS="--build=i686-unknown-linux-gnu" + export LD_LIBRARY_PATH="$ORIGIN/../deadbeef-deps/lib-x86-32/lib" + export PKG_CONFIG_PATH="$ORIGIN/../deadbeef-deps/lib-x86-32/lib/pkgconfig" +elif [[ "$ARCH" == "x86_64" ]]; then + export CFLAGS='-m64' + export LDFLAGS='-m64' + export CONFIGURE_FLAGS="--build=x86_64-unknown-linux-gnu" + export LD_LIBRARY_PATH="$ORIGIN/../deadbeef-deps/lib-x86-64/lib" + export PKG_CONFIG_PATH="$ORIGIN/../deadbeef-deps/lib-x86-64/lib/pkgconfig" +else + echo unknown arch $ARCH + exit -1 +fi cd tools/apbuild -./apinit +./apinit || exit -1 cd ../../ export APBUILD_STATIC_LIBGCC=1 @@ -13,16 +29,16 @@ export APBUILD_CXX1=1 export CC=$AP/apgcc export CXX=$AP/apgcc -./autogen.sh +./autogen.sh || exit -1 -./configure --enable-staticlink --disable-artwork-imlib2 --prefix=/opt/deadbeef +./configure CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS $CONFIGURE_FLAGS --enable-staticlink --disable-artwork-imlib2 --prefix=/opt/deadbeef || exit -1 sed -i 's/-lstdc++ -lm -lgcc_s -lc -lgcc_s/-lm -lc/g' libtool sed -i 's/hardcode_into_libs=yes/hardcode_into_libs=no/g' libtool make clean -make -j8 DESTDIR=`pwd`/static/$ARCH/deadbeef-$VERSION -make DESTDIR=`pwd`/static/$ARCH/deadbeef-$VERSION install +make -j8 DESTDIR=`pwd`/static/$ARCH/deadbeef-$VERSION || exit -1 +make DESTDIR=`pwd`/static/$ARCH/deadbeef-$VERSION install || exit -1 echo "building pluginfo tool..." cd tools/pluginfo -make +make || exit -1 cd ../../ diff --git a/tools/apbuild/apsymbols.h.i686 b/tools/apbuild/apsymbols.h.i686 index 67021823..25b35a19 100644 --- a/tools/apbuild/apsymbols.h.i686 +++ b/tools/apbuild/apsymbols.h.i686 @@ -6,7 +6,7 @@ APBUILD_NOTE_METADATA("apbuild.version=" APBUILD_VERSION); #endif /* apbuild generated symbol exclusion list */ -__asm__(".symver __ctype_toupper,__ctype_toupper@GLIBC2.0"); +/*__asm__(".symver __ctype_toupper,__ctype_toupper@GLIBC2.0");*/ __asm__(".symver memcpy,memcpy@GLIBC_2.0"); __asm__(".symver _sys_errlist,_sys_errlist@GLIBC_2.0"); __asm__(".symver _sys_nerr,_sys_nerr@GLIBC_2.0"); -- cgit v1.2.3