[svn] / trunk / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

Diff of /trunk/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 830, Tue Feb 11 21:56:31 2003 UTC revision 2044, Tue Sep 20 08:19:41 2011 UTC
# Line 1  Line 1 
1  dnl ==========================================================================  dnl ==========================================================================
2  dnl  dnl
3  dnl Autoconf script for XviD  dnl Autoconf script for Xvid
4  dnl  dnl
5  dnl Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>  dnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>
6  dnl  dnl
7  dnl ==========================================================================  dnl ==========================================================================
8    
9  AC_INIT([XviD], [0.9.1 RC1], [xvid-devel@xvid.org])  AC_PREREQ([2.50])
10    
11    AC_INIT([Xvid], [1.4.0], [xvid-devel@xvid.org])
12  AC_CONFIG_SRCDIR(configure.in)  AC_CONFIG_SRCDIR(configure.in)
13    
14  dnl NASM version requirement  dnl Do not forget to increase that when needed.
15  minimum_nasm_patch_version=34  API_MAJOR="4"
16    API_MINOR="4"
17    
18    dnl NASM/YASM version requirement
19    minimum_yasm_major_version=1
20    minimum_nasm_minor_version=0
21    minimum_nasm_major_version=2
22  nasm_prog="nasm"  nasm_prog="nasm"
23    yasm_prog="yasm"
24    
25  dnl Default CFLAGS -- Big impact on overall speed  dnl Default CFLAGS -- Big impact on overall speed
26  our_cflags_defaults="-Wall"  our_cflags_defaults="-Wall"
27  our_cflags_defaults="$our_cflags_defaults -O2"  our_cflags_defaults="$our_cflags_defaults -O2"
28  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
29    our_cflags_defaults="$our_cflags_defaults -finline-functions"
30  our_cflags_defaults="$our_cflags_defaults -ffast-math"  our_cflags_defaults="$our_cflags_defaults -ffast-math"
31  our_cflags_defaults="$our_cflags_defaults -funroll-loops"  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
 our_cflags_defaults="$our_cflags_defaults -fschedule-insns"  
 our_cflags_defaults="$our_cflags_defaults -fschedule-insns2"  
32    
33  dnl ==========================================================================  dnl ==========================================================================
34  dnl Features - configure options  dnl Features - configure options
35  dnl ==========================================================================  dnl ==========================================================================
36    
37  FEATURES=""  FEATURES=""
 DIVX4COMPAT_SOURCES=""  
 DIVX4_ENCORE=""  
 DIVX4_DECORE=""  
   
 dnl BIGLUT aka old VLC code  
 AC_ARG_ENABLE(oldvlc,  
                 AC_HELP_STRING([--enable-oldvlc],  
                                  [Enable old VLC code (Needs much more memory ~10MB)]),  
                 [if test "$enable_oldvlc" = "yes" ; then  
                     FEATURES="$FEATURES -DBIGLUT"  
                  fi])  
38    
39  dnl Internal Debug  dnl Internal Debug
40  AC_ARG_ENABLE(idebug,  AC_ARG_ENABLE(idebug,
# Line 55  Line 52 
52                       FEATURES="$FEATURES -D_PROFILING_"                       FEATURES="$FEATURES -D_PROFILING_"
53                    fi])                    fi])
54    
55    dnl GNU Profiling options
56    AC_ARG_ENABLE(gnuprofile,
57                    AC_HELP_STRING([--enable-gnuprofile],
58                                     [Enable profiling informations for gprof]),
59                     [if test "$enable_gnuprofile" = "yes" ; then
60                         GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage"
61                         GNU_PROF_LDFLAGS="-pg"
62                      fi])
63    
64  dnl Assembly code  dnl Assembly code
65  AC_ARG_ENABLE(assembly,  AC_ARG_ENABLE(assembly,
66                  AC_HELP_STRING([--disable-assembly],                  AC_HELP_STRING([--disable-assembly],
# Line 68  Line 74 
74                    fi],                    fi],
75                   [assembly="yes"])                   [assembly="yes"])
76    
77  dnl Internal Debug  dnl pthread code
78  AC_ARG_ENABLE(divx4compat,  AC_ARG_ENABLE(pthread,
79                  AC_HELP_STRING([--enable-divx4compat],                  AC_HELP_STRING([--disable-pthread],
80                                   [Enable DivX4 compatibility API]),                                   [Disable pthread dependent code]),
81                   [if test "$enable_divx4compat" = "yes" ; then                   [if test "$enable_pthread" = "no" ; then
82                       DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"                       pthread="no"
83                       DIVX4_ENCORE="encore;"                    else
84                       DIVX4_DECORE="decore;"                       if test "$enable_pthread" = "yes" ; then
85                    fi])                          pthread="yes"
86                         fi
87                      fi],
88                     [pthread="yes"])
89    
90    dnl Build as a module not a shared lib on darwin
91    AC_ARG_ENABLE(macosx_module,
92                    AC_HELP_STRING([--enable-macosx_module],
93                                     [Build as a module on MacOS X]),
94                     [if test "$enable_macosx_module" = "yes" ; then
95                         macosx_module="yes"
96                      else
97                         macosx_module="no"
98                      fi],
99                      [macosx_module="no"])
100    
101  dnl ==========================================================================  dnl ==========================================================================
102  dnl Default install prefix and checks build type  dnl Default install prefix and checks build type
# Line 122  Line 141 
141  dnl ==========================================================================  dnl ==========================================================================
142    
143  AC_PROG_RANLIB  AC_PROG_RANLIB
144    AC_CHECK_TOOL([AR], [ar], [ar-not-found])
145    
146    dnl ==========================================================================
147    dnl Check for the egrep program
148    dnl ==========================================================================
149    
150    AC_PROG_EGREP
151    
152    dnl ==========================================================================
153    dnl Check how the system supports symlinks.
154    dnl ==========================================================================
155    
156    AC_PROG_LN_S
157    
158  dnl ==========================================================================  dnl ==========================================================================
159  dnl  dnl
# Line 158  Line 190 
190            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
191                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
192                  ;;                  ;;
193              x86_64)
194                    AC_MSG_RESULT(x86_64)
195                    ARCHITECTURE="X86_64"
196                    ;;
197                  powerpc)                  powerpc)
198                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
199                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
200                  ;;                  ;;
201                  ia64)                  ia64)
202                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 192  Line 226 
226          BUS="64BIT"          BUS="64BIT"
227          ;;          ;;
228       *)       *)
229          AC_MSG_ERROR([XviD supports only 32/64 bit architectures])          AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
230          ;;          ;;
231  esac  esac
232    
# Line 215  Line 249 
249  STATIC_EXTENSION=""  STATIC_EXTENSION=""
250  OBJECT_EXTENSION=""  OBJECT_EXTENSION=""
251  case "$target_os" in  case "$target_os" in
252       *bsd*|linux*|beos|irix*|solaris*)       *bsd*|linux*|beos|irix*|solaris*|gnu*)
253          AC_MSG_RESULT([.so .a .o])          AC_MSG_RESULT([.so .a .o])
254          STATIC_EXTENSION="a"          STATIC_EXTENSION="a"
255          SHARED_EXTENSION="so"          SHARED_EXTENSION="so"
256          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
257          ;;          ;;
258       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
259          AC_MSG_RESULT([.dll .lib .obj])          AC_MSG_RESULT([.dll .a .obj])
260          STATIC_EXTENSION="lib"          STATIC_EXTENSION="a"
261          SHARED_EXTENSION="dll"          SHARED_EXTENSION="dll"
262          OBJECT_EXTENSION="obj"          OBJECT_EXTENSION="obj"
263          ;;          ;;
264       darwin*|raphsody*)       darwin*)
265            if test x"$macosx_module" = x"yes"; then
266               AC_MSG_RESULT([.so .a .o])
267               SHARED_EXTENSION="so"
268            else
269          AC_MSG_RESULT([.dynlib .a .o])          AC_MSG_RESULT([.dynlib .a .o])
         STATIC_EXTENSION="a"  
270          SHARED_EXTENSION="dylib"          SHARED_EXTENSION="dylib"
271            fi
272            STATIC_EXTENSION="a"
273          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
274          ;;          ;;
275       *)       *)
# Line 241  Line 280 
280          ;;          ;;
281  esac  esac
282    
283    dnl ==========================================================================
284    dnl
285    dnl Determines best options for CC and LD
286    dnl  - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
287    dnl
288    dnl ==========================================================================
289    
290  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
291  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
292  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
293    ALTIVEC_CFLAGS=""
294    PRE_SHARED_LIB=""
295    SO_API_MAJOR_LINK=""
296    SO_LINK=""
297    IMPORT_LIB=""
298  case "$target_os" in  case "$target_os" in
299       *bsd*|linux*|irix*|solaris*)       linux*|solaris*|gnu*)
300          AC_MSG_RESULT([-shared -lc -lm])          AC_MSG_RESULT([ok])
301          SPECIFIC_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
302            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
303            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
304            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
305            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
306            SPECIFIC_CFLAGS="-fPIC"
307            ;;
308         *bsd*|irix*)
309            AC_MSG_RESULT([ok])
310            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
311            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
312            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
313            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
314            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
315          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
316          ;;          ;;
317       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*)
318          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          AC_MSG_RESULT([ok])
319            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
320            SHARED_LIB="cygxvidcore.\$(SHARED_EXTENSION)"
321            IMPORT_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(STATIC_EXTENSION)"
322          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
323          SPECIFIC_CFLAGS="-mno-cygwin"          SPECIFIC_CFLAGS=""
324          ;;          ;;
325       darwin*|raphsody*)       mingw32*|mks*)
326          AC_MSG_RESULT([-dynamiclib -flat_namespace])          AC_MSG_RESULT([ok])
327          SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
328          SPECIFIC_CFLAGS="-fPIC -fno-common"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
329            IMPORT_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(STATIC_EXTENSION)"
330            SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
331            SPECIFIC_CFLAGS=""
332            ;;
333         darwin*)
334            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
335            SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
336            if test x"$macosx_module" = x"no"; then
337               AC_MSG_RESULT([dylib options])
338               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
339               SPECIFIC_LDFLAGS="-Wl,-read_only_relocs,suppress -dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
340            else
341               AC_MSG_RESULT([module options])
342               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
343               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
344               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
345            fi
346          ;;          ;;
347       beos)       beos)
348          AC_MSG_RESULT([-nostart])          AC_MSG_RESULT([ok])
349            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
350            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
351          SPECIFIC_LDFLAGS="-nostart"          SPECIFIC_LDFLAGS="-nostart"
352          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
353          ;;          ;;
354       *)       *)
355          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
356        STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
357            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
358          SPECIFIC_LDFLAGS=""          SPECIFIC_LDFLAGS=""
359          SPECIFIC_CFLAGS=""          SPECIFIC_CFLAGS=""
360          ;;          ;;
361  esac  esac
362    
363    if test x"$PRE_SHARED_LIB" = x; then
364      PRE_SHARED_LIB=$SHARED_LIB
365    fi
366    
367    if test x"$IMPORT_LIB" = x; then
368      IMPORT_LIB=$SHARED_LIB
369    fi
370    
371  dnl ==========================================================================  dnl ==========================================================================
372  dnl  dnl
373  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
374    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
375  dnl  dnl
376  dnl ==========================================================================  dnl ==========================================================================
377    
# Line 288  Line 385 
385  dnl IA32  dnl IA32
386  dnl  dnl
387    
388  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
389    
390     dnl     dnl
391     dnl Checking nasm existence     dnl Checking for nasm compatible programs
392     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
393    
394       found_nasm_comp_prog="no"
395       chosen_asm_prog=""
396    
397       dnl Check for yasm first
398       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
399       if test "$ac_yasm" = "yes" ; then
400        dnl        dnl
401        dnl Checking nasm patch version         dnl Checking yasm version
402        dnl        dnl
403        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
404        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`         yasm_major=`$yasm_prog --version | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 2`
405        AC_MSG_RESULT([$nasm_patch])         if test -z $yasm_major ; then
406              yasm_major=-1
407           fi
408           AC_MSG_RESULT([$yasm_major])
409    
410        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then         dnl Actually, yasm >= 0.7.99.2161 should be ok
411          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])         dnl But I'm too lazy to check also the patch version...
412          ARCHITECTURE="GENERIC"         if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
413             AC_MSG_WARN([yasm version is too old])
414        else        else
415             found_nasm_comp_prog="yes"
416             chosen_asm_prog="$yasm_prog"
417           fi
418       fi
419    
420       dnl Check for nasm (not buggy version)
421       if test "$found_nasm_comp_prog" = "no" ; then
422           AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
423           if test "$ac_nasm" = "yes" ; then
424           dnl           dnl
425           dnl Checking nasm format - win32 or elf             dnl Checking nasm version
426           dnl           dnl
427           AC_MSG_CHECKING([for nasm object format])             AC_MSG_CHECKING([for nasm version])
428               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
429               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
430               if test -z $nasm_minor ; then
431                  nasm_minor=-1
432               fi
433               if test -z $nasm_major ; then
434                  nasm_major=-1
435               fi
436               AC_MSG_RESULT([$nasm_major])
437    
438               dnl need nasm 2.x for SSE3/4 and X86_64
439               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
440                 AC_MSG_WARN([nasm version is too old])
441               else
442                 found_nasm_comp_prog="yes"
443                   chosen_asm_prog="$nasm_prog"
444               fi
445           fi
446       fi
447    
448       dnl
449       dnl Ok now sort what object format we must use
450       dnl
451       if test "$found_nasm_comp_prog" = "yes" ; then
452           AC_MSG_CHECKING([for asm object format])
453           case "$target_os" in           case "$target_os" in
454                *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*|gnu*)
455                   if test "$ARCHITECTURE" = "X86_64" ; then
456                       AC_MSG_RESULT([elf64])
457                       NASM_FORMAT="elf64"
458                   else
459                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
460                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
461                   fi
462                   MARK_FUNCS="-DMARK_FUNCS"
463                    PREFIX=""                    PREFIX=""
464                    ;;                    ;;
465                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
466                   if test "$ARCHITECTURE" = "X86_64" ; then
467                       AC_MSG_RESULT([win64])
468                       NASM_FORMAT="win64"
469                   else
470                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
471                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
472                   fi
473                   PREFIX="-DWINDOWS"
474                   if test "$GCC" = "yes" ; then
475                       echo 'int main(void) {return 0;}' > conftest.c
476                       $CC -S -o conftest conftest.c
477                       if test `$EGREP -c '_main:' conftest` -eq 0 ; then
478                           PREFIX="$PREFIX -DNO_PREFIX"
479                       fi
480                       rm -f conftest*
481                   fi
482                   MARK_FUNCS=""
483                   ;;
484               *darwin*)
485                   if test "$ARCHITECTURE" = "X86_64" ; then
486                       AC_MSG_RESULT([macho64])
487                       NASM_FORMAT="macho64"
488                   else
489                       AC_MSG_RESULT([macho32])
490                       NASM_FORMAT="macho32"
491                   fi
492                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
493                   MARK_FUNCS=""
494                    ;;                    ;;
495            esac            esac
496    
497            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"  
498            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
499            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
500           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
501           if test "$ARCHITECTURE" = "X86_64" ; then
502                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
503         fi         fi
   
504     else     else
505          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
506          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
507     fi     fi
   
508  fi  fi
509    
510  dnl  dnl
511  dnl PPC  dnl PPC
512  dnl  dnl
513    dnl With the PPC platform we do not use assembly language, we better keep with
514    dnl intrinsic altivec functions and types as they are supported by both Apple
515    dnl and GNU gcc with very slight changes to code which can be sumed up by:
516    dnl
517    dnl Apple:
518    dnl  - compile with the option -arch ppc -faltivec
519    dnl  - define vectors with parentheses vec = (0,0,0,0)
520    dnl GNU
521    dnl  - compile with -maltivec -mabi=altivec
522    dnl  - include <altivec.h> before using intrincic
523    dnl  - define vectors with vec = {0,0,0,0}
524    dnl
525    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
526    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
527    dnl   a -DHAVE_ALTIVEC_H
528    dnl * The vector definition is handled in portab.h thx to
529    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
530    dnl
531    PPC_ALTIVEC_SOURCES=""
532  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
533     AS="\$(CC)"     AS="\$(CC)"
534     AFLAGS="-c"     AFLAGS=""
535     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
536     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
537     AC_MSG_CHECKING([for Altivec support])  
538     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
539           .text  cat > conftest.c << EOF
540           vxor 0,0,0  #include <altivec.h>
541    int main() { return(0); }
542  EOF  EOF
543     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then     if $CC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
544          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
545          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
546          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
547          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
548     else     else
549          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
550            TEMP_ALTIVEC=""
551     fi     fi
552    
553       AC_MSG_CHECKING([for Altivec compiler support])
554    cat > conftest.c << EOF
555    #ifdef HAVE_ALTIVEC_H
556    #include <altivec.h>
557    #endif
558    
559    int main()
560    {
561      vector unsigned int vartest2 = (vector unsigned int)(0);
562      vector unsigned int vartest3 = (vector unsigned int)(1);
563      vartest2 = vec_add(vartest2, vartest3);
564      return(0);
565    }
566    EOF
567       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
568            AC_MSG_RESULT([yes (Apple)])
569            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
570            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
571       else
572    cat > conftest.c << EOF
573    #ifdef HAVE_ALTIVEC_H
574    #include <altivec.h>
575    #endif
576    
577    int main()
578    {
579      vector unsigned int vartest2 = (vector unsigned int){0};
580      vector unsigned int vartest3 = (vector unsigned int){1};
581      vartest2 = vec_add(vartest2, vartest3);
582      return(0);
583    }
584    EOF
585       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
586            AC_MSG_RESULT([yes (GNU)])
587            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
588            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
589            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
590       else
591            AC_MSG_RESULT([no (ppc support won't be compiled in)])
592            dnl Only C code can be compiled :-(
593            ARCHITECTURE="GENERIC"
594       fi
595       fi
596    
597     rm -f conftest.*     rm -f conftest.*
598  fi  fi
599    
# Line 374  Line 609 
609    
610     case `basename $CC` in     case `basename $CC` in
611          *ecc*)          *ecc*)
612                  DCT_IA64_SOURCES="idct_ia64_ecc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
613    
614                  dnl If the compiler is ecc, then i don't know its options                  dnl If the compiler is ecc, then i don't know its options
615                  dnl fallback to "no options"                  dnl fallback to "no options"
# Line 383  Line 618 
618                  fi                  fi
619                  ;;                  ;;
620          *)          *)
621                  DCT_IA64_SOURCES="idct_ia64_gcc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
622                  ;;                  ;;
623     esac     esac
624    
# Line 398  Line 633 
633  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
634          stdio.h \          stdio.h \
635          signal.h \          signal.h \
636            stdlib.h \
637            string.h \
638            assert.h \
639            math.h \
640          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
641    
642  dnl ==========================================================================  dnl ==========================================================================
643  dnl  dnl
644    dnl Check for pthread
645    dnl
646    dnl ==========================================================================
647    
648    if test x"$pthread" = x"yes" ; then
649            case "$target_os" in
650                mingw32*)
651                    AC_CHECK_HEADER(
652                        [pthread.h],
653                        [AC_CHECK_LIB(
654                            [pthreadGC2],
655                            [pthread_create],
656                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
657                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthreadGC2"],
658                            [AC_CHECK_LIB(
659                                [pthread],
660                                [pthread_create],
661                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
662                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
663                                AC_MSG_WARN(Pthread not supported. No SMP support))])],
664                        AC_MSG_WARN(Pthread not supported. No SMP support))
665                    ;;
666                *)
667                    AC_CHECK_HEADER(
668                        [pthread.h],
669                        [AC_CHECK_LIB(
670                            [pthread],
671                            [pthread_create],
672                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
673                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
674                            AC_MSG_WARN(Pthread not supported. No SMP support))],
675                        AC_MSG_WARN(Pthread not supported. No SMP support))
676                    ;;
677            esac
678    else
679       AC_MSG_WARN(Pthread support disabled. No SMP support)
680    fi
681    
682    dnl ==========================================================================
683    dnl
684  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
685  dnl  dnl
686  dnl ==========================================================================  dnl ==========================================================================
# Line 412  Line 691 
691    
692  dnl ==========================================================================  dnl ==========================================================================
693  dnl  dnl
694    dnl Profiling stuff goes here
695    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
696    dnl  - removes incompatible options from CFLAGS
697    dnl
698    dnl ==========================================================================
699    
700    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
701    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
702    
703    if test "$enable_gnuprofile" = "yes" ; then
704       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
705    fi
706    
707    dnl ==========================================================================
708    dnl Some gcc flags can't be used for gcc >= 3.4.0
709    dnl ==========================================================================
710    
711    if test "$GCC" = "yes" ; then
712    
713            GCC_MAJOR=`$CC -dumpversion | cut -d . -f 1`
714            GCC_MINOR=`$CC -dumpversion | cut -d . -f 2`
715    
716            # GCC 4.x
717            if test "${GCC_MAJOR}" -gt 3 ; then
718                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
719                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
720                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
721                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
722                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
723            fi
724    
725            # GCC 3.4.x
726            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
727                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
728            fi
729    fi
730    
731    
732    dnl ==========================================================================
733    dnl
734  dnl Substitions  dnl Substitions
735  dnl  dnl
736  dnl ==========================================================================  dnl ==========================================================================
# Line 431  Line 750 
750  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
751  AC_SUBST(CC)  AC_SUBST(CC)
752  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
753    AC_SUBST(LDFLAGS)
754  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
755  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
 AC_SUBST(DIVX4COMPAT_SOURCES)  
756  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
757  AC_SUBST(DIVX4_ENCORE)  AC_SUBST(PPC_ALTIVEC_SOURCES)
758  AC_SUBST(DIVX4_DECORE)  AC_SUBST(LN_S)
759  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
760    AC_SUBST(AR)
761    AC_SUBST(API_MAJOR)
762    AC_SUBST(API_MINOR)
763    AC_SUBST(STATIC_LIB)
764    AC_SUBST(PRE_SHARED_LIB)
765    AC_SUBST(SO_API_MAJOR_LINK)
766    AC_SUBST(SO_LINK)
767    AC_SUBST(SHARED_LIB)
768    AC_SUBST(IMPORT_LIB)
769    AC_SUBST(ALTIVEC_CFLAGS)
770    
771  dnl ==========================================================================  dnl ==========================================================================
772  dnl  dnl
# Line 446  Line 775 
775  dnl ==========================================================================  dnl ==========================================================================
776    
777  AC_CONFIG_FILES(platform.inc)  AC_CONFIG_FILES(platform.inc)
 AC_CONFIG_FILES(libxvidcore.def)  
778    
779  AC_OUTPUT  AC_OUTPUT

Legend:
Removed from v.830  
changed lines
  Added in v.2044

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4