[svn] / branches / release-1_3-branch / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

Diff of /branches/release-1_3-branch/xvidcore/build/generic/configure.in

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

trunk/xvidcore/build/generic/configure.in revision 830, Tue Feb 11 21:56:31 2003 UTC branches/release-1_3-branch/xvidcore/build/generic/configure.in revision 2162, Tue Dec 5 16:05:53 2017 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.3.5], [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="3"
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*|*qnx*)
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"
274            ;;
275         amigaos)
276            { $as_echo "$as_me:${as_lineno-$LINENO}: result: .so .a .o" >&5
277     $as_echo ".so .a .o" >&6; }
278            STATIC_EXTENSION="a"
279            SHARED_EXTENSION="so"
280          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
281          ;;          ;;
282       *)       *)
# Line 241  Line 287 
287          ;;          ;;
288  esac  esac
289    
290    dnl ==========================================================================
291    dnl
292    dnl Determines best options for CC and LD
293    dnl  - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
294    dnl
295    dnl ==========================================================================
296    
297  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
298  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
299  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
300    ALTIVEC_CFLAGS=""
301    PRE_SHARED_LIB=""
302    SO_API_MAJOR_LINK=""
303    SO_LINK=""
304  case "$target_os" in  case "$target_os" in
305       *bsd*|linux*|irix*|solaris*)       linux*|solaris*|gnu*|*qnx*)
306          AC_MSG_RESULT([-shared -lc -lm])          AC_MSG_RESULT([ok])
307          SPECIFIC_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
308            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
309            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
310            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
311            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
312            SPECIFIC_CFLAGS="-fPIC"
313            ;;
314         *bsd*|irix*)
315            AC_MSG_RESULT([ok])
316            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
317            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
318            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
319            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
320            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
321          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
322          ;;          ;;
323       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
324          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          AC_MSG_RESULT([ok])
325            STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"
326            SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"
327          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
328          SPECIFIC_CFLAGS="-mno-cygwin"          SPECIFIC_CFLAGS="-mno-cygwin"
329          ;;          ;;
330       darwin*|raphsody*)       darwin*)
331          AC_MSG_RESULT([-dynamiclib -flat_namespace])          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
332          SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace"          SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
333          SPECIFIC_CFLAGS="-fPIC -fno-common"          if test x"$macosx_module" = x"no"; then
334               AC_MSG_RESULT([dylib options])
335               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
336               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)"
337            else
338               AC_MSG_RESULT([module options])
339               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
340               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
341               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
342            fi
343          ;;          ;;
344       beos)       beos)
345          AC_MSG_RESULT([-nostart])          AC_MSG_RESULT([ok])
346            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
347            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
348          SPECIFIC_LDFLAGS="-nostart"          SPECIFIC_LDFLAGS="-nostart"
349          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
350          ;;          ;;
351         amigaos)
352            { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
353     $as_echo "ok" >&6; }
354            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
355            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
356            SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
357            SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
358            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
359            SPECIFIC_CFLAGS="-fPIC"
360            ;;
361       *)       *)
362          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
363        STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
364            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
365          SPECIFIC_LDFLAGS=""          SPECIFIC_LDFLAGS=""
366          SPECIFIC_CFLAGS=""          SPECIFIC_CFLAGS=""
367          ;;          ;;
368  esac  esac
369    
370    if test x"$PRE_SHARED_LIB" = x; then
371      PRE_SHARED_LIB=$SHARED_LIB
372    fi
373    
374  dnl ==========================================================================  dnl ==========================================================================
375  dnl  dnl
376  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
377    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
378  dnl  dnl
379  dnl ==========================================================================  dnl ==========================================================================
380    
# Line 288  Line 388 
388  dnl IA32  dnl IA32
389  dnl  dnl
390    
391  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
392    
393     dnl     dnl
394     dnl Checking nasm existence     dnl Checking for nasm compatible programs
395     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
396    
397       found_nasm_comp_prog="no"
398       chosen_asm_prog=""
399    
400       dnl Check for yasm first
401       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
402       if test "$ac_yasm" = "yes" ; then
403        dnl        dnl
404        dnl Checking nasm patch version         dnl Checking yasm version
405        dnl        dnl
406        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
407        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`
408        AC_MSG_RESULT([$nasm_patch])         if test -z $yasm_major ; then
409              yasm_major=-1
410           fi
411           AC_MSG_RESULT([$yasm_major])
412    
413        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then         dnl Actually, yasm >= 0.7.99.2161 should be ok
414          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])         dnl But I'm too lazy to check also the patch version...
415          ARCHITECTURE="GENERIC"         if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
416             AC_MSG_WARN([yasm version is too old])
417        else        else
418             found_nasm_comp_prog="yes"
419             chosen_asm_prog="$yasm_prog"
420           fi
421       fi
422    
423       dnl Check for nasm (not buggy version)
424       if test "$found_nasm_comp_prog" = "no" ; then
425           AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
426           if test "$ac_nasm" = "yes" ; then
427           dnl           dnl
428           dnl Checking nasm format - win32 or elf             dnl Checking nasm version
429           dnl           dnl
430           AC_MSG_CHECKING([for nasm object format])             AC_MSG_CHECKING([for nasm version])
431               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
432               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
433               if test -z $nasm_minor ; then
434                  nasm_minor=-1
435               fi
436               if test -z $nasm_major ; then
437                  nasm_major=-1
438               fi
439               AC_MSG_RESULT([$nasm_major])
440    
441               dnl need nasm 2.x for SSE3/4 and X86_64
442               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
443                 AC_MSG_WARN([nasm version is too old])
444               else
445                 found_nasm_comp_prog="yes"
446                   chosen_asm_prog="$nasm_prog"
447               fi
448           fi
449       fi
450    
451       dnl
452       dnl Ok now sort what object format we must use
453       dnl
454       if test "$found_nasm_comp_prog" = "yes" ; then
455           AC_MSG_CHECKING([for asm object format])
456           case "$target_os" in           case "$target_os" in
457                *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*|gnu*|*qnx*)
458                   if test "$ARCHITECTURE" = "X86_64" ; then
459                       AC_MSG_RESULT([elf64])
460                       NASM_FORMAT="elf64"
461                   else
462                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
463                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
464                   fi
465                   MARK_FUNCS="-DMARK_FUNCS"
466                    PREFIX=""                    PREFIX=""
467                    ;;                    ;;
468                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
469                   if test "$ARCHITECTURE" = "X86_64" ; then
470                       AC_MSG_RESULT([win64])
471                       NASM_FORMAT="win64"
472                   else
473                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
474                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
475                   fi
476                   PREFIX="-DWINDOWS"
477                   if test "$GCC" = "yes" ; then
478                       echo 'int main(void) {return 0;}' > conftest.c
479                       $CC -S -o conftest conftest.c
480                       if test `$EGREP -c '_main:' conftest` -eq 0 ; then
481                           PREFIX="$PREFIX -DNO_PREFIX"
482                       fi
483                       rm -f conftest*
484                   fi
485                   MARK_FUNCS=""
486                   ;;
487               *darwin*)
488                   if test "$ARCHITECTURE" = "X86_64" ; then
489                       AC_MSG_RESULT([macho64])
490                       NASM_FORMAT="macho64"
491                   else
492                       AC_MSG_RESULT([macho32])
493                       NASM_FORMAT="macho32"
494                   fi
495                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
496                   MARK_FUNCS=""
497                    ;;                    ;;
498            esac            esac
499    
500            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"  
501            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
502            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
503           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
504           if test "$ARCHITECTURE" = "X86_64" ; then
505                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
506         fi         fi
   
507     else     else
508          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
509          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
510     fi     fi
   
511  fi  fi
512    
513  dnl  dnl
514  dnl PPC  dnl PPC
515  dnl  dnl
516    dnl With the PPC platform we do not use assembly language, we better keep with
517    dnl intrinsic altivec functions and types as they are supported by both Apple
518    dnl and GNU gcc with very slight changes to code which can be sumed up by:
519    dnl
520    dnl Apple:
521    dnl  - compile with the option -arch ppc -faltivec
522    dnl  - define vectors with parentheses vec = (0,0,0,0)
523    dnl GNU
524    dnl  - compile with -maltivec -mabi=altivec
525    dnl  - include <altivec.h> before using intrincic
526    dnl  - define vectors with vec = {0,0,0,0}
527    dnl
528    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
529    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
530    dnl   a -DHAVE_ALTIVEC_H
531    dnl * The vector definition is handled in portab.h thx to
532    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
533    dnl
534    PPC_ALTIVEC_SOURCES=""
535  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
536     AS="\$(CC)"     AS="\$(CC)"
537     AFLAGS="-c"     AFLAGS=""
538     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
539     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
540     AC_MSG_CHECKING([for Altivec support])  
541     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
542           .text  cat > conftest.c << EOF
543           vxor 0,0,0  #include <altivec.h>
544    int main() { return(0); }
545  EOF  EOF
546     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 || \
547          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
548          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
549          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
550          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
551     else     else
552          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
553            TEMP_ALTIVEC=""
554     fi     fi
555    
556       AC_MSG_CHECKING([for Altivec compiler support])
557    cat > conftest.c << EOF
558    #ifdef HAVE_ALTIVEC_H
559    #include <altivec.h>
560    #endif
561    
562    int main()
563    {
564      vector unsigned int vartest2 = (vector unsigned int)(0);
565      vector unsigned int vartest3 = (vector unsigned int)(1);
566      vartest2 = vec_add(vartest2, vartest3);
567      return(0);
568    }
569    EOF
570       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
571            AC_MSG_RESULT([yes (Apple)])
572            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
573            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
574       else
575    cat > conftest.c << EOF
576    #ifdef HAVE_ALTIVEC_H
577    #include <altivec.h>
578    #endif
579    
580    int main()
581    {
582      vector unsigned int vartest2 = (vector unsigned int){0};
583      vector unsigned int vartest3 = (vector unsigned int){1};
584      vartest2 = vec_add(vartest2, vartest3);
585      return(0);
586    }
587    EOF
588       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
589            AC_MSG_RESULT([yes (GNU)])
590            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
591            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
592            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
593       else
594            AC_MSG_RESULT([no (ppc support won't be compiled in)])
595            dnl Only C code can be compiled :-(
596            ARCHITECTURE="GENERIC"
597       fi
598       fi
599    
600     rm -f conftest.*     rm -f conftest.*
601  fi  fi
602    
# Line 374  Line 612 
612    
613     case `basename $CC` in     case `basename $CC` in
614          *ecc*)          *ecc*)
615                  DCT_IA64_SOURCES="idct_ia64_ecc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
616    
617                  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
618                  dnl fallback to "no options"                  dnl fallback to "no options"
# Line 383  Line 621 
621                  fi                  fi
622                  ;;                  ;;
623          *)          *)
624                  DCT_IA64_SOURCES="idct_ia64_gcc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
625                  ;;                  ;;
626     esac     esac
627    
# Line 398  Line 636 
636  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
637          stdio.h \          stdio.h \
638          signal.h \          signal.h \
639            stdlib.h \
640            string.h \
641            assert.h \
642            math.h \
643          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
644    
645  dnl ==========================================================================  dnl ==========================================================================
646  dnl  dnl
647    dnl Check for pthread
648    dnl
649    dnl ==========================================================================
650    
651    if test x"$pthread" = x"yes" ; then
652            case "$target_os" in
653                mingw32*)
654                    AC_CHECK_HEADER(
655                        [pthread.h],
656                        [AC_CHECK_LIB(
657                            [pthreadGC2],
658                            [pthread_create],
659                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
660                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthreadGC2"],
661                            [AC_CHECK_LIB(
662                                [pthread],
663                                [pthread_create],
664                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
665                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
666                                AC_MSG_WARN(Pthread not supported. No SMP support))])],
667                        AC_MSG_WARN(Pthread not supported. No SMP support))
668                    ;;
669                *)
670                    AC_CHECK_HEADER(
671                        [pthread.h],
672                        [AC_CHECK_LIB(
673                            [pthread],
674                            [pthread_create],
675                            [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
676                             SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
677                                [AC_CHECK_LIB(
678                                [c],
679                                [pthread_create],
680                                [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
681                                 SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS"],
682                                    AC_MSG_WARN(Pthread not supported. No SMP support))])],
683                        AC_MSG_WARN(Pthread not supported. No SMP support))
684                    ;;
685            esac
686    else
687       AC_MSG_WARN(Pthread support disabled. No SMP support)
688    fi
689    
690    dnl ==========================================================================
691    dnl
692  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
693  dnl  dnl
694  dnl ==========================================================================  dnl ==========================================================================
# Line 412  Line 699 
699    
700  dnl ==========================================================================  dnl ==========================================================================
701  dnl  dnl
702    dnl Profiling stuff goes here
703    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
704    dnl  - removes incompatible options from CFLAGS
705    dnl
706    dnl ==========================================================================
707    
708    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
709    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
710    
711    if test "$enable_gnuprofile" = "yes" ; then
712       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
713    fi
714    
715    dnl ==========================================================================
716    dnl Some gcc flags can't be used for gcc >= 3.4.0
717    dnl ==========================================================================
718    
719    if test "$GCC" = "yes" ; then
720    
721            GCC_MAJOR=`$CC -dumpversion | cut -d . -f 1`
722            GCC_MINOR=`$CC -dumpversion | cut -d . -f 2`
723    
724            # GCC 4.x
725            if test "${GCC_MAJOR}" -gt 3 ; then
726                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
727                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
728                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
729                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
730                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
731                    SPECIFIC_CFLAGS=`echo $SPECIFIC_CFLAGS | sed s,'-mno-cygwin','',g`
732            fi
733    
734            # GCC 3.4.x
735            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
736                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
737            fi
738    fi
739    
740    
741    dnl ==========================================================================
742    dnl
743  dnl Substitions  dnl Substitions
744  dnl  dnl
745  dnl ==========================================================================  dnl ==========================================================================
# Line 431  Line 759 
759  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
760  AC_SUBST(CC)  AC_SUBST(CC)
761  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
762    AC_SUBST(LDFLAGS)
763  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
764  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
 AC_SUBST(DIVX4COMPAT_SOURCES)  
765  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
766  AC_SUBST(DIVX4_ENCORE)  AC_SUBST(PPC_ALTIVEC_SOURCES)
767  AC_SUBST(DIVX4_DECORE)  AC_SUBST(LN_S)
768  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
769    AC_SUBST(AR)
770    AC_SUBST(API_MAJOR)
771    AC_SUBST(API_MINOR)
772    AC_SUBST(STATIC_LIB)
773    AC_SUBST(PRE_SHARED_LIB)
774    AC_SUBST(SO_API_MAJOR_LINK)
775    AC_SUBST(SO_LINK)
776    AC_SUBST(SHARED_LIB)
777    AC_SUBST(ALTIVEC_CFLAGS)
778    
779  dnl ==========================================================================  dnl ==========================================================================
780  dnl  dnl
# Line 446  Line 783 
783  dnl ==========================================================================  dnl ==========================================================================
784    
785  AC_CONFIG_FILES(platform.inc)  AC_CONFIG_FILES(platform.inc)
 AC_CONFIG_FILES(libxvidcore.def)  
786    
787  AC_OUTPUT  AC_OUTPUT

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

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