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

Legend:
Removed from v.827  
changed lines
  Added in v.2066

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