vdr/xine-lib-vdr/misc Makefile.am Makefile.common Makefile.in SlackBuild SlackBuild.in build_rpms.sh build_rpms.sh.in cdda_server.c libdvdcss-1.2.6-network.patch libxine.pc.in relchk.sh.in vga.xinefont.gz xine-config.in xine-fontconv.c xine-lib.spec xine-lib.spec.in

Darren Salt pkg-vdr-dvb-changes@lists.alioth.debian.org
Mon, 04 Apr 2005 22:29:19 +0000


Update of /cvsroot/pkg-vdr-dvb/vdr/xine-lib-vdr/misc
In directory haydn:/tmp/cvs-serv2129/misc

Added Files:
	Makefile.am Makefile.common Makefile.in SlackBuild 
	SlackBuild.in build_rpms.sh build_rpms.sh.in cdda_server.c 
	libdvdcss-1.2.6-network.patch libxine.pc.in relchk.sh.in 
	vga.xinefont.gz xine-config.in xine-fontconv.c xine-lib.spec 
	xine-lib.spec.in 
Log Message:
Import of VDR-patched xine-lib.

--- NEW FILE: build_rpms.sh ---
#!/bin/sh

#DATE=`date +%y%m%d`
DATE=1

PKGNAME=libxine1

# Some rpm checks
RPMVERSION=`rpm --version | tr [A-Z] [a-z] | sed -e 's/[a-z]//g' -e 's/\.//g' -e 's/ //g'`

# rpm version 4 return 40
if [ `expr $RPMVERSION` -lt 100 ]; then
  RPMVERSION=`expr $RPMVERSION \* 10`
fi

if [ `expr $RPMVERSION` -lt 400 ]; then
  RPM_BA="rpm -ba -ta ./xine-lib-1.0.tar.gz"
  RPM_BB="rpm -bb -ta ./xine-lib-1.0.tar.gz"
elif [ `expr $RPMVERSION` -lt 420 ]; then
  RPM_BA="rpm -ta ./xine-lib-1.0.tar.gz -ba"
  RPM_BB="rpm -ta ./xine-lib-1.0.tar.gz -bb"
else
  RPM_BA="rpmbuild -ta ./xine-lib-1.0.tar.gz -ba"
  RPM_BB="rpmbuild -ta ./xine-lib-1.0.tar.gz -bb"
fi
      
##VERSION="1.0.0"

echo "Creating tarball..."
rm -f config.cache && ./autogen.sh && make dist
rm -rf rpms
mkdir rpms

echo "*****************************************************"
echo
echo "building rpm for xine-lib 1.0"
echo 
echo "current architecture:pentium"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=i586-pc-linux-gnu

eval $RPM_BA

mv /usr/src/redhat/SRPMS/libxine-1.0-$DATE.src.rpm ./rpms/
mv /usr/src/redhat/RPMS/i386/$PKGNAME-1.0-$DATE.i386.rpm ./rpms/$PKGNAME-1.0-$DATE.i586.rpm
mv /usr/src/redhat/RPMS/i386/$PKGNAME-devel-1.0-$DATE.i386.rpm ./rpms/$PKGNAME-devel-1.0-$DATE.i586.rpm

echo "*****************************************************"
echo
echo "building rpm for xine-lib 1.0"
echo 
echo "current architecture:pentiumpro"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=i686-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-1.0-$DATE.i386.rpm ./rpms/$PKGNAME-1.0-$DATE.i686.rpm

echo "*****************************************************"
echo
echo "building rpm for xine-lib 1.0"
echo 
echo "current architecture:k6"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=k6-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-1.0-$DATE.i386.rpm ./rpms/$PKGNAME-1.0-$DATE.k6.rpm

echo "*****************************************************"
echo
echo "building rpm for xine-lib 1.0"
echo 
echo "current architecture:k7"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=athlon-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-1.0-$DATE.i386.rpm ./rpms/$PKGNAME-1.0-$DATE.k7.rpm

echo "Done."

--- NEW FILE: cdda_server.c ---
/* CDDA / DVD server
 *
 * This is a TCP server that can be used with xine's cdda input plugin to
 * play audio CDs over the network. It also supports playing DVDs with a
 * patched version of libdvdcss.
 *
 * quick howto:
 * - compile it:
 *   gcc -o cdda_server cdda_server.c -ldl
 *
 * - start the server:
 *   ./cdda_server /dev/cdrom 3000
 *
 * - start the client:
 *   xine cdda://server:3000/1
 *
 * to play the entire cd (using GUI's "CD" button) just change
 * media.audio_cd.device to the server's mrl.
 *
 * 6 May 2003 - Miguel Freitas
 * This feature was sponsored by 1Control
 *
 * note: see also libdvdcss-1.2.6-network.patch
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdarg.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <dlfcn.h>

#define QLEN 5    /* maximum connection queue length */
#define _BUFSIZ 300

/* CD-relevant defines and data structures */
#define CD_SECONDS_PER_MINUTE   60
#define CD_FRAMES_PER_SECOND    75
#define CD_RAW_FRAME_SIZE       2352
#define CD_LEADOUT_TRACK        0xAA
#define DVD_BLOCK_SIZE          2048

/* functions from external DVD lib */
typedef struct dvd_s *dvd_handle;
static dvd_handle    (*dvd_open)  (const char *);
static int           (*dvd_close) (dvd_handle);
static int           (*dvd_seek)  (dvd_handle, int, int);
static int           (*dvd_title) (dvd_handle, int);
static int           (*dvd_read)  (dvd_handle, void *, int, int);
static char *        (*dvd_error) (dvd_handle);

static int            dvd_support;
static int            msock;
static int            cdda_fd;
static dvd_handle     dvd;
static char          *cdrom_device;


#if defined (__linux__)

#include <linux/cdrom.h>

static int read_cdrom_toc_header(int fd, int *first_track, int *last_track) {

  struct cdrom_tochdr tochdr;

  /* fetch the table of contents */
  if (ioctl(fd, CDROMREADTOCHDR, &tochdr) == -1) {
    perror("CDROMREADTOCHDR");
    return -1;
  }

  *first_track = tochdr.cdth_trk0;
  *last_track = tochdr.cdth_trk1;
  return 0;
}

static int read_cdrom_toc_entry(int fd, int track, int *track_mode,
    int *first_frame_minute, int *first_frame_second, int *first_frame_frame ) {

  struct cdrom_tocentry tocentry;

  memset(&tocentry, 0, sizeof(tocentry));

  tocentry.cdte_track = track;
  tocentry.cdte_format = CDROM_MSF;
  if (ioctl(fd, CDROMREADTOCENTRY, &tocentry) == -1) {
    perror("CDROMREADTOCENTRY");
    return -1;
  }

  *track_mode = (tocentry.cdte_ctrl & 0x04) ? 1 : 0;
  *first_frame_minute = tocentry.cdte_addr.msf.minute;
  *first_frame_second = tocentry.cdte_addr.msf.second;
  *first_frame_frame = tocentry.cdte_addr.msf.frame;

  return 0;
}

static int read_cdrom_frames(int fd, int frame, int num_frames,
  unsigned char *data) {

  struct cdrom_msf msf;

  while( num_frames ) {
    /* read from starting frame... */
    msf.cdmsf_min0 = frame / CD_SECONDS_PER_MINUTE / CD_FRAMES_PER_SECOND;
    msf.cdmsf_sec0 = (frame / CD_FRAMES_PER_SECOND) % CD_SECONDS_PER_MINUTE;
    msf.cdmsf_frame0 = frame % CD_FRAMES_PER_SECOND;

    /* read until ending track (starting frame + 1)... */
    msf.cdmsf_min1 = (frame + 1) / CD_SECONDS_PER_MINUTE / CD_FRAMES_PER_SECOND;
    msf.cdmsf_sec1 = ((frame + 1) / CD_FRAMES_PER_SECOND) % CD_SECONDS_PER_MINUTE;
    msf.cdmsf_frame1 = (frame + 1) % CD_FRAMES_PER_SECOND;

    /* MSF structure is the input to the ioctl */
    memcpy(data, &msf, sizeof(msf));

    /* read a frame */
    if(ioctl(fd, CDROMREADRAW, data, data) < 0) {
      perror("CDROMREADRAW");
      return -1;
    }
    data += CD_RAW_FRAME_SIZE;
    frame++;
    num_frames--;
  }
  return 0;
}

#endif

/* network functions */

static int sock_has_data(int socket){

  fd_set readfds;
  fd_set writefds;
  fd_set exceptfds;
  struct timeval tv;

  tv.tv_sec = 0;
  tv.tv_usec = 0;
  FD_ZERO(&readfds);
  FD_ZERO(&writefds);
  FD_ZERO(&exceptfds);
  FD_SET(socket, &readfds);

  return (select(socket+1, &readfds, &writefds, &exceptfds, &tv) > 0);
}

static int sock_check_opened(int socket) {
  fd_set   readfds, writefds, exceptfds;
  int      retval;
  struct   timeval timeout;
  
  for(;;) {
    FD_ZERO(&readfds); 
    FD_ZERO(&writefds); 
    FD_ZERO(&exceptfds);
    FD_SET(socket, &exceptfds);
    
    timeout.tv_sec  = 0; 
    timeout.tv_usec = 0;
    
    retval = select(socket + 1, &readfds, &writefds, &exceptfds, &timeout);
    
    if(retval == -1 && (errno != EAGAIN && errno != EINTR))
      return 0;
    
    if (retval != -1)
      return 1;
  }

  return 0;
}

#if 0
/*
 * read binary data from socket 
 */
static int sock_data_read (int socket, char *buf, int nlen) {
  int n, num_bytes;

  if((socket < 0) || (buf == NULL))
    return -1;

  if(!sock_check_opened(socket))
    return -1;
  
  num_bytes = 0;

  while (num_bytes < nlen) {

    n = read (socket, &buf[num_bytes], nlen - num_bytes);

    /* read errors */
    if (n < 0) {
      if(errno == EAGAIN) {
        fd_set rset;
        struct timeval timeout;

        FD_ZERO (&rset);
        FD_SET  (socket, &rset);

        timeout.tv_sec  = 30;
        timeout.tv_usec = 0;

        if (select (socket+1, &rset, NULL, NULL, &timeout) <= 0) {
          printf ("network: timeout on read\n");
          return 0;
        }
        continue;
      }
      printf ("network: read error %d\n", errno);
      return 0;
    }

    num_bytes += n;

    /* end of stream */
    if (!n) break;
  }

  return num_bytes;
}
#endif

/*
 * read a line (\n-terminated) from socket 
 */
static int sock_string_read(int socket, char *buf, int len) {
  char    *pbuf;
  int      r, rr;
  void    *nl;
  
  if((socket < 0) || (buf == NULL))
    return -1;

  if(!sock_check_opened(socket))
    return -1;
  
  if (--len < 1)
    return(-1);
  
  pbuf = buf;
  
  do {
    
    if((r = recv(socket, pbuf, len, MSG_PEEK)) <= 0)
      return -1;

    if((nl = memchr(pbuf, '\n', r)) != NULL)
      r = ((char *) nl) - pbuf + 1;
    
    if((rr = read(socket, pbuf, r)) < 0)
      return -1;
    
    pbuf += rr;
    len -= rr;

  } while((nl == NULL) && len);
  
  if (pbuf > buf && *(pbuf-1) == '\n'){
    *(pbuf-1) = '\0';
  }
  *pbuf = '\0';
  return (pbuf - buf);
}

/*
 * Write to socket.
 */
static int sock_data_write(int socket, char *buf, int len) {
  ssize_t  size;
  int      wlen = 0;
  
  if((socket < 0) || (buf == NULL))
    return -1;
  
  if(!sock_check_opened(socket))
    return -1;
  
  while(len) {
    size = write(socket, buf, len);
    
    if(size <= 0) {
      printf("error writing to socket %d\n",socket);
      return -1;
    }
    
    len -= size;
    wlen += size;
    buf += size;
  }

  return wlen;
}

int sock_string_write(int socket, char *msg, ...) {
  char     buf[_BUFSIZ];
  va_list  args;
  
  va_start(args, msg);
  vsnprintf(buf, _BUFSIZ - 1, msg, args);
  va_end(args);
  
  /* Each line sent is '\n' terminated */
  if((buf[strlen(buf)] == '\0') && (buf[strlen(buf) - 1] != '\n'))
      strcat(buf, "\n");
 
  return sock_data_write(socket, buf, strlen(buf));
}


/**
 * Setup dvd read functions
 */
int dvdinput_setup(void)
{
  void *dvdcss_library = NULL;
  char **dvdcss_version = NULL;

  /* dlopening libdvdcss */

#ifndef _MSC_VER
  dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
#else
  dvdcss_library = dlopen("libdvdcss.dll", RTLD_LAZY);
#endif

  if(dvdcss_library != NULL) {
#if defined(__OpenBSD__) && !defined(__ELF__)
#define U_S "_"
#else
#define U_S
#endif
    dvd_open = (dvd_handle (*)(const char*))
      dlsym(dvdcss_library, U_S "dvdcss_open");
    dvd_close = (int (*)(dvd_handle))
      dlsym(dvdcss_library, U_S "dvdcss_close");
    dvd_title = (int (*)(dvd_handle, int))
      dlsym(dvdcss_library, U_S "dvdcss_title");
    dvd_seek = (int (*)(dvd_handle, int, int))
      dlsym(dvdcss_library, U_S "dvdcss_seek");
    dvd_read = (int (*)(dvd_handle, void*, int, int))
      dlsym(dvdcss_library, U_S "dvdcss_read");
    dvd_error = (char* (*)(dvd_handle))
      dlsym(dvdcss_library, U_S "dvdcss_error");

    dvdcss_version = (char **)dlsym(dvdcss_library, U_S "dvdcss_interface_2");

    if(dlsym(dvdcss_library, U_S "dvdcss_crack")) {
      fprintf(stderr,
	      "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n"
	      "libdvdread: You should get the latest version from "
	      "http://www.videolan.org/\n" );
      dlclose(dvdcss_library);
      dvdcss_library = NULL;
    } else if(!dvd_open  || !dvd_close || !dvd_title || !dvd_seek
	      || !dvd_read || !dvd_error || !dvdcss_version) {
      fprintf(stderr,  "libdvdread: Missing symbols in libdvdcss.so.2, "
	      "this shouldn't happen !\n");
      dlclose(dvdcss_library);
    }
  }

  if(dvdcss_library != NULL) {
    printf("Using libdvdcss version %s for DVD access\n",
            *dvdcss_version);

    return 1;

  } else {
    printf("No libdvdcss: DVD support unavailable.\n");

    return 0;
  }
}


#define CMD_CDDA_OPEN       "cdda_open"
#define CMD_CDDA_READ       "cdda_read"
#define CMD_CDDA_TOCHDR     "cdda_tochdr"
#define CMD_CDDA_TOCENTRY   "cdda_tocentry"
#define CMD_DVD_OPEN        "dvd_open"
#define CMD_DVD_ERROR       "dvd_error"
#define CMD_DVD_SEEK        "dvd_seek"
#define CMD_DVD_READ        "dvd_read"
#define CMD_DVD_TITLE       "dvd_title"

static int process_commands( int socket )
{
  char     cmd[_BUFSIZ];
  int      start_frame, num_frames, i;
  int      blocks, flags;
  int      ret, n;

  while( sock_has_data(socket) )
  {
    if( sock_string_read(socket, cmd, _BUFSIZ) <= 0 )
         return -1;

    if( !strncmp(cmd, CMD_CDDA_OPEN, strlen(CMD_CDDA_OPEN)) ) {

      if( cdda_fd != -1 )
        close(cdda_fd);

      cdda_fd = open ( cdrom_device, O_RDONLY);
      if( cdda_fd == -1 )
      {
        printf( "argh ! couldn't open CD (%s)\n", cdrom_device );
        if( sock_string_write(socket,"-1 0") < 0 )
          return -1;
      }
      else {
        if( sock_string_write(socket,"0 0") < 0 )
          return -1;
      }
      continue;
    }

    if( dvd_support && !strncmp(cmd, CMD_DVD_OPEN, strlen(CMD_DVD_OPEN)) ) {

      if( dvd != NULL )
        dvd_close(dvd);

      dvd = dvd_open ( cdrom_device );
      if( !dvd )
      {
        printf( "argh ! couldn't open DVD (%s)\n", cdrom_device );
        if( sock_string_write(socket,"-1 0") < 0 )
          return -1;
      }
      else {
        if( sock_string_write(socket,"0 0") < 0 )
          return -1;
      }
      continue;
    }

    if( cdda_fd != -1 ) {

      if( !strncmp(cmd, CMD_CDDA_READ, strlen(CMD_CDDA_READ)) ) {
        char *buf;

        sscanf(cmd,"%*s %d %d", &start_frame, &num_frames);

        n = num_frames * CD_RAW_FRAME_SIZE;
        buf = malloc( n );
        if( !buf )
        {
          printf("fatal error: could not allocate memory\n");
          exit(1);
        }

        ret = read_cdrom_frames(cdda_fd, start_frame, num_frames, buf );

        if( sock_string_write(socket,"%d %d", ret, n) < 0 )
          return -1;

        if( sock_data_write(socket,buf,n) < 0 )
          return -1;

        free(buf);
        continue;
      }

      if( !strncmp(cmd, CMD_CDDA_TOCHDR, strlen(CMD_CDDA_TOCHDR)) ) {
        int first_track, last_track;

        ret = read_cdrom_toc_header(cdda_fd, &first_track, &last_track);

        if( sock_string_write(socket,"%d 0 %d %d", ret, first_track, last_track) < 0 )
          return -1;

        continue;
      }

      if( !strncmp(cmd, CMD_CDDA_TOCENTRY, strlen(CMD_CDDA_TOCENTRY)) ) {
        int track_mode, first_frame_minute, first_frame_second, first_frame_frame;

        sscanf(cmd,"%*s %d", &i);

        ret = read_cdrom_toc_entry(cdda_fd, i, &track_mode,
               &first_frame_minute, &first_frame_second, &first_frame_frame );

        if( sock_string_write(socket,"%d 0 %d %d %d %d", ret,
             track_mode, first_frame_minute, first_frame_second, first_frame_frame) < 0 )
          return -1;

        continue;
      }

    } else if ( dvd != NULL ) {

      if( !strncmp(cmd, CMD_DVD_ERROR, strlen(CMD_DVD_ERROR)) ) {
        char *errmsg = dvd_error( dvd );

        n = strlen(errmsg)+1;
        if( sock_string_write(socket,"0 %d", n) < 0 )
          return -1;

        if( sock_data_write(socket,errmsg,n) < 0 )
          return -1;

        continue;
      }

      if( !strncmp(cmd, CMD_DVD_SEEK, strlen(CMD_DVD_SEEK)) ) {

        sscanf(cmd,"%*s %d %d", &blocks, &flags);
        ret = dvd_seek(dvd, blocks, flags);

        if( sock_string_write(socket,"%d 0", ret) < 0 )
          return -1;

        continue;
      }

      if( !strncmp(cmd, CMD_DVD_READ, strlen(CMD_DVD_READ)) ) {
        char *buf;

        sscanf(cmd,"%*s %d %d", &blocks, &flags);

        n = blocks * DVD_BLOCK_SIZE;
        buf = malloc( n );
        if( !buf )
        {
          printf("fatal error: could not allocate memory\n");
          exit(1);
        }
        ret = dvd_read(dvd, buf, blocks, flags);
        if( sock_string_write(socket,"%d %d", ret, n) < 0 )
          return -1;

        if( sock_data_write(socket,buf,n) < 0 )
          return -1;

        free(buf);
        continue;
      }

      if( !strncmp(cmd, CMD_DVD_TITLE, strlen(CMD_DVD_TITLE)) ) {

        sscanf(cmd,"%*s %d", &blocks);

        ret = dvd_title(dvd, blocks);

        if( sock_string_write(socket,"%d 0", ret) < 0 )
          return -1;

        continue;
      }

    }

    /* no device open, or unknown command. return error */
    if( sock_string_write(socket,"-1 0") < 0 )
      return -1;
  }
  return 0;
}

static void server_loop()
{
  struct sockaddr_in fsin; /* the from address of a client */
  int  alen;                /*  from-address length */
  int fd, nfds;
  fd_set  rfds;          /* read file descriptor set */
  fd_set  afds;          /* active file descriptor set */

  /* SIGPIPE when connection closed during write call */
  signal( SIGPIPE, SIG_IGN );

  nfds = getdtablesize();

  FD_ZERO(&afds);

  FD_SET(msock, &afds);

  while (1)
  {
    memcpy( &rfds, &afds, sizeof(rfds) );

    if (select(nfds, &rfds, (fd_set *)0, (fd_set *)0, (struct timeval *)0) < 0)
      continue; /* erro?? */

    if (FD_ISSET(msock, &rfds))
    {
      int   ssock;
      alen = sizeof(fsin);

      ssock = accept(msock, (struct sockaddr *)&fsin, &alen);
      if (ssock < 0)
        continue; /* erro?? */

      FD_SET(ssock, &afds);
      printf("new connection socket %d\n", ssock);
    }

    for (fd=0; fd<nfds; ++fd)
    {
      if  (fd  != msock && FD_ISSET(fd, &rfds))
        if (process_commands(fd) < 0)
        {
          printf("closing socket %d\n", fd);
          close(fd);
          FD_CLR(fd, &afds);

          if( cdda_fd != -1 ) {
            close(cdda_fd);
            cdda_fd = -1;
          }

          if( dvd != NULL ) {
            dvd_close(dvd);
            dvd = NULL;
          }
        }
    }
  }
}


int main( int argc, char *argv[] )
{
  unsigned int   port;
  struct sockaddr_in servAddr;

  /* Print version number */
  printf( "CDDA / DVD tcp server v0.1\n" );
  dvd_support = dvdinput_setup();

  /* Check for 2 arguments */
  if( argc != 3 )
  {
    printf( "usage: %s <device> <server_port>\n", argv[0] );
    return -1;
  }

  port = atoi( argv[2] );

  cdda_fd = -1;
  dvd = NULL;
  cdrom_device = argv[1];

  msock = socket(PF_INET, SOCK_STREAM, 0);
  if( msock < 0 )
  {
    printf("error opening master socket.\n");
    return 0;
  }
  servAddr.sin_family = AF_INET;
  servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
  servAddr.sin_port = htons(port);

  if(bind(msock, (struct sockaddr *) &servAddr, sizeof(servAddr))<0)
  {
    printf("bind port %d error\n", port);
    return 0;
  }

  listen(msock,QLEN);

  printf("listening on port %d...\n", port);

  server_loop();

  close(msock);

  return 0;
}


--- NEW FILE: SlackBuild ---
#!/bin/sh
#
# This script generate some valid Slackware packages
#
#
# Some variables.
#
CWD=`pwd`
PACKAGE=xine-lib.tgz
SLCK=$CWD/slack
PREFIX=${PREFIX:-"/usr/local"}
PKG=$CWD/slktmp
TMPBUILD=$CWD/tmpbuild
#DOINSTDIR=/install

#
# Create the post-install script
#
do_install_sh() {
cat > doinst.sh <<EOF
/sbin/ldconfig
EOF
}

#
# Create package description for pkgtool.
#
do_descr() {
cat > package_descriptions << EOF
xine-lib: xine-lib 1.0.
xine-lib:
xine-lib: xine-lib is the beating heart of xine (a free gpl-licensed 
xine-lib: video player for unix-like systems) which among others provides 
xine-lib: support for decoding (and playing back) of many today available
xine-lib: audio/video codecs, like mpeg-4 (DivX), mpeg-2 (DVD, SVCD), 
xine-lib: mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
xine-lib: This library contains (and uses) numerous processor specific 
xine-lib: optimizations to provide a smooth playback and to minimize the 
xine-lib: overall demand of CPU power.
xine-lib:
xine-lib: Don't hesitate to use %{name} in your own projects as long as 
xine-lib: your usage complies to the GPL. More information about 
xine-lib: GPL-license can be found at http://www.gnu.org/licenses/gpl.html
xine-lib:
xine-lib:
EOF
}

#
# Building binaries process, then install and move package in right place
#
do_build() {
  cd $CWD
  rm -rf $TMPBUILD
  mkdir -p $TMPBUILD
  cd $TMPBUILD && tar -xzf $CWD/xine-lib-1.0.tar.gz
  do_install_sh;
  cd xine-lib-1.0
  DIE=1
  echo "./configure --prefix=$PREFIX $CONFIG_OPT && make && make install-strip DESTDIR=$PKG LIBRARY_PATH=$TMPBUILD/xine-lib-1.0/src/xine-engine/.libs" && \
  ./configure --prefix=$PREFIX $CONFIG_OPT && make && make install-strip DESTDIR=$PKG LIBRARY_PATH=$TMPBUILD/xine-lib-1.0/src/xine-engine/.libs && \
  mkdir -p $PKG/install && cp $TMPBUILD/doinst.sh $PKG/install && \
  cd $PKG && \
  echo "n" | /sbin/makepkg $PACKAGE && \
  mv $PACKAGE $SLCK && \
  cd $SLCK && DIE=0
  do_descr
}

#
# Cleaning building directory
#
do_clean() {
  rm -rf $TMPBUILD
  rm -f $PACKAGE package_descriptions
  rm -rf $PKG
  cd $CWD
}

#
# Build for PPro
# 
build_pentiumpro() {
  echo "*****************************************************"
  echo
  echo "building slack for xine-lib 1.0"
  echo 
  echo "current architecture:pentiumpro"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=i686-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf xine-lib-1.0-i686.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for Pentium
#
build_pentium() {
  echo "*****************************************************"
  echo
  echo "building slack for xine-lib 1.0"
  echo 
  echo "current architecture:pentium"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=i586-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf xine-lib-1.0-i586.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for K6
#
build_k6() {
  echo "*****************************************************"
  echo
  echo "building slack for xine-lib 1.0"
  echo 
  echo "current architecture:k6"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=k6-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf xine-lib-1.0-k6.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for K7
#
build_k7() {
  echo "*****************************************************"
  echo
  echo "building slack for xine-lib 1.0"
  echo 
  echo "current architecture:k7"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=athlon-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf xine-lib-1.0-k7.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Main function
#
main() {
  rm -rf $SLCK
  mkdir -p $SLCK
  rm -f config.cache && ./autogen.sh && make dist
  build_pentiumpro
  build_pentium
  build_k6
  build_k7
  mv -f $CWD/xine-lib-1.0.tar.gz $SLCK
}


#
# Handle arguments if available.
#
build_arch() {
      rm -rf $SLCK
      mkdir -p $SLCK
      rm -f config.cache && ./autogen.sh && make dist
      $barch
      mv -f $CWD/xine-lib-1.0.tar.gz $SLCK
}

case "$1" in
    pentiumpro | ppro | i686 | 686)
      barch=build_pentiumpro
      build_arch
    ;;
    pentium | i586 | 586)
      barch=build_pentium
      build_arch
    ;;
    k6)
      barch=build_k6
      build_arch
    ;;
    k7 | athlon)
      barch=build_k7
      build_arch
    ;;
    *)
      main
    ;;
esac

--- NEW FILE: xine-lib.spec.in ---
%define shortname  libxine
%define name       libxine1
%define version    @SPEC_VERSION@
%define dirversion 1.0.0
%define release    0

%define major      1
%define libname    %{shortname}%{major}

# Build separat packages:
# 1 create a sparate package
# 0 include files in main package
%define BUILD_AA        0
%define BUILD_ALSA09    0
%define BUILD_ARTS      0
%define BUILD_DEVEL     1
%define BUILD_DVB       0
%define BUILD_DVD       0
%define BUILD_DXR3      0
%define BUILD_ESD       0
%define BUILD_FLAC      0
%define BUILD_GNOME_VFS 0
%define BUILD_OGG       0
%define BUILD_OPENGL    0
%define BUILD_SDL       0
%define BUILD_DIRECTFB  0
%define BUILD_SYNCFB    0
%define BUILD_W32DLL    0
%define BUILD_XVMC      0
%define BUILD_STK       0

Name:           %{name}
Summary:        A portable video/audio library for unix-like systems.
Summary(cs):    Přenositelná video a audio knihovna pro unixovské systémy
Summary(de):    Eine portabele Audio-/Video-Bibliothek für unixartige Systeme.
Summary(fi):    Joustava video- ja ääniohjelmointikirjasto Unix-tyylisille käyttöjärjestelmille.
Version:        %{version}
Release:        %{release}
License:        GPL
Group:          Development/Libraries
URL:            http://xinehq.de
Source:         http://xinehq.de/files/@PACKAGE@-@VERSION@.tar.gz
Packager:       Manfred Tremmel <Manfred.Tremmel@iiv.de>
Obsoletes:      xine
Obsoletes:      xine-lib
Obsoletes:      xine-lib-oss
Obsoletes:      xine-lib-xv
Obsoletes:      libxine0
Obsoletes:      %{shortname}
Obsoletes:      xine-vcdx
Provides:       xine
Provides:       xine-lib
Provides:       %{shortname} = %{version}-%{release}
Provides:       xine-vcdx
BuildRoot:      %{_tmppath}/%{name}-buildroot

%description
libxine is the beating heart of xine (a free gpl-licensed video player for
unix-like systems) which among others provides support for decoding (and
playing back) of many today available audio/video codecs, like mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
This library contains (and uses) numerous processor specific optimizations to
provide a smooth playback and to minimize the overall demand of CPU power.

Don't hesitate to use libxine in your own projects as long as your usage
complies to the GPL. More information about GPL-license can be found at
http://www.gnu.org/licenses/gpl.html

%description -l cs
libxine je tepající srdce xine (svobodného videopřehrávače pod licencí GPL pro
unixovské systémy). Mimo jiné poskytuje podporu pro dekódování (a přehrávání)
mnoha dnes dostupnými audio a video kodeky jako jsou např. mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime a RealMedia. Tato knihovna používá
četné procesorově závislé optimalizace k dosažení plynulého přehrávání a
zmenšení celkového nároku na výkon procesoru.

Dokud to bude ve shodě s GPL, neváhejte použít libxine ve vašich vlastních
projektech. Více informací o GPL licenci můžete nalézt na
http://www.gnu.org/licenses/gpl.html.

%description -l de
libxine ist das Herzstück von xine (einem freien, GPL lizensiertem Audio- und
Video-Abspielprogramm für unixartige Systeme). libxine stellt die Funktionen
zur Dekodierung und Wiedergabe vieler aktueller Audio- und Videocodecs zur
Verfügung, wie z.B. MPEG-4 (DivX), MPEG-2 (DVD, SVCD) und MPEG-1 (VCD),
Quicktime und RealMedia um nur einige zu nennen.
Die Bibliothek enthält und benutzt eine Vielzahl von prozessorspezifischen
Optimierungen, um eine flüssige Wiedergabe mit minimaler Prozessorbelastung
gewährleisten zu könnnen.

Zögern Sie nicht libxine in Ihren eigenen Projekten zu nutzen. Beachten Sie
hierzu jedoch die in der GPL Lizenz vereinbarten Bestimmungen. Weitere
Informationen zur GPL-Lizenz finden Sie unter http://www.gnu.org/licenses/gpl.html

%description -l fi
libxine on xinen sydän (vapaa GPL-linsensoitu videosoitinohjelma Unix-tyylisille
käyttöjärjestelmille), joka muun muassa tarjoaa mahdollisuudet pakatun videon
ja äänen purkamiseen (sekä näyttämiseen) suurimmalla osalla nykyaikaista äänen-
ja kuvanpakkausformaateista.
Tällaisia ovat mpeg-4 (DivX;-)), mpeg-2 (DVD, SVCD), mpeg-1 (VCD) muutamia
mainitaksemme. xinen purkukirjasto käyttää monia matalan tason prosessoripohjaisia
optimisaatiomenetelmiä tarjotakseen sulavan kuvantoistokokemuksen. Tämä on tarpeen
myös minimoimaan tarvittavaa prosessoritehoa.

Olet tervetullut käyttämään libxine:a omissa projekteissasi kunhan ne ovat GPL-
lisenssin kanssa yhteensopivia. lisätietoja GPL-lisenssistä löytyy osoitteesta:
http://www.gnu.org/licenses/gpl.html

%if %BUILD_DEVEL
%package devel
Summary:        Header files and documentation to develope programs with libxine.
Summary(cs):    Hlavičkové soubory a dokumentace pro vývoj programů, které používají libxine
Summary(de):    Headerdateien und Dokumentationen, um Programme mit libxine entwickeln zu können.
Summary(fi):    Header-tiedostot ja dokumentaatio, joita tarvitset kehittäessäsi ohjelmia libxine:n kanssa.
Group:	       Development/Libraries
Obsoletes:      xine-lib-devel
Obsoletes:      xine-devel
Obsoletes:      libxine0-devel
Provides:       %{shortname}-devel = %{version}-%{release}
Provides:       xine-devel
Requires:       %{libname} = %{version}-%{release}

%description devel
This package contains header files and documentation required to develope
programs with libxine.

libxine is the beating heart of xine (a free gpl-licensed video player for
unix-like systems) which among others provides support for decoding (and
playing back) of many today available audio/video codecs, like mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
This library contains (and uses) numerous processor specific optimizations to
provide a smooth playback and to minimize the overall demand of CPU power.

Don't hesitate to use libxine in your own projects as long as your usage
complies to the GPL. More information about GPL-license can be found at
http://www.gnu.org/licenses/gpl.html

%description devel -l cs
Tento balíček obsahuje hlavičkové soubory a dokumentaci potřebnou pro vývoj
programů, které používají libxine.

libxine je tepající srdce xine (svobodného videopřehrávače pod licencí GPL pro
unixovské systémy). Mimo jiné poskytuje podporu pro dekódování (a přehrávání)
mnoha dnes dostupnými audio a video kodeky jako jsou např. mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime a RealMedia. Tato knihovna používá
četné procesorově závislé optimalizace k dosažení plynulého přehrávání a
zmenšení celkového nároku na výkon procesoru.

Dokud to bude ve shodě s GPL, neváhejte použít libxine ve vašich vlastních
projektech. Více informací o GPL licenci můžete nalézt na
http://www.gnu.org/licenses/gpl.html.

%description devel -l de
Dieses Paket enthält die Headerdateien und Dokumentationen, um Programme
mit libxine entwickeln zu können.

libxine ist das Herzstück von xine (einem freien, GPL lizensiertem Audio- und
Video-Abspielprogramm für unixartige Systeme). libxine stellt die Funktionen
zur Dekodierung und Wiedergabe vieler aktueller Audio- und Videocodecs zur
Verfügung, wie z.B. MPEG-4 (DivX), MPEG-2 (DVD, SVCD) und MPEG-1 (VCD),
Quicktime und RealMedia um nur einige zu nennen.
Die Bibliothek enthält und benutzt eine Vielzahl von prozessorspezifischen
Optimierungen, um eine flüssige Wiedergabe mit minimaler Prozessorbelastung
gewährleisten zu könnnen.

Zögern Sie nicht libxine in Ihren eigenen Projekten zu nutzen. Beachten Sie
hierzu jedoch die in der GPL Lizenz vereinbarten Bestimmungen. Weitere
Informationen zur GPL-Lizenz finden Sie unter http://www.gnu.org/licenses/gpl.html

%description devel -l fi
libxine on xinen sydän (vapaa GPL-linsensoitu videosoitinohjelma Unix-tyylisille
käyttöjärjestelmille), joka muun muassa tarjoaa mahdollisuudet pakatun videon
ja äänen purkamiseen (sekä näyttämiseen) suurimmalla osalla nykyaikaista äänen-
ja kuvanpakkausformaateista.
Tällaisia ovat mpeg-4 (DivX;-)), mpeg-2 (DVD, SVCD), mpeg-1 (VCD) muutamia
mainitaksemme. xinen purkukirjasto käyttää monia matalan tason prosessoripohjaisia
optimisaatiomenetelmiä tarjotakseen sulavan kuvantoistokokemuksen. Tämä on tarpeen
myös minimoimaan tarvittavaa prosessoritehoa.

Olet tervetullut käyttämään libxine:a omissa projekteissasi kunhan ne ovat GPL-
lisenssin kanssa yhteensopivia. lisätietoja GPL-lisenssistä löytyy osoitteesta:
http://www.gnu.org/licenses/gpl.html
%endif

%if %BUILD_ALSA09
%package alsa09
Summary:        libxine sound output plugin for alsa >= 0.9
Summary(cs):    Zvukový výstupní modul libxine pro ALSA >= 0.9
Summary(de):    libxine Soundausgabeplguin für Alsa >= 0.9
Summary(fi):    libxine-Ddnilisdke uudelle Linux:n ddniarkkitehtuurille (ALSA >= 0.9)
Group:          Development/Libraries
Obsoletes:      xine-lib-alsa09
Obsoletes:      libxine0-alsa09
Requires:       %{libname} = %{version}-%{release}

%description alsa09
libxine sound output plugin for alsa >= 0.9

%description alsa09 -l cs
Zvukový výstupní modul libxine pro ALSA >= 0.9.

%description alsa09 -l de
libxine Soundausgabe Plugin für alsa >= 0.9

%description alsa09 -l fi
libxine-ddnilisdke uudelle Linux:n ddniarkkitehtuurille (ALSA >= 0.9)
%endif

%if %BUILD_ARTS
%package arts
Summary:        libxine sound output plugin for arts (KDE-soundserver)
Summary(cs):    Zvukový výstupní modul libxine pro ARTS (zvukový server KDE)
Summary(de):    libxine Soundausgabeplugin für arts (KDE-Soundserver)
Summary(fi):    libxine-Ddnilisdke Arts ddnipalvelimelle (KDE:n ddnipalvelin)
Group:          Development/Libraries
Obsoletes:      xine-lib-arts
Obsoletes:      libxine0-arts
Requires:       %{libname} = %{version}-%{release}

%description arts
libxine sound output plugin for arts (KDE-soundserver)

%description arts -l cs
Zvukový výstupní modul libxine pro ARTS (zvukový server KDE).

%description arts -l de
libxine Soundausgabeplugin für arts (KDE-Soundserver)

%description arts -l fi
libxine-Ddnilisdke Arts ddnipalvelimelle (KDE:n ddnipalvelin)
%endif

%if %BUILD_ESD
%package esd
Summary:        libxine sound output plugin for enlightmend sound daemon
Summary(cs):    Zvukový výstupní modul libxine pro Enlightmend Sound Daemon
Summary(de):    libxine Soundausgabeplugin für den Enlightmend Sound Daemon
Summary(fi):    libxine-ddnilisdke Enlightmend ddnipalvelimelle
Group:          Development/Libraries
Obsoletes:      xine-lib-esd
Obsoletes:      libxine0-esd
Requires:       %{libname} = %{version}-%{release}

%description esd
libxine sound output plugin for enlightmend sound daemon (Gnome and Enlightment)

%description esd -l cs
Zvukový výstupní modul libxine pro Enlightmend Sound Daemon.

%description esd -l de
libxine Soundausgabeplugin für den Enlightmend Sound Daemon (Gnome und Enlightment)

%description esd -l fi
libxine-ddnilisdke Enlightmend ddnipalvelimelle
%endif

%if %BUILD_SDL
%package sdl
Summary:        libxine video output plugin for SDL-library (Simple DirectMedia Layer)
Summary(cs):    Videovýstupní modul libxine pro knihovnu SDL (Simple DirectMedia Layer)
Summary(de):    libxine Videoausgabeplguin für SDL-Bibliothek (Simple DirectMedia Layer)
Summary(fi):    libxine-Videolisdke SDL grafiikkakirjastolle (Simple DirectMedia Layer)
Group:          Development/Libraries
Obsoletes:      xine-lib-sdl
Obsoletes:      libxine0-sdl
Requires:       %{libname} = %{version}-%{release}

%description sdl
libxine video output plugin for SDL-library (Simple DirectMedia Layer)

%description sdl -l cs
Videovýstupní modul libxine pro knihovnu SDL (Simple DirectMedia Layer).

%description sdl -l de
libxine Videoausgabeplguin für SDL-Bibliothek (Simple DirectMedia Layer)

%description sdl -l fi
libxine-Videolisdke SDL-grafiikkakirjastolle (Simple DirectMedia Layer)
%endif

%if %BUILD_AA
%package aa
Summary:        libxine video output plugin for aa-library (ASCII Art)
Summary(cs):    Videovýstupní modul libxine pro knihovnu aa (ASCII Art)
Summary(de):    libxine Videoausgabeplugin für aa-Bibliothek (ASCII Art)
Summary(fi):    libxine-Videolisdke aa-grafiikkakirjastolle (ASCII Art)
Group:          Development/Libraries
Obsoletes:      xine-lib-aa
Obsoletes:      libxine0-aa
Obsoletes:      xine-extra
Provides:       xine-extra
Requires:       %{libname} = %{version}-%{release}

%description aa
libxine video output plugin for aa-library (ASCII Art)

%description aa -l cs
Videovýstupní modul libxine pro knihovnu aa (ASCII Art).

%description aa -l de
libxine Videoausgabeplugin für aa-Bibliothek (ASCII Art)

%description aa -l fi
libxine-Videolisdke aa-grafiikkakirjastolle (ASCII Art)
%endif

%if %BUILD_OPENGL
%package opengl
Summary:        libxine video output plugin using OpenGL (3D graphic cards)
Summary(cs):    Videovýstupní modul libxine používající OpenGL (3D grafické karty)
Summary(de):    libxine Videoausgabeplugin per OpenGL (3D Grafikkarte)
Group:          Development/Libraries
Obsoletes:      xine-lib-opengl
Obsoletes:      libxine0-opengl
Requires:       %{libname} = %{version}-%{release}

%description opengl
libxine video output plugin using OpenGL (3D graphic cards)

%description opengl -l cs
Videovýstupní modul libxine, který používá OpenGL (3D grafické karty).

%description opengl -l de
libxine Videoausgabeplugin per OpenGL (3D Grafikkarte)
%endif

%if %BUILD_SYNCFB
%package syncfb
Summary:        libxine video output plugin using synchroniced framebuffer (Matrox cards)
Summary(cs):    Videovýstupní modul libxine používající framebuffer (karty Matrox)
Summary(de):    libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)
Summary(fi):    libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
Group:          Development/Libraries
Obsoletes:      libxine0-syncfb
Requires:       %{libname} = %{version}-%{release}

%description syncfb
libxine video output plugin using synchroniced framebuffer (Matrox cards)

%description syncfb -l cs
Videovýstupní modul libxine, který používá synchronizovaný framebuffer (karty
Matrox).

%description syncfb -l de
libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)

%description syncfb -l fi
libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
%endif

%if %BUILD_DVD
%package dvd
Summary:        libxine input plugin for playing video-dvd's with dvd-navigation
Summary(cs):    Vstupní modul libxine na přehrávání VideoDVD s DVD navigací
Summary(de):    libxine Inputplugin zum abspielen von Video-DVDs mit DVD-Navigation
Summary(fi):    libxine-Lukulisdke, jolla kdyttdjd voi soittaa DVD-levyjd
Group:          Development/Libraries
Obsoletes:      xine-dvdnav
Requires:       %{libname} = %{version}-%{release}

%description dvd
libxine input plugin for playing video-dvd's with dvd-navigation

%description dvd -l cs
Vstupní modul libxine na přehrávání VideoDVD s DVD navigací.

%description dvd -l de
libxine Inputplugin zum abspielen von Video-DVDs mit DVD-Navigation

%description dvd -l fi
libxine-Lukulisdke, jolla kdyttdjd voi soittaa DVD-levyjd
%endif

%if %BUILD_DVB
%package dvb
Summary:        libxine input plugin for DigitalTV devices
Summary(cs):    Vstupní modul libxine pro karty digitální TV
Summary(de):    libxine Einabeplugin für digitale TV-Karten
Summary(fi):    libxine-Lukulisdke, jolla kdyttdjd voi katsella DigitalTV-korttien ohjelmia
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description dvb
libxine input plugin for Digital TV (Digital Video Broadcast - DVB) devices
e.g. Hauppauge WinTV Nova supported by DVB drivers from Convergence

%description dvb -l cs
Vstupní modul libxine pro karty digitální televize (Digital Video Broadcast -
DVB) jako je např. Hauppauge WinTV Nova podporovaná ovladači DVB od
Convergence.

%description dvb -l de
libxine Eingabeplugin für digitale TV-Karten (Digital Video Broadcast - DVB)
z.B. wird die Hauppauge WinTV Nova von Convergence unterstützt.

%description dvb -l fi
libxine-Lukulisdke, jolla kdyttdjd voi katsella DigitalTV-korttien ohjelmia
Esimerkiksi Haupaugen WinTV kortit ovat tuettuja DVB ajureilla.
%endif

%if %BUILD_GNOME_VFS
%package gnome-vfs
Summary:        libxine input plugin for totem (a gnome frontend)
Summary(cs):    Vstupní modul libxine pro totem (frontend GNOME)
Summary(de):    libxine Einabeplugin für totem (ein Gnome Frontend)
Summary(fi):    libxine-Lukulisdke Totem ohjelmaa varten, joka on libxine:n Gnome2 kdyttvliittymd
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description gnome-vfs
libxine input plugin for totem (a gnome frontend)

%description gnome-vfs -l cs
Vstupní modul libxine pro totem (frontend GNOME).

%description gnome-vfs -l de
libxine Einabeplugin für totem (ein Gnome Frontend)

%description gnome-vfs -l fi
libxine-Lukulisdke Totem ohjelmaa varten, joka on libxine Gnome2 kdyttvliittymd
%endif

%if %BUILD_FLAC
%package flac
Summary:        libxine sound input plugin for flac-files (Free Lossless Audio Codec)
Summary(cs):    Zvukový modul libxine pro dekódování souborů FLAC (Free Lossless Audio Codec)
Summary(de):    libxine Soundeinabeplugin für flac-Dateien (Free Lossless Audio Codec)
Summary(fi):    libxine-Ddnilisdke flac-tiedostojen toistamiseen (Free Lossless Audio Codec)
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description flac
libxine sound input plugin for flac-files (Free Lossless Audio Codec)

%description flac -l cs
Zvukový modul libxine pro dekódování souborů FLAC (Free Lossless Audio Codec).

%description flac -l de
libxine Soundeinabeplugin für flac-Dateien (Free Lossless Audio Codec == Freier, verlustfreier Audio-Codec)

%description flac -l fi
libxine-Ddnilisdke flac-tiedostojen toistamiseen (Free Lossless Audio Codec)
%endif

%if %BUILD_OGG
%package ogg
Summary:        libxine sound/video input plugin for ogg/ogm-files
Summary(cs):    Zvukový modul libxine pro dekódování souborů OGG a OGM
Summary(de):    libxine Sound-/Videoeinabeplugin für ogg/ogm-Dateien
Summary(fi):    libxine-Ddni/Videolisdke Ogg/Ogm tiedostojen toistamiseen
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}
Obsoletes:      xine-lib-oggvorbis
Obsoletes:      %{libname}-oggvorbis
Obsoletes:      %{libname}-oggtheora
Provides:       xine-lib-oggvorbis
Provides:       %{libname}-oggvorbis
Provides:       %{libname}-oggtheora

%description ogg
libxine sound/video input plugin for ogg/ogm-files

%description ogg -l cs
Zvukový modul libxine pro dekódování souborů OGG a OGM.

%description ogg -l de
libxine Sound-/Videoeinabeplugin für ogg/ogm-Dateien

%description ogg -l fi
libxine-Ddni/Videolisdke Ogg/Ogm tiedostojen toistamiseen
%endif

%if %BUILD_DIRECTFB
%package directfb
Summary:        libxine video output plugin using libdirectfb
Summary(cs):    Videovýstupní modul libxine používající libdirectfb
Summary(de):    libxine Videoausgabeplugin per libdirectfb
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description directfb
libxine video output plugin using libdirectfb

%description directfb -l cs
Videovýstupní modul libxine, který používá libdirectfb.

%description directfb -l de
libxine Videoausgabeplugin per libdirectfb
%endif

%if %BUILD_STK
%package stk
Summary:        libxine video output plugin using libstk
Summary(cs):    Videovýstupní modul libxine používající libstk
Summary(de):    libxine Videoausgabeplugin per libstk
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description stk
libxine video output plugin using libstk (Set-top Toolkit)

%description stk -l cs
Videovýstupní modul libxine, který používá libstk.

%description stk -l de
libxine Videoausgabeplugin per libstk (Set-top Toolkit)
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package dxr3
Summary:        libxine video output plugin using mpeg2 decoding cards with dxr3 decoder-chip
Summary(cs):    Videovýstupní modul libxine používající karty s čipem DXR3
Summary(de):    libxine Videoausgabeplugin, nutzt MPEG2-decoder-Karten mit dxr3 Decoder-Chip
Summary(fi):    libxine-Videolisdke MPEG2-videopurkukorteille, joissa on DXR3 purkusiru
Group:          Development/Libraries
Obsoletes:      xine-lib-dxr3
Obsoletes:      libxine0-dxr3
Requires:       %{libname} = %{version}-%{release}

%description dxr3
libxine video output plugin using mpeg2 decoding cards with dxr3 decoder-chip

%description dxr3 -l cs
Videovýstupní modul libxine používající karty, které dekódují MPEG2 pomocí čipu
DXR3.

%description dxr3 -l de
libxine Videoausgabeplugin, nutzt MPEG2-decoder-Karten mit dxr3 Decoder-Chip

%description dxr3 -l fi
libxine-Videolisdke MPEG2-videopurkukorteille, joissa on DXR3 purkusiru
%endif
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package xvmc
Summary:        libxine video output plugin using XVideo-extension with motion compensation
Summary(cs):    Videovýstupní modul libxine používající rozšíření XVideo MC
Summary(de):    libxine Videoausgabeplugin per XVideo-Erweiterung mit Motion Compensation
Group:          Development/Libraries
Obsoletes:      libxine0-xvmc
Autoreqprov:    Off
Requires:       %{libname} = %{version}-%{release}

%description xvmc
libxine video output plugin using XVideo-extension with motion compensation

%description xvmc -l cs
Videovýstupní modul libxine, který používá rozšíření XVideo s kompenzací pohybu.

%description xvmc -l de
libxine Videoausgabeplugin per XVideo-Erweiterung mit Motion Compensation
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
%package w32dll
Summary:        libxine decoding plugin using win32 dlls for native not supported formats
Summary(cs):    Dekódovací modul libxine, který používá DLL knihovny WIN32
Summary(de):    libxine Dekodierplugin, nutzt Win32 dlls für natvie nicht unterstützte Formate
Summary(fi):    libxine-Purkulisdke, joka mahdollistaa Win32 DLL:n kdytvn.
Group:          Development/Libraries
Obsoletes:      xine-lib-w32dll
Obsoletes:      libxine0-w32dll
Requires:       %{libname} = %{version}-%{release}

%description w32dll
libxine decoding plugin using win32 dlls for native not supported formats

%description w32dll -l cs
Dekódovací modul libxine, který používá DLL knihovny WIN32 pro formáty
nepodporované přímo.

%description w32dll -l de
libxine Dekodierplugin, nutzt Win32 dlls für native nicht unterstützte Formate

%description w32dll -l fi
libxine-Purkulisdke, joka mahdollistaa Win32 DLL:n kdytvn.
%endif
%endif

%prep
%setup -q -n @TAR_NAME@

%build
export CFLAGS="${RPM_OPT_FLAGS}"

if [ ! -f configure ]; then
   NO_CONFIGURE=1 ./autogen.sh
fi

#
# currently we do not use %%configure as it seems to cause trouble with
# certain automake produced configure scripts - depending on automake version.
# Use BUILD_ARGS envvar to pass extra parameters to configure (like --enable-dha-mod/etc...)
#
./configure --build=%{_target_platform} --prefix=%{_prefix} \
            --exec-prefix=%{_exec_prefix} --bindir=%{_bindir} \
            --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
            --datadir=%{_datadir} --includedir=%{_includedir} \
            --libdir=%{_libdir} --libexecdir=%{_libexecdir} \
            --localstatedir=%{_localstatedir} \
            --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
            --infodir=%{_infodir} \
            --with-internal-vcdlibs

# Error in libfaad when compiling with mmx or sse enabled, remove it
mv src/libfaad/Makefile src/libfaad/Makefile_save
cat src/libfaad/Makefile_save | sed -e "s/-mmmx/-mno-mmx/g" -e "s/-msse/-mno-sse/g" > src/libfaad/Makefile

make

%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=%{?buildroot:%{buildroot}} LIBRARY_PATH=%{?buildroot:%{buildroot}}%{_libdir} install

cd ${RPM_BUILD_ROOT}

echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_zw
%if %BUILD_DEVEL
echo "%doc README TODO AUTHORS COPYING ChangeLog" >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
%else
echo "%doc README TODO AUTHORS COPYING ChangeLog doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
%endif
find . -type f | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
find . -type l | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
grep -v "/man/" ${RPM_BUILD_DIR}/filelist_libxine1_zw | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
grep "/man/" ${RPM_BUILD_DIR}/filelist_libxine1_zw | sed -e 's/$/\*/g' | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_zw

%if %BUILD_DEVEL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_devel
echo "%doc doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine1_devel
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_devel
grep -v -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ALSA09
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_alsa09
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_alsa09
grep -v "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ARTS
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_arts
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_arts
grep -v "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ESD
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_esd
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_esd
grep -v "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dxr3
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "dxr3" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dxr3
grep -v "dxr3" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_SDL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_sdl
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_sdl
grep -v "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_AA
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_aa
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_aa\."  ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_aa
grep -v "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_OPENGL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_opengl
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_opengl
grep -v -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_SYNCFB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_syncfb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_syncfb
grep -v -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DIRECTFB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_directfb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_directfb
grep -v -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_STK
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_stk
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_stk
grep -v -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_xvmc
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_xvmc
grep -v "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_w32dll
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_w32dll
grep -v -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_DVB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dvb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dvb
grep -v -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DVD
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dvd
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dvd
grep -v -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_GNOME_VFS
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_gnome_vfs
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_gnome_vfs
grep -v "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_FLAC
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_flac
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_flac
grep -v "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_OGG
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_ogg
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_ogg
grep -v -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%files -f ../filelist_libxine1

%if %BUILD_DEVEL
%files devel -f ../filelist_libxine1_devel
%endif

%if %BUILD_ALSA09
%files alsa09 -f ../filelist_libxine1_alsa09
%endif

%if %BUILD_ARTS
%files arts -f ../filelist_libxine1_arts
%endif

%if %BUILD_ESD
%files esd -f ../filelist_libxine1_esd
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%files dxr3 -f ../filelist_libxine1_dxr3
%endif
%endif

%if %BUILD_SDL
%files sdl -f ../filelist_libxine1_sdl
%endif

%if %BUILD_AA
%files aa -f ../filelist_libxine1_aa
%endif

%if %BUILD_OPENGL
%files opengl -f ../filelist_libxine1_opengl
%endif

%if %BUILD_SYNCFB
%files syncfb -f ../filelist_libxine1_syncfb
%endif

%if %BUILD_DIRECTFB
%files directfb -f ../filelist_libxine1_directfb
%endif

%if %BUILD_STK
%files stk -f ../filelist_libxine1_stk
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%files xvmc -f ../filelist_libxine1_xvmc
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
%files w32dll -f ../filelist_libxine1_w32dll
%endif
%endif

%if %BUILD_DVB
%files dvb -f ../filelist_libxine1_dvb
%endif

%if %BUILD_DVD
%files dvd -f ../filelist_libxine1_dvd
%endif

%if %BUILD_GNOME_VFS
%files gnome-vfs -f ../filelist_libxine1_gnome_vfs
%endif

%if %BUILD_FLAC
%files flac -f ../filelist_libxine1_flac
%endif

%if %BUILD_OGG
%files ogg -f ../filelist_libxine1_ogg
%endif

%changelog
* Tue Dec 07 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- included xxmc video out plugin into xvmc sub-rpm
* Sat Sep 11 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added missing Requires-Statements in the subpackages
* Fri Sep 03 2004 František Dvořák <valtri@users.sourceforge.net>
- Czech translation update
* Thu Sep 02 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- konverted to UTF8
- some fixes for non IA32 systems (especialy Athlon64/Opteron)
* Sat May 01 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- activated opengl plugin
* Tue Apr 06 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- removed xvid modules from -devel package and put it back
  to main package.
* Fri Feb 13 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added new sub-rpm for stk videoout plugin
* Fri Nov 21 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- use internal vcdlibs to keep dependencies low
* Sun Oct 19 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added separate directfb-package to solve dependendies
* Tue Oct 07 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- activated separte xvmc package, when this is wanted.
* Sun Jul 20 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- made ogg-package out of oggvorbis, oggtheora and the new
  oggspeex xine-plugins
* Sat May 24 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- complete rework of the specfile
* Wed May 14 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for > 1-beta13
* Sat Mar 08 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added missing doc-files
* Wed Jan 15 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- removed man3 manpages in devel-filelist
* Tue Dec 24 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for libxine 1.0beta1 added pkgconfig-directory
* Wed Dec 11 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for libxine 1.0beta0, fonts-directory has been changed
* Sat Dec 07 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added translation for finnish by Tuukka Pasanen <illuusio@mailcity.com>
- some updates to german and english descriptions
- added post-directory to file-list
* Sat Nov 09 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Final changes for libxine 1.0alpha1
* Mon Nov 04 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- another change to make it run with next version
* Sat Nov 02 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Changes for next xine version
* Sun Oct 27 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update of the german descriptions.
* Thu Jun 06 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- ability to pass args to configure. Fix vidix/dhahelper inclusion.
* Mon May 27 2002 Matthias Dahl <matthew2k@web.de>
- added passing of build parameter to configure
* Sun May 26 2002 Matthias Dahl <matthew2k@web.de>
- added german translations by Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added fixes (missing -l cs) by Manfred Tremmel <Manfred.Tremmel@iiv.de>
* Sat May 18 2002 Matthias Dahl <matthew2k@web.de>
- added czech translations by valtri@atlas.cz
* Thu May 16 2002 Matthias Dahl <matthew2k@web.de>
- replaced %configure because it was causing trouble on certain configurations
* Sat May 11 2002 Matthias Dahl <matthew2k@web.de>
- reworked/revamped spec file, still needs some tuning (BuildPreReq, ...)
* Thu May 2 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- sync with new logo stuff.
* Wed May 1 2002 Matthias Dahl <matthew2k@web.de>
- added cinepak, cyuv and msvc decode plugins
- commented out sdl related parts because this is currently broken in xine-lib
- added 'cs,pl_PL' translation catalogs
* Sun Mar 31 2002 Matthias Dahl <matthew2k@web.de>
- added mms input plugin, spucc decoder and missing xine_logo.zyuy2.
- commented out video fill decoder for now as it seems to be no longer built
* Wed Feb 6 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- added 'de,fr,pt_BR' translation catalogs.
* Sat Dec 26 2001 Matthias Dahl <matthew2k@web.de>
- added sputext decode plugin and fonts.
* Sat Dec 8 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- ASF plugin is optional.
* Thu Dec 6 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add cda plugins.
* Wed Nov 14 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- fixed dxr3 header files inclusion, aalib deps: thanks to Andrew Meredith <andrew@anvil.org>.
* Mon Oct 29 2001 Matthias Dahl <matthew2k@web.de>
- added http input plugin
* Thu Oct 18 2001 Matthias Dahl <matthew2k@web.de>
- added asf demuxer plugin
* Sun Oct 14 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- move vorbis in separate package. Add DivX4 decoder plugin.
* Wed Oct 10 2001 Matthias Dahl <matthew2k@web.de>
- added vorbis files and missing man pages to filelist.
* Thu Sep 27 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add desktop stuff from patches by Miguel Freitas <miguel@cetuc.puc-rio.br>
- Fixed xine.m4 installation from Andrew Meredith <andrew@anvil.org>
* Fri Sep 21 2001 Matthias Dahl <matthew2k@web.de>
- added two missing files (xine-config man page and xine.m4)
* Sun Sep 16 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Merge patch from Jos�Carlos Monteiro <jcm@netcabo.pt>:
  - Filelist and other minor updates,
  - Fixed some SuSE compatibility issues,
  - Added Portuguese summary.
* Sun Sep 16 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add missing files.
* Sun Aug 19 2001 Matthias Dahl <matthew2k@web.de>
- The usual update to the filelist :)
- temporarily removed mpg123 decoder plugin from filelist cause it is not
  built with the recent CVS tree
* Thu Jul 26 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Made oss, aa, xv, esd, w32dll, documentation as separate packages.
* Thu Jul 26 2001 Matthias Dahl <matthew2k@web.de>
- added seperate arts package and one missing demuxer plugin to filelist
* Wed Jul 18 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- list all plugins to avoid *strange* inclusion ;-).
* Sun Jun 10 2001 Matthias Dahl <matthew2k@web.de>
- updated filelist
- re-activated execution of /sbin/ldconfig as post install script
* Thu Mar 28 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- add korean summary, patch from Louis JANG <louis@ns.mizi.com>
* Thu Jan 11 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- patch from Sung-Hyun Nam <namsh@lgic.co.kr> applied.
* Fri Oct 17 2000 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- first spec file.

--- NEW FILE: vga.xinefont.gz ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: Makefile.am ---
include $(top_srcdir)/misc/Makefile.common

SUBDIRS = fonts

EXTRA_DIST = build_rpms.sh \
	cdda_server.c \
	SlackBuild.in \
	SlackBuild \
	vga.xinefont.gz \
	xine-fontconv.c \
	xine-lib.spec.in \
	xine-lib.spec \
	libxine.pc.in \
	libdvdcss-1.2.6-network.patch \
	Makefile.common

bin_SCRIPTS = xine-config

pkgconfigdir=$(libdir)/pkgconfig
pkgconfig_DATA=libxine.pc

xine-fontconv:	xine-fontconv.c
	$(CC) -W -Wall -g -o xine-fontconv xine-fontconv.c -lz `freetype-config --cflags` `freetype-config --libs`

cdda_server: cdda_server.c
	$(CC) -W -Wall -g -o cdda_server cdda_server.c -ldl

--- NEW FILE: Makefile.common ---
LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
XINE_LIB = $(top_builddir)/src/xine-engine/libxine.la

$(XINE_LIB):
	@cd $(top_srcdir)/src/xine-engine && $(MAKE)

install-data-hook:
	@if test $$MAKELEVEL -le 4 ; then \
	  if test -x "$(top_srcdir)/post-install.sh" ; then \
	    $(top_srcdir)/post-install.sh ; \
	  fi \
	fi

pass1:
	@$(MAKE) MULTIPASS_CFLAGS="$(PASS1_CFLAGS)"

pass2:
	@$(MAKE) MULTIPASS_CFLAGS="$(PASS2_CFLAGS)"

debug:
	@$(MAKE) CFLAGS="$(DEBUG_CFLAGS)"

install-debug: debug
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
	@list='$(SUBDIRS)'; for subdir in $$list; do \
	  (cd $$subdir && $(MAKE) $@) || exit; \
	done;
	$(MAKE) $(AM_MAKEFLAGS) install-data-hook

install-includeHEADERS: $(include_HEADERS)
	@$(NORMAL_INSTALL)
	$(install_sh) -d $(DESTDIR)$(includedir)/xine
	@list='$(include_HEADERS)'; for p in $$list; do \
	  if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
	  echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p"; \
	  $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p; \
	done

uninstall-includeHEADERS:
	@$(NORMAL_UNINSTALL)
	list='$(include_HEADERS)'; for p in $$list; do \
	  rm -f $(DESTDIR)$(includedir)/xine/$$p; \
	done

uninstall-hook:
	@if echo '$(libdir)' | egrep ^'$(XINE_PLUGINDIR)' >/dev/null; then \
	  list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	    p="`echo $$p | sed -e 's/\.la$$/\.so/g;s|^.*/||'`"; \
	    echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
	    rm -f $(DESTDIR)$(libdir)/$$p; \
	  done; \
	fi

mostlyclean-generic:
	-rm -f *~ \#* .*~ .\#*

maintainer-clean-generic:
	-@echo "This command is intended for maintainers to use;"
	-@echo "it deletes files that may require special tools to rebuild."
	-rm -f Makefile.in

--- NEW FILE: xine-fontconv.c ---
/*
 * Copyright (C) 2001-2003 the xine project
 * 
 * This file is part of xine, a free video player.
 * 
 * xine is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * xine is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
 *
 * OSD stuff (text and graphic primitives)
 *
 * xine-fontconv.c  
 *
 * converts ttf fonts to xine osd fonts
 *
 * compile:
 *   gcc -o xine-fontconv xine-fontconv.c `freetype-config --cflags --libs` -lz
 *
 * usage:
 *   xine-fontconv font.ttf fontname [encoding1 [encoding2 [...]]]
 *
 * begin                : Sat Dec 1 2001
 * copyright            : (C) 2001 by Miguel Freitas
 * unicode stuff        : (C) 2003 by Frantisek Dvorak
 */

#include <sys/param.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <zlib.h>
#include <iconv.h>

#ifndef OLD_FREETYPE2
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#else                   /* freetype 2.0.1 */
#include <freetype/freetype.h>
#include <freetype/ftglyph.h>
#endif

/* we want UCS-2 encoding in the machine endian */
#if BYTE_ORDER == BIG_ENDIAN
#  define UCS2_ENCODING "UCS-2BE"
#else
#  define UCS2_ENCODING "UCS-2LE"
#endif

#ifndef MAX
#  define MAX (a, b) ((a) > (b)? (a) : (b))
#endif

#define f266ToInt(x)            (((x)+32)>>6)   /* round fractional fixed point */
                                                /* coordinates are in 26.6 pixels (i.e. 1/64th of pixels)*/
#define f266CeilToInt(x)        (((x)+63)>>6)   /* ceiling */
#define f266FloorToInt(x)       ((x)>>6)        /* floor */

/*
#define LOG 1
*/

/* xine stuff */
typedef struct osd_fontchar_s osd_fontchar_t;
typedef struct osd_font_s     osd_font_t;
typedef unsigned short        uint16_t;
typedef unsigned char         uint8_t;

struct osd_fontchar_s {
  uint16_t code;
  uint16_t width;
  uint16_t height;
  uint8_t *bmp;
};

struct osd_font_s {
  char             name[40];
  uint16_t         version;
  uint16_t         size;
  uint16_t         num_fontchars;
  osd_fontchar_t  *fontchar;
  osd_font_t      *next;
}; 


/* list */

typedef struct item_s item_t;

struct item_s {
  uint16_t code;
  item_t *next;
};


osd_fontchar_t fontchar;
osd_font_t     font;


static int gzwrite_i16(gzFile *fp, uint16_t number) {
  return gzputc(fp, number & 0xFF) != -1 && 
         gzputc(fp, (number >> 8) & 0xFF) != -1;
}


/* search the item with 'code' in the sorted list */
item_t *list_search(item_t *list, uint16_t code, item_t **parent) {
  item_t *item;

  /* searching */
  item = list;
  while(item && item->code < code) {
    list = item;
    item = item->next;
  }

  /* parent (or future parent) */
  if (parent) *parent = list == item ? NULL : list;

  if (item && item->code == code) return item;
  else return NULL;
}

/* add new number into sorted list, returns if code is there already */
int list_insert(item_t **list, uint16_t code) {
  item_t *item, *parent;

  if ((item = list_search(*list, code, &parent)) == NULL) {
  /* insert new item */
    if ((item = malloc(sizeof(item_t))) == NULL) {
      printf("Insufficient memory\n");
      abort();
    }
    item->code = code;
    if (parent) {
      item->next = parent->next;
      parent->next = item;
    } else {
      item->next = *list;
      *list = item;
    }
    return 0;
  } else {
  /* item is there already */
    return 1;
  }
}

/* free the list */
void list_free(item_t *list) {
  item_t *item;

  while(list != NULL) {
    item = list;
    list = list->next;
    free(item);
  }
}

/* 
 * generate sorted list with unicodes in all given pages,
 * returns number of unicodes in the list
 */
uint16_t generate_unicodes_list(item_t **list, char **pages, int number) {
  int page;
  uint16_t codes_count = 0;  /* unicode counter */
  int32_t z;                 /* index in the codepage */
  iconv_t cd;                /* iconv conversion descriptor */

  *list = NULL;

  /* process all given codepages */
  for (page = 0; page < number; page++) {
    /* prepare encoding */
    if ((cd = iconv_open(UCS2_ENCODING, pages[page])) == (iconv_t)-1) {
      printf("Unsupported encoding \"%s\"\n", pages[page]);
      continue;
    }
    printf("Used encoding \"%s\"\n", pages[page]);
    
    /* add new unicodes into list */
    for (z = 32; z < 0xFFFF; z++) {
      uint16_t unicode;
      char *inbuf = (char *)&z;
      char *outbuf = (char *)&unicode;
      size_t inbytesleft = z <= 0xFF ? 1 : 2;
      size_t outbytesleft = 2;
      size_t count;
     
      /* get unicode value from index 'z' in this codepage 'pages[i]' */
      count = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
      if (count == (size_t)-1 || inbytesleft != 0) {
      /* unused index 'z' in this codepage */
        continue;
      }

      if (!list_insert(list, unicode)) codes_count++;
    }
    iconv_close(cd);
  }

  return codes_count;
}

#ifdef LOG
void print_bitmap (FT_Bitmap *bitmap) {

  int x,y;
  
  for( y = 0; y < bitmap->rows; y++ ) {
    for( x = 0; x < bitmap->width; x++ ) {
      if( bitmap->buffer[y*bitmap->width+x] > 1 )
        printf("%02x ", bitmap->buffer[y*bitmap->width+x] );
      else
        printf("   ");
    }
    printf("\n");
  }
}
#endif

FT_Bitmap *create_bitmap (int width, int height) {
  FT_Bitmap * bitmap;

#ifdef LOG
  printf("Bitmap char %d %d\n",width,height);
#endif
  bitmap = malloc( sizeof( FT_Bitmap ) );
  bitmap->rows = height;
  bitmap->width = width;
  bitmap->buffer = malloc(width*height);
  memset( bitmap->buffer, 0, width*height );
  
  return bitmap;
}

void destroy_bitmap (FT_Bitmap * bitmap) {
  free(bitmap->buffer);
  free(bitmap);
}
 

/* 
   This function is called to blend a slightly deslocated
   version of the bitmap. This will produce the border effect.
   Note that the displacement may be smaller than 1 pixel
   as the bitmap is generated in freetype 1/64 units.
   This border is antialiased to the background.
*/
void add_border_bitmap( FT_Bitmap *dst, FT_Bitmap *src, int left, int top )
{
  int x,y;
  int x1, y1;
  int dstpos, srcpos;
  
  for( y = 0; y < src->rows; y++ ) {
    for( x = 0; x < src->width; x++ ) {
      srcpos = y * src->width + x;
      
      x1 = x + left;
      if( x1 < 0 || x1 >= dst->width )
        continue;
        
      y1 = y + top;
      if( y1 < 0 || y1 >= dst->rows )
        continue;

      dstpos = y1 * dst->width + x1;
      src->buffer[srcpos] /= 51;
      if( src->buffer[srcpos] > dst->buffer[dstpos] )
        dst->buffer[dstpos] = src->buffer[srcpos];
    }
  }
}

/*
   Blend the final version of bitmap (the foreground color) over the
   already generated border. It will be antialiased to the border.
   
   Final palette will be:
   
   0: not used by font, always transparent
   1: font background, usually transparent, may be used to implement
      translucid boxes where the font will be printed.
   2-5: transition between background and border (usually only alpha
        value changes).
   6: font border. if the font is to be displayed without border this
      will probably be adjusted to font background or near.
   7-9: transition between border and foreground
   10: font color (foreground)   
*/
void add_final_bitmap( FT_Bitmap *dst, FT_Bitmap *src, int left, int top )
{
  int x,y;
  int x1, y1;
  int dstpos, srcpos;
  
  for( y = 0; y < src->rows; y++ ) {
    for( x = 0; x < src->width; x++ ) {
      srcpos = y * src->width + x;
      
      x1 = x + left;
      if( x1 < 0 || x1 >= dst->width )
        continue;
        
      y1 = y + top;
      if( y1 < 0 || y1 >= dst->rows )
        continue;

      dstpos = y1 * dst->width + x1;
      src->buffer[srcpos] /= 52;
      if( src->buffer[srcpos] )
        dst->buffer[dstpos] = src->buffer[srcpos] + 5;
    }
  }
  
  for( y = 0; y < dst->rows; y++ ) {
    for( x = 0; x < dst->width; x++ ) {
      dstpos = y * dst->width + x;
      dst->buffer[dstpos]++;
    }
  }

}


void render_font (FT_Face face, char *fontname, int size, int thickness, 
                  item_t *unicodes) {

  char                filename[1024];
  FT_Bitmap          *out_bitmap;
  gzFile             *fp;
  int                 error;
  int                 error_counter;
  int                 glyph_index;
  FT_Glyph            glyph;
  FT_BitmapGlyph      glyph_bitmap;
  FT_Vector           origin;
  int                 max_bearing_y = 0;        
  int                 i;
  int                 converted;
  item_t             *item, *error_unicodes;

  static int border_pos[9][2] = {
    {-1,0},{1,0},{0,-1},{0,1},
    {-1,-1},{1,-1},{-1,1},{1,1}, {0,0}
  };

  
  /* 
   * generate filename, open file
   */
   
  snprintf (filename, sizeof(filename), "%s-%d.xinefont.gz", fontname, size);

  fp = gzopen(filename,"w");
 
  if (!fp) {
    printf ("error opening output file %s\n", filename);
    return;
  }

  /* 
   * set up font
   */

  strncpy(font.name, fontname, sizeof(font.name));
  font.name[sizeof(font.name) - 1] = '\0';
  /* changes from version 1 to version 2: 
   *   'code' in characters is defined as little endian 16-bit unicode
   *   characters are sorted by 'code'
   */
  font.version       = 2;
  font.num_fontchars = 0;
  font.size          = size;

  error = FT_Set_Pixel_Sizes( face,     /* handle to face object */
                              0,        /* pixel_width           */
                              size );   /* pixel_height          */
                              
  if (error) {
    printf("error setting size\n");
    return;
  }

  if( !thickness )
    thickness = size * 64 / 30;

  /* 
   * calc max bearing y.
   * this is needed to align all bitmaps by the upper position.
   */

  error_counter = 0;
  error_unicodes = NULL;
  for (item = unicodes; item; item = item->next) {
    glyph_index = FT_Get_Char_Index( face, item->code);

    if (!glyph_index) {
      error_counter++;
      list_insert(&error_unicodes, item->code);
      continue;
    }

    error = FT_Load_Glyph (face,               /* handle to face object */
                           glyph_index,        /* glyph index           */
                           FT_LOAD_DEFAULT );  /* load flags            */
                         
    if (error) {
      error_counter++;
      list_insert(&error_unicodes, item->code);
      continue;
    }

#ifdef LOG
    printf("bearing_y %ld\n",face->glyph->metrics.horiBearingY);
#endif

    if( (face->glyph->metrics.horiBearingY >> 6) > max_bearing_y )
      max_bearing_y = (face->glyph->metrics.horiBearingY >> 6);
    font.num_fontchars++;
  }

  printf("max_bearing_y: %d\n", max_bearing_y + f266CeilToInt(thickness));

  gzwrite(fp, font.name, sizeof(font.name));
  gzwrite_i16(fp, font.version);
  gzwrite_i16(fp, font.size);
  gzwrite_i16(fp, font.num_fontchars);

  for (item = unicodes; item; item = item->next) {
    converted = 0;

    for( i=0; i < 9; i++ ) {

      glyph_index = FT_Get_Char_Index( face, item->code);

        
      if (glyph_index) {
          
        error = FT_Load_Glyph( face,          /* handle to face object */
                               glyph_index,   /* glyph index           */
                               FT_LOAD_DEFAULT );  /* load flags */
          
        if (!error) {
          error = FT_Get_Glyph( face->glyph, &glyph );
	    
          if( i == 0 ) {
            out_bitmap = create_bitmap( f266CeilToInt(thickness + MAX(face->glyph->metrics.horiAdvance, face->glyph->metrics.width + face->glyph->metrics.horiBearingX)),
                                        f266CeilToInt((max_bearing_y<<6) - face->glyph->metrics.horiBearingY + 
                                        face->glyph->metrics.height + thickness) );
          }

          origin.x = thickness + border_pos[i][0]*thickness;
          origin.y = thickness + border_pos[i][1]*thickness;

          error = FT_Glyph_Transform(glyph, NULL, &origin) ||
                  FT_Glyph_To_Bitmap( &glyph, ft_render_mode_normal, NULL, 1);  

          if (error) {
            printf("error generating bitmap [U+%04X]\n", item->code);
            destroy_bitmap(out_bitmap);
            return;
          }

          glyph_bitmap = (FT_BitmapGlyph)glyph;

          if( i < 8 )
            add_border_bitmap( out_bitmap, &glyph_bitmap->bitmap, glyph_bitmap->left,
                               max_bearing_y - glyph_bitmap->top );
          else
            add_final_bitmap( out_bitmap, &glyph_bitmap->bitmap, glyph_bitmap->left,
                              max_bearing_y - glyph_bitmap->top );
          converted = 1;          
                              
          FT_Done_Glyph( glyph );
	}
      }
    }
    
    if( converted ) {
#ifdef LOG
      printf("[U+%04X] bitmap width: %d height: %d\n", item->code, out_bitmap->width, out_bitmap->rows );
      /* 
      print_bitmap(out_bitmap);
      */
#endif
      fontchar.code = item->code;
      fontchar.width = out_bitmap->width;
      fontchar.height = out_bitmap->rows;
  
      gzwrite_i16 (fp, fontchar.code);
      gzwrite_i16 (fp, fontchar.width);
      gzwrite_i16 (fp, fontchar.height);
      gzwrite (fp, out_bitmap->buffer, out_bitmap->width*out_bitmap->rows);

      destroy_bitmap(out_bitmap);
    }
  }
  gzclose(fp);

  if (error_counter) {
    printf("error: %d characters couldn't read: ", error_counter);
    /* this unicodes wasn't readed from .ttf font */
    item = error_unicodes;
    while(item) {
      printf("U+%04X ", item->code);
      item = item->next;
    }
    printf("\n");
    list_free(error_unicodes);
  }
  printf ("generated %s (%d characters)\n", filename, font.num_fontchars);
}  


int main(int argc, char *argv[]) {

  int          error;
  int          len;
  FT_Library   library;
  FT_Face      face;
  int          thickness = 0;
  char        *encoding = "iso-8859-1";
  item_t      *unicodes = NULL;  /* unicode list */
#ifdef LOG
  item_t      *item;
#endif
  uint16_t     count;

  /*
   * command line parsing
   */

  if (argc < 3) {
    printf ("usage: %s font.ttf fontname [encoding1 [encoding2 [...]]]\n", argv[0]);
    exit (1);
  }
  
  len = strlen (argv[1]);

  if (strncasecmp (&argv[1][len-4],".ttf",3)) {
    printf ("font name must have .ttf suffix (is %s)\n", &argv[1][len-4]);
    exit (1);
  }

  error = FT_Init_FreeType( &library );
  if( error ) {
    printf("error initializing freetype\n");
    return 1;
  }
  
  error = FT_New_Face( library, 
                       argv[1],
                       0,
                       &face );
  if (error) {
    printf("error loading font\n");
    return 1;
  }
  error = FT_Select_Charmap( face, ft_encoding_unicode);
  if (error) {
    printf("error selecting unicode charmap\n");
    return 1;
  }

  if (argc == 3) {
    count = generate_unicodes_list(&unicodes, &encoding, 1);
  } else {
    count = generate_unicodes_list(&unicodes, argv + 3, argc - 3);
  }
#ifdef LOG
  printf("Prepared %d unicode values: ", count);
  for (item = unicodes; item; item = item->next) printf("U+%04X ", item->code);
  printf("\n");
#else
  printf("Prepared %d unicode values.\n", count);
#endif

  if (count) {
    render_font (face, argv[2], 16, thickness, unicodes);
    render_font (face, argv[2], 20, thickness, unicodes);
    render_font (face, argv[2], 24, thickness, unicodes);
    render_font (face, argv[2], 32, thickness, unicodes);
    render_font (face, argv[2], 48, thickness, unicodes);
    render_font (face, argv[2], 64, thickness, unicodes);
  } else 
    printf("No font generated\n");

  list_free(unicodes);

  FT_Done_Face(face);
 
  FT_Done_FreeType(library); 

  /*
   * some rgb -> yuv conversion,
   * can be used to calc new palettes
   */
  /*
  { 
    float f;
    for (f=1.0; f<6.0; f+=1.0) {

      float R=f*40.0;
      float G=f*40.0;
      float B=f*42.0;
      float Y, Cb, Cr;

      Y  =  0.29900 * R + 0.58700 * G + 0.11400 * B ;
      Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B  + 128.0;
      Cr =  0.50000 * R - 0.41869 * G - 0.08131 * B  + 128.0;
      
      printf ("CLUT_Y_CR_CB_INIT(0x%x, 0x%x, 0x%x),\n", (int) Y, (int) Cr, (int) Cb);
    }
  }
  */
  return 0;
}

--- NEW FILE: libxine.pc.in ---
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@

Name: libxine
Description: The xine engine library
Version: @XINE_MAJOR@.@XINE_MINOR@.@XINE_SUB@
Requires:
Libs: -L${libdir} -lxine @ZLIB_LIBS_CONFIG@ @NET_LIBS@ @THREAD_LIBS_CONFIG@ @LIBICONV@
Cflags: -I${includedir} @THREAD_CFLAGS_CONFIG@

--- NEW FILE: xine-config.in ---
#!/bin/sh
#
#

prefix=@XINE_CONFIG_PREFIX@
exec_prefix=@exec_prefix@
exec_prefix_set=no

usage()
{
	cat <<EOF
Usage: xine-config [OPTIONS] [LIBRARIES]
Options:
	[--prefix[=DIR]]
	[--exec-prefix[=DIR]]
	[--version]
        [--libs]
	[--acflags]
	[--cflags]
	[--plugindir]
	[--datadir]
	[--scriptdir]
	[--localedir]
	[--objcflags]
EOF
	exit $1
}

if test $# -eq 0; then
	usage 1 1>&2
fi

while test $# -gt 0; do
  case "$1" in
  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) optarg= ;;
  esac

  case $1 in
    --prefix=*)
      prefix=$optarg
      if test $exec_prefix_set = no ; then
        exec_prefix=$optarg
      fi
      ;;
    --prefix)
      echo_prefix=yes
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo_exec_prefix=yes
      ;;
    --version)
      echo @XINE_MAJOR@.@XINE_MINOR@.@XINE_SUB@
      ;;
    --acflags)
      echo_acflags=yes
      ;;
    --cflags)
      echo_cflags=yes
      ;;
    --libs)
      echo_libs=yes
      ;;
    --plugindir)
      echo_plugindir=yes
      ;;
    --datadir)
      echo_datadir=yes
      ;;
    --scriptdir)
      echo_scriptdir=yes
      ;;
    --localedir)
      echo_localedir=yes
      ;;
    --objcflags)
      echo_objcflags=yes
      ;;
    *)
      usage 1 1>&2
      ;;
  esac
  shift
done

if test "$echo_prefix" = "yes"; then
	echo $prefix
fi

if test "$echo_exec_prefix" = "yes"; then
	echo $exec_prefix
fi

if test "$echo_acflags" = "yes"; then
      echo "@XINE_ACFLAGS@"
fi

if test "$echo_cflags" = "yes"; then
      echo -I@includedir@ @THREAD_CFLAGS_CONFIG@
fi

if test "$echo_libs" = "yes"; then
      echo -L@libdir@ -lxine @ZLIB_LIBS_CONFIG@ @NET_LIBS@ @THREAD_LIBS_CONFIG@ @LIBICONV@ @RT_LIBS@
fi      
if test "$echo_plugindir" = "yes"; then
      echo "@XINE_PLUGINPATH@"
fi      
if test "$echo_datadir" = "yes"; then
      echo "@XINE_DATADIR@"
fi      
if test "$echo_scriptdir" = "yes"; then
      echo "@XINE_SCRIPTPATH@"
fi
if test "$echo_localedir" = "yes"; then
      echo "@XINE_LOCALEPATH@"
fi
if test "$echo_objcflags" = "yes"; then
      echo "@OBJCFLAGS@"
fi

--- NEW FILE: xine-lib.spec ---
%define shortname  libxine
%define name       libxine1
%define version    1.0
%define dirversion 1.0.0
%define release    0

%define major      1
%define libname    %{shortname}%{major}

# Build separat packages:
# 1 create a sparate package
# 0 include files in main package
%define BUILD_AA        0
%define BUILD_ALSA09    0
%define BUILD_ARTS      0
%define BUILD_DEVEL     1
%define BUILD_DVB       0
%define BUILD_DVD       0
%define BUILD_DXR3      0
%define BUILD_ESD       0
%define BUILD_FLAC      0
%define BUILD_GNOME_VFS 0
%define BUILD_OGG       0
%define BUILD_OPENGL    0
%define BUILD_SDL       0
%define BUILD_DIRECTFB  0
%define BUILD_SYNCFB    0
%define BUILD_W32DLL    0
%define BUILD_XVMC      0
%define BUILD_STK       0

Name:           %{name}
Summary:        A portable video/audio library for unix-like systems.
Summary(cs):    Přenositelná video a audio knihovna pro unixovské systémy
Summary(de):    Eine portabele Audio-/Video-Bibliothek für unixartige Systeme.
Summary(fi):    Joustava video- ja ääniohjelmointikirjasto Unix-tyylisille käyttöjärjestelmille.
Version:        %{version}
Release:        %{release}
License:        GPL
Group:          Development/Libraries
URL:            http://xinehq.de
Source:         http://xinehq.de/files/xine-lib-1.0.tar.gz
Packager:       Manfred Tremmel <Manfred.Tremmel@iiv.de>
Obsoletes:      xine
Obsoletes:      xine-lib
Obsoletes:      xine-lib-oss
Obsoletes:      xine-lib-xv
Obsoletes:      libxine0
Obsoletes:      %{shortname}
Obsoletes:      xine-vcdx
Provides:       xine
Provides:       xine-lib
Provides:       %{shortname} = %{version}-%{release}
Provides:       xine-vcdx
BuildRoot:      %{_tmppath}/%{name}-buildroot

%description
libxine is the beating heart of xine (a free gpl-licensed video player for
unix-like systems) which among others provides support for decoding (and
playing back) of many today available audio/video codecs, like mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
This library contains (and uses) numerous processor specific optimizations to
provide a smooth playback and to minimize the overall demand of CPU power.

Don't hesitate to use libxine in your own projects as long as your usage
complies to the GPL. More information about GPL-license can be found at
http://www.gnu.org/licenses/gpl.html

%description -l cs
libxine je tepající srdce xine (svobodného videopřehrávače pod licencí GPL pro
unixovské systémy). Mimo jiné poskytuje podporu pro dekódování (a přehrávání)
mnoha dnes dostupnými audio a video kodeky jako jsou např. mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime a RealMedia. Tato knihovna používá
četné procesorově závislé optimalizace k dosažení plynulého přehrávání a
zmenšení celkového nároku na výkon procesoru.

Dokud to bude ve shodě s GPL, neváhejte použít libxine ve vašich vlastních
projektech. Více informací o GPL licenci můžete nalézt na
http://www.gnu.org/licenses/gpl.html.

%description -l de
libxine ist das Herzstück von xine (einem freien, GPL lizensiertem Audio- und
Video-Abspielprogramm für unixartige Systeme). libxine stellt die Funktionen
zur Dekodierung und Wiedergabe vieler aktueller Audio- und Videocodecs zur
Verfügung, wie z.B. MPEG-4 (DivX), MPEG-2 (DVD, SVCD) und MPEG-1 (VCD),
Quicktime und RealMedia um nur einige zu nennen.
Die Bibliothek enthält und benutzt eine Vielzahl von prozessorspezifischen
Optimierungen, um eine flüssige Wiedergabe mit minimaler Prozessorbelastung
gewährleisten zu könnnen.

Zögern Sie nicht libxine in Ihren eigenen Projekten zu nutzen. Beachten Sie
hierzu jedoch die in der GPL Lizenz vereinbarten Bestimmungen. Weitere
Informationen zur GPL-Lizenz finden Sie unter http://www.gnu.org/licenses/gpl.html

%description -l fi
libxine on xinen sydän (vapaa GPL-linsensoitu videosoitinohjelma Unix-tyylisille
käyttöjärjestelmille), joka muun muassa tarjoaa mahdollisuudet pakatun videon
ja äänen purkamiseen (sekä näyttämiseen) suurimmalla osalla nykyaikaista äänen-
ja kuvanpakkausformaateista.
Tällaisia ovat mpeg-4 (DivX;-)), mpeg-2 (DVD, SVCD), mpeg-1 (VCD) muutamia
mainitaksemme. xinen purkukirjasto käyttää monia matalan tason prosessoripohjaisia
optimisaatiomenetelmiä tarjotakseen sulavan kuvantoistokokemuksen. Tämä on tarpeen
myös minimoimaan tarvittavaa prosessoritehoa.

Olet tervetullut käyttämään libxine:a omissa projekteissasi kunhan ne ovat GPL-
lisenssin kanssa yhteensopivia. lisätietoja GPL-lisenssistä löytyy osoitteesta:
http://www.gnu.org/licenses/gpl.html

%if %BUILD_DEVEL
%package devel
Summary:        Header files and documentation to develope programs with libxine.
Summary(cs):    Hlavičkové soubory a dokumentace pro vývoj programů, které používají libxine
Summary(de):    Headerdateien und Dokumentationen, um Programme mit libxine entwickeln zu können.
Summary(fi):    Header-tiedostot ja dokumentaatio, joita tarvitset kehittäessäsi ohjelmia libxine:n kanssa.
Group:	       Development/Libraries
Obsoletes:      xine-lib-devel
Obsoletes:      xine-devel
Obsoletes:      libxine0-devel
Provides:       %{shortname}-devel = %{version}-%{release}
Provides:       xine-devel
Requires:       %{libname} = %{version}-%{release}

%description devel
This package contains header files and documentation required to develope
programs with libxine.

libxine is the beating heart of xine (a free gpl-licensed video player for
unix-like systems) which among others provides support for decoding (and
playing back) of many today available audio/video codecs, like mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
This library contains (and uses) numerous processor specific optimizations to
provide a smooth playback and to minimize the overall demand of CPU power.

Don't hesitate to use libxine in your own projects as long as your usage
complies to the GPL. More information about GPL-license can be found at
http://www.gnu.org/licenses/gpl.html

%description devel -l cs
Tento balíček obsahuje hlavičkové soubory a dokumentaci potřebnou pro vývoj
programů, které používají libxine.

libxine je tepající srdce xine (svobodného videopřehrávače pod licencí GPL pro
unixovské systémy). Mimo jiné poskytuje podporu pro dekódování (a přehrávání)
mnoha dnes dostupnými audio a video kodeky jako jsou např. mpeg-4 (DivX),
mpeg-2 (DVD, SVCD), mpeg-1 (VCD), Quicktime a RealMedia. Tato knihovna používá
četné procesorově závislé optimalizace k dosažení plynulého přehrávání a
zmenšení celkového nároku na výkon procesoru.

Dokud to bude ve shodě s GPL, neváhejte použít libxine ve vašich vlastních
projektech. Více informací o GPL licenci můžete nalézt na
http://www.gnu.org/licenses/gpl.html.

%description devel -l de
Dieses Paket enthält die Headerdateien und Dokumentationen, um Programme
mit libxine entwickeln zu können.

libxine ist das Herzstück von xine (einem freien, GPL lizensiertem Audio- und
Video-Abspielprogramm für unixartige Systeme). libxine stellt die Funktionen
zur Dekodierung und Wiedergabe vieler aktueller Audio- und Videocodecs zur
Verfügung, wie z.B. MPEG-4 (DivX), MPEG-2 (DVD, SVCD) und MPEG-1 (VCD),
Quicktime und RealMedia um nur einige zu nennen.
Die Bibliothek enthält und benutzt eine Vielzahl von prozessorspezifischen
Optimierungen, um eine flüssige Wiedergabe mit minimaler Prozessorbelastung
gewährleisten zu könnnen.

Zögern Sie nicht libxine in Ihren eigenen Projekten zu nutzen. Beachten Sie
hierzu jedoch die in der GPL Lizenz vereinbarten Bestimmungen. Weitere
Informationen zur GPL-Lizenz finden Sie unter http://www.gnu.org/licenses/gpl.html

%description devel -l fi
libxine on xinen sydän (vapaa GPL-linsensoitu videosoitinohjelma Unix-tyylisille
käyttöjärjestelmille), joka muun muassa tarjoaa mahdollisuudet pakatun videon
ja äänen purkamiseen (sekä näyttämiseen) suurimmalla osalla nykyaikaista äänen-
ja kuvanpakkausformaateista.
Tällaisia ovat mpeg-4 (DivX;-)), mpeg-2 (DVD, SVCD), mpeg-1 (VCD) muutamia
mainitaksemme. xinen purkukirjasto käyttää monia matalan tason prosessoripohjaisia
optimisaatiomenetelmiä tarjotakseen sulavan kuvantoistokokemuksen. Tämä on tarpeen
myös minimoimaan tarvittavaa prosessoritehoa.

Olet tervetullut käyttämään libxine:a omissa projekteissasi kunhan ne ovat GPL-
lisenssin kanssa yhteensopivia. lisätietoja GPL-lisenssistä löytyy osoitteesta:
http://www.gnu.org/licenses/gpl.html
%endif

%if %BUILD_ALSA09
%package alsa09
Summary:        libxine sound output plugin for alsa >= 0.9
Summary(cs):    Zvukový výstupní modul libxine pro ALSA >= 0.9
Summary(de):    libxine Soundausgabeplguin für Alsa >= 0.9
Summary(fi):    libxine-Ddnilisdke uudelle Linux:n ddniarkkitehtuurille (ALSA >= 0.9)
Group:          Development/Libraries
Obsoletes:      xine-lib-alsa09
Obsoletes:      libxine0-alsa09
Requires:       %{libname} = %{version}-%{release}

%description alsa09
libxine sound output plugin for alsa >= 0.9

%description alsa09 -l cs
Zvukový výstupní modul libxine pro ALSA >= 0.9.

%description alsa09 -l de
libxine Soundausgabe Plugin für alsa >= 0.9

%description alsa09 -l fi
libxine-ddnilisdke uudelle Linux:n ddniarkkitehtuurille (ALSA >= 0.9)
%endif

%if %BUILD_ARTS
%package arts
Summary:        libxine sound output plugin for arts (KDE-soundserver)
Summary(cs):    Zvukový výstupní modul libxine pro ARTS (zvukový server KDE)
Summary(de):    libxine Soundausgabeplugin für arts (KDE-Soundserver)
Summary(fi):    libxine-Ddnilisdke Arts ddnipalvelimelle (KDE:n ddnipalvelin)
Group:          Development/Libraries
Obsoletes:      xine-lib-arts
Obsoletes:      libxine0-arts
Requires:       %{libname} = %{version}-%{release}

%description arts
libxine sound output plugin for arts (KDE-soundserver)

%description arts -l cs
Zvukový výstupní modul libxine pro ARTS (zvukový server KDE).

%description arts -l de
libxine Soundausgabeplugin für arts (KDE-Soundserver)

%description arts -l fi
libxine-Ddnilisdke Arts ddnipalvelimelle (KDE:n ddnipalvelin)
%endif

%if %BUILD_ESD
%package esd
Summary:        libxine sound output plugin for enlightmend sound daemon
Summary(cs):    Zvukový výstupní modul libxine pro Enlightmend Sound Daemon
Summary(de):    libxine Soundausgabeplugin für den Enlightmend Sound Daemon
Summary(fi):    libxine-ddnilisdke Enlightmend ddnipalvelimelle
Group:          Development/Libraries
Obsoletes:      xine-lib-esd
Obsoletes:      libxine0-esd
Requires:       %{libname} = %{version}-%{release}

%description esd
libxine sound output plugin for enlightmend sound daemon (Gnome and Enlightment)

%description esd -l cs
Zvukový výstupní modul libxine pro Enlightmend Sound Daemon.

%description esd -l de
libxine Soundausgabeplugin für den Enlightmend Sound Daemon (Gnome und Enlightment)

%description esd -l fi
libxine-ddnilisdke Enlightmend ddnipalvelimelle
%endif

%if %BUILD_SDL
%package sdl
Summary:        libxine video output plugin for SDL-library (Simple DirectMedia Layer)
Summary(cs):    Videovýstupní modul libxine pro knihovnu SDL (Simple DirectMedia Layer)
Summary(de):    libxine Videoausgabeplguin für SDL-Bibliothek (Simple DirectMedia Layer)
Summary(fi):    libxine-Videolisdke SDL grafiikkakirjastolle (Simple DirectMedia Layer)
Group:          Development/Libraries
Obsoletes:      xine-lib-sdl
Obsoletes:      libxine0-sdl
Requires:       %{libname} = %{version}-%{release}

%description sdl
libxine video output plugin for SDL-library (Simple DirectMedia Layer)

%description sdl -l cs
Videovýstupní modul libxine pro knihovnu SDL (Simple DirectMedia Layer).

%description sdl -l de
libxine Videoausgabeplguin für SDL-Bibliothek (Simple DirectMedia Layer)

%description sdl -l fi
libxine-Videolisdke SDL-grafiikkakirjastolle (Simple DirectMedia Layer)
%endif

%if %BUILD_AA
%package aa
Summary:        libxine video output plugin for aa-library (ASCII Art)
Summary(cs):    Videovýstupní modul libxine pro knihovnu aa (ASCII Art)
Summary(de):    libxine Videoausgabeplugin für aa-Bibliothek (ASCII Art)
Summary(fi):    libxine-Videolisdke aa-grafiikkakirjastolle (ASCII Art)
Group:          Development/Libraries
Obsoletes:      xine-lib-aa
Obsoletes:      libxine0-aa
Obsoletes:      xine-extra
Provides:       xine-extra
Requires:       %{libname} = %{version}-%{release}

%description aa
libxine video output plugin for aa-library (ASCII Art)

%description aa -l cs
Videovýstupní modul libxine pro knihovnu aa (ASCII Art).

%description aa -l de
libxine Videoausgabeplugin für aa-Bibliothek (ASCII Art)

%description aa -l fi
libxine-Videolisdke aa-grafiikkakirjastolle (ASCII Art)
%endif

%if %BUILD_OPENGL
%package opengl
Summary:        libxine video output plugin using OpenGL (3D graphic cards)
Summary(cs):    Videovýstupní modul libxine používající OpenGL (3D grafické karty)
Summary(de):    libxine Videoausgabeplugin per OpenGL (3D Grafikkarte)
Group:          Development/Libraries
Obsoletes:      xine-lib-opengl
Obsoletes:      libxine0-opengl
Requires:       %{libname} = %{version}-%{release}

%description opengl
libxine video output plugin using OpenGL (3D graphic cards)

%description opengl -l cs
Videovýstupní modul libxine, který používá OpenGL (3D grafické karty).

%description opengl -l de
libxine Videoausgabeplugin per OpenGL (3D Grafikkarte)
%endif

%if %BUILD_SYNCFB
%package syncfb
Summary:        libxine video output plugin using synchroniced framebuffer (Matrox cards)
Summary(cs):    Videovýstupní modul libxine používající framebuffer (karty Matrox)
Summary(de):    libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)
Summary(fi):    libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
Group:          Development/Libraries
Obsoletes:      libxine0-syncfb
Requires:       %{libname} = %{version}-%{release}

%description syncfb
libxine video output plugin using synchroniced framebuffer (Matrox cards)

%description syncfb -l cs
Videovýstupní modul libxine, který používá synchronizovaný framebuffer (karty
Matrox).

%description syncfb -l de
libxine Videoausgabeplugin per synchronisiertem Framebuffer (Matrox Karten)

%description syncfb -l fi
libxine-Videolisdke Matrox-ndyttvkorttien synkronisoitua ndyttvmuistia varten.
%endif

%if %BUILD_DVD
%package dvd
Summary:        libxine input plugin for playing video-dvd's with dvd-navigation
Summary(cs):    Vstupní modul libxine na přehrávání VideoDVD s DVD navigací
Summary(de):    libxine Inputplugin zum abspielen von Video-DVDs mit DVD-Navigation
Summary(fi):    libxine-Lukulisdke, jolla kdyttdjd voi soittaa DVD-levyjd
Group:          Development/Libraries
Obsoletes:      xine-dvdnav
Requires:       %{libname} = %{version}-%{release}

%description dvd
libxine input plugin for playing video-dvd's with dvd-navigation

%description dvd -l cs
Vstupní modul libxine na přehrávání VideoDVD s DVD navigací.

%description dvd -l de
libxine Inputplugin zum abspielen von Video-DVDs mit DVD-Navigation

%description dvd -l fi
libxine-Lukulisdke, jolla kdyttdjd voi soittaa DVD-levyjd
%endif

%if %BUILD_DVB
%package dvb
Summary:        libxine input plugin for DigitalTV devices
Summary(cs):    Vstupní modul libxine pro karty digitální TV
Summary(de):    libxine Einabeplugin für digitale TV-Karten
Summary(fi):    libxine-Lukulisdke, jolla kdyttdjd voi katsella DigitalTV-korttien ohjelmia
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description dvb
libxine input plugin for Digital TV (Digital Video Broadcast - DVB) devices
e.g. Hauppauge WinTV Nova supported by DVB drivers from Convergence

%description dvb -l cs
Vstupní modul libxine pro karty digitální televize (Digital Video Broadcast -
DVB) jako je např. Hauppauge WinTV Nova podporovaná ovladači DVB od
Convergence.

%description dvb -l de
libxine Eingabeplugin für digitale TV-Karten (Digital Video Broadcast - DVB)
z.B. wird die Hauppauge WinTV Nova von Convergence unterstützt.

%description dvb -l fi
libxine-Lukulisdke, jolla kdyttdjd voi katsella DigitalTV-korttien ohjelmia
Esimerkiksi Haupaugen WinTV kortit ovat tuettuja DVB ajureilla.
%endif

%if %BUILD_GNOME_VFS
%package gnome-vfs
Summary:        libxine input plugin for totem (a gnome frontend)
Summary(cs):    Vstupní modul libxine pro totem (frontend GNOME)
Summary(de):    libxine Einabeplugin für totem (ein Gnome Frontend)
Summary(fi):    libxine-Lukulisdke Totem ohjelmaa varten, joka on libxine:n Gnome2 kdyttvliittymd
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description gnome-vfs
libxine input plugin for totem (a gnome frontend)

%description gnome-vfs -l cs
Vstupní modul libxine pro totem (frontend GNOME).

%description gnome-vfs -l de
libxine Einabeplugin für totem (ein Gnome Frontend)

%description gnome-vfs -l fi
libxine-Lukulisdke Totem ohjelmaa varten, joka on libxine Gnome2 kdyttvliittymd
%endif

%if %BUILD_FLAC
%package flac
Summary:        libxine sound input plugin for flac-files (Free Lossless Audio Codec)
Summary(cs):    Zvukový modul libxine pro dekódování souborů FLAC (Free Lossless Audio Codec)
Summary(de):    libxine Soundeinabeplugin für flac-Dateien (Free Lossless Audio Codec)
Summary(fi):    libxine-Ddnilisdke flac-tiedostojen toistamiseen (Free Lossless Audio Codec)
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description flac
libxine sound input plugin for flac-files (Free Lossless Audio Codec)

%description flac -l cs
Zvukový modul libxine pro dekódování souborů FLAC (Free Lossless Audio Codec).

%description flac -l de
libxine Soundeinabeplugin für flac-Dateien (Free Lossless Audio Codec == Freier, verlustfreier Audio-Codec)

%description flac -l fi
libxine-Ddnilisdke flac-tiedostojen toistamiseen (Free Lossless Audio Codec)
%endif

%if %BUILD_OGG
%package ogg
Summary:        libxine sound/video input plugin for ogg/ogm-files
Summary(cs):    Zvukový modul libxine pro dekódování souborů OGG a OGM
Summary(de):    libxine Sound-/Videoeinabeplugin für ogg/ogm-Dateien
Summary(fi):    libxine-Ddni/Videolisdke Ogg/Ogm tiedostojen toistamiseen
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}
Obsoletes:      xine-lib-oggvorbis
Obsoletes:      %{libname}-oggvorbis
Obsoletes:      %{libname}-oggtheora
Provides:       xine-lib-oggvorbis
Provides:       %{libname}-oggvorbis
Provides:       %{libname}-oggtheora

%description ogg
libxine sound/video input plugin for ogg/ogm-files

%description ogg -l cs
Zvukový modul libxine pro dekódování souborů OGG a OGM.

%description ogg -l de
libxine Sound-/Videoeinabeplugin für ogg/ogm-Dateien

%description ogg -l fi
libxine-Ddni/Videolisdke Ogg/Ogm tiedostojen toistamiseen
%endif

%if %BUILD_DIRECTFB
%package directfb
Summary:        libxine video output plugin using libdirectfb
Summary(cs):    Videovýstupní modul libxine používající libdirectfb
Summary(de):    libxine Videoausgabeplugin per libdirectfb
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description directfb
libxine video output plugin using libdirectfb

%description directfb -l cs
Videovýstupní modul libxine, který používá libdirectfb.

%description directfb -l de
libxine Videoausgabeplugin per libdirectfb
%endif

%if %BUILD_STK
%package stk
Summary:        libxine video output plugin using libstk
Summary(cs):    Videovýstupní modul libxine používající libstk
Summary(de):    libxine Videoausgabeplugin per libstk
Group:          Development/Libraries
Requires:       %{libname} = %{version}-%{release}

%description stk
libxine video output plugin using libstk (Set-top Toolkit)

%description stk -l cs
Videovýstupní modul libxine, který používá libstk.

%description stk -l de
libxine Videoausgabeplugin per libstk (Set-top Toolkit)
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package dxr3
Summary:        libxine video output plugin using mpeg2 decoding cards with dxr3 decoder-chip
Summary(cs):    Videovýstupní modul libxine používající karty s čipem DXR3
Summary(de):    libxine Videoausgabeplugin, nutzt MPEG2-decoder-Karten mit dxr3 Decoder-Chip
Summary(fi):    libxine-Videolisdke MPEG2-videopurkukorteille, joissa on DXR3 purkusiru
Group:          Development/Libraries
Obsoletes:      xine-lib-dxr3
Obsoletes:      libxine0-dxr3
Requires:       %{libname} = %{version}-%{release}

%description dxr3
libxine video output plugin using mpeg2 decoding cards with dxr3 decoder-chip

%description dxr3 -l cs
Videovýstupní modul libxine používající karty, které dekódují MPEG2 pomocí čipu
DXR3.

%description dxr3 -l de
libxine Videoausgabeplugin, nutzt MPEG2-decoder-Karten mit dxr3 Decoder-Chip

%description dxr3 -l fi
libxine-Videolisdke MPEG2-videopurkukorteille, joissa on DXR3 purkusiru
%endif
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%package xvmc
Summary:        libxine video output plugin using XVideo-extension with motion compensation
Summary(cs):    Videovýstupní modul libxine používající rozšíření XVideo MC
Summary(de):    libxine Videoausgabeplugin per XVideo-Erweiterung mit Motion Compensation
Group:          Development/Libraries
Obsoletes:      libxine0-xvmc
Autoreqprov:    Off
Requires:       %{libname} = %{version}-%{release}

%description xvmc
libxine video output plugin using XVideo-extension with motion compensation

%description xvmc -l cs
Videovýstupní modul libxine, který používá rozšíření XVideo s kompenzací pohybu.

%description xvmc -l de
libxine Videoausgabeplugin per XVideo-Erweiterung mit Motion Compensation
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
%package w32dll
Summary:        libxine decoding plugin using win32 dlls for native not supported formats
Summary(cs):    Dekódovací modul libxine, který používá DLL knihovny WIN32
Summary(de):    libxine Dekodierplugin, nutzt Win32 dlls für natvie nicht unterstützte Formate
Summary(fi):    libxine-Purkulisdke, joka mahdollistaa Win32 DLL:n kdytvn.
Group:          Development/Libraries
Obsoletes:      xine-lib-w32dll
Obsoletes:      libxine0-w32dll
Requires:       %{libname} = %{version}-%{release}

%description w32dll
libxine decoding plugin using win32 dlls for native not supported formats

%description w32dll -l cs
Dekódovací modul libxine, který používá DLL knihovny WIN32 pro formáty
nepodporované přímo.

%description w32dll -l de
libxine Dekodierplugin, nutzt Win32 dlls für native nicht unterstützte Formate

%description w32dll -l fi
libxine-Purkulisdke, joka mahdollistaa Win32 DLL:n kdytvn.
%endif
%endif

%prep
%setup -q -n xine-lib-1.0

%build
export CFLAGS="${RPM_OPT_FLAGS}"

if [ ! -f configure ]; then
   NO_CONFIGURE=1 ./autogen.sh
fi

#
# currently we do not use %%configure as it seems to cause trouble with
# certain automake produced configure scripts - depending on automake version.
# Use BUILD_ARGS envvar to pass extra parameters to configure (like --enable-dha-mod/etc...)
#
./configure --build=%{_target_platform} --prefix=%{_prefix} \
            --exec-prefix=%{_exec_prefix} --bindir=%{_bindir} \
            --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} \
            --datadir=%{_datadir} --includedir=%{_includedir} \
            --libdir=%{_libdir} --libexecdir=%{_libexecdir} \
            --localstatedir=%{_localstatedir} \
            --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
            --infodir=%{_infodir} \
            --with-internal-vcdlibs

# Error in libfaad when compiling with mmx or sse enabled, remove it
mv src/libfaad/Makefile src/libfaad/Makefile_save
cat src/libfaad/Makefile_save | sed -e "s/-mmmx/-mno-mmx/g" -e "s/-msse/-mno-sse/g" > src/libfaad/Makefile

make

%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=%{?buildroot:%{buildroot}} LIBRARY_PATH=%{?buildroot:%{buildroot}}%{_libdir} install

cd ${RPM_BUILD_ROOT}

echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_zw
%if %BUILD_DEVEL
echo "%doc README TODO AUTHORS COPYING ChangeLog" >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
%else
echo "%doc README TODO AUTHORS COPYING ChangeLog doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
%endif
find . -type f | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
find . -type l | sed 's,^\.%{_datadir}/doc,\%doc %{_datadir}/doc,' | sed 's,^\.,,' >> ${RPM_BUILD_DIR}/filelist_libxine1_zw
grep -v "/man/" ${RPM_BUILD_DIR}/filelist_libxine1_zw | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
grep "/man/" ${RPM_BUILD_DIR}/filelist_libxine1_zw | sed -e 's/$/\*/g' | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_zw

%if %BUILD_DEVEL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_devel
echo "%doc doc/hackersguide/*.sgml doc/hackersguide/*.fig doc/hackersguide/README" >> ${RPM_BUILD_DIR}/filelist_libxine1_devel
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_devel
grep -v -E "/include/|dhahelper\.o|libxine*\.(so|la)$|\.m4$" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ALSA09
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_alsa09
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_alsa09
grep -v "xineplug_ao_out_alsa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ARTS
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_arts
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_arts
grep -v "xineplug_ao_out_arts\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_ESD
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_esd
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_esd
grep -v "xineplug_ao_out_esd\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dxr3
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "dxr3" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dxr3
grep -v "dxr3" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_SDL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_sdl
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_sdl
grep -v "xineplug_vo_out_sdl\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_AA
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_aa
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_aa\."  ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_aa
grep -v "xineplug_vo_out_aa\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_OPENGL
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_opengl
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_opengl
grep -v -E "xineplug_vo_out_opengl\.|README.opengl" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_SYNCFB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_syncfb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_syncfb
grep -v -E "xineplug_vo_out_syncfb\.|README\.syncfb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DIRECTFB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_directfb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_directfb
grep -v -E "xineplug_vo_out_directfb\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_STK
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_stk
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_stk
grep -v -E "xineplug_vo_out_stk\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_xvmc
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_xvmc
grep -v "xineplug_vo_out_x[x|v]mc\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_w32dll
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_w32dll
grep -v -E "xineplug_decode_qt\.|xineplug_decode_w32dll\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif
%endif

%if %BUILD_DVB
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dvb
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dvb
grep -v -E "xineplug_inp_dvb\.|README\.dvb" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_DVD
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_dvd
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_dvd
grep -v -E "xineplug_inp_dvd\.|README\.network_dvd" ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_GNOME_VFS
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_gnome_vfs
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_gnome_vfs
grep -v "xineplug_inp_gnome_vfs\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_FLAC
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_flac
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_flac
grep -v "xineplug_flac\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%if %BUILD_OGG
echo "%defattr(-,root,root)" > ${RPM_BUILD_DIR}/filelist_libxine1_ogg
mv ${RPM_BUILD_DIR}/filelist_libxine1 ${RPM_BUILD_DIR}/filelist_libxine1_old
grep -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - >> ${RPM_BUILD_DIR}/filelist_libxine1_ogg
grep -v -E "xineplug_decode_vorbis\.|xineplug_dmx_ogg\.|xineplug_decode_theora\.|xineplug_decode_speex\." ${RPM_BUILD_DIR}/filelist_libxine1_old | cat - > ${RPM_BUILD_DIR}/filelist_libxine1
rm ${RPM_BUILD_DIR}/filelist_libxine1_old
%endif

%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%files -f ../filelist_libxine1

%if %BUILD_DEVEL
%files devel -f ../filelist_libxine1_devel
%endif

%if %BUILD_ALSA09
%files alsa09 -f ../filelist_libxine1_alsa09
%endif

%if %BUILD_ARTS
%files arts -f ../filelist_libxine1_arts
%endif

%if %BUILD_ESD
%files esd -f ../filelist_libxine1_esd
%endif

%if %BUILD_DXR3
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%files dxr3 -f ../filelist_libxine1_dxr3
%endif
%endif

%if %BUILD_SDL
%files sdl -f ../filelist_libxine1_sdl
%endif

%if %BUILD_AA
%files aa -f ../filelist_libxine1_aa
%endif

%if %BUILD_OPENGL
%files opengl -f ../filelist_libxine1_opengl
%endif

%if %BUILD_SYNCFB
%files syncfb -f ../filelist_libxine1_syncfb
%endif

%if %BUILD_DIRECTFB
%files directfb -f ../filelist_libxine1_directfb
%endif

%if %BUILD_STK
%files stk -f ../filelist_libxine1_stk
%endif

%if %BUILD_XVMC
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon x86_64 amd64 ia32e
%files xvmc -f ../filelist_libxine1_xvmc
%endif
%endif

%if %BUILD_W32DLL
%ifarch i386 i486 i586 i686 i786 i868 i986 k6 k7 athlon
%files w32dll -f ../filelist_libxine1_w32dll
%endif
%endif

%if %BUILD_DVB
%files dvb -f ../filelist_libxine1_dvb
%endif

%if %BUILD_DVD
%files dvd -f ../filelist_libxine1_dvd
%endif

%if %BUILD_GNOME_VFS
%files gnome-vfs -f ../filelist_libxine1_gnome_vfs
%endif

%if %BUILD_FLAC
%files flac -f ../filelist_libxine1_flac
%endif

%if %BUILD_OGG
%files ogg -f ../filelist_libxine1_ogg
%endif

%changelog
* Tue Dec 07 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- included xxmc video out plugin into xvmc sub-rpm
* Sat Sep 11 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added missing Requires-Statements in the subpackages
* Fri Sep 03 2004 František Dvořák <valtri@users.sourceforge.net>
- Czech translation update
* Thu Sep 02 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- konverted to UTF8
- some fixes for non IA32 systems (especialy Athlon64/Opteron)
* Sat May 01 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- activated opengl plugin
* Tue Apr 06 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- removed xvid modules from -devel package and put it back
  to main package.
* Fri Feb 13 2004 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added new sub-rpm for stk videoout plugin
* Fri Nov 21 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- use internal vcdlibs to keep dependencies low
* Sun Oct 19 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added separate directfb-package to solve dependendies
* Tue Oct 07 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- activated separte xvmc package, when this is wanted.
* Sun Jul 20 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- made ogg-package out of oggvorbis, oggtheora and the new
  oggspeex xine-plugins
* Sat May 24 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- complete rework of the specfile
* Wed May 14 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for > 1-beta13
* Sat Mar 08 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added missing doc-files
* Wed Jan 15 2003 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- removed man3 manpages in devel-filelist
* Tue Dec 24 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for libxine 1.0beta1 added pkgconfig-directory
* Wed Dec 11 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update for libxine 1.0beta0, fonts-directory has been changed
* Sat Dec 07 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added translation for finnish by Tuukka Pasanen <illuusio@mailcity.com>
- some updates to german and english descriptions
- added post-directory to file-list
* Sat Nov 09 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Final changes for libxine 1.0alpha1
* Mon Nov 04 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- another change to make it run with next version
* Sat Nov 02 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Changes for next xine version
* Sun Oct 27 2002 Manfred Tremmel <Manfred.Tremmel@iiv.de>
- Update of the german descriptions.
* Thu Jun 06 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- ability to pass args to configure. Fix vidix/dhahelper inclusion.
* Mon May 27 2002 Matthias Dahl <matthew2k@web.de>
- added passing of build parameter to configure
* Sun May 26 2002 Matthias Dahl <matthew2k@web.de>
- added german translations by Manfred Tremmel <Manfred.Tremmel@iiv.de>
- added fixes (missing -l cs) by Manfred Tremmel <Manfred.Tremmel@iiv.de>
* Sat May 18 2002 Matthias Dahl <matthew2k@web.de>
- added czech translations by valtri@atlas.cz
* Thu May 16 2002 Matthias Dahl <matthew2k@web.de>
- replaced %configure because it was causing trouble on certain configurations
* Sat May 11 2002 Matthias Dahl <matthew2k@web.de>
- reworked/revamped spec file, still needs some tuning (BuildPreReq, ...)
* Thu May 2 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- sync with new logo stuff.
* Wed May 1 2002 Matthias Dahl <matthew2k@web.de>
- added cinepak, cyuv and msvc decode plugins
- commented out sdl related parts because this is currently broken in xine-lib
- added 'cs,pl_PL' translation catalogs
* Sun Mar 31 2002 Matthias Dahl <matthew2k@web.de>
- added mms input plugin, spucc decoder and missing xine_logo.zyuy2.
- commented out video fill decoder for now as it seems to be no longer built
* Wed Feb 6 2002 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- added 'de,fr,pt_BR' translation catalogs.
* Sat Dec 26 2001 Matthias Dahl <matthew2k@web.de>
- added sputext decode plugin and fonts.
* Sat Dec 8 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- ASF plugin is optional.
* Thu Dec 6 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add cda plugins.
* Wed Nov 14 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- fixed dxr3 header files inclusion, aalib deps: thanks to Andrew Meredith <andrew@anvil.org>.
* Mon Oct 29 2001 Matthias Dahl <matthew2k@web.de>
- added http input plugin
* Thu Oct 18 2001 Matthias Dahl <matthew2k@web.de>
- added asf demuxer plugin
* Sun Oct 14 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- move vorbis in separate package. Add DivX4 decoder plugin.
* Wed Oct 10 2001 Matthias Dahl <matthew2k@web.de>
- added vorbis files and missing man pages to filelist.
* Thu Sep 27 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add desktop stuff from patches by Miguel Freitas <miguel@cetuc.puc-rio.br>
- Fixed xine.m4 installation from Andrew Meredith <andrew@anvil.org>
* Fri Sep 21 2001 Matthias Dahl <matthew2k@web.de>
- added two missing files (xine-config man page and xine.m4)
* Sun Sep 16 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Merge patch from Jos�Carlos Monteiro <jcm@netcabo.pt>:
  - Filelist and other minor updates,
  - Fixed some SuSE compatibility issues,
  - Added Portuguese summary.
* Sun Sep 16 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Add missing files.
* Sun Aug 19 2001 Matthias Dahl <matthew2k@web.de>
- The usual update to the filelist :)
- temporarily removed mpg123 decoder plugin from filelist cause it is not
  built with the recent CVS tree
* Thu Jul 26 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- Made oss, aa, xv, esd, w32dll, documentation as separate packages.
* Thu Jul 26 2001 Matthias Dahl <matthew2k@web.de>
- added seperate arts package and one missing demuxer plugin to filelist
* Wed Jul 18 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- list all plugins to avoid *strange* inclusion ;-).
* Sun Jun 10 2001 Matthias Dahl <matthew2k@web.de>
- updated filelist
- re-activated execution of /sbin/ldconfig as post install script
* Thu Mar 28 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- add korean summary, patch from Louis JANG <louis@ns.mizi.com>
* Thu Jan 11 2001 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- patch from Sung-Hyun Nam <namsh@lgic.co.kr> applied.
* Fri Oct 17 2000 Daniel Caujolle-Bert <f1rmb@users.sourceforge.net>
- first spec file.

--- NEW FILE: Makefile.in ---
# Makefile.in generated by automake 1.9.3 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@


srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
	$(srcdir)/SlackBuild.in $(srcdir)/build_rpms.sh.in \
	$(srcdir)/libxine.pc.in $(srcdir)/relchk.sh.in \
	$(srcdir)/xine-config.in $(srcdir)/xine-lib.spec.in \
	$(top_srcdir)/misc/Makefile.common
subdir = misc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/_xine.m4 $(top_srcdir)/m4/aa.m4 \
	$(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/arts.m4 \
	$(top_srcdir)/m4/as.m4 $(top_srcdir)/m4/caca.m4 \
	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/directx.m4 \
	$(top_srcdir)/m4/dl.m4 $(top_srcdir)/m4/dvdnav.m4 \
	$(top_srcdir)/m4/esd.m4 $(top_srcdir)/m4/ffmpeg.m4 \
	$(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
	$(top_srcdir)/m4/irixal.m4 $(top_srcdir)/m4/lcmessage.m4 \
	$(top_srcdir)/m4/libFLAC.m4 $(top_srcdir)/m4/libfame.m4 \
	$(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/opengl.m4 \
	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/progtest.m4 \
	$(top_srcdir)/m4/sdl.m4 $(top_srcdir)/m4/speex.m4 \
	$(top_srcdir)/m4/theora.m4 $(top_srcdir)/m4/vorbis.m4 \
	$(top_srcdir)/m4/xv.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = SlackBuild build_rpms.sh libxine.pc relchk.sh \
	xine-config xine-lib.spec
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"
binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(bin_SCRIPTS)
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
	html-recursive info-recursive install-data-recursive \
	install-exec-recursive install-info-recursive \
	install-recursive installcheck-recursive installdirs-recursive \
	pdf-recursive ps-recursive uninstall-info-recursive \
	uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
DATA = $(pkgconfig_DATA)
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AAINFO = @AAINFO@
AALIB_CFLAGS = @AALIB_CFLAGS@
AALIB_CONFIG = @AALIB_CONFIG@
AALIB_LIBS = @AALIB_LIBS@
ACLOCAL = @ACLOCAL@
ACLOCAL_DIR = @ACLOCAL_DIR@
ALLOCA = @ALLOCA@
ALSA_CFLAGS = @ALSA_CFLAGS@
ALSA_LIBS = @ALSA_LIBS@
ALSA_STATIC_LIB = @ALSA_STATIC_LIB@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
ARTS_CFLAGS = @ARTS_CFLAGS@
ARTS_CONFIG = @ARTS_CONFIG@
ARTS_LIBS = @ARTS_LIBS@
AS = @AS@
ASFLAGS = @ASFLAGS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_ASF_FALSE = @BUILD_ASF_FALSE@
BUILD_ASF_TRUE = @BUILD_ASF_TRUE@
BUILD_DHA_KMOD_FALSE = @BUILD_DHA_KMOD_FALSE@
BUILD_DHA_KMOD_TRUE = @BUILD_DHA_KMOD_TRUE@
BUILD_FAAD_FALSE = @BUILD_FAAD_FALSE@
BUILD_FAAD_TRUE = @BUILD_FAAD_TRUE@
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
CACA_CFLAGS = @CACA_CFLAGS@
CACA_CONFIG = @CACA_CONFIG@
CACA_LIBS = @CACA_LIBS@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCAS = @CCAS@
CCASCOMPILE = @CCASCOMPILE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEBUG_CFLAGS = @DEBUG_CFLAGS@
DEFS = @DEFS@
DEPCOMP = @DEPCOMP@
DEPDIR = @DEPDIR@
DEPMOD = @DEPMOD@
DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
DIRECTFB_LIBS = @DIRECTFB_LIBS@
DIRECTX_AUDIO_LIBS = @DIRECTX_AUDIO_LIBS@
DIRECTX_CPPFLAGS = @DIRECTX_CPPFLAGS@
DIRECTX_VIDEO_LIBS = @DIRECTX_VIDEO_LIBS@
DLLTOOL = @DLLTOOL@
DVDNAV_CFLAGS = @DVDNAV_CFLAGS@
DVDNAV_CONFIG = @DVDNAV_CONFIG@
DVDNAV_LIBS = @DVDNAV_LIBS@
DYNAMIC_LD_LIBS = @DYNAMIC_LD_LIBS@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_VCD_FALSE = @ENABLE_VCD_FALSE@
ENABLE_VCD_TRUE = @ENABLE_VCD_TRUE@
ESD_CFLAGS = @ESD_CFLAGS@
ESD_CONFIG = @ESD_CONFIG@
ESD_LIBS = @ESD_LIBS@
EXEEXT = @EXEEXT@
EXTRA_X_CFLAGS = @EXTRA_X_CFLAGS@
EXTRA_X_LIBS = @EXTRA_X_LIBS@
F77 = @F77@
FFLAGS = @FFLAGS@
FFMPEG_CPPFLAGS = @FFMPEG_CPPFLAGS@
FFMPEG_LIBS = @FFMPEG_LIBS@
FIG2DEV = @FIG2DEV@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FT2_CFLAGS = @FT2_CFLAGS@
FT2_LIBS = @FT2_LIBS@
GENCAT = @GENCAT@
GLIBC21 = @GLIBC21@
GLUT_LIBS = @GLUT_LIBS@
GLU_LIBS = @GLU_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
GOOM_LIBS = @GOOM_LIBS@
HAVE_AA_FALSE = @HAVE_AA_FALSE@
HAVE_AA_TRUE = @HAVE_AA_TRUE@
HAVE_ALSA09_FALSE = @HAVE_ALSA09_FALSE@
HAVE_ALSA09_TRUE = @HAVE_ALSA09_TRUE@
HAVE_ALSA_FALSE = @HAVE_ALSA_FALSE@
HAVE_ALSA_TRUE = @HAVE_ALSA_TRUE@
HAVE_ARMV4L_FALSE = @HAVE_ARMV4L_FALSE@
HAVE_ARMV4L_TRUE = @HAVE_ARMV4L_TRUE@
HAVE_ARTS_FALSE = @HAVE_ARTS_FALSE@
HAVE_ARTS_TRUE = @HAVE_ARTS_TRUE@
HAVE_BSDI_CDROM = @HAVE_BSDI_CDROM@
HAVE_CACA_FALSE = @HAVE_CACA_FALSE@
HAVE_CACA_TRUE = @HAVE_CACA_TRUE@
HAVE_CDROM_IOCTLS_FALSE = @HAVE_CDROM_IOCTLS_FALSE@
HAVE_CDROM_IOCTLS_TRUE = @HAVE_CDROM_IOCTLS_TRUE@
HAVE_COREAUDIO_FALSE = @HAVE_COREAUDIO_FALSE@
HAVE_COREAUDIO_TRUE = @HAVE_COREAUDIO_TRUE@
HAVE_DARWIN_CDROM = @HAVE_DARWIN_CDROM@
HAVE_DIRECTFB_FALSE = @HAVE_DIRECTFB_FALSE@
HAVE_DIRECTFB_TRUE = @HAVE_DIRECTFB_TRUE@
HAVE_DIRECTX_FALSE = @HAVE_DIRECTX_FALSE@
HAVE_DIRECTX_TRUE = @HAVE_DIRECTX_TRUE@
HAVE_DVDNAV_FALSE = @HAVE_DVDNAV_FALSE@
HAVE_DVDNAV_TRUE = @HAVE_DVDNAV_TRUE@
HAVE_DXR3_FALSE = @HAVE_DXR3_FALSE@
HAVE_DXR3_TRUE = @HAVE_DXR3_TRUE@
HAVE_ESD_FALSE = @HAVE_ESD_FALSE@
HAVE_ESD_TRUE = @HAVE_ESD_TRUE@
HAVE_FB_FALSE = @HAVE_FB_FALSE@
HAVE_FB_TRUE = @HAVE_FB_TRUE@
HAVE_FFMMX_FALSE = @HAVE_FFMMX_FALSE@
HAVE_FFMMX_TRUE = @HAVE_FFMMX_TRUE@
HAVE_FFMPEG_FALSE = @HAVE_FFMPEG_FALSE@
HAVE_FFMPEG_TRUE = @HAVE_FFMPEG_TRUE@
HAVE_FIG2DEV_FALSE = @HAVE_FIG2DEV_FALSE@
HAVE_FIG2DEV_TRUE = @HAVE_FIG2DEV_TRUE@
HAVE_FLAC_FALSE = @HAVE_FLAC_FALSE@
HAVE_FLAC_TRUE = @HAVE_FLAC_TRUE@
HAVE_FREEBSD_CDROM = @HAVE_FREEBSD_CDROM@
HAVE_GNOME_VFS_FALSE = @HAVE_GNOME_VFS_FALSE@
HAVE_GNOME_VFS_TRUE = @HAVE_GNOME_VFS_TRUE@
HAVE_IRIXAL_FALSE = @HAVE_IRIXAL_FALSE@
HAVE_IRIXAL_TRUE = @HAVE_IRIXAL_TRUE@
HAVE_LIBFAME_FALSE = @HAVE_LIBFAME_FALSE@
HAVE_LIBFAME_TRUE = @HAVE_LIBFAME_TRUE@
HAVE_LIBMNG_FALSE = @HAVE_LIBMNG_FALSE@
HAVE_LIBMNG_TRUE = @HAVE_LIBMNG_TRUE@
HAVE_LIBPNG_FALSE = @HAVE_LIBPNG_FALSE@
HAVE_LIBPNG_TRUE = @HAVE_LIBPNG_TRUE@
HAVE_LIBRTE_FALSE = @HAVE_LIBRTE_FALSE@
HAVE_LIBRTE_TRUE = @HAVE_LIBRTE_TRUE@
HAVE_LIBSMBCLIENT_FALSE = @HAVE_LIBSMBCLIENT_FALSE@
HAVE_LIBSMBCLIENT_TRUE = @HAVE_LIBSMBCLIENT_TRUE@
HAVE_LINUX_CDROM = @HAVE_LINUX_CDROM@
HAVE_LINUX_FALSE = @HAVE_LINUX_FALSE@
HAVE_LINUX_TRUE = @HAVE_LINUX_TRUE@
HAVE_MACOSX_VIDEO_FALSE = @HAVE_MACOSX_VIDEO_FALSE@
HAVE_MACOSX_VIDEO_TRUE = @HAVE_MACOSX_VIDEO_TRUE@
HAVE_MLIB_FALSE = @HAVE_MLIB_FALSE@
HAVE_MLIB_TRUE = @HAVE_MLIB_TRUE@
HAVE_OPENGL_FALSE = @HAVE_OPENGL_FALSE@
HAVE_OPENGL_TRUE = @HAVE_OPENGL_TRUE@
HAVE_OSS_FALSE = @HAVE_OSS_FALSE@
HAVE_OSS_TRUE = @HAVE_OSS_TRUE@
HAVE_POLYPAUDIO_FALSE = @HAVE_POLYPAUDIO_FALSE@
HAVE_POLYPAUDIO_TRUE = @HAVE_POLYPAUDIO_TRUE@
HAVE_SDL_FALSE = @HAVE_SDL_FALSE@
HAVE_SDL_TRUE = @HAVE_SDL_TRUE@
HAVE_SGMLTOOLS_FALSE = @HAVE_SGMLTOOLS_FALSE@
HAVE_SGMLTOOLS_TRUE = @HAVE_SGMLTOOLS_TRUE@
HAVE_SOLARIS_CDROM = @HAVE_SOLARIS_CDROM@
HAVE_SPEEX_FALSE = @HAVE_SPEEX_FALSE@
HAVE_SPEEX_TRUE = @HAVE_SPEEX_TRUE@
HAVE_STK_FALSE = @HAVE_STK_FALSE@
HAVE_STK_TRUE = @HAVE_STK_TRUE@
HAVE_SUNAUDIO_FALSE = @HAVE_SUNAUDIO_FALSE@
HAVE_SUNAUDIO_TRUE = @HAVE_SUNAUDIO_TRUE@
HAVE_SUNDGA_FALSE = @HAVE_SUNDGA_FALSE@
HAVE_SUNDGA_TRUE = @HAVE_SUNDGA_TRUE@
HAVE_SUNFB_FALSE = @HAVE_SUNFB_FALSE@
HAVE_SUNFB_TRUE = @HAVE_SUNFB_TRUE@
HAVE_SYNCFB_FALSE = @HAVE_SYNCFB_FALSE@
HAVE_SYNCFB_TRUE = @HAVE_SYNCFB_TRUE@
HAVE_THEORA_FALSE = @HAVE_THEORA_FALSE@
HAVE_THEORA_TRUE = @HAVE_THEORA_TRUE@
HAVE_V4L_FALSE = @HAVE_V4L_FALSE@
HAVE_V4L_TRUE = @HAVE_V4L_TRUE@
HAVE_VCDNAV_FALSE = @HAVE_VCDNAV_FALSE@
HAVE_VCDNAV_TRUE = @HAVE_VCDNAV_TRUE@
HAVE_VIDIX_FALSE = @HAVE_VIDIX_FALSE@
HAVE_VIDIX_TRUE = @HAVE_VIDIX_TRUE@
HAVE_VLDXVMC_FALSE = @HAVE_VLDXVMC_FALSE@
HAVE_VLDXVMC_TRUE = @HAVE_VLDXVMC_TRUE@
HAVE_VORBIS_FALSE = @HAVE_VORBIS_FALSE@
HAVE_VORBIS_TRUE = @HAVE_VORBIS_TRUE@
HAVE_W32DLL_FALSE = @HAVE_W32DLL_FALSE@
HAVE_W32DLL_TRUE = @HAVE_W32DLL_TRUE@
HAVE_WIN32_CDROM = @HAVE_WIN32_CDROM@
HAVE_X11_FALSE = @HAVE_X11_FALSE@
HAVE_X11_TRUE = @HAVE_X11_TRUE@
HAVE_XVMC_FALSE = @HAVE_XVMC_FALSE@
HAVE_XVMC_TRUE = @HAVE_XVMC_TRUE@
HAVE_XV_FALSE = @HAVE_XV_FALSE@
HAVE_XV_TRUE = @HAVE_XV_TRUE@
HAVE_XXMC_FALSE = @HAVE_XXMC_FALSE@
HAVE_XXMC_TRUE = @HAVE_XXMC_TRUE@
HAVE_ZLIB_FALSE = @HAVE_ZLIB_FALSE@
HAVE_ZLIB_TRUE = @HAVE_ZLIB_TRUE@
HOST_OS_DARWIN_FALSE = @HOST_OS_DARWIN_FALSE@
HOST_OS_DARWIN_TRUE = @HOST_OS_DARWIN_TRUE@
INCLUDED_INTL_FALSE = @INCLUDED_INTL_FALSE@
INCLUDED_INTL_TRUE = @INCLUDED_INTL_TRUE@
INCLUDES = @INCLUDES@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_M4_FALSE = @INSTALL_M4_FALSE@
INSTALL_M4_TRUE = @INSTALL_M4_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLBISON = @INTLBISON@
INTLDIR = @INTLDIR@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
IRIXAL_CFLAGS = @IRIXAL_CFLAGS@
IRIXAL_LIBS = @IRIXAL_LIBS@
IRIXAL_STATIC_LIB = @IRIXAL_STATIC_LIB@
KSTAT_LIBS = @KSTAT_LIBS@
LDFLAGS = @LDFLAGS@
LIBCDIO_CFLAGS = @LIBCDIO_CFLAGS@
LIBCDIO_LIBS = @LIBCDIO_LIBS@
LIBFAME_CFLAGS = @LIBFAME_CFLAGS@
LIBFAME_CONFIG = @LIBFAME_CONFIG@
LIBFAME_LIBS = @LIBFAME_LIBS@
LIBFFMPEG_CFLAGS = @LIBFFMPEG_CFLAGS@
LIBFLAC_CFLAGS = @LIBFLAC_CFLAGS@
LIBFLAC_LIBS = @LIBFLAC_LIBS@
LIBICONV = @LIBICONV@
LIBISO9660_LIBS = @LIBISO9660_LIBS@
LIBMODPLUG_CFLAGS = @LIBMODPLUG_CFLAGS@
LIBMODPLUG_LIBS = @LIBMODPLUG_LIBS@
LIBMPEG2_CFLAGS = @LIBMPEG2_CFLAGS@
LIBNAME = @LIBNAME@
LIBOBJS = @LIBOBJS@
LIBPNG_CONFIG = @LIBPNG_CONFIG@
LIBS = @LIBS@
LIBSMBCLIENT_LIBS = @LIBSMBCLIENT_LIBS@
LIBSTK_CFLAGS = @LIBSTK_CFLAGS@
LIBSTK_LIBS = @LIBSTK_LIBS@
LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIBVCDINFO_LIBS = @LIBVCDINFO_LIBS@
LIBVCD_CFLAGS = @LIBVCD_CFLAGS@
LIBVCD_LIBS = @LIBVCD_LIBS@
LIBVCD_SYSDEP = @LIBVCD_SYSDEP@
LINUX_CDROM_TIMEOUT = @LINUX_CDROM_TIMEOUT@
LINUX_INCLUDE = @LINUX_INCLUDE@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_REVISION = @LT_REVISION@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MKNOD = @MKNOD@
MLIB_CFLAGS = @MLIB_CFLAGS@
MLIB_LIBS = @MLIB_LIBS@
MNG_LIBS = @MNG_LIBS@
MSGFMT = @MSGFMT@
NET_LIBS = @NET_LIBS@
OBJC = @OBJC@
OBJCDEPMODE = @OBJCDEPMODE@
OBJCFLAGS = @OBJCFLAGS@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OGG_CFLAGS = @OGG_CFLAGS@
OGG_LIBS = @OGG_LIBS@
OPENGL_CFLAGS = @OPENGL_CFLAGS@
OPENGL_LIBS = @OPENGL_LIBS@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASS1_CFLAGS = @PASS1_CFLAGS@
PASS2_CFLAGS = @PASS2_CFLAGS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PNG_CFLAGS = @PNG_CFLAGS@
PNG_LIBS = @PNG_LIBS@
POFILES = @POFILES@
POLYPAUDIO_CFLAGS = @POLYPAUDIO_CFLAGS@
POLYPAUDIO_LIBS = @POLYPAUDIO_LIBS@
POSUB = @POSUB@
PPC_ARCH_FALSE = @PPC_ARCH_FALSE@
PPC_ARCH_TRUE = @PPC_ARCH_TRUE@
RANLIB = @RANLIB@
RT_LIBS = @RT_LIBS@
SDL_CFLAGS = @SDL_CFLAGS@
SDL_CONFIG = @SDL_CONFIG@
SDL_LIBS = @SDL_LIBS@
SET_MAKE = @SET_MAKE@
SGMLTOOLS = @SGMLTOOLS@
SHELL = @SHELL@
SPEC_VERSION = @SPEC_VERSION@
SPEEX_CFLAGS = @SPEEX_CFLAGS@
SPEEX_LIBS = @SPEEX_LIBS@
STATIC = @STATIC@
STRIP = @STRIP@
SUNDGA_CFLAGS = @SUNDGA_CFLAGS@
SUNDGA_LIBS = @SUNDGA_LIBS@
TAR_NAME = @TAR_NAME@
THEORAENC_LIBS = @THEORAENC_LIBS@
THEORAFILE_LIBS = @THEORAFILE_LIBS@
THEORA_CFLAGS = @THEORA_CFLAGS@
THEORA_LIBS = @THEORA_LIBS@
THREAD_CFLAGS = @THREAD_CFLAGS@
THREAD_CFLAGS_CONFIG = @THREAD_CFLAGS_CONFIG@
THREAD_INCLUDES = @THREAD_INCLUDES@
THREAD_LIBS = @THREAD_LIBS@
THREAD_LIBS_CONFIG = @THREAD_LIBS_CONFIG@
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VORBISENC_LIBS = @VORBISENC_LIBS@
VORBISFILE_LIBS = @VORBISFILE_LIBS@
VORBIS_CFLAGS = @VORBIS_CFLAGS@
VORBIS_LIBS = @VORBIS_LIBS@
W32DLL_DEP = @W32DLL_DEP@
W32_NO_OPTIMIZE = @W32_NO_OPTIMIZE@
WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
WIN32_FALSE = @WIN32_FALSE@
WIN32_TRUE = @WIN32_TRUE@
XGETTEXT = @XGETTEXT@
XINE_ACFLAGS = @XINE_ACFLAGS@
XINE_BIN_AGE = @XINE_BIN_AGE@
XINE_BUILD_CC = @XINE_BUILD_CC@
XINE_BUILD_DATE = @XINE_BUILD_DATE@
XINE_BUILD_OS = @XINE_BUILD_OS@
XINE_CONFIG_PREFIX = @XINE_CONFIG_PREFIX@
XINE_DATADIR = @XINE_DATADIR@
XINE_FONTDIR = @XINE_FONTDIR@
XINE_FONTPATH = @XINE_FONTPATH@
XINE_IFACE_AGE = @XINE_IFACE_AGE@
XINE_LOCALEDIR = @XINE_LOCALEDIR@
XINE_LOCALEPATH = @XINE_LOCALEPATH@
XINE_MAJOR = @XINE_MAJOR@
XINE_MINOR = @XINE_MINOR@
XINE_PLUGINDIR = @XINE_PLUGINDIR@
XINE_PLUGINPATH = @XINE_PLUGINPATH@
XINE_PLUGIN_MIN_SYMS = @XINE_PLUGIN_MIN_SYMS@
XINE_SCRIPTPATH = @XINE_SCRIPTPATH@
XINE_SUB = @XINE_SUB@
XVMC_LIB = @XVMC_LIB@
XV_LIB = @XV_LIB@
XXMC_LIB = @XXMC_LIB@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZLIB_INCLUDES = @ZLIB_INCLUDES@
ZLIB_LIBS = @ZLIB_LIBS@
ZLIB_LIBS_CONFIG = @ZLIB_LIBS_CONFIG@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__fastdepOBJC_FALSE = @am__fastdepOBJC_FALSE@
am__fastdepOBJC_TRUE = @am__fastdepOBJC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
w32_path = @w32_path@
XINE_LIB = $(top_builddir)/src/xine-engine/libxine.la
SUBDIRS = fonts
EXTRA_DIST = build_rpms.sh \
	cdda_server.c \
	SlackBuild.in \
	SlackBuild \
	vga.xinefont.gz \
	xine-fontconv.c \
	xine-lib.spec.in \
	xine-lib.spec \
	libxine.pc.in \
	libdvdcss-1.2.6-network.patch \
	Makefile.common

bin_SCRIPTS = xine-config
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libxine.pc
all: all-recursive

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/misc/Makefile.common $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  misc/Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --gnu  misc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
SlackBuild: $(top_builddir)/config.status $(srcdir)/SlackBuild.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
build_rpms.sh: $(top_builddir)/config.status $(srcdir)/build_rpms.sh.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
libxine.pc: $(top_builddir)/config.status $(srcdir)/libxine.pc.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
relchk.sh: $(top_builddir)/config.status $(srcdir)/relchk.sh.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
xine-config: $(top_builddir)/config.status $(srcdir)/xine-config.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
xine-lib.spec: $(top_builddir)/config.status $(srcdir)/xine-lib.spec.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binSCRIPTS: $(bin_SCRIPTS)
	@$(NORMAL_INSTALL)
	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
	@list='$(bin_SCRIPTS)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  if test -f $$d$$p; then \
	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
	  else :; fi; \
	done

uninstall-binSCRIPTS:
	@$(NORMAL_UNINSTALL)
	@list='$(bin_SCRIPTS)'; for p in $$list; do \
	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
	done

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

distclean-libtool:
	-rm -f libtool
uninstall-info-am:
install-pkgconfigDATA: $(pkgconfig_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)"
	@list='$(pkgconfig_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
	  $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
	done

uninstall-pkgconfigDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(pkgconfig_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
	  rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
	done

# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
#     (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
	@set fnord $$MAKEFLAGS; amf=$$2; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
	@set fnord $$MAKEFLAGS; amf=$$2; \
	dot_seen=no; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	rev=''; for subdir in $$list; do \
	  if test "$$subdir" = "."; then :; else \
	    rev="$$subdir $$rev"; \
	  fi; \
	done; \
	rev="$$rev ."; \
	target=`echo $@ | sed s/-recursive//`; \
	for subdir in $$rev; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
	done && test -z "$$fail"
tags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
	done
ctags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
	done

ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	    $$tags $$unique; \
	fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	test -z "$(CTAGS_ARGS)$$tags$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$tags $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && cd $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) $$here

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	$(mkdir_p) $(distdir)/../misc
	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
	list='$(DISTFILES)'; for file in $$list; do \
	  case $$file in \
	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
	  esac; \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
	    dir="/$$dir"; \
	    $(mkdir_p) "$(distdir)$$dir"; \
	  else \
	    dir=''; \
	  fi; \
	  if test -d $$d/$$file; then \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test -d "$(distdir)/$$subdir" \
	    || $(mkdir_p) "$(distdir)/$$subdir" \
	    || exit 1; \
	    distdir=`$(am__cd) $(distdir) && pwd`; \
	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
	    (cd $$subdir && \
	      $(MAKE) $(AM_MAKEFLAGS) \
	        top_distdir="$$top_distdir" \
	        distdir="$$distdir/$$subdir" \
	        distdir) \
	      || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-recursive
all-am: Makefile $(SCRIPTS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfigdir)"; do \
	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
	done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-recursive
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
clean: clean-recursive

clean-am: clean-generic clean-libtool mostlyclean-am

distclean: distclean-recursive
	-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \
	distclean-tags

dvi: dvi-recursive

dvi-am:

html: html-recursive

info: info-recursive

info-am:

install-data-am: install-pkgconfigDATA
	@$(NORMAL_INSTALL)
	$(MAKE) $(AM_MAKEFLAGS) install-data-hook

install-exec-am: install-binSCRIPTS

install-info: install-info-recursive

install-man:

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

mostlyclean-am: mostlyclean-generic mostlyclean-libtool

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-binSCRIPTS uninstall-info-am \
	uninstall-pkgconfigDATA
	@$(NORMAL_INSTALL)
	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook

uninstall-info: uninstall-info-recursive

.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
	clean clean-generic clean-libtool clean-recursive ctags \
	ctags-recursive distclean distclean-generic distclean-libtool \
	distclean-recursive distclean-tags distdir dvi dvi-am html \
	html-am info info-am install install-am install-binSCRIPTS \
	install-data install-data-am install-data-hook install-exec \
	install-exec-am install-info install-info-am install-man \
	install-pkgconfigDATA install-strip installcheck \
	installcheck-am installdirs installdirs-am maintainer-clean \
	maintainer-clean-generic maintainer-clean-recursive \
	mostlyclean mostlyclean-generic mostlyclean-libtool \
	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
	uninstall uninstall-am uninstall-binSCRIPTS uninstall-hook \
	uninstall-info-am uninstall-pkgconfigDATA


$(XINE_LIB):
	@cd $(top_srcdir)/src/xine-engine && $(MAKE)

install-data-hook:
	@if test $$MAKELEVEL -le 4 ; then \
	  if test -x "$(top_srcdir)/post-install.sh" ; then \
	    $(top_srcdir)/post-install.sh ; \
	  fi \
	fi

pass1:
	@$(MAKE) MULTIPASS_CFLAGS="$(PASS1_CFLAGS)"

pass2:
	@$(MAKE) MULTIPASS_CFLAGS="$(PASS2_CFLAGS)"

debug:
	@$(MAKE) CFLAGS="$(DEBUG_CFLAGS)"

install-debug: debug
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
	@list='$(SUBDIRS)'; for subdir in $$list; do \
	  (cd $$subdir && $(MAKE) $@) || exit; \
	done;
	$(MAKE) $(AM_MAKEFLAGS) install-data-hook

install-includeHEADERS: $(include_HEADERS)
	@$(NORMAL_INSTALL)
	$(install_sh) -d $(DESTDIR)$(includedir)/xine
	@list='$(include_HEADERS)'; for p in $$list; do \
	  if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
	  echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p"; \
	  $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/xine/$$p; \
	done

uninstall-includeHEADERS:
	@$(NORMAL_UNINSTALL)
	list='$(include_HEADERS)'; for p in $$list; do \
	  rm -f $(DESTDIR)$(includedir)/xine/$$p; \
	done

uninstall-hook:
	@if echo '$(libdir)' | egrep ^'$(XINE_PLUGINDIR)' >/dev/null; then \
	  list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	    p="`echo $$p | sed -e 's/\.la$$/\.so/g;s|^.*/||'`"; \
	    echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
	    rm -f $(DESTDIR)$(libdir)/$$p; \
	  done; \
	fi

mostlyclean-generic:
	-rm -f *~ \#* .*~ .\#*

maintainer-clean-generic:
	-@echo "This command is intended for maintainers to use;"
	-@echo "it deletes files that may require special tools to rebuild."
	-rm -f Makefile.in

xine-fontconv:	xine-fontconv.c
	$(CC) -W -Wall -g -o xine-fontconv xine-fontconv.c -lz `freetype-config --cflags` `freetype-config --libs`

cdda_server: cdda_server.c
	$(CC) -W -Wall -g -o cdda_server cdda_server.c -ldl
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

--- NEW FILE: build_rpms.sh.in ---
#!/bin/sh

#DATE=`date +%y%m%d`
DATE=1

PKGNAME=libxine1

# Some rpm checks
RPMVERSION=`rpm --version | tr [A-Z] [a-z] | sed -e 's/[a-z]//g' -e 's/\.//g' -e 's/ //g'`

# rpm version 4 return 40
if [ `expr $RPMVERSION` -lt 100 ]; then
  RPMVERSION=`expr $RPMVERSION \* 10`
fi

if [ `expr $RPMVERSION` -lt 400 ]; then
  RPM_BA="rpm -ba -ta ./@PACKAGE@-@VERSION@.tar.gz"
  RPM_BB="rpm -bb -ta ./@PACKAGE@-@VERSION@.tar.gz"
elif [ `expr $RPMVERSION` -lt 420 ]; then
  RPM_BA="rpm -ta ./@PACKAGE@-@VERSION@.tar.gz -ba"
  RPM_BB="rpm -ta ./@PACKAGE@-@VERSION@.tar.gz -bb"
else
  RPM_BA="rpmbuild -ta ./@PACKAGE@-@VERSION@.tar.gz -ba"
  RPM_BB="rpmbuild -ta ./@PACKAGE@-@VERSION@.tar.gz -bb"
fi
      
##VERSION="@XINE_MAJOR@.@XINE_MINOR@.@XINE_SUB@"

echo "Creating tarball..."
rm -f config.cache && ./autogen.sh && make dist
rm -rf rpms
mkdir rpms

echo "*****************************************************"
echo
echo "building rpm for @PACKAGE@ @VERSION@"
echo 
echo "current architecture:pentium"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=i586-pc-linux-gnu

eval $RPM_BA

mv /usr/src/redhat/SRPMS/libxine-@SPEC_VERSION@-$DATE.src.rpm ./rpms/
mv /usr/src/redhat/RPMS/i386/$PKGNAME-@SPEC_VERSION@-$DATE.i386.rpm ./rpms/$PKGNAME-@SPEC_VERSION@-$DATE.i586.rpm
mv /usr/src/redhat/RPMS/i386/$PKGNAME-devel-@SPEC_VERSION@-$DATE.i386.rpm ./rpms/$PKGNAME-devel-@SPEC_VERSION@-$DATE.i586.rpm

echo "*****************************************************"
echo
echo "building rpm for @PACKAGE@ @VERSION@"
echo 
echo "current architecture:pentiumpro"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=i686-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-@SPEC_VERSION@-$DATE.i386.rpm ./rpms/$PKGNAME-@SPEC_VERSION@-$DATE.i686.rpm

echo "*****************************************************"
echo
echo "building rpm for @PACKAGE@ @VERSION@"
echo 
echo "current architecture:k6"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=k6-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-@SPEC_VERSION@-$DATE.i386.rpm ./rpms/$PKGNAME-@SPEC_VERSION@-$DATE.k6.rpm

echo "*****************************************************"
echo
echo "building rpm for @PACKAGE@ @VERSION@"
echo 
echo "current architecture:k7"
echo "rpms will be copied to ./rpms directory"
echo
echo "*****************************************************"

export XINE_BUILD=athlon-pc-linux-gnu

eval $RPM_BB

mv /usr/src/redhat/RPMS/i386/$PKGNAME-@SPEC_VERSION@-$DATE.i386.rpm ./rpms/$PKGNAME-@SPEC_VERSION@-$DATE.k7.rpm

echo "Done."

--- NEW FILE: SlackBuild.in ---
#!/bin/sh
#
# This script generate some valid Slackware packages
#
#
# Some variables.
#
CWD=`pwd`
PACKAGE=@PACKAGE@.tgz
SLCK=$CWD/slack
PREFIX=${PREFIX:-"@prefix@"}
PKG=$CWD/slktmp
TMPBUILD=$CWD/tmpbuild
#DOINSTDIR=/install

#
# Create the post-install script
#
do_install_sh() {
cat > doinst.sh <<EOF
/sbin/ldconfig
EOF
}

#
# Create package description for pkgtool.
#
do_descr() {
cat > package_descriptions << EOF
@PACKAGE@: @PACKAGE@ @SPEC_VERSION@.
@PACKAGE@:
@PACKAGE@: xine-lib is the beating heart of xine (a free gpl-licensed 
@PACKAGE@: video player for unix-like systems) which among others provides 
@PACKAGE@: support for decoding (and playing back) of many today available
@PACKAGE@: audio/video codecs, like mpeg-4 (DivX), mpeg-2 (DVD, SVCD), 
@PACKAGE@: mpeg-1 (VCD), Quicktime and RealMedia just to name a few.
@PACKAGE@: This library contains (and uses) numerous processor specific 
@PACKAGE@: optimizations to provide a smooth playback and to minimize the 
@PACKAGE@: overall demand of CPU power.
@PACKAGE@:
@PACKAGE@: Don't hesitate to use %{name} in your own projects as long as 
@PACKAGE@: your usage complies to the GPL. More information about 
@PACKAGE@: GPL-license can be found at http://www.gnu.org/licenses/gpl.html
@PACKAGE@:
@PACKAGE@:
EOF
}

#
# Building binaries process, then install and move package in right place
#
do_build() {
  cd $CWD
  rm -rf $TMPBUILD
  mkdir -p $TMPBUILD
  cd $TMPBUILD && tar -xzf $CWD/@TAR_NAME@.tar.gz
  do_install_sh;
  cd @TAR_NAME@
  DIE=1
  echo "./configure --prefix=$PREFIX $CONFIG_OPT && make && make install-strip DESTDIR=$PKG LIBRARY_PATH=$TMPBUILD/@TAR_NAME@/src/xine-engine/.libs" && \
  ./configure --prefix=$PREFIX $CONFIG_OPT && make && make install-strip DESTDIR=$PKG LIBRARY_PATH=$TMPBUILD/@TAR_NAME@/src/xine-engine/.libs && \
  mkdir -p $PKG/install && cp $TMPBUILD/doinst.sh $PKG/install && \
  cd $PKG && \
  echo "n" | /sbin/makepkg $PACKAGE && \
  mv $PACKAGE $SLCK && \
  cd $SLCK && DIE=0
  do_descr
}

#
# Cleaning building directory
#
do_clean() {
  rm -rf $TMPBUILD
  rm -f $PACKAGE package_descriptions
  rm -rf $PKG
  cd $CWD
}

#
# Build for PPro
# 
build_pentiumpro() {
  echo "*****************************************************"
  echo
  echo "building slack for @PACKAGE@ @VERSION@"
  echo 
  echo "current architecture:pentiumpro"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=i686-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf @PACKAGE@-@VERSION@-i686.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for Pentium
#
build_pentium() {
  echo "*****************************************************"
  echo
  echo "building slack for @PACKAGE@ @VERSION@"
  echo 
  echo "current architecture:pentium"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=i586-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf @PACKAGE@-@VERSION@-i586.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for K6
#
build_k6() {
  echo "*****************************************************"
  echo
  echo "building slack for @PACKAGE@ @VERSION@"
  echo 
  echo "current architecture:k6"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=k6-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf @PACKAGE@-@VERSION@-k6.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Build for K7
#
build_k7() {
  echo "*****************************************************"
  echo
  echo "building slack for @PACKAGE@ @VERSION@"
  echo 
  echo "current architecture:k7"
  echo "slackware package will be copied to ./slack directory"
  echo
  echo "*****************************************************"
  rm -rf $PKG
  export XINE_BUILD=athlon-pc-linux-gnu
  do_build
  if test "$DIE" -eq 0; then 
    tar -czvf @PACKAGE@-@VERSION@-k7.tar.gz $PACKAGE package_descriptions
  fi
  do_clean
}

#
# Main function
#
main() {
  rm -rf $SLCK
  mkdir -p $SLCK
  rm -f config.cache && ./autogen.sh && make dist
  build_pentiumpro
  build_pentium
  build_k6
  build_k7
  mv -f $CWD/@TAR_NAME@.tar.gz $SLCK
}


#
# Handle arguments if available.
#
build_arch() {
      rm -rf $SLCK
      mkdir -p $SLCK
      rm -f config.cache && ./autogen.sh && make dist
      $barch
      mv -f $CWD/@TAR_NAME@.tar.gz $SLCK
}

case "$1" in
    pentiumpro | ppro | i686 | 686)
      barch=build_pentiumpro
      build_arch
    ;;
    pentium | i586 | 586)
      barch=build_pentium
      build_arch
    ;;
    k6)
      barch=build_k6
      build_arch
    ;;
    k7 | athlon)
      barch=build_k7
      build_arch
    ;;
    *)
      main
    ;;
esac

--- NEW FILE: relchk.sh.in ---
#!/bin/sh
##
## A simple compare directory content utility.
##

topdir="`pwd`"
distdir="@TAR_NAME@"
log="$topdir/dist-log"
logerror="$topdir/dist-errors"

getdir() {
  for file in `ls`; do

    if test -d $file -a $file != "CVS" -a $file != $distdir -a $file != "autom4te.cache"; then 
      (cd $file && getdir) || (cd ..) 
    else
      if test ! -d $file -a \
              $file != $log -a \
              $file != $logerror -a \
              $file != ${0##*/} -a \
              $file != "$distdir.tar.gz" -a \
              $file != "config.status"; then

        orifile=`pwd`/$file

        distfile=$topdir/$distdir${orifile##*$topdir}

        echo -e "check:\t$orifile\nand\t$distfile" >> $log

        if test ! -e $distfile; then
          missingfile=${orifile##$topdir}
	  echo "${missingfile#/} is missing in tarball" >> $logerror
        fi

      fi
    fi

  done
}

main() {
  rm -f $log $logerror

  make config.status && make dist && mv $distdir.tar.gz $distdir.tmp.tar.gz && \
  cp config.status config.tmp.status && make clean && make distclean && \
  mv $distdir.tmp.tar.gz $distdir.tar.gz && mv config.tmp.status config.status && \
  tar -xzf $distdir.tar.gz

  echo "Check is running, be patient..."
  getdir

  rm -rf $distdir
  rm -f $distdir.tar.gz
  ./config.status --recheck
  ./config.status

  echo " * Log is ${log##*/}"
  echo " * Error log is ${logerror##*/}"
  
}

main

--- NEW FILE: libdvdcss-1.2.6-network.patch ---
diff -u --new-file libdvdcss-1.2.6/src/Makefile.am libdvdcss-1.2.6-network/src/Makefile.am
--- libdvdcss-1.2.6/src/Makefile.am	2003-03-10 12:57:09.000000000 -0500
+++ libdvdcss-1.2.6-network/src/Makefile.am	2003-05-06 15:59:47.000000000 -0400
@@ -4,6 +4,7 @@
 
 libdvdcss_la_SOURCES = \
 	libdvdcss.c libdvdcss.h \
+	network.c network.h \
 	device.c device.h \
 	css.c css.h csstables.h \
 	ioctl.c ioctl.h \
diff -u --new-file libdvdcss-1.2.6/src/libdvdcss.c libdvdcss-1.2.6-network/src/libdvdcss.c
--- libdvdcss-1.2.6/src/libdvdcss.c	2003-02-01 16:24:49.000000000 -0500
+++ libdvdcss-1.2.6-network/src/libdvdcss.c	2003-05-06 16:28:21.000000000 -0400
@@ -125,6 +125,9 @@
 #include "libdvdcss.h"
 #include "ioctl.h"
 #include "device.h"
+#include "network.h"
+
+#define MAX_ERR_MSG 300
 
 /**
  * \brief Symbol for version checks.
@@ -204,6 +207,10 @@
         }
     }
 
+    dvdcss->i_socket_fd = dvdcss_network_connect( dvdcss->psz_device );
+    if( dvdcss->i_socket_fd != -1 )
+      return dvdcss;
+
     /*
      *  Find method from DVDCSS_METHOD environment variable
      */
@@ -439,6 +446,16 @@
  */
 extern char * dvdcss_error ( dvdcss_t dvdcss )
 {
+    if( dvdcss->i_socket_fd != -1 )
+    {
+      static char buf[MAX_ERR_MSG];
+
+      if( dvdcss_network_command( dvdcss->i_socket_fd, buf, "dvd_error") < 0 )
+        return "(network error)";
+      else
+        return buf;
+    }
+
     return dvdcss->psz_error;
 }
 
@@ -468,6 +485,12 @@
  */
 extern int dvdcss_seek ( dvdcss_t dvdcss, int i_blocks, int i_flags )
 {
+    if( dvdcss->i_socket_fd != -1 )
+    {
+      return dvdcss_network_command( dvdcss->i_socket_fd, NULL,
+                              "dvd_seek %d %d", i_blocks, i_flags);
+    }
+
     /* title cracking method is too slow to be used at each seek */
     if( ( ( i_flags & DVDCSS_SEEK_MPEG )
              && ( dvdcss->i_method != DVDCSS_METHOD_TITLE ) )
@@ -512,6 +535,12 @@
 {
     int i_ret, i_index;
 
+    if( dvdcss->i_socket_fd != -1 )
+    {
+      return dvdcss_network_command( dvdcss->i_socket_fd, p_buffer,
+                              "dvd_read %d %d", i_blocks, i_flags);
+    }
+
     i_ret = dvdcss->pf_read( dvdcss, p_buffer, i_blocks );
 
     if( i_ret <= 0
@@ -588,6 +617,12 @@
     void *iov_base;
     size_t iov_len;
 
+    if( dvdcss->i_socket_fd != -1 )
+    {
+      printf("error: network dvdcss_readv not implemented\n");
+      return -1;
+    }
+
     i_ret = dvdcss->pf_readv( dvdcss, _p_iovec, i_blocks );
 
     if( i_ret <= 0
@@ -642,20 +677,28 @@
     dvd_title_t *p_title;
     int i_ret;
 
-    /* Free our list of keys */
-    p_title = dvdcss->p_titles;
-    while( p_title )
+    if( dvdcss->i_socket_fd != -1 )
     {
-        dvd_title_t *p_tmptitle = p_title->p_next;
-        free( p_title );
-        p_title = p_tmptitle;
+        close(dvdcss->i_socket_fd);
     }
+    else
+    {
 
-    i_ret = _dvdcss_close( dvdcss );
+        /* Free our list of keys */
+        p_title = dvdcss->p_titles;
+        while( p_title )
+        {
+            dvd_title_t *p_tmptitle = p_title->p_next;
+            free( p_title );
+            p_title = p_tmptitle;
+        }
 
-    if( i_ret < 0 )
-    {
-        return i_ret;
+        i_ret = _dvdcss_close( dvdcss );
+
+        if( i_ret < 0 )
+        {
+            return i_ret;
+        }
     }
 
     free( dvdcss->psz_device );
@@ -670,6 +713,11 @@
 #undef dvdcss_title
 extern int dvdcss_title ( dvdcss_t dvdcss, int i_block )
 {
+    if( dvdcss->i_socket_fd != -1 )
+    {
+      return dvdcss_network_command( dvdcss->i_socket_fd, NULL, 
+                              "dvd_title %d", i_block);
+    }
     return _dvdcss_title( dvdcss, i_block );
 }
 
diff -u --new-file libdvdcss-1.2.6/src/libdvdcss.h libdvdcss-1.2.6-network/src/libdvdcss.h
--- libdvdcss-1.2.6/src/libdvdcss.h	2002-12-19 10:36:04.000000000 -0500
+++ libdvdcss-1.2.6-network/src/libdvdcss.h	2003-04-29 05:31:04.000000000 -0400
@@ -34,6 +34,7 @@
     int    i_fd;
     int    i_read_fd;
     int    i_pos;
+    int    i_socket_fd;
 
     /* File handling */
     int ( * pf_seek )  ( dvdcss_t, int );
diff -u --new-file libdvdcss-1.2.6/src/network.c libdvdcss-1.2.6-network/src/network.c
--- libdvdcss-1.2.6/src/network.c	1969-12-31 19:00:00.000000000 -0500
+++ libdvdcss-1.2.6-network/src/network.c	2003-05-06 16:28:04.000000000 -0400
@@ -0,0 +1,331 @@
+/***************************************************************************
+                          network.c  -  description
+                             -------------------
+    begin                : Wed Mar 19 2003
+    copyright            : (C) 2003 by miguel
+    email                : miguel@miguel
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <string.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+
+#define _BUFSIZ 300
+   
+static int host_connect_attempt (struct in_addr ia, int port) 
+{
+    int                s;
+    struct sockaddr_in sin;
+  
+    s=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
+  
+    if (s==-1) {
+        printf("network: failed to open socket\n");
+        return -1;
+    }
+  
+    sin.sin_family = AF_INET;	
+    sin.sin_addr   = ia;
+    sin.sin_port   = htons(port);
+  
+    if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS) {
+        printf("network: cannot connect to host\n");
+        close(s);
+        return -1;
+    }
+  
+    return s;
+}
+
+static int host_connect (const char *host, int port) 
+{
+    struct hostent *h;
+    int i;
+    int s;
+    
+    h=gethostbyname(host);
+    if (h==NULL) {
+        printf("network: unable to resolve >%s<\n", host);
+        return -1;
+    }
+  
+    for(i=0; h->h_addr_list[i]; i++) {
+        struct in_addr ia;
+        memcpy(&ia, h->h_addr_list[i], 4);
+        s=host_connect_attempt(ia, port);
+        if(s != -1) {
+          signal( SIGPIPE, SIG_IGN );
+          return s;
+        }
+    }
+  
+    printf("network: unable to connect to >%s<\n", host);
+    return -1;
+}
+
+   
+static int parse_url (char *urlbuf, char** host, int *port) {
+    char   *start = NULL;
+    char   *portcolon = NULL;
+    
+    if (host != NULL)
+        *host = NULL;
+    
+    if (port != NULL)
+        *port = 0;
+    
+    start = strstr(urlbuf, "://");
+    if (start != NULL)
+        start += 3;
+    else
+        start = urlbuf;
+
+    while( *start == '/' )
+      start++;
+      
+    portcolon = strchr(start, ':');
+    
+    if (host != NULL)
+        *host = start;
+    
+    if (portcolon != NULL)
+    {
+        *portcolon = '\0';
+      
+        if (port != NULL)
+            *port = atoi(portcolon + 1);
+    }
+    
+    return 0;
+}
+   
+static int sock_check_opened(int socket) {
+  fd_set   readfds, writefds, exceptfds;
+  int      retval;
+  struct   timeval timeout;
+  
+  for(;;) {
+    FD_ZERO(&readfds); 
+    FD_ZERO(&writefds); 
+    FD_ZERO(&exceptfds);
+    FD_SET(socket, &exceptfds);
+    
+    timeout.tv_sec  = 0; 
+    timeout.tv_usec = 0;
+    
+    retval = select(socket + 1, &readfds, &writefds, &exceptfds, &timeout);
+    
+    if(retval == -1 && (errno != EAGAIN && errno != EINTR))
+      return 0;
+    
+    if (retval != -1)
+      return 1;
+  }
+
+  return 0;
+}
+
+/*
+ * read binary data from socket 
+ */
+static int sock_data_read (int socket, char *buf, int nlen) {
+  int n, num_bytes;
+
+  if((socket < 0) || (buf == NULL))
+      return -1;
+
+  if(!sock_check_opened(socket))
+      return -1;
+  
+  num_bytes = 0;
+
+  while (num_bytes < nlen) {
+
+    n = read (socket, &buf[num_bytes], nlen - num_bytes);
+
+    /* read errors */
+    if (n < 0) {
+      if(errno == EAGAIN) {
+        fd_set rset;
+        struct timeval timeout;
+
+        FD_ZERO (&rset);
+        FD_SET  (socket, &rset);
+
+        timeout.tv_sec  = 30;
+        timeout.tv_usec = 0;
+
+        if (select (socket+1, &rset, NULL, NULL, &timeout) <= 0) {
+          printf ("network: timeout on read\n");
+          return 0;
+        }
+        continue;
+      }
+      printf ("network: read error %d\n", errno);
+      return 0;
+    }
+
+    num_bytes += n;
+
+    /* end of stream */
+    if (!n) break;
+  }
+
+  return num_bytes;
+}
+
+/*
+ * read a line (\n-terminated) from socket 
+ */
+static int sock_string_read(int socket, char *buf, int len) {
+  char    *pbuf;
+  int      r, rr;
+  void    *nl;
+  
+  if((socket < 0) || (buf == NULL))
+    return -1;
+
+  if(!sock_check_opened(socket))
+    return -1;
+  
+  if (--len < 1)
+    return(-1);
+  
+  pbuf = buf;
+  
+  do {
+    
+    if((r = recv(socket, pbuf, len, MSG_PEEK)) <= 0)
+      return -1;
+
+    if((nl = memchr(pbuf, '\n', r)) != NULL)
+      r = ((char *) nl) - pbuf + 1;
+    
+    if((rr = read(socket, pbuf, r)) < 0)
+      return -1;
+    
+    pbuf += rr;
+    len -= rr;
+
+  } while((nl == NULL) && len);
+  
+  if (pbuf > buf && *(pbuf-1) == '\n'){
+    *(pbuf-1) = '\0';
+  }
+  *pbuf = '\0';
+  return (pbuf - buf);
+}
+
+/*
+ * Write to socket.
+ */
+static int sock_data_write(int socket, char *buf, int len) {
+  ssize_t  size;
+  int      wlen = 0;
+  
+  if((socket < 0) || (buf == NULL))
+    return -1;
+  
+  if(!sock_check_opened(socket))
+    return -1;
+  
+  while(len) {
+    size = write(socket, buf, len);
+    
+    if(size <= 0)
+      return -1;
+    
+    len -= size;
+    wlen += size;
+    buf += size;
+  }
+
+  return wlen;
+}
+
+int dvdcss_network_command( int socket, char *data_buf, char *msg, ...) 
+{
+    char     buf[_BUFSIZ];
+    va_list  args;
+    int      ret, n;
+      
+    va_start(args, msg);
+    vsnprintf(buf, _BUFSIZ - 1, msg, args);
+    va_end(args);
+    
+    /* Each line sent is '\n' terminated */
+    if((buf[strlen(buf)] == '\0') && (buf[strlen(buf) - 1] != '\n'))
+        strcat(buf, "\n");
+    
+    if( sock_data_write(socket, buf, strlen(buf)) < (int)strlen(buf) )
+    {
+        printf("network: error writing to socket\n");
+        return -1;
+    }
+        
+    if( sock_string_read(socket, buf, _BUFSIZ) <= 0 )
+    {
+        printf("network: error reading from socket\n");
+        return -1;
+    }
+    
+    sscanf(buf, "%d %d", &ret, &n );
+    
+    if( n ) {
+        if( !data_buf ) {
+            printf("network: protocol error, data returned but no buffer provided.\n");
+            return -1;
+        }
+        if( sock_data_read(socket, data_buf, n) < n )
+            return -1;
+    }
+    
+    return ret;
+}
+
+int dvdcss_network_connect( char *url )
+{
+  char *host;
+  int port;
+  int fd;
+
+  url = strdup(url);
+  parse_url(url, &host, &port);
+
+  if( !host || !strlen(host) || !port )
+  {
+    free(url);
+    return -1;
+  }
+
+  fd = host_connect( host, port );
+  free(url);
+
+  if( fd != -1 ) {
+    if( dvdcss_network_command(fd, NULL, "dvd_open") < 0 ) {
+      close(fd);
+      return -1;
+    }
+  }
+  return fd;
+}
diff -u --new-file libdvdcss-1.2.6/src/network.h libdvdcss-1.2.6-network/src/network.h
--- libdvdcss-1.2.6/src/network.h	1969-12-31 19:00:00.000000000 -0500
+++ libdvdcss-1.2.6-network/src/network.h	2003-05-06 16:26:15.000000000 -0400
@@ -0,0 +1,20 @@
+/***************************************************************************
+                          network.h  -  description
+                             -------------------
+    begin                : Wed Mar 19 2003
+    copyright            : (C) 2003 by miguel
+    email                : miguel@miguel
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+int dvdcss_network_connect( char *url );
+
+int dvdcss_network_command( int socket, char *data_buf, char *msg, ...);