Advertisement
Guest User

Rich

a guest
Apr 4th, 2009
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.23 KB | None | 0 0
  1. pkgname=xbmc-dev
  2. pkgver=19218
  3. pkgrel=1
  4. pkgdesc="XBMC Media Center from SVN tested on Arch 64 (linuxport branch)"
  5. arch=('i686' 'x86_64')
  6. url="http://xbmc.org"
  7. license=('GPL' 'custom')
  8. depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew' \
  9.          'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient' \
  10.          'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3' \
  11.          'tre' 'unzip' 'x-server' 'nvidia-utils' 'nvidia')
  12. makedepends=('autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf'
  13.              'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip')
  14. optdepends=('libcdio: optical disc support'
  15.             'lirc: remote controller support'
  16.             'pmount: mount removable devices as normal user'
  17.             'smbclient: access windows shares'
  18.             'unrar: access compressed files without unpacking them')
  19. install=("${pkgname}.install")
  20. source=('xbmc-libfaad2-configure.patch')
  21. md5sums=('b6f553f4b7bb25cd21cd62ad3919c2b5')
  22.  
  23. build() {
  24.     _svntrunk=http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC
  25.     _svnmod=XBMC
  26.     _prefix=/opt/$pkgname-$pkgver
  27.  
  28.     cd ${srcdir}/
  29.     if [ -d $_svnmod/.svn ]; then
  30.         (cd $_svnmod && svn up -r $pkgver)
  31.     else
  32.         svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
  33.     fi
  34.     msg "SVN checkout done or server timeout"
  35.     msg "Starting make..."
  36.  
  37.     if [ -d "$srcdir/$_svnmod-build" ]; then
  38.         rm -r "$srcdir/$_svnmod-build"
  39.     fi
  40.  
  41.     cp -r "$srcdir/$_svnmod" "$srcdir/$_svnmod-build"
  42.     cd "$srcdir/$_svnmod-build"
  43.     patch -p1 -i $scdir/xbmc-libfaad2-configure.patch
  44.  
  45.     # Arch64 does not have a lib64 dir by default, so xbmc will segfault at startup
  46.     sed -e 's/lib64/lib/g' -i Makefile.include.in || return 1
  47.  
  48.     cd "$srcdir/$_svnmod-build/xbmc/visualizations/Goom/goom2k4-0"
  49.     aclocal
  50.     ./autogen.sh --enable-static --with-pic
  51.     cd "$srcdir/$_svnmod-build/xbmc/cores/dvdplayer/Codecs/libfaad2"
  52.    
  53.     sed '19iAC_PROG_CXX' -i ./configure.in || return 1
  54.     libtoolize
  55.     autoreconf -vif
  56.  
  57.     cd "$srcdir/$_svnmod-build/xbmc/cores/dvdplayer/Codecs/libDVDCSS"
  58.     autoreconf -vif
  59.  
  60.     cd "$srcdir/$_svnmod-build/xbmc/cores/dvdplayer/Codecs/libdvdnav"
  61.     autoreconf -vif
  62.     cd "$srcdir/$_svnmod-build/xbmc/lib/libass"
  63.     autoreconf -vif
  64.     #aclocal
  65.     #libtoolize
  66.     #libtoolize --force --copy
  67.     #cp /usr/bin/libtool .
  68.     cd "$srcdir/$_svnmod-build"
  69.  
  70.     # Remove Mac OS X specific files
  71.     rm -rf system/python/lib-osx/
  72.     rm system/players/dvdplayer/*-osx*
  73.    
  74.     # Fix permissions for the configure scripts
  75.     find -type f -name "configure"|xargs chmod a+x || return 1
  76.    
  77.     # Fix other permissions
  78.     find -type f -name "*.pl"|xargs chmod a+x || return 1
  79.    
  80.     # Make it gcc 4.3.x compatible
  81.     sed '92i#include <stdlib.h>' -i guilib/system.h || return 1
  82.    
  83.     # Make sure to support C++ source code files (thanks gentoo ebuild!)
  84.     for file in `find . -name configure.ac`; do
  85.         echo 'AC_PROG_CXX' >> "${file}"
  86.     done
  87.    
  88.     # Use the libtool script from 2.2.6a to fix some problems with the supplied one
  89.     cp /usr/share/libtool/config/ltmain.sh \
  90.        ${srcdir}/$_svnmod-build/xbmc/cores/dvdplayer/Codecs/libdvdnav/ltmain.sh || return 1
  91.     cp /usr/share/libtool/config/ltmain.sh \
  92.        ${srcdir}/$_svnmod-build/xbmc/lib/libass/ltmain.sh || return 1
  93.  
  94.     # Configure XBMC
  95.     ./configure --prefix=${_prefix} \
  96.                 --disable-debug || return 1
  97.     make distclean
  98.     libtoolize --force --copy
  99.     ./configure --prefix=${_prefix} \
  100.                 --disable-debug || return 1
  101.    
  102.     # Fix false negative detections of realloc that happens some times
  103.     if grep -q 'HAVE_REALLOC 0' config.h; then
  104.       sed -e 's|#define HAVE_REALLOC 0|#define HAVE_REALLOC 1|' \
  105.           -e 's|#define realloc rpl_realloc|/* #define realloc rpl_realloc */|' \
  106.           -i config.h || return 1
  107.     fi
  108.  
  109.     # XBMCTex will segfault on systems with nvidia instaleld if linked to OpenGL
  110.     sed -e 's/-lGLU -lGLEW -lGL//' \
  111.         -i ${srcdir}/$_svnmod-build/tools/XBMCTex/Makefile
  112.  
  113.     # Now (finally) build
  114.     unset MAKEFLAGS
  115.     make -j3  || return 1
  116.     make prefix=${pkgdir}${_prefix} install || return 1
  117.  
  118.     # Fix the shell script
  119.     sed -i '4iexport SDL_AUDIODRIVER=alsa' ${pkgdir}${_prefix}/bin/xbmc
  120.  
  121.     # Xrandr
  122.     install -Dm755 ${srcdir}/$_svnmod-build/xbmc-xrandr \
  123.                    ${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr || return 1
  124.  
  125.     # Menu item
  126.     install -Dm644 ${srcdir}/$_svnmod-build/tools/Linux/xbmc.desktop \
  127.                    ${pkgdir}${_prefix}/share/applications/xbmc.desktop || return 1
  128.     install -Dm644 ${srcdir}/$_svnmod-build/tools/Linux/xbmc.png \
  129.                    ${pkgdir}${_prefix}/share/pixmaps/xbmc.png || return 1
  130.  
  131.     # XBMCTex
  132.     install -Dm755 ${srcdir}/$_svnmod-build/tools/XBMCTex/XBMCTex \
  133.                    ${pkgdir}${_prefix}/share/xbmc/tools/xbmctex || return 1
  134.  
  135.     # License(s)
  136.     install -dm755 ${pkgdir}${_prefix}/share/licenses/${pkgname}
  137.     for licensef in LICENSE.GPL README.linux copying.txt; do
  138.         mv ${pkgdir}${_prefix}/share/xbmc/${licensef} \
  139.            ${pkgdir}${_prefix}/share/licenses/${pkgname} || return 1
  140.     done
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement