[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 824, Sun Feb 9 19:32:52 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 (wip)], [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 -fPIC"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
29  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  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=""  
   
 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 54  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 67  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                    fi])                    else
84                         if test "$enable_pthread" = "yes" ; then
85                            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 99  Line 121 
121  AC_MSG_CHECKING(whether to use default CFLAGS)  AC_MSG_CHECKING(whether to use default CFLAGS)
122  if test  x"$CFLAGS" = x"" ; then  if test  x"$CFLAGS" = x"" ; then
123     force_default_cc_options="yes"     force_default_cc_options="yes"
    CFLAGS="$our_cflags_defaults"  
124     AC_MSG_RESULT([yes])     AC_MSG_RESULT([yes])
125  else  else
126     force_default_cc_options="no"     force_default_cc_options="no"
# Line 116  Line 137 
137  AC_PROG_INSTALL  AC_PROG_INSTALL
138    
139  dnl ==========================================================================  dnl ==========================================================================
140    dnl Check for the ranlib program to generate static library index
141    dnl ==========================================================================
142    
143    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 ==========================================================================
159  dnl  dnl
160  dnl This part looks for:  dnl This part looks for:
161  dnl  dnl
# Line 150  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                  ARCHITECTURE="PPC"                  ARCHITECTURE="PPC"
# Line 182  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 205  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 231  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  OS_LDFLAGS=""  SPECIFIC_LDFLAGS=""
299    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          OS_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
308          ;;          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
309       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)          SO_API_MAJOR_LINK="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
310          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          SO_LINK="libxvidcore.\$(SHARED_EXTENSION)"
311          OS_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
312          CFLAGS="$CFLAGS -mno-cygwin"          SPECIFIC_CFLAGS="-fPIC"
313          ;;          ;;
314       darwin*|raphsody*)       *bsd*|irix*)
315          AC_MSG_RESULT([-dynamiclib])          AC_MSG_RESULT([ok])
316          OS_LDFLAGS="-dynamiclib"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
317          CFLAGS="$CFLAGS -fno-common"          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"
322            ;;
323         [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
324            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"
328            SPECIFIC_CFLAGS="-mno-cygwin"
329            ;;
330         darwin*)
331            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
332            SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
333            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          OS_LDFLAGS="-nostart"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
347            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
348            SPECIFIC_LDFLAGS="-nostart"
349            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          OS_LDFLAGS=""      STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
364            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
365            SPECIFIC_LDFLAGS=""
366            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 274  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
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
404           dnl Checking yasm version
405           dnl
406           AC_MSG_CHECKING([for yasm version])
407           yasm_major=`$yasm_prog --version | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 2`
408           if test -z $yasm_major ; then
409              yasm_major=-1
410           fi
411           AC_MSG_RESULT([$yasm_major])
412    
413           dnl Actually, yasm >= 0.7.99.2161 should be ok
414           dnl But I'm too lazy to check also the patch version...
415           if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
416             AC_MSG_WARN([yasm version is too old])
417           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])     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
426     if test "$ac_nasm" = "yes" ; then     if test "$ac_nasm" = "yes" ; then
   
427        dnl        dnl
428        dnl Checking nasm patch version             dnl Checking nasm version
429        dnl        dnl
430        AC_MSG_CHECKING([for nasm patch version])             AC_MSG_CHECKING([for nasm version])
431        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`             nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
432        AC_MSG_RESULT([$nasm_patch])             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        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then             dnl need nasm 2.x for SSE3/4 and X86_64
442          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])             if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
443          ARCHITECTURE="GENERIC"               AC_MSG_WARN([nasm version is too old])
444        else        else
445                 found_nasm_comp_prog="yes"
446                   chosen_asm_prog="$nasm_prog"
447               fi
448           fi
449       fi
450    
451           dnl           dnl
452           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
453           dnl           dnl
454           AC_MSG_CHECKING([for nasm object format])     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          CFLAGS="$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 357  Line 609 
609     AFLAGS="-c"     AFLAGS="-c"
610     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION="s"
611     ASSEMBLY_SOURCES="SRC_IA64"     ASSEMBLY_SOURCES="SRC_IA64"
612    
613       case `basename $CC` in
614            *ecc*)
615                    DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
616    
617                    dnl If the compiler is ecc, then i don't know its options
618                    dnl fallback to "no options"
619                    if test "$force_default_cc_options" = "yes" ; then
620                       our_cflags_defaults=""
621                    fi
622                    ;;
623            *)
624                    DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
625                    ;;
626       esac
627    
628  fi  fi
629    
630  dnl ==========================================================================  dnl ==========================================================================
# Line 368  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
693    dnl
694    dnl ==========================================================================
695    
696    if test "$force_default_cc_options" = "yes" ; then
697       CFLAGS="$our_cflags_defaults"
698    fi
699    
700    dnl ==========================================================================
701    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 391  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(OS_LDFLAGS)  AC_SUBST(LDFLAGS)
763  AC_SUBST(DIVX4COMPAT_SOURCES)  AC_SUBST(SPECIFIC_LDFLAGS)
764    AC_SUBST(SPECIFIC_CFLAGS)
765    AC_SUBST(DCT_IA64_SOURCES)
766    AC_SUBST(PPC_ALTIVEC_SOURCES)
767    AC_SUBST(LN_S)
768    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

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

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