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

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

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