xbmc: rework texturepacker patch

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2013-09-04 00:21:17 +02:00
parent 5556cf031b
commit 40b8bf0cac
3 changed files with 720 additions and 169 deletions

View File

@ -342,6 +342,12 @@ else
XBMC_CRYSTALHD="--disable-crystalhd"
fi
export CXX_FOR_BUILD="$HOST_CXX"
export CC_FOR_BUILD="$HOST_CC"
export CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS"
export CFLAGS_FOR_BUILD="$HOST_CFLAGS"
export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS"
export PYTHON_VERSION="2.7"
export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION"
export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION"

View File

@ -0,0 +1,714 @@
From 70199b49c92d0ca58b09f948794e637ed1bc963c Mon Sep 17 00:00:00 2001
From: Stephan Raue <stephan@openelec.tv>
Date: Tue, 3 Sep 2013 05:16:54 +0200
Subject: [PATCH 1/5] configure: add initial support for CC_FOR_BUILD,
CXX_FOR_BUILD, CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD
---
Makefile.include.in | 5 ++
configure.in | 15 ++++--
m4/ax_prog_cc_for_build.m4 | 125 ++++++++++++++++++++++++++++++++++++++++++++
m4/ax_prog_cxx_for_build.m4 | 110 ++++++++++++++++++++++++++++++++++++++
4 files changed, 252 insertions(+), 3 deletions(-)
create mode 100644 m4/ax_prog_cc_for_build.m4
create mode 100644 m4/ax_prog_cxx_for_build.m4
diff --git a/Makefile.include.in b/Makefile.include.in
index 2b7b89a..2afe6ba 100644
--- a/Makefile.include.in
+++ b/Makefile.include.in
@@ -28,10 +28,15 @@ dvidir=@dvidir@
pdfdir=@pdfdir@
psdir=@psdir@
CXX=@CXX@
+CXX_FOR_BUILD=@CXX_FOR_BUILD@
CC=@CC@
+CC_FOR_BUILD=@CC_FOR_BUILD@
CXXFLAGS+=@CXXFLAGS@
+CXXFLAGS_FOR_BUILD+=@CXXFLAGS_FOR_BUILD@
CFLAGS+=@CFLAGS@
+CFLAGS_FOR_BUILD+=@CFLAGS_FOR_BUILD@
LDFLAGS+=@LDFLAGS@
+LDFLAGS_FOR_BUILD+=@LDFLAGS_FOR_BUILD@
INCLUDES+=-I@abs_top_srcdir@/lib
INCLUDES+=-I@abs_top_srcdir@/xbmc
INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.gui
diff --git a/configure.in b/configure.in
index a6153ad..ef0e051 100644
--- a/configure.in
+++ b/configure.in
@@ -5,6 +5,8 @@ AC_PREREQ(2.59)
AC_INIT([xbmc], [12.9.8], [http://trac.xbmc.org])
AC_CONFIG_HEADERS([xbmc/config.h])
AH_TOP([#pragma once])
+m4_include([m4/ax_prog_cc_for_build.m4])
+m4_include([m4/ax_prog_cxx_for_build.m4])
m4_include([m4/ax_python_devel.m4])
m4_include([m4/xbmc_arch.m4])
@@ -579,13 +581,15 @@ if test "x$host_vendor" != "xapple"; then
fi
# Checks for programs.
+PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
+AC_PROG_CC
+AX_PROG_CC_FOR_BUILD
+CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
PASSED_CXXFLAGS=$CXXFLAGS # Hack to override autoconf default values
AC_PROG_CXX
+AX_PROG_CXX_FOR_BUILD
CXXFLAGS="$PASSED_CXXFLAGS $DEFAULT_COMPILE_FLAGS"
-PASSED_CFLAGS=$CFLAGS # Hack to override autoconf default values
-AC_PROG_CC
AC_PROG_LIBTOOL
-CFLAGS="$PASSED_CFLAGS $DEFAULT_COMPILE_FLAGS"
AC_PROG_AWK
AC_PROG_LN_S
AC_PROG_MAKE_SET
@@ -2467,6 +2471,11 @@ AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(INCLUDES)
AC_SUBST(LDFLAGS)
+AC_SUBST(CXX_FOR_BUILD)
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(CXXFLAGS_FOR_BUILD)
+AC_SUBST(LDFLAGS_FOR_BUILD)
AC_SUBST(SDL_DEFINES)
AC_SUBST(BUILD_DVDCSS)
AC_SUBST(DISABLE_WAVEFORM)
diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
new file mode 100644
index 0000000..77fd346
--- /dev/null
+++ b/m4/ax_prog_cc_for_build.m4
@@ -0,0 +1,125 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PROG_CC_FOR_BUILD
+#
+# DESCRIPTION
+#
+# This macro searches for a C compiler that generates native executables,
+# that is a C compiler that surely is not a cross-compiler. This can be
+# useful if you have to generate source code at compile-time like for
+# example GCC does.
+#
+# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything
+# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD).
+# The value of these variables can be overridden by the user by specifying
+# a compiler with an environment variable (like you do for standard CC).
+#
+# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object
+# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if
+# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are
+# substituted in the Makefile.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 8
+
+AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
+AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+dnl Use the standard macros, but make them use other variable names
+dnl
+pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
+pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
+pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
+pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
+pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
+pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
+pushdef([ac_cv_objext], ac_cv_build_objext)dnl
+pushdef([ac_exeext], ac_build_exeext)dnl
+pushdef([ac_objext], ac_build_objext)dnl
+pushdef([CC], CC_FOR_BUILD)dnl
+pushdef([CPP], CPP_FOR_BUILD)dnl
+pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
+pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
+pushdef([host], build)dnl
+pushdef([host_alias], build_alias)dnl
+pushdef([host_cpu], build_cpu)dnl
+pushdef([host_vendor], build_vendor)dnl
+pushdef([host_os], build_os)dnl
+pushdef([ac_cv_host], ac_cv_build)dnl
+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
+pushdef([ac_cv_host_os], ac_cv_build_os)dnl
+pushdef([ac_cpp], ac_build_cpp)dnl
+pushdef([ac_compile], ac_build_compile)dnl
+pushdef([ac_link], ac_build_link)dnl
+
+save_cross_compiling=$cross_compiling
+save_ac_tool_prefix=$ac_tool_prefix
+cross_compiling=no
+ac_tool_prefix=
+
+AC_PROG_CC
+AC_PROG_CPP
+AC_EXEEXT
+
+ac_tool_prefix=$save_ac_tool_prefix
+cross_compiling=$save_cross_compiling
+
+dnl Restore the old definitions
+dnl
+popdef([ac_link])dnl
+popdef([ac_compile])dnl
+popdef([ac_cpp])dnl
+popdef([ac_cv_host_os])dnl
+popdef([ac_cv_host_vendor])dnl
+popdef([ac_cv_host_cpu])dnl
+popdef([ac_cv_host_alias])dnl
+popdef([ac_cv_host])dnl
+popdef([host_os])dnl
+popdef([host_vendor])dnl
+popdef([host_cpu])dnl
+popdef([host_alias])dnl
+popdef([host])dnl
+popdef([LDFLAGS])dnl
+popdef([CPPFLAGS])dnl
+popdef([CFLAGS])dnl
+popdef([CPP])dnl
+popdef([CC])dnl
+popdef([ac_objext])dnl
+popdef([ac_exeext])dnl
+popdef([ac_cv_objext])dnl
+popdef([ac_cv_exeext])dnl
+popdef([ac_cv_prog_cc_g])dnl
+popdef([ac_cv_prog_cc_cross])dnl
+popdef([ac_cv_prog_cc_works])dnl
+popdef([ac_cv_prog_gcc])dnl
+popdef([ac_cv_prog_CPP])dnl
+
+dnl Finally, set Makefile variables
+dnl
+BUILD_EXEEXT=$ac_build_exeext
+BUILD_OBJEXT=$ac_build_objext
+AC_SUBST(BUILD_EXEEXT)dnl
+AC_SUBST(BUILD_OBJEXT)dnl
+AC_SUBST([CFLAGS_FOR_BUILD])dnl
+AC_SUBST([CPPFLAGS_FOR_BUILD])dnl
+AC_SUBST([LDFLAGS_FOR_BUILD])dnl
+])
diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4
new file mode 100644
index 0000000..8cc0f73
--- /dev/null
+++ b/m4/ax_prog_cxx_for_build.m4
@@ -0,0 +1,110 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PROG_CXX_FOR_BUILD
+#
+# DESCRIPTION
+#
+# This macro searches for a C++ compiler that generates native
+# executables, that is a C++ compiler that surely is not a cross-compiler.
+# This can be useful if you have to generate source code at compile-time
+# like for example GCC does.
+#
+# The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything
+# needed to compile or link (CXX_FOR_BUILD) and preprocess
+# (CXXCPP_FOR_BUILD). The value of these variables can be overridden by
+# the user by specifying a compiler with an environment variable (like you
+# do for standard CXX).
+#
+# LICENSE
+#
+# Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
+# Copyright (c) 2012 Avionic Design GmbH
+#
+# Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini.
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 2
+
+AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD])
+AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl
+AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl
+AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_CXXCPP])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+dnl Use the standard macros, but make them use other variable names
+dnl
+pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl
+pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl
+pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl
+pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl
+pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl
+pushdef([CXX], CXX_FOR_BUILD)dnl
+pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl
+pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl
+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
+pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl
+pushdef([host], build)dnl
+pushdef([host_alias], build_alias)dnl
+pushdef([host_cpu], build_cpu)dnl
+pushdef([host_vendor], build_vendor)dnl
+pushdef([host_os], build_os)dnl
+pushdef([ac_cv_host], ac_cv_build)dnl
+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
+pushdef([ac_cv_host_os], ac_cv_build_os)dnl
+pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl
+pushdef([ac_compile], ac_build_compile)dnl
+pushdef([ac_link], ac_build_link)dnl
+
+save_cross_compiling=$cross_compiling
+save_ac_tool_prefix=$ac_tool_prefix
+cross_compiling=no
+ac_tool_prefix=
+
+AC_PROG_CXX
+AC_PROG_CXXCPP
+
+ac_tool_prefix=$save_ac_tool_prefix
+cross_compiling=$save_cross_compiling
+
+dnl Restore the old definitions
+dnl
+popdef([ac_link])dnl
+popdef([ac_compile])dnl
+popdef([ac_cxxcpp])dnl
+popdef([ac_cv_host_os])dnl
+popdef([ac_cv_host_vendor])dnl
+popdef([ac_cv_host_cpu])dnl
+popdef([ac_cv_host_alias])dnl
+popdef([ac_cv_host])dnl
+popdef([host_os])dnl
+popdef([host_vendor])dnl
+popdef([host_cpu])dnl
+popdef([host_alias])dnl
+popdef([host])dnl
+popdef([CXXCPPFLAGS])dnl
+popdef([CPPFLAGS])dnl
+popdef([CXXFLAGS])dnl
+popdef([CXXCPP])dnl
+popdef([CXX])dnl
+popdef([ac_cv_prog_cxx_g])dnl
+popdef([ac_cv_prog_cxx_cross])dnl
+popdef([ac_cv_prog_cxx_works])dnl
+popdef([ac_cv_prog_gxx])dnl
+popdef([ac_cv_prog_CXXCPP])dnl
+
+dnl Finally, set Makefile variables
+dnl
+AC_SUBST([CXXFLAGS_FOR_BUILD])dnl
+AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl
+])
--
1.8.4
From 3a03d3cfc95f8d8b77a583d8556000fafce358c0 Mon Sep 17 00:00:00 2001
From: Stephan Raue <stephan@openelec.tv>
Date: Tue, 3 Sep 2013 05:31:39 +0200
Subject: [PATCH 2/5] configure/depends: rename 'USE_TEXTUREPACKER_NATIVE_ROOT'
to 'NATIVE_ROOT' for general usage to use with other hostbuilt tools. Add
$NATIVE_ROOT/lib to LDFLAGS_FOR_BUILD and $NATIVE_ROOT/include to
CFLAGS_FOR_BUILD and CXXFLAGS_FOR_BUILD
---
configure.in | 14 ++++++++++----
tools/TexturePacker/Makefile.in | 2 +-
tools/depends/target/config.site.in | 2 +-
tools/rbp/depends/depends.mk | 4 ++--
4 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/configure.in b/configure.in
index ef0e051..daf5477 100644
--- a/configure.in
+++ b/configure.in
@@ -695,7 +695,7 @@ case $host in
esac
AC_SUBST([ARCH])
-check_sdl_arch=[`file $USE_TEXTUREPACKER_NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
+check_sdl_arch=[`file $NATIVE_ROOT/lib/libSDL_image.dylib | awk '{print $NF}'`]
if test "x$check_sdl_arch" = "xi386" ; then
DARWIN_NATIVE_ARCH=-m32
elif test "x$check_sdl_arch" = "xx86_64" ; then
@@ -1960,6 +1960,12 @@ AC_C_BIGENDIAN
if test "$cross_compiling" = "yes"; then
final_message="$final_message\n Crosscomp.:\tYes"
+ if [[ -d "$NATIVE_ROOT" ]]; then
+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
+ LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
+ final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
+ fi
else
final_message="$final_message\n Crosscomp.:\tNo"
fi
@@ -2103,8 +2109,8 @@ if test "x$use_texturepacker" != "xno"; then
USE_TEXTUREPACKER=1
if test "x$use_texturepacker_native" = "xyes"; then
USE_TEXTUREPACKER_NATIVE=1
- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
- USE_TEXTUREPACKER_NATIVE_ROOT=
+ if [[ ! -d "$NATIVE_ROOT" ]]; then
+ NATIVE_ROOT=
fi
fi
else
@@ -2517,7 +2523,7 @@ AC_SUBST(USE_XRANDR)
AC_SUBST(USE_ALSA)
AC_SUBST(USE_TEXTUREPACKER)
AC_SUBST(USE_TEXTUREPACKER_NATIVE)
-AC_SUBST(USE_TEXTUREPACKER_NATIVE_ROOT)
+AC_SUBST(NATIVE_ROOT)
AC_SUBST(USE_AIRTUNES)
AC_SUBST(USE_LIBUDEV)
AC_SUBST(USE_LIBUSB)
diff --git a/tools/TexturePacker/Makefile.in b/tools/TexturePacker/Makefile.in
index 71e3d4a..343182c 100644
--- a/tools/TexturePacker/Makefile.in
+++ b/tools/TexturePacker/Makefile.in
@@ -12,7 +12,7 @@ CXXFLAGS+= \
RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib
ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@
+NATIVE_ROOT_PATH=@NATIVE_ROOT@
ifdef NATIVE_ROOT_PATH
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
DEFINES += -DTARGET_DARWIN
diff --git a/tools/depends/target/config.site.in b/tools/depends/target/config.site.in
index 7cc470d..207748a 100644
--- a/tools/depends/target/config.site.in
+++ b/tools/depends/target/config.site.in
@@ -39,7 +39,7 @@ PYTHON_LDFLAGS="-L@prefix@/@deps_dir@/lib -lpython${PYTHON_VERSION} -lc -ldl -lm
PYTHON_CPPFLAGS=-I@prefix@/@deps_dir@/include/python${PYTHON_VERSION}
PYTHON_SITE_PKG=@prefix@/@deps_dir@/lib/python${PYTHON_VERSION}/site-packages
PYTHON_NOVERSIONCHECK=no-check
-USE_TEXTUREPACKER_NATIVE_ROOT=@prefix@/@tool_dir@
+NATIVE_ROOT=@prefix@/@tool_dir@
#afps-ng and libomxil-bellagio
ac_cv_func_malloc_0_nonnull=yes
diff --git a/tools/rbp/depends/depends.mk b/tools/rbp/depends/depends.mk
index bafa99c..d805001 100644
--- a/tools/rbp/depends/depends.mk
+++ b/tools/rbp/depends/depends.mk
@@ -19,7 +19,7 @@ ifeq ($(USE_BUILDROOT),1)
export PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig
export PYTHON_VERSION=2.7
export PATH:=$(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
- export USE_TEXTUREPACKER_NATIVE_ROOT=/usr
+ export NATIVE_ROOT=/usr
export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION) -lpthread -ldl -lutil -lm
else
export CFLAGS=-pipe -O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -Wno-deprecated-declarations
@@ -47,7 +47,7 @@ else
export PKG_CONFIG_PATH=$(PREFIX)/bin/pkg-config
export PYTHON_VERSION=2.6
export PATH:=${PREFIX}/bin:$(PATH):${TOOLCHAIN}/bin
- export USE_TEXTUREPACKER_NATIVE_ROOT=/usr
+ export NATIVE_ROOT=/usr
export PYTHON_LDFLAGS=-L$(SDKSTAGE)/usr/lib -lpython$(PYTHON_VERSION)
endif
export PYTHON_CPPFLAGS=-I$(SDKSTAGE)/usr/include/python$(PYTHON_VERSION)
--
1.8.4
From 59109579ecfe7622fea2283d1391ca4da07aa9a7 Mon Sep 17 00:00:00 2001
From: Stephan Raue <stephan@openelec.tv>
Date: Tue, 3 Sep 2013 05:37:05 +0200
Subject: [PATCH 3/5] libsquish: rework to support native builds with
*_FOR_BUILD
---
lib/libsquish/Makefile.in | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/lib/libsquish/Makefile.in b/lib/libsquish/Makefile.in
index 34f93bd..ef57bb8 100644
--- a/lib/libsquish/Makefile.in
+++ b/lib/libsquish/Makefile.in
@@ -11,26 +11,24 @@ SRCS= \
singlecolourfit.cpp \
squish.cpp
-CXXFLAGS+=-I.
-
-LIB=libsquish.a
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_LIB=libsquish-native.so
-CLEAN_FILES+=$(NATIVE_LIB)
+CXXFLAGS += -I.
+CXXFLAGS_FOR_BUILD += -I.
+LIB = libsquish.a
+NATIVE_LIB = libsquish-native.so
+CLEAN_FILES += $(NATIVE_LIB)
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
-NATIVE_ARCH=@DARWIN_NATIVE_ARCH@
+ CXXFLAGS_FOR_BUILD += @DARWIN_NATIVE_ARCH@
endif
-all: $(LIB) $(NATIVE_LIB)
+all: $(LIB)
+
# TexturePacker links to libsquish and needs to run on build system, so make a native flavor.
$(NATIVE_LIB): $(SRCS)
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
+ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(SRCS) -dynamiclib -install_name `pwd`/$(NATIVE_LIB) -o $@
else
- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@
-endif
+ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/$(NATIVE_LIB) -o $@
endif
include ../../Makefile.include
--
1.8.4
From 2108f29aa7f60ed03afea65b262cec5ca1ed5ab9 Mon Sep 17 00:00:00 2001
From: Stephan Raue <stephan@openelec.tv>
Date: Tue, 3 Sep 2013 05:44:33 +0200
Subject: [PATCH 4/5] Texturepacker: rework to support native builds with
*_FOR_BUILD, Texturepacker builds always against libsquish-native.so, which
is ok because CXX_FOR_BUILD=CXX, CXXFLAGS_FOR_BUILD=CXXFLAGS and
LDFLAGS_FOR_BUILD=LDFLAGS on non crosscompiled builds, sothere
libsquish-native is the same like libsquish
---
Makefile.in | 2 +-
configure.in | 3 ++
tools/TexturePacker/Makefile.in | 62 +++++++++++++----------------------------
3 files changed, 23 insertions(+), 44 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 8162f64..3b21d50 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -520,7 +520,7 @@ else
$(SILENT_LD) $(CC) $(CFLAGS) $(LDFLAGS) -o xbmc-xrandr xbmc-xrandr.c -lXrandr -lX11 -lm
endif
-tools/TexturePacker/TexturePacker: lib/libsquish/libsquish.a xbmc/guilib/XBTF.h
+tools/TexturePacker/TexturePacker: xbmc/guilib/XBTF.h
$(MAKE) -C tools/TexturePacker/
diff --git a/configure.in b/configure.in
index daf5477..dda18ea 100644
--- a/configure.in
+++ b/configure.in
@@ -1964,6 +1964,9 @@ if test "$cross_compiling" = "yes"; then
CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -I$NATIVE_ROOT/include"
LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -L$NATIVE_ROOT/lib"
+ if test "$host_vendor" != "apple" ; then
+ LDFLAGS_FOR_BUILD="$LDFLAGS_FOR_BUILD -Wl,-rpath=$NATIVE_ROOT/lib"
+ fi
final_message="$final_message\n Native Root:\t$NATIVE_ROOT"
fi
else
diff --git a/tools/TexturePacker/Makefile.in b/tools/TexturePacker/Makefile.in
index 343182c..4f0b610 100644
--- a/tools/TexturePacker/Makefile.in
+++ b/tools/TexturePacker/Makefile.in
@@ -1,61 +1,37 @@
-DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING
+DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING
ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),)
-DEFINES += -DHOST_BIGENDIAN
+DEFINES += -DHOST_BIGENDIAN
endif
-CXXFLAGS+= \
+SRCS = \
+ md5.cpp \
+ SDL_anigif.cpp \
+ XBTFWriter.cpp \
+ XBMCTex.cpp \
+ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp
+
+TARGET = TexturePacker
+CLEAN_FILES = $(TARGET)
+
+CXXFLAGS_FOR_BUILD += \
-I. \
-I@abs_top_srcdir@/lib \
-I@abs_top_srcdir@/xbmc \
-I@abs_top_srcdir@/xbmc/linux
-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib
+LDFLAGS_FOR_BUILD += -lSDL_image -lSDL -llzo2
+LDFLAGS_FOR_BUILD += -L@abs_top_srcdir@/lib/libsquish -lsquish-native
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_ROOT_PATH=@NATIVE_ROOT@
-ifdef NATIVE_ROOT_PATH
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
DEFINES += -DTARGET_DARWIN
NATIVE_ARCH=@DARWIN_NATIVE_ARCH@
-RPATH=
-endif
-NATIVE_CXXFLAGS+= -I. \
- -I$(NATIVE_ROOT_PATH)/include \
- -I@abs_top_srcdir@/lib \
- -I@abs_top_srcdir@/xbmc \
- -I@abs_top_srcdir@/xbmc/linux
-NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib
-endif
-NATIVE_LIBS += -lSDL_image -lSDL -llzo2
-NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native
-else
-LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish
endif
-LIBS += -lSDL_image -lSDL -llzo2
-
-SRCS = \
- md5.cpp \
- SDL_anigif.cpp \
- XBTFWriter.cpp \
- XBMCTex.cpp \
- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp
-
-
-TARGET = TexturePacker
-CLEAN_FILES=$(TARGET)
-
all: $(TARGET)
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-# TexturePacker run native on build system, build it with native tools
$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h
- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET)
-clean:
- rm -f $(TARGET)
-else
-include @abs_top_srcdir@/Makefile.include
+# TexturePacker run native on build system, build it with native tools
+ make -C @abs_top_srcdir@/lib/libsquish/ libsquish-native.so
+ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $(DEFINES) $(NATIVE_ARCH) $(SRCS) $(LDFLAGS_FOR_BUILD) -o $(TARGET)
-$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h
- $(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(SRCS) $(LDFLAGS) $(LIBS) -o $(TARGET)
-endif
+include @abs_top_srcdir@/Makefile.include
--
1.8.4
From ed1cd08fd1e93f3af283eb522082c8c8dbaf2ee7 Mon Sep 17 00:00:00 2001
From: Stephan Raue <stephan@openelec.tv>
Date: Tue, 3 Sep 2013 05:55:37 +0200
Subject: [PATCH 5/5] configure: cleanup, we dont need
'use_texturepacker_native' anymore and dont need to force 'use_texturepacker'
(its enabled by default).
---
configure.in | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/configure.in b/configure.in
index dda18ea..0337705 100644
--- a/configure.in
+++ b/configure.in
@@ -637,7 +637,6 @@ case $host in
use_dvdcss=no
use_gles=yes
use_cpu=cortex-a8
- use_texturepacker_native=yes
ARCH="arm-osx"
use_arch="arm"
PYTHON_VERSION="2.6"
@@ -649,7 +648,6 @@ case $host in
*86*-apple-darwin*)
use_joystick=no
use_vtbdecoder=no
- use_texturepacker_native=yes
ARCH="x86-osx"
;;
powerpc-apple-darwin*)
@@ -666,7 +664,6 @@ case $host in
ARCH="powerpc64-linux"
;;
arm*-*-linux-gnu*)
- use_texturepacker=no
ARCH="arm"
use_arch="arm"
ffmpeg_target_os=linux
@@ -705,7 +702,6 @@ AC_SUBST([DARWIN_NATIVE_ARCH])
if test "$target_platform" = "target_android" ; then
USE_ANDROID=1
- use_texturepacker_native=yes
webserver_checkdepends=yes
CFLAGS="$CFLAGS -Wno-psabi"
CXXFLAGS="$CXXFLAGS -Wno-psabi"
@@ -716,8 +712,6 @@ case $use_platform in
raspberry-pi)
target_platform=target_raspberry_pi
use_neon=no
- use_texturepacker=yes
- use_texturepacker_native=yes
use_arch="arm"
use_cpu=arm1176jzf-s
use_hardcoded_tables="yes"
@@ -2106,16 +2100,9 @@ else
final_message="$final_message\n Bluray:\tNo"
fi
-USE_TEXTUREPACKER_NATIVE=0
if test "x$use_texturepacker" != "xno"; then
final_message="$final_message\n TexturePacker:Yes"
USE_TEXTUREPACKER=1
- if test "x$use_texturepacker_native" = "xyes"; then
- USE_TEXTUREPACKER_NATIVE=1
- if [[ ! -d "$NATIVE_ROOT" ]]; then
- NATIVE_ROOT=
- fi
- fi
else
final_message="$final_message\n TexturePacker:No"
USE_TEXTUREPACKER=0
@@ -2525,8 +2512,6 @@ AC_SUBST(USE_PULSE)
AC_SUBST(USE_XRANDR)
AC_SUBST(USE_ALSA)
AC_SUBST(USE_TEXTUREPACKER)
-AC_SUBST(USE_TEXTUREPACKER_NATIVE)
-AC_SUBST(NATIVE_ROOT)
AC_SUBST(USE_AIRTUNES)
AC_SUBST(USE_LIBUDEV)
AC_SUBST(USE_LIBUSB)
--
1.8.4

View File

@ -1,169 +0,0 @@
diff -Naur xbmc-frodo-0ff0d2e/configure.in xbmc-frodo-0ff0d2e.patch/configure.in
--- xbmc-frodo-0ff0d2e/configure.in 2012-10-11 15:45:44.000000000 +0200
+++ xbmc-frodo-0ff0d2e.patch/configure.in 2012-10-11 16:49:08.872850880 +0200
@@ -452,6 +452,12 @@
[use_texturepacker=$enableval],
[use_texturepacker=auto])
+AC_ARG_WITH([texturepacker-root],
+ [AS_HELP_STRING([--with-texturepacker-root],
+ [root dir to search for librarys and includes if building native TexturePacker (default is \$prefix)])],
+ [use_texturepacker_root=$withval],
+ [use_texturepacker_root=$prefix])
+
AC_ARG_WITH([lirc-device],
[AS_HELP_STRING([--with-lirc-device=file],
[specify the default LIRC device (default is /dev/lircd)])],
@@ -2000,13 +2006,13 @@
USE_TEXTUREPACKER_NATIVE=0
if test "x$use_texturepacker" != "xno"; then
- final_message="$final_message\n TexturePacker:Yes"
USE_TEXTUREPACKER=1
- if test "x$use_texturepacker_native" = "xyes"; then
+ if test "x$cross_compiling" = "xyes"; then
USE_TEXTUREPACKER_NATIVE=1
- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then
- USE_TEXTUREPACKER_NATIVE_ROOT=
- fi
+ USE_TEXTUREPACKER_NATIVE_ROOT="$use_texturepacker_root"
+ final_message="$final_message\n TexturePacker:Native ($USE_TEXTUREPACKER_NATIVE_ROOT)"
+ else
+ final_message="$final_message\n TexturePacker:Yes"
fi
else
final_message="$final_message\n TexturePacker:No"
diff -Naur xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in
--- xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in 2012-10-11 15:47:26.000000000 +0200
+++ xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in 2012-10-11 16:49:08.873850900 +0200
@@ -11,26 +11,25 @@
singlecolourfit.cpp \
squish.cpp
-CXXFLAGS+=-I.
-
-LIB=libsquish.a
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_LIB=libsquish-native.so
-CLEAN_FILES+=$(NATIVE_LIB)
+LIB = libsquish.a
+NATIVE_LIB = libsquish-native.so
+CLEAN_FILES += $(NATIVE_LIB)
+
+HOST_CXX ?= g++
+CXXFLAGS += -I.
+HOST_CXXFLAGS += -I.
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
-NATIVE_ARCH=@DARWIN_NATIVE_ARCH@
+ HOST_CXXFLAGS += @DARWIN_NATIVE_ARCH@
endif
-all: $(LIB) $(NATIVE_LIB)
+$(LIB): $(SRCS)
# TexturePacker links to libsquish and needs to run on build system, so make a native flavor.
$(NATIVE_LIB): $(SRCS)
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
else
- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@
-endif
+ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@
endif
include ../../Makefile.include
diff -Naur xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in
--- xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in 2012-10-11 15:47:05.000000000 +0200
+++ xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in 2012-10-11 16:49:08.874850920 +0200
@@ -1,56 +1,54 @@
-DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING
+DEFINES += -DTARGET_POSIX -DUSE_LZO_PACKING
ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),)
-DEFINES += -DHOST_BIGENDIAN
+DEFINES += -DHOST_BIGENDIAN
endif
-CXXFLAGS+= \
+SRCS = \
+ md5.cpp \
+ SDL_anigif.cpp \
+ XBTFWriter.cpp \
+ XBMCTex.cpp \
+ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp
+
+TARGET = TexturePacker
+CLEAN_FILES = $(TARGET)
+
+all: $(TARGET)
+
+HOST_CXX ?= g++
+HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@
+
+LIBS += -lSDL_image -lSDL -llzo2
+LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish
+HOST_LIBS += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2
+HOST_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native
+
+CXXFLAGS += \
-I. \
-I@abs_top_srcdir@/lib \
-I@abs_top_srcdir@/xbmc \
-I@abs_top_srcdir@/xbmc/linux
-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib
+HOST_CXXFLAGS += \
+ -I. \
+ -I@abs_top_srcdir@/lib \
+ -I@abs_top_srcdir@/xbmc \
+ -I@abs_top_srcdir@/xbmc/linux \
+ -I$(HOST_ROOT_PATH)/include
+
+RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@
-ifdef NATIVE_ROOT_PATH
ifeq ($(findstring Darwin,$(shell uname -s)),Darwin)
DEFINES += -DTARGET_DARWIN
NATIVE_ARCH=@DARWIN_NATIVE_ARCH@
RPATH=
endif
-NATIVE_CXXFLAGS+= -I. \
- -I$(NATIVE_ROOT_PATH)/include \
- -I@abs_top_srcdir@/lib \
- -I@abs_top_srcdir@/xbmc \
- -I@abs_top_srcdir@/xbmc/linux
-NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib
-endif
-NATIVE_LIBS += -lSDL_image -lSDL -llzo2
-NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native
-else
-LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish
-endif
-
-LIBS += -lSDL_image -lSDL -llzo2
-
-SRCS = \
- md5.cpp \
- SDL_anigif.cpp \
- XBTFWriter.cpp \
- XBMCTex.cpp \
- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp
-
-
-TARGET = TexturePacker
-CLEAN_FILES=$(TARGET)
-
-all: $(TARGET)
ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
# TexturePacker run native on build system, build it with native tools
$(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h
- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET)
+ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so
+ $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET)
clean:
rm -f $(TARGET)
else