xbmc: build Texturepacker

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2012-06-19 04:52:11 +02:00
parent 26d8efb838
commit 1880467095
4 changed files with 409 additions and 5 deletions

View File

@ -253,7 +253,7 @@ cd $PKG_BUILD
$XBMC_WEBSERVER \
--enable-optical-drive \
$XBMC_BLURAY \
--enable-texturepacker \
--enable-texturepacker --with-texturepacker-root="$ROOT/$TOOLCHAIN" \
--disable-external-libraries \
--enable-external-ffmpeg \
@ -266,3 +266,6 @@ make xbmc.bin
if [ "$DISPLAYSERVER" = "xorg-server" ]; then
make xbmc-xrandr
fi
make -C tools/TexturePacker
cp -PR tools/TexturePacker/TexturePacker $ROOT/$TOOLCHAIN/bin

View File

@ -39,6 +39,13 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
# needed for hosttools (Texturepacker)
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS lzo-host SDL-host SDL_image-host"
# some python stuff needed for various addons
PKG_DEPENDS="$PKG_DEPENDS Imaging"
PKG_DEPENDS="$PKG_DEPENDS simplejson"
if [ "$DISPLAYSERVER" = "xorg-server" ]; then
# for libX11 support
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS libX11 libXext"
@ -143,10 +150,6 @@ if [ "$XVBA" = yes ]; then
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS xf86-video-fglrx"
fi
# some python stuff needed for various addons
PKG_DEPENDS="$PKG_DEPENDS Imaging"
PKG_DEPENDS="$PKG_DEPENDS simplejson"
if [ "$PVR" = yes ]; then
PKG_DEPENDS="$PKG_DEPENDS xbmc-addon-xvdr xbmc-addon-vuplus"
fi

View File

@ -0,0 +1,199 @@
diff -Naur xbmc-pvr-11.0.1/configure.in xbmc-pvr-11.0.1.patch/configure.in
--- xbmc-pvr-11.0.1/configure.in 2012-03-27 17:55:54.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/configure.in 2012-06-19 04:44:55.985036378 +0200
@@ -385,6 +385,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)])],
@@ -466,8 +472,7 @@
use_cpu=cortex-a8
check_sdl_arch=[`file /opt/local/lib/libSDL_image.dylib | awk '{V=7; print $V}'`]
if test "x$check_sdl_arch" = "xi386"; then
- use_texturepacker_native=yes
- USE_TEXTUREPACKER_NATIVE_ROOT="/opt/local"
+ use_texturepacker_root="/opt/local"
else
use_texturepacker=no
fi
@@ -484,8 +489,6 @@
*86-apple-darwin*)
use_joystick=no
use_vtbdecoder=no
- use_texturepacker_native=yes
- USE_TEXTUREPACKER_NATIVE_ROOT="$prefix"
ARCH="x86-osx"
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
;;
@@ -1649,17 +1652,17 @@
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
+ USE_TEXTUREPACKER=1
+ final_message="$final_message\n TexturePacker:Yes"
fi
else
- final_message="$final_message\n TexturePacker:No"
USE_TEXTUREPACKER=0
+ final_message="$final_message\n TexturePacker:No"
fi
if test "$use_mid" = "yes"; then
diff -Naur xbmc-pvr-11.0.1/lib/libsquish/Makefile.in xbmc-pvr-11.0.1.patch/lib/libsquish/Makefile.in
--- xbmc-pvr-11.0.1/lib/libsquish/Makefile.in 2012-03-27 17:55:41.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/lib/libsquish/Makefile.in 2012-06-19 02:45:32.926185206 +0200
@@ -1,6 +1,6 @@
ARCH=@ARCH@
-SRCS= \
+SRCS = \
alpha.cpp \
clusterfit.cpp \
colourblock.cpp \
@@ -11,27 +11,30 @@
singlecolourfit.cpp \
squish.cpp
-CXXFLAGS+=-I.
+LIB = libsquish.a
+NATIVE_LIB = libsquish-native.so
+CLEAN_FILES += $(NATIVE_LIB)
+
+HOST_CXX ?= g++
+CXXFLAGS += -I.
+HOST_CXXFLAGS += -I.
+
ifeq ($(findstring powerpc,$(ARCH)),powerpc)
- CXXFLAGS+=-DSQUISH_USE_ALTIVEC=1 -maltivec
+ CXXFLAGS += -DSQUISH_USE_ALTIVEC=1 -maltivec
+ HOST_CXXFLAGS += -DSQUISH_USE_ALTIVEC=1 -maltivec
else ifeq ($(findstring x86,$(ARCH)), x86)
- CXXFLAGS+=-DSQUISH_USE_SSE=2 -msse2
+ CXXFLAGS += -DSQUISH_USE_SSE=2 -msse2
+ HOST_CXXFLAGS += -DSQUISH_USE_SSE=2 -msse2
endif
-LIB=libsquish.a
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_LIB=libsquish-native.so
-CLEAN_FILES+=$(NATIVE_LIB)
+$(LIB): $(SRCS)
-all: $(LIB) $(NATIVE_LIB)
# TexturePacker links to libsquish and needs to run on build system, so make a native flavor.
$(NATIVE_LIB): $(SRCS)
ifeq ($(findstring osx,$(ARCH)),osx)
- g++ -m32 -DSQUISH_USE_SSE=2 -msse2 -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
+ $(HOST_CXX) -m32 $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
else
- g++ -DSQUISH_USE_SSE=2 -msse2 -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-pvr-11.0.1/tools/TexturePacker/Makefile.in xbmc-pvr-11.0.1.patch/tools/TexturePacker/Makefile.in
--- xbmc-pvr-11.0.1/tools/TexturePacker/Makefile.in 2012-03-27 17:55:51.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/tools/TexturePacker/Makefile.in 2012-06-19 04:47:54.700638167 +0200
@@ -1,47 +1,52 @@
-DEFINES += -D_LINUX -DUSE_LZO_PACKING
+DEFINES += -D_LINUX -DUSE_LZO_PACKING
ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),)
-DEFINES += -DHOST_BIGENDIAN
+DEFINES += -DHOST_BIGENDIAN
endif
-CXXFLAGS+= \
- -I. \
- -I@abs_top_srcdir@/lib \
- -I@abs_top_srcdir@/xbmc \
- -I@abs_top_srcdir@/xbmc/linux
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@
-ifdef NATIVE_ROOT_PATH
-ifeq ($(findstring osx,@ARCH@),osx)
-CXXFLAGS+= -m32
-endif
-CXXFLAGS+= -I$(NATIVE_ROOT_PATH)/include
-LIBS += -L$(NATIVE_ROOT_PATH)/lib
-endif
-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 = \
+SRCS = \
md5.cpp \
SDL_anigif.cpp \
XBTFWriter.cpp \
XBMCTex.cpp \
@abs_top_srcdir@/xbmc/guilib/XBTF.cpp
-
-TARGET = TexturePacker
-CLEAN_FILES=$(TARGET)
+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
+
+HOST_CXXFLAGS += \
+ -I. \
+ -I@abs_top_srcdir@/lib \
+ -I@abs_top_srcdir@/xbmc \
+ -I@abs_top_srcdir@/xbmc/linux \
+ -I$(HOST_ROOT_PATH)/include
+
+ifeq ($(findstring osx,@ARCH@),osx)
+CXXFLAGS += -m32
+HOST_CXXFLAGS += -m32
+endif
+
ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
# TexturePacker run native on build system, build it with native tools
$(TARGET): $(SRCS)
- g++ $(DEFINES) $(CXXFLAGS) $(SRCS) $(LIBS) -o $(TARGET)
+ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so
+ $(HOST_CXX) $(DEFINES) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) -o $(TARGET)
+
clean:
rm -f $(TARGET)
else

View File

@ -0,0 +1,199 @@
diff -Naur xbmc-pvr-11.0.1/configure.in xbmc-pvr-11.0.1.patch/configure.in
--- xbmc-pvr-11.0.1/configure.in 2012-03-27 17:55:54.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/configure.in 2012-06-19 04:44:55.985036378 +0200
@@ -385,6 +385,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)])],
@@ -466,8 +472,7 @@
use_cpu=cortex-a8
check_sdl_arch=[`file /opt/local/lib/libSDL_image.dylib | awk '{V=7; print $V}'`]
if test "x$check_sdl_arch" = "xi386"; then
- use_texturepacker_native=yes
- USE_TEXTUREPACKER_NATIVE_ROOT="/opt/local"
+ use_texturepacker_root="/opt/local"
else
use_texturepacker=no
fi
@@ -484,8 +489,6 @@
*86-apple-darwin*)
use_joystick=no
use_vtbdecoder=no
- use_texturepacker_native=yes
- USE_TEXTUREPACKER_NATIVE_ROOT="$prefix"
ARCH="x86-osx"
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
;;
@@ -1649,17 +1652,17 @@
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
+ USE_TEXTUREPACKER=1
+ final_message="$final_message\n TexturePacker:Yes"
fi
else
- final_message="$final_message\n TexturePacker:No"
USE_TEXTUREPACKER=0
+ final_message="$final_message\n TexturePacker:No"
fi
if test "$use_mid" = "yes"; then
diff -Naur xbmc-pvr-11.0.1/lib/libsquish/Makefile.in xbmc-pvr-11.0.1.patch/lib/libsquish/Makefile.in
--- xbmc-pvr-11.0.1/lib/libsquish/Makefile.in 2012-03-27 17:55:41.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/lib/libsquish/Makefile.in 2012-06-19 02:45:32.926185206 +0200
@@ -1,6 +1,6 @@
ARCH=@ARCH@
-SRCS= \
+SRCS = \
alpha.cpp \
clusterfit.cpp \
colourblock.cpp \
@@ -11,27 +11,30 @@
singlecolourfit.cpp \
squish.cpp
-CXXFLAGS+=-I.
+LIB = libsquish.a
+NATIVE_LIB = libsquish-native.so
+CLEAN_FILES += $(NATIVE_LIB)
+
+HOST_CXX ?= g++
+CXXFLAGS += -I.
+HOST_CXXFLAGS += -I.
+
ifeq ($(findstring powerpc,$(ARCH)),powerpc)
- CXXFLAGS+=-DSQUISH_USE_ALTIVEC=1 -maltivec
+ CXXFLAGS += -DSQUISH_USE_ALTIVEC=1 -maltivec
+ HOST_CXXFLAGS += -DSQUISH_USE_ALTIVEC=1 -maltivec
else ifeq ($(findstring x86,$(ARCH)), x86)
- CXXFLAGS+=-DSQUISH_USE_SSE=2 -msse2
+ CXXFLAGS += -DSQUISH_USE_SSE=2 -msse2
+ HOST_CXXFLAGS += -DSQUISH_USE_SSE=2 -msse2
endif
-LIB=libsquish.a
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_LIB=libsquish-native.so
-CLEAN_FILES+=$(NATIVE_LIB)
+$(LIB): $(SRCS)
-all: $(LIB) $(NATIVE_LIB)
# TexturePacker links to libsquish and needs to run on build system, so make a native flavor.
$(NATIVE_LIB): $(SRCS)
ifeq ($(findstring osx,$(ARCH)),osx)
- g++ -m32 -DSQUISH_USE_SSE=2 -msse2 -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
+ $(HOST_CXX) -m32 $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@
else
- g++ -DSQUISH_USE_SSE=2 -msse2 -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-pvr-11.0.1/tools/TexturePacker/Makefile.in xbmc-pvr-11.0.1.patch/tools/TexturePacker/Makefile.in
--- xbmc-pvr-11.0.1/tools/TexturePacker/Makefile.in 2012-03-27 17:55:51.000000000 +0200
+++ xbmc-pvr-11.0.1.patch/tools/TexturePacker/Makefile.in 2012-06-19 04:47:54.700638167 +0200
@@ -1,47 +1,52 @@
-DEFINES += -D_LINUX -DUSE_LZO_PACKING
+DEFINES += -D_LINUX -DUSE_LZO_PACKING
ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),)
-DEFINES += -DHOST_BIGENDIAN
+DEFINES += -DHOST_BIGENDIAN
endif
-CXXFLAGS+= \
- -I. \
- -I@abs_top_srcdir@/lib \
- -I@abs_top_srcdir@/xbmc \
- -I@abs_top_srcdir@/xbmc/linux
-
-ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@
-ifdef NATIVE_ROOT_PATH
-ifeq ($(findstring osx,@ARCH@),osx)
-CXXFLAGS+= -m32
-endif
-CXXFLAGS+= -I$(NATIVE_ROOT_PATH)/include
-LIBS += -L$(NATIVE_ROOT_PATH)/lib
-endif
-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 = \
+SRCS = \
md5.cpp \
SDL_anigif.cpp \
XBTFWriter.cpp \
XBMCTex.cpp \
@abs_top_srcdir@/xbmc/guilib/XBTF.cpp
-
-TARGET = TexturePacker
-CLEAN_FILES=$(TARGET)
+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
+
+HOST_CXXFLAGS += \
+ -I. \
+ -I@abs_top_srcdir@/lib \
+ -I@abs_top_srcdir@/xbmc \
+ -I@abs_top_srcdir@/xbmc/linux \
+ -I$(HOST_ROOT_PATH)/include
+
+ifeq ($(findstring osx,@ARCH@),osx)
+CXXFLAGS += -m32
+HOST_CXXFLAGS += -m32
+endif
+
ifeq (@USE_TEXTUREPACKER_NATIVE@,1)
# TexturePacker run native on build system, build it with native tools
$(TARGET): $(SRCS)
- g++ $(DEFINES) $(CXXFLAGS) $(SRCS) $(LIBS) -o $(TARGET)
+ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so
+ $(HOST_CXX) $(DEFINES) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) -o $(TARGET)
+
clean:
rm -f $(TARGET)
else