All pastes #28210 Raw Edit

Anonymous

public text v1 · immutable
#28210 ·published 2005-11-10 09:32 UTC
rendered paste body
============ Checking for cc version ============
Result is: 3.3.6, ok
##########################################

============ Checking for host cc ============
Result is: cc
##########################################

============ Checking for CPU vendor ============
Result is: GenuineIntel (6:8:3)
##########################################

============ Checking for CPU type ============
Result is:  Pentium III (Coppermine)
##########################################

============ Checking for GCC & CPU optimization abilities ============

int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -march=pentium3 -mcpu=pentium3

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: pentium3
##########################################

============ Checking for kernel support of mmx ============

#include <signal.h>
void catch() { exit(1); }
int main(void){
  signal(SIGILL, catch);
  __asm__ __volatile__ ("emms":::"memory");return(0);
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for kernel support of mmx2 ============

#include <signal.h>
void catch() { exit(1); }
int main(void){
  signal(SIGILL, catch);
  __asm__ __volatile__ ("sfence":::"memory");return(0);
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for kernel support of sse ============

#include <signal.h>
void catch() { exit(1); }
int main(void){
  signal(SIGILL, catch);
  __asm__ __volatile__ ("xorps %%xmm0, %%xmm0":::"memory");return(0);
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for mtrr support ============
Result is: yes
##########################################

============ Checking for assembler support of -pipe option ============

int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -pipe

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for assembler (/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/as 2.15.92.0.2) ============
Result is: ok
##########################################

============ Checking for Linux kernel version ============
Result is: 2.4.31, ok
##########################################

============ Checking for mplayer binary name ============
Result is: mplayer
##########################################

============ Checking for awk ============
./configure: line 2101: mawk: command not found

Result is: gawk
##########################################

============ Checking for extra headers ============
Result is: none
##########################################

============ Checking for extra libs ============
Result is: none
##########################################

============ Checking for -lposix ============

int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lposix
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lposix
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for -lm ============

int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libm.so.6 => /lib/libm.so.6 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40058000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for i18n ============

#include <libintl.h>
int main(void) { gettext("test"); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for iconv ============

#include <stdio.h>
#include <unistd.h>
#include <iconv.h>
#define INBUFSIZE 1024
#define OUTBUFSIZE 4096

char inbuffer[INBUFSIZE];
char outbuffer[OUTBUFSIZE];

int main(void) {
  size_t numread;
  iconv_t icdsc;
  char *tocode="UTF-8";
  char *fromcode="cp1250";
  if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
    while ((numread = read (0, inbuffer, INBUFSIZE))) {
      char *iptr=inbuffer;
      char *optr=outbuffer;
      size_t inleft=numread;
      size_t outleft=OUTBUFSIZE;
      if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
          != (size_t)(-1)) {
        write (1, outbuffer, OUTBUFSIZE - outleft);
      }
    }
    if (iconv_close(icdsc) == -1)
      ;
  }
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lm
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:21: warning: passing arg 2 of `iconv' from incompatible pointer type

ldd /tmp/mplayer-conf-27626-4003.o
	libm.so.6 => /lib/libm.so.6 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40058000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for langinfo ============

#include <langinfo.h>
int main(void) { nl_langinfo(CODESET); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for language ============
Result is: using en (man pages:  en)
##########################################

============ Checking for enable sighandler ============
Result is: yes
##########################################

============ Checking for runtime cpudetection ============
Result is: no
##########################################

============ Checking for restrict keyword ============

void foo(char * restrict p); int main(){}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1: error: syntax error before "p"

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


void foo(char * __restrict p); int main(){}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: __restrict
##########################################

============ Checking for __builtin_expect ============

int foo (int a) {
    a = __builtin_expect (a, 10);
    return a == 10 ? 0 : 1;
}
int main() { return foo(10) && foo(0); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for kstat ============

#include <kstat.h>
int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lkstat
/tmp/mplayer-conf-25631-4003.c:1:19: kstat.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for posix4 ============

#include <time.h>
int main(void) { (void) nanosleep(0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lposix4
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lposix4
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for lrintf ============

#include <math.h>
int main(void) { (void) lrintf(0.0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libm.so.6 => /lib/libm.so.6 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40058000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for nanosleep ============

#include <time.h>
int main(void) { (void) nanosleep(0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for socklib ============

#include <netdb.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lsocket
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <netdb.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libnsl.so.1 => /lib/libnsl.so.1 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4004b000)
	/lib/ld-linux.so.2 (0x40000000)


#include <netdb.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lsocket -lnsl
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <netdb.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lsocket -ldnet
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <netdb.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lsocket -lbind
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <winsock2.h>
int main(void) { (void) gethostbyname(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lws2_32
/tmp/mplayer-conf-25631-4003.c:1:22: winsock2.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: yes (using -lnsl)
##########################################

============ Checking for inet_pton() ============

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(void) { (void) inet_pton(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libnsl.so.1 => /lib/libnsl.so.1 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4004b000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using -lnsl)
##########################################

============ Checking for inttypes.h (required) ============

#include <inttypes.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for int_fastXY_t in inttypes.h ============

#include <inttypes.h>
int main(void) { 
volatile int_fast16_t v= 0;
return v; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for word size ============

#include <stdio.h>
#include <sys/types.h>
int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: 32
##########################################

============ Checking for stddef.h ============

#include <stddef.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for malloc.h ============

#include <malloc.h>
int main(void) { (void) malloc(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for memalign() ============

#include <malloc.h>
int main (void) { (void) memalign(64, sizeof(char)); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for alloca.h ============

#include <alloca.h>
int main(void) { (void) alloca(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)


#include <alloca.h>
int main(void) { (void) alloca(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for mman.h ============

#include <sys/types.h>
#include <sys/mman.h>
int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################


#include <sys/types.h>
#include <sys/mman.h>
int main(void) { void *p = MAP_FAILED; return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

============ Checking for dynamic loader ============

#include <dlfcn.h>
int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/ccOyhQms.o(.text+0x18): In function `main':
: undefined reference to `dlopen'
/tmp/ccOyhQms.o(.text+0x25): In function `main':
: undefined reference to `dlclose'
/tmp/ccOyhQms.o(.text+0x34): In function `main':
: undefined reference to `dlsym'
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <dlfcn.h>
int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ldl

ldd /tmp/mplayer-conf-27626-4003.o
	libdl.so.2 => /lib/libdl.so.2 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40039000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for dynamic a/v plugins support ============
Result is: no
##########################################

============ Checking for pthread ============

#include <pthread.h>
void* func(void *arg) { return arg; }
int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/cc5aKC3g.o(.text+0x26): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <pthread.h>
void* func(void *arg) { return arg; }
int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lpthread

ldd /tmp/mplayer-conf-27626-4003.o
	libpthread.so.0 => /lib/libpthread.so.0 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40086000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using -lpthread)
##########################################

============ Checking for sys/soundcard.h ============

#include <sys/soundcard.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for sys/dvdio.h ============

#include <unistd.h>
#include <sys/dvdio.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:2:23: sys/dvdio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for sys/cdio.h ============

#include <unistd.h>
#include <sys/cdio.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:2:22: sys/cdio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for linux/cdrom.h ============

#include <sys/types.h>
#include <linux/cdrom.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for dvd.h ============

#include <dvd.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:17: dvd.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for BSDI dvd.h ============

#include <dvd.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:17: dvd.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for HPUX SCSI header ============

#include <sys/scsi.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:22: sys/scsi.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for userspace SCSI headers (Solaris) ============

#   include <unistd.h>
#   include <stropts.h>
#   include <sys/scsi/scsi_types.h>
#   include <sys/scsi/impl/uscsi.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:3:36: sys/scsi/scsi_types.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:4:36: sys/scsi/impl/uscsi.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for termcap ============

int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ltermcap

ldd /tmp/mplayer-conf-27626-4003.o
	libtermcap.so.2 => /lib/libtermcap.so.2 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40039000)
	/lib/ld-linux.so.2 (0x40000000)


int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ltinfo
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -ltinfo
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: yes (using -ltermcap)
##########################################

============ Checking for termios ============

#include <sys/termios.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using sys/termios.h)
##########################################

============ Checking for shm ============

#include <sys/types.h>
#include <sys/shm.h>
int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for linux devfs ============
Result is: no
##########################################

============ Checking for scandir() ============

int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for strsep() ============

#include <string.h>
int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for strlcpy() ============

#include <string.h>
int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/ccAiH09h.o(.text+0x24): In function `main':
: undefined reference to `strlcpy'
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for strlcat() ============

#include <string.h>
int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/ccUZXEvE.o(.text+0x24): In function `main':
: undefined reference to `strlcat'
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for fseeko() ============

#include <stdio.h>
int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for localtime_r() ============

#include <time.h>
int main( void ) { localtime_r(NULL, NULL); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for vsscanf() ============

#include <stdarg.h>
int main(void) { vsscanf(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for swab() ============

#include <unistd.h>
int main(void) { swab(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for posix select() ============

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for gettimeofday() ============

#include <stdio.h>
#include <sys/time.h>
int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for glob() ============

#include <stdio.h>
#include <glob.h>
int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for sys/sysinfo.h ============

#include <sys/sysinfo.h>
int main(void) {
  struct sysinfo s_info;
  sysinfo(&s_info);
  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for Mac OS X APIs ============
Result is: no
##########################################

============ Checking for Mac OS X Finder Support ============
Result is: no
##########################################

============ Checking for Mac OS X Bundle file locations ============
Result is: no
##########################################

============ Checking for Samba support (libsmbclient) ============

#include <libsmbclient.h>
int main(void) { smbc_opendir("smb://"); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lsmbclient

ldd /tmp/mplayer-conf-27626-4003.o
	libsmbclient.so.0 => /usr/lib/libsmbclient.so.0 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x401bd000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0x402d7000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x40305000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40318000)
	libdl.so.2 => /lib/libdl.so.2 (0x4032e000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for 3dfx ============
Result is: no
##########################################

============ Checking for tdfxfb ============
Result is: no
##########################################

============ Checking for tdfxvid ============
Result is: no
##########################################

============ Checking for tga ============
Result is: yes
##########################################

============ Checking for DirectFB headers presence ============
Result is: not found
##########################################

============ Checking for DirectFB ============
Result is: no
##########################################

============ Checking for X11 headers presence ============
Result is: yes (using /usr/X11/include)
##########################################

============ Checking for X11 libs presence ============
Result is: yes (using /usr/X11R6/lib)
##########################################

============ Checking for X11 ============

#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40043000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4010e000)
	libc.so.6 => /lib/libc.so.6 (0x40124000)
	libdl.so.2 => /lib/libdl.so.2 (0x4023d000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for DPMS ============

#include <X11/Xmd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/extensions/dpms.h>
int main(void) {
  (void) DPMSQueryExtension(0, 0, 0);
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXdpms -L/usr/X11R6/lib -lXext -lX11 -lnsl
/usr/lib/gcc-lib/i486-slackware-linux/3.3.6/../../../../i486-slackware-linux/bin/ld: cannot find -lXdpms
collect2: ld returned 1 exit status

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <X11/Xlib.h>
#include <X11/extensions/dpms.h>
int main(void) {
  (void) DPMSQueryExtension(0, 0, 0);
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40043000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4010e000)
	libc.so.6 => /lib/libc.so.6 (0x40124000)
	libdl.so.2 => /lib/libdl.so.2 (0x4023d000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using Xdpms 4)
##########################################

============ Checking for Xv ============

#include <X11/Xlib.h>
#include <X11/extensions/Xvlib.h>
int main(void) {
  (void) XvGetPortAttribute(0, 0, 0, 0);
  (void) XvQueryPortAttributes(0, 0, 0);
  return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXv -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXv.so.1 => /usr/X11R6/lib/libXv.so.1 (0x40035000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4003a000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40049000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40113000)
	libc.so.6 => /lib/libc.so.6 (0x40129000)
	libdl.so.2 => /lib/libdl.so.2 (0x40242000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for XvMC ============
Result is: no
##########################################

============ Checking for Xinerama ============

#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
int main(void) { (void) XineramaIsActive(0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXinerama -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x40035000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40038000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40047000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40111000)
	libc.so.6 => /lib/libc.so.6 (0x40127000)
	libdl.so.2 => /lib/libdl.so.2 (0x40240000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for Xxf86vm ============

#include <X11/Xlib.h>
#include <X11/extensions/xf86vmode.h>
int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXxf86vm -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0x40035000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4003a000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40049000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40113000)
	libc.so.6 => /lib/libc.so.6 (0x40129000)
	libdl.so.2 => /lib/libdl.so.2 (0x40242000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for XF86keysym ============

#include <X11/Xlib.h>
#include <X11/XF86keysym.h>
int main(void) { return XF86XK_AudioPause; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40043000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4010e000)
	libc.so.6 => /lib/libc.so.6 (0x40124000)
	libdl.so.2 => /lib/libdl.so.2 (0x4023d000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for DGA ============

#include <X11/Xlib.h>
#include <X11/extensions/xf86dga.h>
int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXxf86dga -lXxf86vm -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXxf86dga.so.1 => /usr/X11R6/lib/libXxf86dga.so.1 (0x40035000)
	libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0x4003b000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40041000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4004f000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40119000)
	libc.so.6 => /lib/libc.so.6 (0x4012f000)
	libdl.so.2 => /lib/libdl.so.2 (0x40248000)
	/lib/ld-linux.so.2 (0x40000000)


#include <X11/Xlib.h>
#include <X11/extensions/xf86dga.h>
int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -lXxf86dga -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXxf86dga.so.1 => /usr/X11R6/lib/libXxf86dga.so.1 (0x40035000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4003b000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4004a000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x40114000)
	libc.so.6 => /lib/libc.so.6 (0x4012a000)
	libdl.so.2 => /lib/libdl.so.2 (0x40243000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using DGA 2.0)
##########################################

============ Checking for OpenGL ============

#include <GL/gl.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -L/usr/X11R6/lib -lXext -lX11 -lnsl -lGL -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40043000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4010e000)
	libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0x40124000)
	libm.so.6 => /lib/libm.so.6 (0x40190000)
	libc.so.6 => /lib/libc.so.6 (0x401b3000)
	libdl.so.2 => /lib/libdl.so.2 (0x402cc000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x402d0000)
	libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0x40322000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for /dev/mga_vid ============
Result is: yes
##########################################

============ Checking for xmga ============
Result is: yes
##########################################

============ Checking for GGI ============

#include <ggi/ggi.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lggi
/tmp/mplayer-conf-25631-4003.c:1:21: ggi/ggi.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for AA ============

#include <aalib.h>
int main(void) { (void) aa_init(0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -laa

ldd /tmp/mplayer-conf-27626-4003.o
	libaa.so.1 => /usr/lib/libaa.so.1 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4004e000)
	libslang.so.1 => /usr/lib/libslang.so.1 (0x40168000)
	libm.so.6 => /lib/libm.so.6 (0x401da000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x401fd000)
	libgpm.so.1 => /lib/libgpm.so.1 (0x402c7000)
	/lib/ld-linux.so.2 (0x40000000)
	libdl.so.2 => /lib/libdl.so.2 (0x402cd000)
	libncurses.so.5 => /lib/libncurses.so.5 (0x402d1000)

Result is: yes
##########################################

============ Checking for CACA ============
0.9

#include <caca.h>
int main(void) { (void) caca_init(); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -L/usr/lib -lcaca -lslang -lX11 -L/usr/X11R6/lib -lncurses -lncurses

ldd /tmp/mplayer-conf-27626-4003.o
	libslang.so.1 => /usr/lib/libslang.so.1 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400a7000)
	libncurses.so.5 => /lib/libncurses.so.5 (0x40172000)
	libc.so.6 => /lib/libc.so.6 (0x401b1000)
	libdl.so.2 => /lib/libdl.so.2 (0x402ca000)
	libm.so.6 => /lib/libm.so.6 (0x402ce000)
	libgpm.so.1 => /lib/libgpm.so.1 (0x402f1000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for SVGAlib ============

#include <vga.h>
#include <vgagl.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lvgagl -lvga -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libvgagl.so.1 => /usr/lib/libvgagl.so.1 (0x40035000)
	libvga.so.1 => /usr/lib/libvga.so.1 (0x40042000)
	libm.so.6 => /lib/libm.so.6 (0x40096000)
	libc.so.6 => /lib/libc.so.6 (0x400b9000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for FBDev ============
Result is: yes
##########################################

============ Checking for DVB ============

#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <ost/dmx.h>
#include <ost/frontend.h>
#include <ost/sec.h>
#include <ost/video.h>
#include <ost/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:7:21: ost/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:26: ost/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:21: ost/sec.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:23: ost/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:11:23: ost/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <ost/dmx.h>
#include <ost/frontend.h>
#include <ost/sec.h>
#include <ost/video.h>
#include <ost/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
cc: : No such file or directory
/tmp/mplayer-conf-25631-4003.c:7:21: ost/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:26: ost/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:21: ost/sec.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:23: ost/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:11:23: ost/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <ost/dmx.h>
#include <ost/frontend.h>
#include <ost/sec.h>
#include <ost/video.h>
#include <ost/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/src/DVB/ost/include
/tmp/mplayer-conf-25631-4003.c:7:21: ost/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:26: ost/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:21: ost/sec.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:23: ost/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:11:23: ost/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no (specify path to DVB/ost/include with --with-dvbincdir=DIR)
##########################################

============ Checking for DVB HEAD ============

#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
#include <linux/dvb/video.h>
#include <linux/dvb/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:7:27: linux/dvb/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:32: linux/dvb/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:29: linux/dvb/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:29: linux/dvb/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
#include <linux/dvb/video.h>
#include <linux/dvb/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
cc: : No such file or directory
/tmp/mplayer-conf-25631-4003.c:7:27: linux/dvb/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:32: linux/dvb/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:29: linux/dvb/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:29: linux/dvb/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <sys/poll.h>
#include <sys/ioctl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>

#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
#include <linux/dvb/video.h>
#include <linux/dvb/audio.h>
int main(void) {return 0;}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/src/DVB/include
/tmp/mplayer-conf-25631-4003.c:7:27: linux/dvb/dmx.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:8:32: linux/dvb/frontend.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:9:29: linux/dvb/video.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:10:29: linux/dvb/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)
##########################################

============ Checking for PNG support ============

#include <png.h>
#include <string.h>
int main(void) {
  printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
  printf("libpng: %s\n", png_libpng_ver);
  return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lpng -lz -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libpng.so.3 => /usr/lib/libpng.so.3 (0x40035000)
	libz.so.1 => /usr/lib/libz.so.1 (0x40066000)
	libm.so.6 => /lib/libm.so.6 (0x40079000)
	libc.so.6 => /lib/libc.so.6 (0x4009c000)
	/lib/ld-linux.so.2 (0x40000000)

png.h : 1.2.8
libpng: 1.2.8
Result is: yes
##########################################

============ Checking for JPEG support ============

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>
#include <string.h>
#include <jpeglib.h>
int main(void) {
  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ljpeg -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40035000)
	libm.so.6 => /lib/libm.so.6 (0x40052000)
	libc.so.6 => /lib/libc.so.6 (0x40076000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for PNM support ============
Result is: yes
##########################################

============ Checking for md5sum support ============
Result is: yes
##########################################

============ Checking for GIF support ============

#include <gif_lib.h>
int main(void) {
  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lungif

ldd /tmp/mplayer-conf-27626-4003.o
	libungif.so.4 => /usr/lib/libungif.so.4 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4003d000)
	/lib/ld-linux.so.2 (0x40000000)


#include <signal.h>
#include <gif_lib.h>
void catch() { exit(1); }
int main(void) {
  signal(SIGSEGV, catch);  // catch segfault
  printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
  EGifSetGifVersion("89a");   // this will segfault a buggy gif lib.
  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lungif

ldd /tmp/mplayer-conf-27626-4003.o
	libungif.so.4 => /usr/lib/libungif.so.4 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4003d000)
	/lib/ld-linux.so.2 (0x40000000)

EGifPutExtensionFirst is at address 0x8048480
Result is: yes
##########################################

============ Checking for broken giflib workaround ============

#include <gif_lib.h>
int main(void) {
  GifFileType gif;
  printf("UserData is at address %p\n", gif.UserData);
  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lungif

ldd /tmp/mplayer-conf-27626-4003.o
	libungif.so.4 => /usr/lib/libungif.so.4 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4003d000)
	/lib/ld-linux.so.2 (0x40000000)

UserData is at address 0x8048500
Result is: disabled
##########################################

============ Checking for VESA support ============

#include <sys/io.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for SDL ============
1.2.9
1.2.9

#include <SDL.h>
int main(int argc, char *argv[]) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/include/SDL -D_REENTRANT -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread

ldd /tmp/mplayer-conf-27626-4003.o
	libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x40017000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400b4000)
	libc.so.6 => /lib/libc.so.6 (0x40106000)
	libstdc++.so.5 => /usr/lib/./libstdc++.so.5 (0x4021f000)
	libm.so.6 => /lib/libm.so.6 (0x402d7000)
	libdl.so.2 => /lib/libdl.so.2 (0x402fa000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x402fe000)
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x403c8000)
	/lib/ld-linux.so.2 (0x40000000)
	libgcc_s.so.1 => /usr/lib/./libgcc_s.so.1 (0x403d7000)

Result is: yes (using sdl-config)
##########################################

============ Checking for Windows waveout ============

#include <windows.h>
#include <mmsystem.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lwinmm
/tmp/mplayer-conf-25631-4003.c:1:21: windows.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:2:22: mmsystem.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for Directx ============

#include <windows.h>
#include <ddraw.h>
#include <dsound.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lgdi32
/tmp/mplayer-conf-25631-4003.c:1:21: windows.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:2:19: ddraw.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:3:20: dsound.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for NAS ============

#include <audio/audiolib.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -laudio -I/usr/X11/include -lXt -L/usr/X11R6/lib -lXext -lX11 -lnsl -lm
/tmp/mplayer-conf-25631-4003.c:1:28: audio/audiolib.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for DXR2 ============

#include <dxr2ioctl.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:23: dxr2ioctl.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <dxr2ioctl.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/local/include/dxr2
/tmp/mplayer-conf-25631-4003.c:1:23: dxr2ioctl.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <dxr2ioctl.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/include/dxr2
/tmp/mplayer-conf-25631-4003.c:1:23: dxr2ioctl.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for DXR3/H+ ============

#include <linux/em8300.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:26: linux/em8300.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for libmp1e ============
Result is: no
##########################################

============ Checking for libfame ============
Result is: no
##########################################

============ Checking for OSS Audio ============

#include <sys/ioctl.h>
#include <sys/soundcard.h>
int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)


#include <sys/ioctl.h>
#include <sys/soundcard.h>
#ifdef OPEN_SOUND_SYSTEM
int main(void) { return 0; }
#else
#error Not the real thing
#endif

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for aRts ============
0.9.5

#include <artsc.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -L/opt/kde/lib -ldl -lartsc -lpthread -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -I/opt/kde/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include

ldd /tmp/mplayer-conf-27626-4003.o
	libdl.so.2 => /lib/libdl.so.2 (0x40035000)
	libartsc.so.0 => /opt/kde/lib/libartsc.so.0 (0x40039000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x40040000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x40091000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x40095000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x40099000)
	libc.so.6 => /lib/libc.so.6 (0x4011b000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for EsounD ============
0.2.36

#include <esd.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -L/usr/lib -lesd -laudiofile -lm -lasound

ldd /tmp/mplayer-conf-27626-4003.o
	libesd.so.0 => /usr/lib/libesd.so.0 (0x40035000)
	libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x4003f000)
	libm.so.6 => /lib/libm.so.6 (0x40064000)
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40087000)
	libc.so.6 => /lib/libc.so.6 (0x40140000)
	/lib/ld-linux.so.2 (0x40000000)
	libdl.so.2 => /lib/libdl.so.2 (0x40259000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x4025d000)

Result is: yes
##########################################

============ Checking for esd_get_latency() ============

#include <esd.h>
int main(void) { return esd_get_latency(0); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -L/usr/lib -lesd -laudiofile -lm -lasound

ldd /tmp/mplayer-conf-27626-4003.o
	libesd.so.0 => /usr/lib/libesd.so.0 (0x40035000)
	libaudiofile.so.0 => /usr/lib/libaudiofile.so.0 (0x4003f000)
	libm.so.6 => /lib/libm.so.6 (0x40064000)
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40087000)
	libc.so.6 => /lib/libc.so.6 (0x40140000)
	/lib/ld-linux.so.2 (0x40000000)
	libdl.so.2 => /lib/libdl.so.2 (0x40259000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x4025d000)

Result is: yes
##########################################

============ Checking for Polyp ============
Result is: no
##########################################

============ Checking for JACK ============
Result is: no
##########################################

============ Checking for ALSA audio ============

#include <sys/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lasound -ldl -lpthread
In file included from /tmp/mplayer-conf-25631-4003.c:1:
/usr/include/sys/asoundlib.h:1:2: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead.

ldd /tmp/mplayer-conf-27626-4003.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40035000)
	libdl.so.2 => /lib/libdl.so.2 (0x400ee000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400f3000)
	libc.so.6 => /lib/libc.so.6 (0x40144000)
	libm.so.6 => /lib/libm.so.6 (0x4025d000)
	/lib/ld-linux.so.2 (0x40000000)


#include <sys/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lasound -ldl -lpthread
In file included from /tmp/mplayer-conf-25631-4003.c:1:
/usr/include/sys/asoundlib.h:1:2: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead.

ldd /tmp/mplayer-conf-27626-4003.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40035000)
	libdl.so.2 => /lib/libdl.so.2 (0x400ee000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400f3000)
	libc.so.6 => /lib/libc.so.6 (0x40144000)
	libm.so.6 => /lib/libm.so.6 (0x4025d000)
	/lib/ld-linux.so.2 (0x40000000)


#include <alsa/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lasound -ldl -lpthread

ldd /tmp/mplayer-conf-27626-4003.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40035000)
	libdl.so.2 => /lib/libdl.so.2 (0x400ee000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400f3000)
	libc.so.6 => /lib/libc.so.6 (0x40144000)
	libm.so.6 => /lib/libm.so.6 (0x4025d000)
	/lib/ld-linux.so.2 (0x40000000)


#include <sys/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lasound -ldl -lpthread
In file included from /tmp/mplayer-conf-25631-4003.c:1:
/usr/include/sys/asoundlib.h:1:2: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead.

ldd /tmp/mplayer-conf-27626-4003.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40035000)
	libdl.so.2 => /lib/libdl.so.2 (0x400ee000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400f3000)
	libc.so.6 => /lib/libc.so.6 (0x40144000)
	libm.so.6 => /lib/libm.so.6 (0x4025d000)
	/lib/ld-linux.so.2 (0x40000000)


#include <alsa/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lasound -ldl -lpthread

ldd /tmp/mplayer-conf-27626-4003.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x40035000)
	libdl.so.2 => /lib/libdl.so.2 (0x400ee000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400f3000)
	libc.so.6 => /lib/libc.so.6 (0x40144000)
	libm.so.6 => /lib/libm.so.6 (0x4025d000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes (using alsa 1.0.x and alsa/asoundlib.h)
##########################################

============ Checking for Sun audio ============

#include <sys/types.h>
#include <sys/audioio.h>
int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:2:25: sys/audioio.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:3: error: `audio_info_t' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:3: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:3: error: for each function it appears in.)
/tmp/mplayer-conf-25631-4003.c:3: error: syntax error before "info"
/tmp/mplayer-conf-25631-4003.c:3: error: `info' undeclared (first use in this function)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for Sun mediaLib ============

#include <mlib.h>
int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/opt/SUNWmlib/include -L/opt/SUNWmlib/lib -lmlib
/tmp/mplayer-conf-25631-4003.c:1:18: mlib.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for SGI audio ============

#include <dmedia/audio.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:1:26: dmedia/audio.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for VCD support ============
Result is: ok
##########################################

============ Checking for DVD support (libmpdvdkit) ============
Result is: yes
##########################################

============ Checking for DVD support (libdvdread) ============
Result is: disabled by libmpdvdkit2
##########################################

============ Checking for cdparanoia ============

#include <cdda_interface.h>
#include <cdda_paranoia.h>
// This need a better test. How ?
int main(void) { return 1; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lcdda_interface -lcdda_paranoia -lm

ldd /tmp/mplayer-conf-27626-4003.o
	libcdda_interface.so.0 => /usr/lib/libcdda_interface.so.0 (0x40035000)
	libcdda_paranoia.so.0 => /usr/lib/libcdda_paranoia.so.0 (0x4004a000)
	libm.so.6 => /lib/libm.so.6 (0x40054000)
	libc.so.6 => /lib/libc.so.6 (0x40077000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for freetype >= 2.0.9 ============

#include <stdio.h>
#include <ft2build.h>
#include FT_FREETYPE_H
#if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
#error "Need FreeType 2.0.9 or newer"
#endif
int main()
{
    FT_Library library;
    FT_Int major=-1,minor=-1,patch=-1;
    int err=FT_Init_FreeType(&library);
    if(err){
	printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
	exit(err);
    }
    FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
    printf("freetype2  header version: %d.%d.%d  library version: %d.%d.%d\n",
	FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
	(int)major,(int)minor,(int)patch );
    if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
	printf("Library and header version mismatch! Fix it in your distribution!\n");
	exit(1);
    }
    return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/include/freetype2 -lfreetype -lz

ldd /tmp/mplayer-conf-27626-4003.o
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40035000)
	libz.so.1 => /usr/lib/libz.so.1 (0x4009f000)
	libc.so.6 => /lib/libc.so.6 (0x400b2000)
	/lib/ld-linux.so.2 (0x40000000)

freetype2  header version: 2.1.9  library version: 2.1.9
Result is: yes
##########################################

============ Checking for fontconfig ============

#include <stdio.h>
#include <fontconfig/fontconfig.h>
int main()
{
    int err = FcInit();
    if(err == FcFalse){
        printf("Couldn't initialize fontconfig lib\n");
        exit(err);
    }
    return 0;
    
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11R6/include -L/usr/X11R6/lib -lfontconfig

ldd /tmp/mplayer-conf-27626-4003.o
	libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4005c000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40176000)
	libz.so.1 => /usr/lib/libz.so.1 (0x401e0000)
	libexpat.so.0 => /usr/lib/libexpat.so.0 (0x401f2000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for fribidi with charsets ============

#include <stdio.h>
#include <fribidi/fribidi.h>
int main()
{
    if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
       printf("Fribidi headers are not consistents with the library!\n");
       exit(1);
    }
    return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/include -L/usr/lib -lfribidi
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:5: error: `FRIBIDI_CHARSET_UTF8' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:5: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:5: error: for each function it appears in.)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for ENCA ============

#include <enca.h>
int main()
{
    const char **langs;
    size_t langcnt;
    langs = enca_get_languages(&langcnt);
    return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lenca
/tmp/mplayer-conf-25631-4003.c:1:18: enca.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:5: error: `size_t' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:5: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:5: error: for each function it appears in.)
/tmp/mplayer-conf-25631-4003.c:5: error: syntax error before "langcnt"
/tmp/mplayer-conf-25631-4003.c:6: error: `langcnt' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:6: warning: assignment makes pointer from integer without a cast

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for zlib ============

#include <zlib.h>
int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lz

ldd /tmp/mplayer-conf-27626-4003.o
	libz.so.1 => /usr/lib/libz.so.1 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x40047000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for RTC ============

#include <sys/ioctl.h>
#ifdef __linux__
#include <linux/rtc.h>
#else
#include <rtc.h>
#define RTC_PIE_ON RTCIO_PIE_ON
#endif
int main(void) { return RTC_PIE_ON; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for external liblzo support ============

#include <lzo1x.h>
int main(void) { lzo_init();return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -llzo
/tmp/mplayer-conf-25631-4003.c:1:19: lzo1x.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for mad support ============

#include <mad.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lmad

ldd /tmp/mplayer-conf-27626-4003.o
	libmad.so.0 => /usr/lib/libmad.so.0 (0x40035000)
	libc.so.6 => /lib/libc.so.6 (0x4004a000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for Toolame ============

#include <toolame.h>
int main(void) { toolame_init(); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ltoolame -lm
/tmp/mplayer-conf-25631-4003.c:1:21: toolame.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for OggVorbis support ============
Result is: yes (internal Tremor)
##########################################

============ Checking for OggTheora support (only the CVS version!) ============

#include <theora/theora.h>
#include <string.h>
int main(void) 
{ 
  /* theora is in flux, make sure that all interface routines and 
   * datatypes exist and work the way we expect it, so we don't break
   * mplayer */
  ogg_packet op;
  theora_comment tc;
  theora_info inf;
  theora_state st;
  yuv_buffer yuv;
  int r;
  double t;

  theora_info_init (&inf);
  theora_comment_init (&tc);
 
  return 0;

  /* we don't want to execute this kind of nonsense; just for making sure
   * that compilation works... */
  memset(&op, 0, sizeof(op));
  r = theora_decode_header (&inf, &tc, &op);
  r = theora_decode_init (&st, &inf);
  t = theora_granule_time (&st, op.granulepos);
  r = theora_decode_packetin (&st, &op);
  r = theora_decode_YUVout (&st, &yuv);
  theora_clear (&st);

  return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ltheora -logg -lm
/tmp/mplayer-conf-25631-4003.c:1:27: theora/theora.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:8: error: `ogg_packet' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:8: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:8: error: for each function it appears in.)
/tmp/mplayer-conf-25631-4003.c:8: error: syntax error before "op"
/tmp/mplayer-conf-25631-4003.c:9: error: `theora_comment' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:10: error: `theora_info' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:11: error: `theora_state' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:12: error: `yuv_buffer' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:16: error: `inf' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:17: error: `tc' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:23: error: `op' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:25: error: `st' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:28: error: `yuv' undeclared (first use in this function)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for mp3lib support ============
Result is: yes
##########################################

============ Checking for liba52 support ============
Result is: yes
##########################################

============ Checking for libdts support ============

#include <inttypes.h>
#include <dts.h>
int main(void) { dts_init (0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ldts -lm
/tmp/mplayer-conf-25631-4003.c:2:17: dts.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for libmpeg2 support ============
Result is: yes
##########################################

============ Checking for Matroska support ============
Result is: yes
##########################################

============ Checking for internal FAAD2 (AAC) support ============

/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
**
** 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.
**
** This program 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.
**
** Any non-GPL usage of this software or parts of this software is strictly
** forbidden.
**
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
** $Id: cfft.c,v 1.27 2004/06/30 12:45:55 menno Exp $
**/

/*
 * Algorithmically based on Fortran-77 FFTPACK
 * by Paul N. Swarztrauber(Version 4, 1985).
 *
 * Does even sized fft only
 */

/* isign is +1 for backward and -1 for forward transforms */

#include "common.h"
#include "structs.h"

#include <stdlib.h>

#include "cfft.h"
#include "cfft_tab.h"


/* static function declarations */
#ifdef USE_SSE
static void passf2pos_sse(const uint16_t l1, const complex_t *cc,
                          complex_t *ch, const complex_t *wa);
static void passf2pos_sse_ido(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                              complex_t *ch, const complex_t *wa);
static void passf4pos_sse_ido(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
                              const complex_t *wa1, const complex_t *wa2, const complex_t *wa3);
#endif
static void passf2pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa);
static void passf2neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa);
static void passf3(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                   complex_t *ch, const complex_t *wa1, const complex_t *wa2, const int8_t isign);
static void passf4pos(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
                      const complex_t *wa1, const complex_t *wa2, const complex_t *wa3);
static void passf4neg(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
                      const complex_t *wa1, const complex_t *wa2, const complex_t *wa3);
static void passf5(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
                   const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
                   const complex_t *wa4, const int8_t isign);
INLINE void cfftf1(uint16_t n, complex_t *c, complex_t *ch,
                   const uint16_t *ifac, const complex_t *wa, const int8_t isign);
static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac);


/*----------------------------------------------------------------------
   passf2, passf3, passf4, passf5. Complex FFT passes fwd and bwd.
  ----------------------------------------------------------------------*/

#if 0 //def USE_SSE
static void passf2pos_sse(const uint16_t l1, const complex_t *cc,
                          complex_t *ch, const complex_t *wa)
{
    uint16_t k, ah, ac;

    for (k = 0; k < l1; k++)
    {
        ah = 2*k;
        ac = 4*k;

        RE(ch[ah])    = RE(cc[ac]) + RE(cc[ac+1]);
        IM(ch[ah])    = IM(cc[ac]) + IM(cc[ac+1]);

        RE(ch[ah+l1]) = RE(cc[ac]) - RE(cc[ac+1]);
        IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
    }
}

static void passf2pos_sse_ido(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                              complex_t *ch, const complex_t *wa)
{
    uint16_t i, k, ah, ac;

    for (k = 0; k < l1; k++)
    {
        ah = k*ido;
        ac = 2*k*ido;

        for (i = 0; i < ido; i+=4)
        {
            __m128 m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14;
            __m128 m15, m16, m17, m18, m19, m20, m21, m22, m23, m24;
            __m128 w1, w2, w3, w4;

            m1 = _mm_load_ps(&RE(cc[ac+i]));
            m2 = _mm_load_ps(&RE(cc[ac+ido+i]));
            m5 = _mm_load_ps(&RE(cc[ac+i+2]));
            m6 = _mm_load_ps(&RE(cc[ac+ido+i+2]));
            w1 = _mm_load_ps(&RE(wa[i]));
            w3 = _mm_load_ps(&RE(wa[i+2]));

            m3 = _mm_add_ps(m1, m2);
            m15 = _mm_add_ps(m5, m6);

            m4 = _mm_sub_ps(m1, m2);
            m16 = _mm_sub_ps(m5, m6);

            _mm_store_ps(&RE(ch[ah+i]), m3);
            _mm_store_ps(&RE(ch[ah+i+2]), m15);


            w2 = _mm_shuffle_ps(w1, w1, _MM_SHUFFLE(2, 3, 0, 1));
            w4 = _mm_shuffle_ps(w3, w3, _MM_SHUFFLE(2, 3, 0, 1));

            m7 = _mm_mul_ps(m4, w1);
            m17 = _mm_mul_ps(m16, w3);
            m8 = _mm_mul_ps(m4, w2);
            m18 = _mm_mul_ps(m16, w4);

            m9  = _mm_shuffle_ps(m7, m8, _MM_SHUFFLE(2, 0, 2, 0));
            m19 = _mm_shuffle_ps(m17, m18, _MM_SHUFFLE(2, 0, 2, 0));
            m10 = _mm_shuffle_ps(m7, m8, _MM_SHUFFLE(3, 1, 3, 1));
            m20 = _mm_shuffle_ps(m17, m18, _MM_SHUFFLE(3, 1, 3, 1));

            m11 = _mm_add_ps(m9, m10);
            m21 = _mm_add_ps(m19, m20);
            m12 = _mm_sub_ps(m9, m10);
            m22 = _mm_sub_ps(m19, m20);

            m13 = _mm_shuffle_ps(m11, m11, _MM_SHUFFLE(0, 0, 3, 2));
            m23 = _mm_shuffle_ps(m21, m21, _MM_SHUFFLE(0, 0, 3, 2));

            m14 = _mm_unpacklo_ps(m12, m13);
            m24 = _mm_unpacklo_ps(m22, m23);

            _mm_store_ps(&RE(ch[ah+i+l1*ido]), m14);
            _mm_store_ps(&RE(ch[ah+i+2+l1*ido]), m24);
        }
    }
}
#endif

static void passf2pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa)
{
    uint16_t i, k, ah, ac;

    if (ido == 1)
    {
        for (k = 0; k < l1; k++)
        {
            ah = 2*k;
            ac = 4*k;

            RE(ch[ah])    = RE(cc[ac]) + RE(cc[ac+1]);
            RE(ch[ah+l1]) = RE(cc[ac]) - RE(cc[ac+1]);
            IM(ch[ah])    = IM(cc[ac]) + IM(cc[ac+1]);
            IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
        }
    } else {
        for (k = 0; k < l1; k++)
        {
            ah = k*ido;
            ac = 2*k*ido;

            for (i = 0; i < ido; i++)
            {
                complex_t t2;

                RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
                RE(t2)       = RE(cc[ac+i]) - RE(cc[ac+i+ido]);

                IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
                IM(t2)       = IM(cc[ac+i]) - IM(cc[ac+i+ido]);

#if 1
                ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
                    IM(t2), RE(t2), RE(wa[i]), IM(wa[i]));
#else
                ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
                    RE(t2), IM(t2), RE(wa[i]), IM(wa[i]));
#endif
            }
        }
    }
}

static void passf2neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa)
{
    uint16_t i, k, ah, ac;

    if (ido == 1)
    {
        for (k = 0; k < l1; k++)
        {
            ah = 2*k;
            ac = 4*k;

            RE(ch[ah])    = RE(cc[ac]) + RE(cc[ac+1]);
            RE(ch[ah+l1]) = RE(cc[ac]) - RE(cc[ac+1]);
            IM(ch[ah])    = IM(cc[ac]) + IM(cc[ac+1]);
            IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
        }
    } else {
        for (k = 0; k < l1; k++)
        {
            ah = k*ido;
            ac = 2*k*ido;

            for (i = 0; i < ido; i++)
            {
                complex_t t2;

                RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
                RE(t2)       = RE(cc[ac+i]) - RE(cc[ac+i+ido]);

                IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
                IM(t2)       = IM(cc[ac+i]) - IM(cc[ac+i+ido]);

#if 1
                ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
                    RE(t2), IM(t2), RE(wa[i]), IM(wa[i]));
#else
                ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
                    IM(t2), RE(t2), RE(wa[i]), IM(wa[i]));
#endif
            }
        }
    }
}


static void passf3(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                   complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                   const int8_t isign)
{
    static real_t taur = FRAC_CONST(-0.5);
    static real_t taui = FRAC_CONST(0.866025403784439);
    uint16_t i, k, ac, ah;
    complex_t c2, c3, d2, d3, t2;

    if (ido == 1)
    {
        if (isign == 1)
        {
            for (k = 0; k < l1; k++)
            {
                ac = 3*k+1;
                ah = k;

                RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
                IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);

                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);

                RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
                IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);

                RE(ch[ah+l1]) = RE(c2) - IM(c3);
                IM(ch[ah+l1]) = IM(c2) + RE(c3);
                RE(ch[ah+2*l1]) = RE(c2) + IM(c3);
                IM(ch[ah+2*l1]) = IM(c2) - RE(c3);
            }
        } else {
            for (k = 0; k < l1; k++)
            {
                ac = 3*k+1;
                ah = k;

                RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
                IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);

                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);

                RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
                IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);

                RE(ch[ah+l1]) = RE(c2) + IM(c3);
                IM(ch[ah+l1]) = IM(c2) - RE(c3);
                RE(ch[ah+2*l1]) = RE(c2) - IM(c3);
                IM(ch[ah+2*l1]) = IM(c2) + RE(c3);
            }
        }
    } else {
        if (isign == 1)
        {
            for (k = 0; k < l1; k++)
            {
                for (i = 0; i < ido; i++)
                {
                    ac = i + (3*k+1)*ido;
                    ah = i + k * ido;

                    RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
                    IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);

                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);

                    RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
                    IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);

                    RE(d2) = RE(c2) - IM(c3);
                    IM(d3) = IM(c2) - RE(c3);
                    RE(d3) = RE(c2) + IM(c3);
                    IM(d2) = IM(c2) + RE(c3);

#if 1
                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
#else
                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
#endif
                }
            }
        } else {
            for (k = 0; k < l1; k++)
            {
                for (i = 0; i < ido; i++)
                {
                    ac = i + (3*k+1)*ido;
                    ah = i + k * ido;

                    RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
                    IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);

                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);

                    RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
                    IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);

                    RE(d2) = RE(c2) + IM(c3);
                    IM(d3) = IM(c2) + RE(c3);
                    RE(d3) = RE(c2) - IM(c3);
                    IM(d2) = IM(c2) - RE(c3);

#if 1
                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
#else
                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
#endif
                }
            }
        }
    }
}

#ifdef USE_SSE
ALIGN static const int32_t negate[4] = { 0x0, 0x0, 0x0, 0x80000000 };

__declspec(naked) static void passf4pos_sse(const uint16_t l1, const complex_t *cc,
                                     complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                                     const complex_t *wa3)
{
    __asm {
        push      ebx
        mov       ebx, esp
        and       esp, -16
        push      edi
        push      esi
        sub       esp, 8
        movzx     edi, WORD PTR [ebx+8]

        movaps    xmm1, XMMWORD PTR negate

        test      edi, edi
        jle       l1_is_zero

        lea       esi, DWORD PTR [edi+edi]
        add       esi, esi
        sub       esi, edi
        add       esi, esi
        add       esi, esi
        add       esi, esi
        mov       eax, DWORD PTR [ebx+16]
        add       esi, eax
        lea       ecx, DWORD PTR [edi+edi]
        add       ecx, ecx
        add       ecx, ecx
        add       ecx, ecx
        add       ecx, eax
        lea       edx, DWORD PTR [edi+edi]
        add       edx, edx
        add       edx, edx
        add       edx, eax
        xor       eax, eax
        mov       DWORD PTR [esp], ebp
        mov       ebp, DWORD PTR [ebx+12]

fftloop:
        lea       edi, DWORD PTR [eax+eax]
        add       edi, edi
        movaps    xmm2, XMMWORD PTR [ebp+edi*8]
        movaps    xmm0, XMMWORD PTR [ebp+edi*8+16]
        movaps    xmm7, XMMWORD PTR [ebp+edi*8+32]
        movaps    xmm5, XMMWORD PTR [ebp+edi*8+48]
        movaps    xmm6, xmm2
        addps     xmm6, xmm0
        movaps    xmm4, xmm1
        xorps     xmm4, xmm7
        movaps    xmm3, xmm1
        xorps     xmm3, xmm5
        xorps     xmm2, xmm1
        xorps     xmm0, xmm1
        addps     xmm7, xmm5
        subps     xmm2, xmm0
        movaps    xmm0, xmm6
        shufps    xmm0, xmm7, 68
        subps     xmm4, xmm3
        shufps    xmm6, xmm7, 238
        movaps    xmm5, xmm2
        shufps    xmm5, xmm4, 68
        movaps    xmm3, xmm0
        addps     xmm3, xmm6
        shufps    xmm2, xmm4, 187
        subps     xmm0, xmm6
        movaps    xmm4, xmm5
        addps     xmm4, xmm2
        mov       edi, DWORD PTR [ebx+16]
        movaps    XMMWORD PTR [edi+eax*8], xmm3
        subps     xmm5, xmm2
        movaps    XMMWORD PTR [edx+eax*8], xmm4
        movaps    XMMWORD PTR [ecx+eax*8], xmm0
        movaps    XMMWORD PTR [esi+eax*8], xmm5
        add       eax, 2
        movzx     eax, ax
        movzx     edi, WORD PTR [ebx+8]
        cmp       eax, edi
        jl        fftloop

        mov       ebp, DWORD PTR [esp]

l1_is_zero:

        add       esp, 8
        pop       esi
        pop       edi
        mov       esp, ebx
        pop       ebx
        ret
    }
}
#endif

#if 0
static void passf4pos_sse_ido(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                              complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                              const complex_t *wa3)
{
    uint16_t i, k, ac, ah;

    for (k = 0; k < l1; k++)
    {
        ac = 4*k*ido;
        ah = k*ido;

        for (i = 0; i < ido; i+=2)
        {
            __m128 m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16;
            __m128 n1, n2, n3, n4, n5, n6, n7, n8, n9, m17, m18, m19, m20, m21, m22, m23;
            __m128 w1, w2, w3, w4, w5, w6, m24, m25, m26, m27, m28, m29, m30;
            __m128 neg1 = _mm_set_ps(-1.0, 1.0, -1.0, 1.0);

            m1 = _mm_load_ps(&RE(cc[ac+i]));
            m2 = _mm_load_ps(&RE(cc[ac+i+2*ido]));
            m3 = _mm_add_ps(m1, m2);
            m4 = _mm_sub_ps(m1, m2);

            n1 = _mm_load_ps(&RE(cc[ac+i+ido]));
            n2 = _mm_load_ps(&RE(cc[ac+i+3*ido]));
            n3 = _mm_add_ps(n1, n2);

            n4 = _mm_mul_ps(neg1, n1);
            n5 = _mm_mul_ps(neg1, n2);
            n6 = _mm_sub_ps(n4, n5);

            m5 = _mm_add_ps(m3, n3);

            n7 = _mm_shuffle_ps(n6, n6, _MM_SHUFFLE(2, 3, 0, 1));
            n8 = _mm_add_ps(m4, n7);

            m6 = _mm_sub_ps(m3, n3);
            n9 = _mm_sub_ps(m4, n7);

            _mm_store_ps(&RE(ch[ah+i]), m5);

#if 0
            static INLINE void ComplexMult(real_t *y1, real_t *y2,
                real_t x1, real_t x2, real_t c1, real_t c2)
            {
                *y1 = MUL_F(x1, c1) + MUL_F(x2, c2);
                *y2 = MUL_F(x2, c1) - MUL_F(x1, c2);
            }

            m7.0 = RE(c2)*RE(wa1[i])
            m7.1 = IM(c2)*IM(wa1[i])
            m7.2 = RE(c6)*RE(wa1[i+1])
            m7.3 = IM(c6)*IM(wa1[i+1])

            m8.0 = RE(c2)*IM(wa1[i])
            m8.1 = IM(c2)*RE(wa1[i])
            m8.2 = RE(c6)*IM(wa1[i+1])
            m8.3 = IM(c6)*RE(wa1[i+1])

            RE(0) = m7.0 - m7.1
            IM(0) = m8.0 + m8.1
            RE(1) = m7.2 - m7.3
            IM(1) = m8.2 + m8.3

            ////
            RE(0) = RE(c2)*RE(wa1[i])   - IM(c2)*IM(wa1[i])
            IM(0) = RE(c2)*IM(wa1[i])   + IM(c2)*RE(wa1[i])
            RE(1) = RE(c6)*RE(wa1[i+1]) - IM(c6)*IM(wa1[i+1])
            IM(1) = RE(c6)*IM(wa1[i+1]) + IM(c6)*RE(wa1[i+1])
#endif

            w1 = _mm_load_ps(&RE(wa1[i]));
            w3 = _mm_load_ps(&RE(wa2[i]));
            w5 = _mm_load_ps(&RE(wa3[i]));

            w2 = _mm_shuffle_ps(w1, w1, _MM_SHUFFLE(2, 3, 0, 1));
            w4 = _mm_shuffle_ps(w3, w3, _MM_SHUFFLE(2, 3, 0, 1));
            w6 = _mm_shuffle_ps(w5, w5, _MM_SHUFFLE(2, 3, 0, 1));

            m7 = _mm_mul_ps(n8, w1);
            m15 = _mm_mul_ps(m6, w3);
            m23 = _mm_mul_ps(n9, w5);
            m8 = _mm_mul_ps(n8, w2);
            m16 = _mm_mul_ps(m6, w4);
            m24 = _mm_mul_ps(n9, w6);

            m9  = _mm_shuffle_ps(m7, m8, _MM_SHUFFLE(2, 0, 2, 0));
            m17 = _mm_shuffle_ps(m15, m16, _MM_SHUFFLE(2, 0, 2, 0));
            m25 = _mm_shuffle_ps(m23, m24, _MM_SHUFFLE(2, 0, 2, 0));
            m10 = _mm_shuffle_ps(m7, m8, _MM_SHUFFLE(3, 1, 3, 1));
            m18 = _mm_shuffle_ps(m15, m16, _MM_SHUFFLE(3, 1, 3, 1));
            m26 = _mm_shuffle_ps(m23, m24, _MM_SHUFFLE(3, 1, 3, 1));

            m11 = _mm_add_ps(m9, m10);
            m19 = _mm_add_ps(m17, m18);
            m27 = _mm_add_ps(m25, m26);
            m12 = _mm_sub_ps(m9, m10);
            m20 = _mm_sub_ps(m17, m18);
            m28 = _mm_sub_ps(m25, m26);

            m13 = _mm_shuffle_ps(m11, m11, _MM_SHUFFLE(0, 0, 3, 2));
            m21 = _mm_shuffle_ps(m19, m19, _MM_SHUFFLE(0, 0, 3, 2));
            m29 = _mm_shuffle_ps(m27, m27, _MM_SHUFFLE(0, 0, 3, 2));
            m14 = _mm_unpacklo_ps(m12, m13);
            m22 = _mm_unpacklo_ps(m20, m21);
            m30 = _mm_unpacklo_ps(m28, m29);

            _mm_store_ps(&RE(ch[ah+i+l1*ido]), m14);
            _mm_store_ps(&RE(ch[ah+i+2*l1*ido]), m22);
            _mm_store_ps(&RE(ch[ah+i+3*l1*ido]), m30);
        }
    }
}
#endif

static void passf4pos(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                      const complex_t *wa3)
{
    uint16_t i, k, ac, ah;

    if (ido == 1)
    {
        for (k = 0; k < l1; k++)
        {
            complex_t t1, t2, t3, t4;

            ac = 4*k;
            ah = k;

            RE(t2) = RE(cc[ac])   + RE(cc[ac+2]);
            RE(t1) = RE(cc[ac])   - RE(cc[ac+2]);
            IM(t2) = IM(cc[ac])   + IM(cc[ac+2]);
            IM(t1) = IM(cc[ac])   - IM(cc[ac+2]);
            RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
            IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
            IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
            RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);

            RE(ch[ah])      = RE(t2) + RE(t3);
            RE(ch[ah+2*l1]) = RE(t2) - RE(t3);

            IM(ch[ah])      = IM(t2) + IM(t3);
            IM(ch[ah+2*l1]) = IM(t2) - IM(t3);

            RE(ch[ah+l1])   = RE(t1) + RE(t4);
            RE(ch[ah+3*l1]) = RE(t1) - RE(t4);

            IM(ch[ah+l1])   = IM(t1) + IM(t4);
            IM(ch[ah+3*l1]) = IM(t1) - IM(t4);
        }
    } else {
        for (k = 0; k < l1; k++)
        {
            ac = 4*k*ido;
            ah = k*ido;

            for (i = 0; i < ido; i++)
            {
                complex_t c2, c3, c4, t1, t2, t3, t4;

                RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
                RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
                IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
                IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
                RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
                IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
                IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
                RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);

                RE(c2) = RE(t1) + RE(t4);
                RE(c4) = RE(t1) - RE(t4);

                IM(c2) = IM(t1) + IM(t4);
                IM(c4) = IM(t1) - IM(t4);

                RE(ch[ah+i]) = RE(t2) + RE(t3);
                RE(c3)       = RE(t2) - RE(t3);

                IM(ch[ah+i]) = IM(t2) + IM(t3);
                IM(c3)       = IM(t2) - IM(t3);

#if 1
                ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
                    IM(c2), RE(c2), RE(wa1[i]), IM(wa1[i]));
                ComplexMult(&IM(ch[ah+i+2*l1*ido]), &RE(ch[ah+i+2*l1*ido]),
                    IM(c3), RE(c3), RE(wa2[i]), IM(wa2[i]));
                ComplexMult(&IM(ch[ah+i+3*l1*ido]), &RE(ch[ah+i+3*l1*ido]),
                    IM(c4), RE(c4), RE(wa3[i]), IM(wa3[i]));
#else
                ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
                    RE(c2), IM(c2), RE(wa1[i]), IM(wa1[i]));
                ComplexMult(&RE(ch[ah+i+2*l1*ido]), &IM(ch[ah+i+2*l1*ido]),
                    RE(c3), IM(c3), RE(wa2[i]), IM(wa2[i]));
                ComplexMult(&RE(ch[ah+i+3*l1*ido]), &IM(ch[ah+i+3*l1*ido]),
                    RE(c4), IM(c4), RE(wa3[i]), IM(wa3[i]));
#endif
            }
        }
    }
}

static void passf4neg(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                      complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                      const complex_t *wa3)
{
    uint16_t i, k, ac, ah;

    if (ido == 1)
    {
        for (k = 0; k < l1; k++)
        {
            complex_t t1, t2, t3, t4;

            ac = 4*k;
            ah = k;

            RE(t2) = RE(cc[ac])   + RE(cc[ac+2]);
            RE(t1) = RE(cc[ac])   - RE(cc[ac+2]);
            IM(t2) = IM(cc[ac])   + IM(cc[ac+2]);
            IM(t1) = IM(cc[ac])   - IM(cc[ac+2]);
            RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
            IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
            IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
            RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);

            RE(ch[ah])      = RE(t2) + RE(t3);
            RE(ch[ah+2*l1]) = RE(t2) - RE(t3);

            IM(ch[ah])      = IM(t2) + IM(t3);
            IM(ch[ah+2*l1]) = IM(t2) - IM(t3);

            RE(ch[ah+l1])   = RE(t1) - RE(t4);
            RE(ch[ah+3*l1]) = RE(t1) + RE(t4);

            IM(ch[ah+l1])   = IM(t1) - IM(t4);
            IM(ch[ah+3*l1]) = IM(t1) + IM(t4);
        }
    } else {
        for (k = 0; k < l1; k++)
        {
            ac = 4*k*ido;
            ah = k*ido;

            for (i = 0; i < ido; i++)
            {
                complex_t c2, c3, c4, t1, t2, t3, t4;

                RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
                RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
                IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
                IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
                RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
                IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
                IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
                RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);

                RE(c2) = RE(t1) - RE(t4);
                RE(c4) = RE(t1) + RE(t4);

                IM(c2) = IM(t1) - IM(t4);
                IM(c4) = IM(t1) + IM(t4);

                RE(ch[ah+i]) = RE(t2) + RE(t3);
                RE(c3)       = RE(t2) - RE(t3);

                IM(ch[ah+i]) = IM(t2) + IM(t3);
                IM(c3)       = IM(t2) - IM(t3);

#if 1
                ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
                    RE(c2), IM(c2), RE(wa1[i]), IM(wa1[i]));
                ComplexMult(&RE(ch[ah+i+2*l1*ido]), &IM(ch[ah+i+2*l1*ido]),
                    RE(c3), IM(c3), RE(wa2[i]), IM(wa2[i]));
                ComplexMult(&RE(ch[ah+i+3*l1*ido]), &IM(ch[ah+i+3*l1*ido]),
                    RE(c4), IM(c4), RE(wa3[i]), IM(wa3[i]));
#else
                ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
                    IM(c2), RE(c2), RE(wa1[i]), IM(wa1[i]));
                ComplexMult(&IM(ch[ah+i+2*l1*ido]), &RE(ch[ah+i+2*l1*ido]),
                    IM(c3), RE(c3), RE(wa2[i]), IM(wa2[i]));
                ComplexMult(&IM(ch[ah+i+3*l1*ido]), &RE(ch[ah+i+3*l1*ido]),
                    IM(c4), RE(c4), RE(wa3[i]), IM(wa3[i]));
#endif
            }
        }
    }
}

static void passf5(const uint16_t ido, const uint16_t l1, const complex_t *cc,
                   complex_t *ch, const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
                   const complex_t *wa4, const int8_t isign)
{
    static real_t tr11 = FRAC_CONST(0.309016994374947);
    static real_t ti11 = FRAC_CONST(0.951056516295154);
    static real_t tr12 = FRAC_CONST(-0.809016994374947);
    static real_t ti12 = FRAC_CONST(0.587785252292473);
    uint16_t i, k, ac, ah;
    complex_t c2, c3, c4, c5, d3, d4, d5, d2, t2, t3, t4, t5;

    if (ido == 1)
    {
        if (isign == 1)
        {
            for (k = 0; k < l1; k++)
            {
                ac = 5*k + 1;
                ah = k;

                RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
                IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
                IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
                RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
                IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
                RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
                IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);

                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);

                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
                RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
                IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);

                ComplexMult(&RE(c5), &RE(c4),
                    ti11, ti12, RE(t5), RE(t4));
                ComplexMult(&IM(c5), &IM(c4),
                    ti11, ti12, IM(t5), IM(t4));

                RE(ch[ah+l1]) = RE(c2) - IM(c5);
                IM(ch[ah+l1]) = IM(c2) + RE(c5);
                RE(ch[ah+2*l1]) = RE(c3) - IM(c4);
                IM(ch[ah+2*l1]) = IM(c3) + RE(c4);
                RE(ch[ah+3*l1]) = RE(c3) + IM(c4);
                IM(ch[ah+3*l1]) = IM(c3) - RE(c4);
                RE(ch[ah+4*l1]) = RE(c2) + IM(c5);
                IM(ch[ah+4*l1]) = IM(c2) - RE(c5);
            }
        } else {
            for (k = 0; k < l1; k++)
            {
                ac = 5*k + 1;
                ah = k;

                RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
                IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
                IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
                RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
                IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
                RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
                IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);

                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);

                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
                RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
                IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);

                ComplexMult(&RE(c4), &RE(c5),
                    ti12, ti11, RE(t5), RE(t4));
                ComplexMult(&IM(c4), &IM(c5),
                    ti12, ti12, IM(t5), IM(t4));

                RE(ch[ah+l1]) = RE(c2) + IM(c5);
                IM(ch[ah+l1]) = IM(c2) - RE(c5);
                RE(ch[ah+2*l1]) = RE(c3) + IM(c4);
                IM(ch[ah+2*l1]) = IM(c3) - RE(c4);
                RE(ch[ah+3*l1]) = RE(c3) - IM(c4);
                IM(ch[ah+3*l1]) = IM(c3) + RE(c4);
                RE(ch[ah+4*l1]) = RE(c2) - IM(c5);
                IM(ch[ah+4*l1]) = IM(c2) + RE(c5);
            }
        }
    } else {
        if (isign == 1)
        {
            for (k = 0; k < l1; k++)
            {
                for (i = 0; i < ido; i++)
                {
                    ac = i + (k*5 + 1) * ido;
                    ah = i + k * ido;

                    RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
                    IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
                    RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
                    IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
                    RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
                    IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
                    RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
                    IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);

                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);

                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
                    RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
                    IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);

                    ComplexMult(&RE(c5), &RE(c4),
                        ti11, ti12, RE(t5), RE(t4));
                    ComplexMult(&IM(c5), &IM(c4),
                        ti11, ti12, IM(t5), IM(t4));

                    IM(d2) = IM(c2) + RE(c5);
                    IM(d3) = IM(c3) + RE(c4);
                    RE(d4) = RE(c3) + IM(c4);
                    RE(d5) = RE(c2) + IM(c5);
                    RE(d2) = RE(c2) - IM(c5);
                    IM(d5) = IM(c2) - RE(c5);
                    RE(d3) = RE(c3) - IM(c4);
                    IM(d4) = IM(c3) - RE(c4);

#if 1
                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
                    ComplexMult(&IM(ch[ah+3*l1*ido]), &RE(ch[ah+3*l1*ido]),
                        IM(d4), RE(d4), RE(wa3[i]), IM(wa3[i]));
                    ComplexMult(&IM(ch[ah+4*l1*ido]), &RE(ch[ah+4*l1*ido]),
                        IM(d5), RE(d5), RE(wa4[i]), IM(wa4[i]));
#else
                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
                    ComplexMult(&RE(ch[ah+3*l1*ido]), &IM(ch[ah+3*l1*ido]),
                        RE(d4), IM(d4), RE(wa3[i]), IM(wa3[i]));
                    ComplexMult(&RE(ch[ah+4*l1*ido]), &IM(ch[ah+4*l1*ido]),
                        RE(d5), IM(d5), RE(wa4[i]), IM(wa4[i]));
#endif
                }
            }
        } else {
            for (k = 0; k < l1; k++)
            {
                for (i = 0; i < ido; i++)
                {
                    ac = i + (k*5 + 1) * ido;
                    ah = i + k * ido;

                    RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
                    IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
                    RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
                    IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
                    RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
                    IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
                    RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
                    IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);

                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);

                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
                    RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
                    IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);

                    ComplexMult(&RE(c4), &RE(c5),
                        ti12, ti11, RE(t5), RE(t4));
                    ComplexMult(&IM(c4), &IM(c5),
                        ti12, ti12, IM(t5), IM(t4));

                    IM(d2) = IM(c2) - RE(c5);
                    IM(d3) = IM(c3) - RE(c4);
                    RE(d4) = RE(c3) - IM(c4);
                    RE(d5) = RE(c2) - IM(c5);
                    RE(d2) = RE(c2) + IM(c5);
                    IM(d5) = IM(c2) + RE(c5);
                    RE(d3) = RE(c3) + IM(c4);
                    IM(d4) = IM(c3) + RE(c4);

#if 1
                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
                    ComplexMult(&RE(ch[ah+3*l1*ido]), &IM(ch[ah+3*l1*ido]),
                        RE(d4), IM(d4), RE(wa3[i]), IM(wa3[i]));
                    ComplexMult(&RE(ch[ah+4*l1*ido]), &IM(ch[ah+4*l1*ido]),
                        RE(d5), IM(d5), RE(wa4[i]), IM(wa4[i]));
#else
                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
                    ComplexMult(&IM(ch[ah+3*l1*ido]), &RE(ch[ah+3*l1*ido]),
                        IM(d4), RE(d4), RE(wa3[i]), IM(wa3[i]));
                    ComplexMult(&IM(ch[ah+4*l1*ido]), &RE(ch[ah+4*l1*ido]),
                        IM(d5), RE(d5), RE(wa4[i]), IM(wa4[i]));
#endif
                }
            }
        }
    }
}


/*----------------------------------------------------------------------
   cfftf1, cfftf, cfftb, cffti1, cffti. Complex FFTs.
  ----------------------------------------------------------------------*/

#ifdef USE_SSE

#define CONV(A,B,C) ( (A<<2) | ((B & 0x1)<<1) | ((C==1)&0x1) )

static INLINE void cfftf1pos_sse(uint16_t n, complex_t *c, complex_t *ch,
                                 const uint16_t *ifac, const complex_t *wa,
                                 const int8_t isign)
{
    uint16_t i;
    uint16_t k1, l1, l2;
    uint16_t na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;

    nf = ifac[1];
    na = 0;
    l1 = 1;
    iw = 0;

    for (k1 = 2; k1 <= nf+1; k1++)
    {
        ip = ifac[k1];
        l2 = ip*l1;
        ido = n / l2;
        idl1 = ido*l1;

        ix2 = iw + ido;
        ix3 = ix2 + ido;
        ix4 = ix3 + ido;

        switch (CONV(ip,na,ido))
        {
        case CONV(4,0,0):
            //passf4pos_sse_ido((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
            passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
            break;
        case CONV(4,0,1):
            passf4pos_sse((const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
            break;
        case CONV(4,1,0):
            passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);
            //passf4pos_sse_ido((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);
            break;
        case CONV(4,1,1):
            passf4pos_sse((const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);
            break;
        case CONV(2,0,0):
            passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            //passf2pos_sse_ido((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            break;
        case CONV(2,0,1):
            passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            //passf2pos_sse((const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            break;
        case CONV(2,1,0):
            passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
            //passf2pos_sse_ido((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
            break;
        case CONV(2,1,1):
            passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
            //passf2pos_sse((const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);
            break;
        case CONV(3,0,0):
        case CONV(3,0,1):
            passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], isign);
            break;
        case CONV(3,1,0):
        case CONV(3,1,1):
            passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], isign);
            break;
        case CONV(5,0,0):
        case CONV(5,0,1):
            passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
            break;
        case CONV(5,1,0):
        case CONV(5,1,1):
            passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
            break;
        }

        na = 1 - na;

        l1 = l2;
        iw += (ip-1) * ido;
    }

    if (na == 0)
        return;

    for (i = 0; i < n; i++)
    {
        RE(c[i]) = RE(ch[i]);
        IM(c[i]) = IM(ch[i]);
    }
}
#endif

static INLINE void cfftf1pos(uint16_t n, complex_t *c, complex_t *ch,
                             const uint16_t *ifac, const complex_t *wa,
                             const int8_t isign)
{
    uint16_t i;
    uint16_t k1, l1, l2;
    uint16_t na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;

    nf = ifac[1];
    na = 0;
    l1 = 1;
    iw = 0;

    for (k1 = 2; k1 <= nf+1; k1++)
    {
        ip = ifac[k1];
        l2 = ip*l1;
        ido = n / l2;
        idl1 = ido*l1;

        switch (ip)
        {
        case 4:
            ix2 = iw + ido;
            ix3 = ix2 + ido;

            if (na == 0)
                passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
            else
                passf4pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);

            na = 1 - na;
            break;
        case 2:
            if (na == 0)
                passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            else
                passf2pos((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);

            na = 1 - na;
            break;
        case 3:
            ix2 = iw + ido;

            if (na == 0)
                passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], isign);
            else
                passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], isign);

            na = 1 - na;
            break;
        case 5:
            ix2 = iw + ido;
            ix3 = ix2 + ido;
            ix4 = ix3 + ido;

            if (na == 0)
                passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
            else
                passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);

            na = 1 - na;
            break;
        }

        l1 = l2;
        iw += (ip-1) * ido;
    }

    if (na == 0)
        return;

    for (i = 0; i < n; i++)
    {
        RE(c[i]) = RE(ch[i]);
        IM(c[i]) = IM(ch[i]);
    }
}

static INLINE void cfftf1neg(uint16_t n, complex_t *c, complex_t *ch,
                             const uint16_t *ifac, const complex_t *wa,
                             const int8_t isign)
{
    uint16_t i;
    uint16_t k1, l1, l2;
    uint16_t na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;

    nf = ifac[1];
    na = 0;
    l1 = 1;
    iw = 0;

    for (k1 = 2; k1 <= nf+1; k1++)
    {
        ip = ifac[k1];
        l2 = ip*l1;
        ido = n / l2;
        idl1 = ido*l1;

        switch (ip)
        {
        case 4:
            ix2 = iw + ido;
            ix3 = ix2 + ido;

            if (na == 0)
                passf4neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3]);
            else
                passf4neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3]);

            na = 1 - na;
            break;
        case 2:
            if (na == 0)
                passf2neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw]);
            else
                passf2neg((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw]);

            na = 1 - na;
            break;
        case 3:
            ix2 = iw + ido;

            if (na == 0)
                passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], isign);
            else
                passf3((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], isign);

            na = 1 - na;
            break;
        case 5:
            ix2 = iw + ido;
            ix3 = ix2 + ido;
            ix4 = ix3 + ido;

            if (na == 0)
                passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)c, ch, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);
            else
                passf5((const uint16_t)ido, (const uint16_t)l1, (const complex_t*)ch, c, &wa[iw], &wa[ix2], &wa[ix3], &wa[ix4], isign);

            na = 1 - na;
            break;
        }

        l1 = l2;
        iw += (ip-1) * ido;
    }

    if (na == 0)
        return;

    for (i = 0; i < n; i++)
    {
        RE(c[i]) = RE(ch[i]);
        IM(c[i]) = IM(ch[i]);
    }
}

void cfftf(cfft_info *cfft, complex_t *c)
{
    cfftf1neg(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, -1);
}

void cfftb(cfft_info *cfft, complex_t *c)
{
    cfftf1pos(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, +1);
}

#ifdef USE_SSE
void cfftb_sse(cfft_info *cfft, complex_t *c)
{
    cfftf1pos_sse(cfft->n, c, cfft->work, (const uint16_t*)cfft->ifac, (const complex_t*)cfft->tab, +1);
}
#endif

static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac)
{
    static uint16_t ntryh[4] = {3, 4, 2, 5};
#ifndef FIXED_POINT
    real_t arg, argh, argld, fi;
    uint16_t ido, ipm;
    uint16_t i1, k1, l1, l2;
    uint16_t ld, ii, ip;
#endif
    uint16_t ntry = 0, i, j;
    uint16_t ib;
    uint16_t nf, nl, nq, nr;

    nl = n;
    nf = 0;
    j = 0;

startloop:
    j++;

    if (j <= 4)
        ntry = ntryh[j-1];
    else
        ntry += 2;

    do
    {
        nq = nl / ntry;
        nr = nl - ntry*nq;

        if (nr != 0)
            goto startloop;

        nf++;
        ifac[nf+1] = ntry;
        nl = nq;

        if (ntry == 2 && nf != 1)
        {
            for (i = 2; i <= nf; i++)
            {
                ib = nf - i + 2;
                ifac[ib+1] = ifac[ib];
            }
            ifac[2] = 2;
        }
    } while (nl != 1);

    ifac[0] = n;
    ifac[1] = nf;

#ifndef FIXED_POINT
    argh = (real_t)2.0*(real_t)M_PI / (real_t)n;
    i = 0;
    l1 = 1;

    for (k1 = 1; k1 <= nf; k1++)
    {
        ip = ifac[k1+1];
        ld = 0;
        l2 = l1*ip;
        ido = n / l2;
        ipm = ip - 1;

        for (j = 0; j < ipm; j++)
        {
            i1 = i;
            RE(wa[i]) = 1.0;
            IM(wa[i]) = 0.0;
            ld += l1;
            fi = 0;
            argld = ld*argh;

            for (ii = 0; ii < ido; ii++)
            {
                i++;
                fi++;
                arg = fi * argld;
                RE(wa[i]) = (real_t)cos(arg);
#if 1
                IM(wa[i]) = (real_t)sin(arg);
#else
                IM(wa[i]) = (real_t)-sin(arg);
#endif
            }

            if (ip > 5)
            {
                RE(wa[i1]) = RE(wa[i]);
                IM(wa[i1]) = IM(wa[i]);
            }
        }
        l1 = l2;
    }
#endif
}

cfft_info *cffti(uint16_t n)
{
    cfft_info *cfft = (cfft_info*)faad_malloc(sizeof(cfft_info));

    cfft->n = n;
    cfft->work = (complex_t*)faad_malloc(n*sizeof(complex_t));

#ifndef FIXED_POINT
    cfft->tab = (complex_t*)faad_malloc(n*sizeof(complex_t));

    cffti1(n, cfft->tab, cfft->ifac);
#else
    cffti1(n, NULL, cfft->ifac);

    switch (n)
    {
    case 64: cfft->tab = (complex_t*)cfft_tab_64; break;
    case 512: cfft->tab = (complex_t*)cfft_tab_512; break;
#ifdef LD_DEC
    case 256: cfft->tab = (complex_t*)cfft_tab_256; break;
#endif

#ifdef ALLOW_SMALL_FRAMELENGTH
    case 60: cfft->tab = (complex_t*)cfft_tab_60; break;
    case 480: cfft->tab = (complex_t*)cfft_tab_480; break;
#ifdef LD_DEC
    case 240: cfft->tab = (complex_t*)cfft_tab_240; break;
#endif
#endif
    }
#endif

    return cfft;
}

void cfftu(cfft_info *cfft)
{
    if (cfft->work) faad_free(cfft->work);
#ifndef FIXED_POINT
    if (cfft->tab) faad_free(cfft->tab);
#endif

    if (cfft) faad_free(cfft);
}


cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -c -O4 -march=pentium3 -mcpu=pentium3 -pipe -ffast-math -fomit-frame-pointer -I/home/r00t/MPlayer-1.0pre7/libfaad2

ldd /tmp/mplayer-conf-27626-4003.o
ldd: warning: you do not have execution permission for `/tmp/mplayer-conf-27626-4003.o'
	not a dynamic executable

Result is: yes
##########################################

============ Checking for external FAAD2 (AAC) support ============
Result is: no
##########################################

============ Checking for LADSPA plugin support ============

#include <stdio.h>
#include <ladspa.h>
int main(void) {
const LADSPA_Descriptor *ld = NULL;
return 0;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:2:20: ladspa.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:4: error: syntax error before '*' token

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for Win32 codec DLL support ============
Result is: yes (using /usr/local/lib/codes/)
##########################################

============ Checking for Win32 loader support ============
Result is: yes
##########################################

============ Checking for DirectShow ============
Result is: yes
##########################################

============ Checking for XAnim DLL ============
Result is: yes (using /usr/local/lib/codes/)
##########################################

============ Checking for RealPlayer DLL ============
Result is: yes (using /usr/local/lib/codes/)
##########################################

============ Checking for LIVE.COM Streaming Media libraries ============

#include <liveMedia.hh>
#if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
#error Please upgrade to version 2004.07.19 or later of the "LIVE.COM Streaming Media" libraries - available from <www.live.com/liveMedia/>
#endif
int main(void) {}

cc     /tmp/mplayer-conf-20525-4003.cpp -o /tmp/mplayer-conf-27626-4003.o -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock
/tmp/mplayer-conf-20525-4003.cpp:1:24: liveMedia.hh: No such file or directory
/tmp/mplayer-conf-20525-4003.cpp:3:2: #error Please upgrade to version 2004.07.19 or later of the "LIVE.COM Streaming Media" libraries - available from <www.live.com/liveMedia/>

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for FFmpeg libavcodec (static) ============
Result is: yes
##########################################

============ Checking for FFmpeg libavformat (static) ============
Result is: yes
##########################################

============ Checking for amr narrowband ============
Result is: no 
##########################################

============ Checking for amr narrowband, fixed point ============
Result is: no 
##########################################

============ Checking for amr wideband ============
Result is: no 
##########################################

============ Checking for libdv-0.9.5+ ============

#include <libdv/dv.h>
int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ldv -lm
/tmp/mplayer-conf-25631-4003.c:1:22: libdv/dv.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:2: error: `dv_encoder_t' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:2: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:2: error: for each function it appears in.)
/tmp/mplayer-conf-25631-4003.c:2: error: `enc' undeclared (first use in this function)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for zr ============
Result is: no
##########################################

============ Checking for bl ============
Result is: no
##########################################

============ Checking for XviD ============

#include <xvid.h>
int main(void) { xvid_init(0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lxvidcore -lm
/tmp/mplayer-conf-25631-4003.c:1:18: xvid.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <xvid.h>
int main(void) { xvid_global(0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lxvidcore -lm
/tmp/mplayer-conf-25631-4003.c:1:18: xvid.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for x264 ============

#include <inttypes.h>
#include <x264.h>
#if X264_BUILD < 22
#error We do not support old versions of x264. Get the latest from SVN.
#endif
int main(void) { x264_encoder_open((void*)0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lx264 -lm
/tmp/mplayer-conf-25631-4003.c:2:18: x264.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c:4:2: #error We do not support old versions of x264. Get the latest from SVN.

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for DivX4linux/DivX5linux/OpenDivX decore ============

#include <decore.h>
int main(void) { (void) decore(0, 0, 0, 0);  return DEC_OPT_FRAME_311; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lm -ldivxdecore
/tmp/mplayer-conf-25631-4003.c:1:20: decore.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:2: error: `DEC_OPT_FRAME_311' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:2: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:2: error: for each function it appears in.)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory


#include <decore.h>
int main(void) { (void) decore(0, 0, 0, 0);  return DEC_OPT_INIT; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lm -ldivxdecore
/tmp/mplayer-conf-25631-4003.c:1:20: decore.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:2: error: `DEC_OPT_INIT' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:2: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:2: error: for each function it appears in.)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for libmp3lame (for mencoder) ============

#include <lame/lame.h>
int main(void) { lame_version_t lv; (void) lame_init(); get_lame_version_numerical(&lv);  printf("%d%d\n",lv.major,lv.minor); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lmp3lame -lm
/tmp/mplayer-conf-25631-4003.c:1:23: lame/lame.h: No such file or directory
/tmp/mplayer-conf-25631-4003.c: In function `main':
/tmp/mplayer-conf-25631-4003.c:2: error: `lame_version_t' undeclared (first use in this function)
/tmp/mplayer-conf-25631-4003.c:2: error: (Each undeclared identifier is reported only once
/tmp/mplayer-conf-25631-4003.c:2: error: for each function it appears in.)
/tmp/mplayer-conf-25631-4003.c:2: error: syntax error before "lv"
/tmp/mplayer-conf-25631-4003.c:2: error: `lv' undeclared (first use in this function)

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for DivX4linux encore (for mencoder) ============

#include <encore2.h>
int main(void) { (void) encore(0, 0, 0, 0); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -ldivxencore -lm
/tmp/mplayer-conf-25631-4003.c:1:21: encore2.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for mencoder ============
Result is: yes
##########################################

============ Checking for fastmemcpy ============
Result is: yes
##########################################

============ Checking for UniquE RAR File Library ============
Result is: yes
##########################################

============ Checking for TV interface ============
Result is: yes
##########################################

============ Checking for EDL support ============
Result is: yes
##########################################

============ Checking for *BSD BrookTree 848 TV interface ============

#include <sys/types.h>
#if defined(__NetBSD__)
#include <dev/ic/bt8xx.h>
#else
#include <machine/ioctl_bt848.h>
#endif
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 
/tmp/mplayer-conf-25631-4003.c:5:33: machine/ioctl_bt848.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for Video 4 Linux TV interface ============

#include <stdlib.h>
#include <linux/videodev.h>
int main(void) { return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for Video 4 Linux 2 TV interface ============
Result is: yes
##########################################

============ Checking for audio select() ============
Result is: yes
##########################################

============ Checking for network ============
Result is: yes
##########################################

============ Checking for ftp ============
Result is: yes
##########################################

============ Checking for vstream client ============

#include <vstream-client.h>
void vstream_error(const char *format, ... ) {}
int main(void) { vstream_start(); return 0; }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -lvstream-client
/tmp/mplayer-conf-25631-4003.c:1:28: vstream-client.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################

============ Checking for byte order ============

short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
                      (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
int main(){
  char* s = (char*)ascii_name;
  return 0;
} 

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: little-endian
##########################################

============ Checking for shared postprocess lib ============
Result is: no
##########################################

============ Checking for OSD menu ============
Result is: no
##########################################

============ Checking for QTX codecs ============
Result is: yes
##########################################

============ Checking for Subtitles sorting ============
Result is: yes
##########################################

============ Checking for XMMS inputplugin support ============
Result is: no
##########################################

============ Checking for inet6 ============

#include <sys/types.h>
#include <sys/socket.h>
int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for gethostbyname2 ============

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int main(void) { gethostbyname2("", AF_INET); }

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for GUI ============
============ Checking for XShape extension ============

#include <X11/Xlib.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <X11/extensions/shape.h>
#include <stdlib.h>
int main(void) {
  char *name = ":0.0";
  Display *wsDisplay;
  int exitvar = 0;
  int eventbase, errorbase;
  if (getenv("DISPLAY"))
    name=getenv("DISPLAY");
  wsDisplay=XOpenDisplay(name);
  if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
    exitvar=1;
  XCloseDisplay(wsDisplay);
  return exitvar;
}

cc     /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -I/usr/X11/include -L/usr/X11R6/lib -lXext -lX11 -lnsl

ldd /tmp/mplayer-conf-27626-4003.o
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40035000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40043000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x4010e000)
	libc.so.6 => /lib/libc.so.6 (0x40124000)
	libdl.so.2 => /lib/libdl.so.2 (0x4023d000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for GTK version ============
Result is: 1.2.10 (using gtk-config)
##########################################

============ Checking for glib version ============
Result is: 1.2.10 (using glib-config)
##########################################

============ Checking for automatic gdb attach ============
Result is: no
##########################################

============ Checking for compiler support for -fno-PIC ============

int main(void) { return 0; }

cc -O4 -march=pentium3 -mcpu=pentium3 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64    /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -fno-PIC

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for ftello() ============

#include <stdio.h>
#include <sys/types.h>
int main (void) { ftello(stdin); return 0; }

cc -fno-PIC -O4 -march=pentium3 -mcpu=pentium3 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64    /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o 

ldd /tmp/mplayer-conf-27626-4003.o
	libc.so.6 => /lib/libc.so.6 (0x40035000)
	/lib/ld-linux.so.2 (0x40000000)

Result is: yes
##########################################

============ Checking for lirc ============
Result is: no
##########################################

============ Checking for lircc ============

#include <lirc/lircc.h>
int main(void) { return 0; }

cc -fno-PIC -O4 -march=pentium3 -mcpu=pentium3 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64    /tmp/mplayer-conf-25631-4003.c -o /tmp/mplayer-conf-27626-4003.o -llircc
/tmp/mplayer-conf-25631-4003.c:1:24: lirc/lircc.h: No such file or directory

ldd /tmp/mplayer-conf-27626-4003.o
ldd: /tmp/mplayer-conf-27626-4003.o: No such file or directory

Result is: no
##########################################