"-lpython2.6",
"-L$XBMC_DEPENDS/lib/mysql",
"-lmysqlclient",
+ "-ltag",
);
PRODUCT_NAME = XBMC;
USER_HEADER_SEARCH_PATHS = "$XBMC_DEPENDS/include $XBMC_DEPENDS/include/libcec $XBMC_DEPENDS/include/mysql $XBMC_DEPENDS/include/freetype2 $XBMC_DEPENDS/include/python2.6";
"-lpython2.6",
"-L$XBMC_DEPENDS/lib/mysql",
"-lmysqlclient",
+ "-ltag",
);
PRODUCT_NAME = XBMC;
USER_HEADER_SEARCH_PATHS = "$XBMC_DEPENDS/include $XBMC_DEPENDS/include/libcec $XBMC_DEPENDS/include/mysql $XBMC_DEPENDS/include/freetype2 $XBMC_DEPENDS/include/python2.6";
PKG_CHECK_MODULES([FREETYPE2], [freetype2],
[INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
AC_MSG_ERROR($missing_library))
+PKG_CHECK_MODULES([TAGLIB], [taglib >= 1.8],
+ [INCLUDES="$INCLUDES $TAGLIB_CFLAGS"; LIBS="$LIBS $TAGLIB_LIBS"],
+ AC_MSG_ERROR($missing_library))
if test "$target_platform" = "target_android" ; then
PKG_CHECK_MODULES([ZIP], [libzip],
libswscale-dev, libtinyxml-dev, libtool, libudev-dev, libusb-dev, libva-dev,
libvdpau-dev, libvorbis-dev, libxinerama-dev, libxmu-dev, libxrandr-dev,
libxt-dev, libyajl-dev, lsb-release, nasm [!amd64], python-dev,
- python-support, unzip, yasm, zip, zlib1g-dev, libcap-dev
+ python-support, unzip, yasm, zip, zlib1g-dev, libcap-dev, taglib(>= 1.8)
*** For developers and anyone else who compiles frequently it is recommended to
use ccache
# make
# sudo make install
+We currently need an unreleased version of taglib. We supply a Makefile in
+lib/taglib to make it easy to install into /usr/local until taglib makes a release.
+
+ # make -C lib/taglib
+ # sudo make -C lib/taglib install
+
--------------------------------------------------------------
3.2. Use a single command to get all build dependencies
--------------------------------------------------------------
--- /dev/null
+# lib name, version
+LIBNAME=taglib
+VERSION=1.8
+SOURCE=$(LIBNAME)-$(VERSION)
+ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
+TARBALLS_LOCATION=.
+BASE_URL=http://mirrors.xbmc.org/build-deps/darwin-libs
+RETRIEVE_TOOL=/usr/bin/curl
+RETRIEVE_TOOL_FLAGS=-Ls --create-dirs --output $(TARBALLS_LOCATION)/$(ARCHIVE)
+ARCHIVE_TOOL=tar
+ARCHIVE_TOOL_FLAGS=zxf
+
+SO_NAME=libtaglib.so
+
+all: $(SO_NAME)
+
+$(TARBALLS_LOCATION)/$(ARCHIVE):
+ $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
+
+$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
+ rm -rf $(SOURCE)
+ $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
+ echo $(SOURCE) > .gitignore
+ cd $(SOURCE); rm -rf build; mkdir -p build
+ cd $(SOURCE)/build; cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_STATIC=1
+$(SO_NAME): $(SOURCE)
+ make -C $(SOURCE)/build
+
+install:
+ make -C $(SOURCE)/build install
+
+clean:
+ make -C $(SOURCE)/build clean
+ rm -f .installed
+
+distclean::
+ rm -rf $(SOURCE) .installed
libnfs-1.3.0-win32
libshairplay-d689c6-win32
libjpeg-turbo-1.2.0-win32
-libbluray-0.2.3-win32
\ No newline at end of file
+libbluray-0.2.3-win32
+taglib-1.8beta-win32
--- /dev/null
+@ECHO OFF
+
+SET LOC_PATH=%CD%
+SET FILES=%LOC_PATH%\taglib_d.txt
+
+CALL dlextract.bat taglib %FILES%
+
+cd %TMP_PATH%
+
+del taglib-1.8-win32\readme.txt
+xcopy taglib-1.8-win32\* "%XBMC_PATH%\" /E /Q /I /Y
+
+cd %LOC_PATH%
--- /dev/null
+; filename source of the file
+taglib-1.8-win32.7z http://mirrors.xbmc.org/build-deps/win32/
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;XMD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;XMD_H;TAGLIB_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>false</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;D3D_DEBUG_INFO;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;TAGLIB_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Platinum\Source\Extras;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;NDEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_DX;__STDC_CONSTANT_MACROS;TAGLIB_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>false</StringPooling>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\;..\..\xbmc\;..\..\xbmc\cores\dvdplayer;..\..\xbmc\win32;..\..\lib;..\..\lib\ffmpeg;..\..\lib\ffmpeg\include-xbmc-win32;..\..\lib\liblame\include;..\..\lib\libUPnP\Platinum\Source\Devices\MediaRenderer;..\..\lib\libUPnP\Platinum\Source\Devices\MediaConnect;..\..\lib\libUPnP\Platinum\Source\Devices\MediaServer;..\..\lib\libUPnP\Platinum\Source\Platinum;..\..\lib\libUPnP\Platinum\Source\Core;..\..\lib\libUPnP\Neptune\Source\Core;..\..\lib\libUPnP\Neptune\Source\System\Win32;..\..\lib\win32\pcre;..\..\lib\win32;..\..\xbmc\cores\AudioEngine\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>TARGET_WINDOWS;_WINDOWS;_MSVC;WIN32;_DEBUG;_WIN32_WINNT=0x0501;NTDDI_VERSION=0x05010300;NOMINMAX;_USE_32BIT_TIME_T;HAS_GL;__STDC_CONSTANT_MACROS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;TAGLIB_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>Async</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
</VisualStudio>
</ProjectExtensions>
<Import Project="$(SolutionDir)\$(ProjectFileName).targets.user" Condition="Exists('$(SolutionDir)\$(ProjectFileName).targets.user')" />
-</Project>
\ No newline at end of file
+</Project>
python26-native python26 samba alsa-lib libcdio afpfs-ng libshairport \
libplist libcec libbluray boost tinyxml dummy-libxbmc libsdl \
liblzo2-native libjpeg-turbo-native libpng-native tiff-native libsdl_image rpl \
- libamplayer libssh
+ libamplayer libssh taglib
.PHONY: buildtools $(BUILDTOOLS) subdirs $(SUBDIRS) arm
tiff-native: buildtools libjpeg-turbo-native
liblzo2-native: buildtools
libssh: openssl cmake rpl
+taglib: cmake
X86OVERRIDES=XBMC_OVERRIDE_HOST=i686-android-linux XBMC_OVERRIDE_TOOLCHAIN=$(XBMC_X86_TOOLCHAIN)
--- /dev/null
+include ../Makefile.include
+DEPS= ../Makefile.include Makefile
+
+LIBNAME=taglib
+VERSION=1.8
+SOURCE=$(LIBNAME)-$(VERSION)
+ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
+
+LIBDYLIB=$(PLATFORM)/build/$(LIBNAME)/libtag.so
+all: .installed-$(PLATFORM)
+
+$(TARBALLS_LOCATION)/$(ARCHIVE):
+ $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
+
+$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE)
+ rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
+ $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
+ cd $(PLATFORM); rm -rf build; mkdir -p build
+ cd $(PLATFORM)/build; CC=$(CC) CXX=$(CXX) cmake \
+ -DCMAKE_C_FLAGS:STRING="$(CPPFLAGS) $(CFLAGS)" \
+ -DCMAKE_CXX_FLAGS:STRING="$(CPPFLAGS) $(CXXFLAGS)" \
+ -DCMAKE_INCLUDE_PATH=$(PREFIX)/include \
+ -DCMAKE_LIBRARY_PATH=$(PREFIX)/lib \
+ -DCMAKE_INSTALL_NAME_DIR=$(PREFIX)/lib \
+ -DCMAKE_INSTALL_PREFIX=$(PREFIX) \
+ -DCMAKE_FIND_ROOT_PATH="$(TOOLCHAIN)/sysroot/usr;$(PREFIX)" ..
+
+$(LIBDYLIB): $(PLATFORM)
+ $(MAKE) -C $(PLATFORM)/build
+ touch $@
+.installed-$(PLATFORM): $(LIBDYLIB)
+ $(MAKE) -C $(PLATFORM)/build install
+ rm -f $(PREFIX)/lib/libtag_c.* $(PREFIX)/lib/libtag.so $(PREFIX)/lib/libtag.so.1
+ mv -f $(PREFIX)/lib/libtag.so.1.11.0 $(PREFIX)/lib/libxbtag.so
+ ln -sf $(PREFIX)/lib/libxbtag.so $(PREFIX)/lib/libtag.so
+ $(RPL) -e "libtag.so.1" "libxbtag.so" $(PREFIX)/lib/libxbtag.so
+ -$(READELF) --dynamic $(PREFIX)/lib/libxbtag.so | grep ibrary
+ touch $@
+
+clean:
+ $(MAKE) -C $(PLATFORM)/build clean
+
+distclean::
+ rm -rf $(PLATFORM) .installed-$(PLATFORM)
libafpclient.so \
libshairport.so libplist.so \
libxbogg.so libxbvorbis.so libxbvorbisfile.so libxbFLAC.so libxbmpeg2.so \
- libxbmpeg2convert.so
+ libxbmpeg2convert.so libxbtag.so
PLATFORM_OBJS =
libgpg-error libgcrypt afpfs-ng \
libplist libshairport libcec tinyxml \
samba python26 distribute distutilscross \
- mysqlclient boost \
+ mysqlclient boost taglib \
ifeq ($(DARWIN), ios)
EXCLUDED = libcec libcrystalhd libGLEW libsdl libsdl_mixer libsdl_image
--- /dev/null
+include ../Makefile.include
+include ../config.site.mk
+
+# lib name, version
+LIBNAME=taglib
+VERSION=1.8
+SOURCE=$(LIBNAME)-$(VERSION)
+ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
+
+LIBDYLIB=$(SOURCE)/build/src/$(LIBNAME).dylib
+
+all: $(LIBDYLIB) .installed
+
+$(TARBALLS_LOCATION)/$(ARCHIVE):
+ $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(BASE_URL)/$(ARCHIVE)
+
+$(SOURCE): $(TARBALLS_LOCATION)/$(ARCHIVE)
+ rm -rf $(SOURCE)
+ $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
+ echo $(SOURCE) > .gitignore
+ cd $(SOURCE); rm -rf build; mkdir -p build
+ cd $(SOURCE)/build; CC=$(CC) CXX=$(CXX) cmake \
+ -DCMAKE_C_FLAGS:STRING="$(CPPFLAGS) $(CFLAGS)" \
+ -DCMAKE_CXX_FLAGS:STRING="$(CPPFLAGS) $(CXXFLAGS)" \
+ -DCMAKE_INCLUDE_PATH=$(PREFIX)/include \
+ -DCMAKE_LIBRARY_PATH=$(PREFIX)/lib \
+ -DCMAKE_INSTALL_NAME_DIR=$(PREFIX)/lib \
+ -DCMAKE_INSTALL_PREFIX=$(PREFIX) \
+ -DCMAKE_FIND_ROOT_PATH=$(platform_sdk_path) ..
+
+$(LIBDYLIB): $(SOURCE)
+ make -j $(MAKE_JOBS) -C $(SOURCE)/build
+
+.installed:
+ make -C $(SOURCE)/build install
+ touch $@
+
+clean:
+ make -C $(SOURCE)/build clean
+ rm -f .installed
+
+distclean::
+ rm -rf $(SOURCE) .installed