[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 1535, Sun Aug 22 11:46:10 2004 UTC revision 1944, Tue Jan 11 11:39:13 2011 UTC
# Line 1  Line 1 
1  dnl ==========================================================================  dnl ==========================================================================
2  dnl  dnl
3  dnl Autoconf script for XviD  dnl Autoconf script for Xvid
4  dnl  dnl
5  dnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>  dnl Copyright(C) 2003-2004 Edouard Gomez <ed.gomez@free.fr>
6  dnl  dnl
# Line 8  Line 8 
8    
9  AC_PREREQ([2.50])  AC_PREREQ([2.50])
10    
11  AC_INIT([XviD], [1.0.1], [xvid-devel@xvid.org])  AC_INIT([Xvid], [1.4.0], [xvid-devel@xvid.org])
12  AC_CONFIG_SRCDIR(configure.in)  AC_CONFIG_SRCDIR(configure.in)
13    
14  dnl Do not forget to increase that when needed.  dnl Do not forget to increase that when needed.
15  API_MAJOR="4"  API_MAJOR="4"
16  API_MINOR="0"  API_MINOR="4"
17    
18  dnl NASM version requirement  dnl NASM/YASM version requirement
19  minimum_nasm_patch_version=34  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"  yasm_prog="yasm"
24    
# Line 25  Line 27 
27  our_cflags_defaults="$our_cflags_defaults -O2"  our_cflags_defaults="$our_cflags_defaults -O2"
28  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
29  our_cflags_defaults="$our_cflags_defaults -finline-functions"  our_cflags_defaults="$our_cflags_defaults -finline-functions"
 our_cflags_defaults="$our_cflags_defaults -freduce-all-givs"  
30  our_cflags_defaults="$our_cflags_defaults -ffast-math"  our_cflags_defaults="$our_cflags_defaults -ffast-math"
31  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
32    
# Line 127  Line 128 
128  dnl ==========================================================================  dnl ==========================================================================
129    
130  AC_PROG_RANLIB  AC_PROG_RANLIB
131    AC_CHECK_TOOL([AR], [ar], [ar-not-found])
132    
133  dnl ==========================================================================  dnl ==========================================================================
134  dnl  dnl
# Line 163  Line 165 
165            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
166                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
167                  ;;                  ;;
168              x86_64)
169                    AC_MSG_RESULT(x86_64)
170                    ARCHITECTURE="X86_64"
171                    ;;
172                  powerpc)                  powerpc)
173                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
174                  ARCHITECTURE="PPC"                  ARCHITECTURE="PPC"
# Line 195  Line 201 
201          BUS="64BIT"          BUS="64BIT"
202          ;;          ;;
203       *)       *)
204          AC_MSG_ERROR([XviD supports only 32/64 bit architectures])          AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
205          ;;          ;;
206  esac  esac
207    
# Line 259  Line 265 
265  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
266  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
267  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
268    ALTIVEC_CFLAGS=""
269  PRE_SHARED_LIB=""  PRE_SHARED_LIB=""
270  case "$target_os" in  case "$target_os" in
271       *bsd*|linux*|irix*|solaris*)       linux*|solaris*)
272            AC_MSG_RESULT([ok])
273            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
274            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
275            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
276            SPECIFIC_CFLAGS="-fPIC"
277            ;;
278         *bsd*|irix*)
279          AC_MSG_RESULT([ok])          AC_MSG_RESULT([ok])
280          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
281          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
# Line 281  Line 295 
295          if test x"$macosx_module" = x"no"; then          if test x"$macosx_module" = x"no"; then
296             AC_MSG_RESULT([dylib options])             AC_MSG_RESULT([dylib options])
297             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
298             SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"             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)"
299          else          else
300             AC_MSG_RESULT([module options])             AC_MSG_RESULT([module options])
301             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
# Line 326  Line 340 
340  dnl IA32  dnl IA32
341  dnl  dnl
342    
343  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
344    
345     dnl     dnl
346     dnl Checking for nasm compatible programs     dnl Checking for nasm compatible programs
    dnl yasm is preferred over nasm, because... i can use it  
    dnl to profile assembly code ;-)  
347     dnl     dnl
348    
349     found_nasm_comp_prog="no"     found_nasm_comp_prog="no"
# Line 340  Line 352 
352     dnl Check for yasm first     dnl Check for yasm first
353     AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])     AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
354     if test "$ac_yasm" = "yes" ; then     if test "$ac_yasm" = "yes" ; then
355           dnl
356           dnl Checking yasm version
357           dnl
358           AC_MSG_CHECKING([for yasm version])
359           yasm_major=`$yasm_prog --version | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 2`
360           if test -z $yasm_major ; then
361              yasm_major=-1
362           fi
363           AC_MSG_RESULT([$yasm_major])
364    
365           dnl Actually, yasm >= 0.7.99.2161 should be ok
366           dnl But I'm too lazy to check also the patch version...
367           if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
368             AC_MSG_WARN([yasm version is too old])
369           else
370       found_nasm_comp_prog="yes"       found_nasm_comp_prog="yes"
371       chosen_asm_prog="$yasm_prog"       chosen_asm_prog="$yasm_prog"
372     fi     fi
373       fi
374    
375     dnl if yasm hasn't been found, then check for nasm (not buggy version)     dnl Check for nasm (not buggy version)
376     if test "$found_nasm_comp_prog" = "no" ; then     if test "$found_nasm_comp_prog" = "no" ; then
377         AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])         AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
378         if test "$ac_nasm" = "yes" ; then         if test "$ac_nasm" = "yes" ; then
379             dnl             dnl
380             dnl Checking nasm patch version             dnl Checking nasm version
381             dnl             dnl
382             AC_MSG_CHECKING([for nasm patch version])             AC_MSG_CHECKING([for nasm version])
383             nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1`             nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
384             if test -z $nasm_patch ; then             nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
385                nasm_patch=-1             if test -z $nasm_minor ; then
386             fi                nasm_minor=-1
387             AC_MSG_RESULT([$nasm_patch])             fi
388               if test -z $nasm_major ; then
389                  nasm_major=-1
390             if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then             fi
391                 AC_MSG_WARN([nasm patch version is too old])             AC_MSG_RESULT([$nasm_major])
392    
393               dnl need nasm 2.x for SSE3/4 and X86_64
394               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
395                 AC_MSG_WARN([nasm version is too old])
396             else             else
397                 found_nasm_comp_prog="yes"                 found_nasm_comp_prog="yes"
398                         chosen_asm_prog="$nasm_prog"                         chosen_asm_prog="$nasm_prog"
# Line 375  Line 407 
407         AC_MSG_CHECKING([for asm object format])         AC_MSG_CHECKING([for asm object format])
408         case "$target_os" in         case "$target_os" in
409             *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*)
410                   if test "$ARCHITECTURE" = "X86_64" ; then
411                       AC_MSG_RESULT([elf64])
412                       NASM_FORMAT="elf64"
413                   else
414                 AC_MSG_RESULT([elf])                 AC_MSG_RESULT([elf])
415                 NASM_FORMAT="elf"                 NASM_FORMAT="elf"
416                   fi
417                 MARK_FUNCS="-DMARK_FUNCS"                 MARK_FUNCS="-DMARK_FUNCS"
418                     PREFIX=""                     PREFIX=""
419                 ;;                 ;;
420             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)             [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
421                   if test "$ARCHITECTURE" = "X86_64" ; then
422                       AC_MSG_RESULT([win64])
423                       NASM_FORMAT="win64"
424                   else
425                 AC_MSG_RESULT([win32])                 AC_MSG_RESULT([win32])
426                 NASM_FORMAT="win32"                 NASM_FORMAT="win32"
427                   fi
428                   PREFIX="-DWINDOWS"
429                   MARK_FUNCS=""
430                   ;;
431               *darwin*)
432                   if test "$ARCHITECTURE" = "X86_64" ; then
433                       AC_MSG_RESULT([macho64])
434                       NASM_FORMAT="macho64"
435                   else
436                       AC_MSG_RESULT([macho32])
437                       NASM_FORMAT="macho32"
438                   fi
439                 PREFIX="-DPREFIX"                 PREFIX="-DPREFIX"
440                 MARK_FUNCS=""                 MARK_FUNCS=""
441                 ;;                 ;;
442         esac         esac
443    
444         AS="$chosen_asm_prog"         AS="$chosen_asm_prog"
        AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"  
445         ASSEMBLY_EXTENSION="asm"         ASSEMBLY_EXTENSION="asm"
446         ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
447           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
448           if test "$ARCHITECTURE" = "X86_64" ; then
449                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
450           fi
451     else     else
452         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
453         ARCHITECTURE="GENERIC"         ARCHITECTURE="GENERIC"
# Line 406  Line 462 
462  dnl and GNU gcc with very slight changes to code which can be sumed up by:  dnl and GNU gcc with very slight changes to code which can be sumed up by:
463  dnl  dnl
464  dnl Apple:  dnl Apple:
465  dnl  - compile with the option -faltivec  dnl  - compile with the option -arch ppc -faltivec
466  dnl  - define vectors with parentheses vec = (0,0,0,0)  dnl  - define vectors with parentheses vec = (0,0,0,0)
467  dnl GNU  dnl GNU
468  dnl  - compile with -maltivec -mabi=altivec  dnl  - compile with -maltivec -mabi=altivec
# Line 431  Line 487 
487  #include <altivec.h>  #include <altivec.h>
488  int main() { return(0); }  int main() { return(0); }
489  EOF  EOF
490     if $CC -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \     if $CC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
491        $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then        $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
492          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
493          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
# Line 455  Line 511 
511    return(0);    return(0);
512  }  }
513  EOF  EOF
514     if $CC $TEMP_ALTIVEC -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then     if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
515          AC_MSG_RESULT([yes (Apple)])          AC_MSG_RESULT([yes (Apple)])
516          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
517          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
518     else     else
519  cat > conftest.c << EOF  cat > conftest.c << EOF
# Line 475  Line 531 
531  EOF  EOF
532     if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then     if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
533          AC_MSG_RESULT([yes (GNU)])          AC_MSG_RESULT([yes (GNU)])
534          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
535          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
536            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
537     else     else
538          AC_MSG_RESULT([no (ppc support won't be compiled in)])          AC_MSG_RESULT([no (ppc support won't be compiled in)])
539          dnl Only C code can be compiled :-(          dnl Only C code can be compiled :-(
# Line 531  Line 588 
588    
589  dnl ==========================================================================  dnl ==========================================================================
590  dnl  dnl
591    dnl Check for pthread
592    dnl
593    dnl ==========================================================================
594    
595    AC_CHECK_HEADER(
596            pthread.h,
597            AC_CHECK_LIB(
598                    pthread,
599                    pthread_create,
600                    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
601                    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread",
602                    AC_MSG_WARN(Pthread not supported. No SMP support)),
603            AC_MSG_WARN(Pthread not supported. No SMP support))
604    
605    dnl ==========================================================================
606    dnl
607  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
608  dnl  dnl
609  dnl ==========================================================================  dnl ==========================================================================
# Line 555  Line 628 
628  fi  fi
629    
630  dnl ==========================================================================  dnl ==========================================================================
631    dnl Some gcc flags can't be used for gcc >= 3.4.0
632    dnl ==========================================================================
633    
634    if test "$GCC" = "yes" ; then
635    cat << EOF > test.c
636    #include <stdio.h>
637    int main(int argc, char **argv)
638    {
639            if (*argv[[1]] == 'M') {
640                    printf("%d", __GNUC__);
641            }
642            if (*argv[[1]] == 'm') {
643                    printf("%d", __GNUC_MINOR__);
644            }
645            return 0;
646    }
647    EOF
648            $CC -o gcc-ver test.c
649    
650            GCC_MAJOR=`./gcc-ver M`
651            GCC_MINOR=`./gcc-ver m`
652    
653            rm -f test.c
654            rm -f gcc-ver
655    
656            # GCC 4.x
657            if test "${GCC_MAJOR}" -gt 3 ; then
658                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
659                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
660                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
661                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
662                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
663            fi
664    
665            # GCC 3.4.x
666            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
667                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
668            fi
669    fi
670    
671    
672    dnl ==========================================================================
673  dnl  dnl
674  dnl Substitions  dnl Substitions
675  dnl  dnl
# Line 580  Line 695 
695  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
696  AC_SUBST(PPC_ALTIVEC_SOURCES)  AC_SUBST(PPC_ALTIVEC_SOURCES)
697  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
698    AC_SUBST(AR)
699  AC_SUBST(API_MAJOR)  AC_SUBST(API_MAJOR)
700  AC_SUBST(API_MINOR)  AC_SUBST(API_MINOR)
701  AC_SUBST(STATIC_LIB)  AC_SUBST(STATIC_LIB)
702  AC_SUBST(PRE_SHARED_LIB)  AC_SUBST(PRE_SHARED_LIB)
703  AC_SUBST(SHARED_LIB)  AC_SUBST(SHARED_LIB)
704    AC_SUBST(ALTIVEC_CFLAGS)
705    
706  dnl ==========================================================================  dnl ==========================================================================
707  dnl  dnl

Legend:
Removed from v.1535  
changed lines
  Added in v.1944

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