[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 1472, Sat Jun 12 13:02:12 2004 UTC revision 2035, Thu Sep 15 09:36:53 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"
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 -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 72  Line 74 
74                    fi],                    fi],
75                   [assembly="yes"])                   [assembly="yes"])
76    
77    dnl pthread code
78    AC_ARG_ENABLE(pthread,
79                    AC_HELP_STRING([--disable-pthread],
80                                     [Disable pthread dependent code]),
81                     [if test "$enable_pthread" = "no" ; then
82                         pthread="no"
83                      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  dnl Build as a module not a shared lib on darwin
91  AC_ARG_ENABLE(macosx_module,  AC_ARG_ENABLE(macosx_module,
92                  AC_HELP_STRING([--enable-macosx_module],                  AC_HELP_STRING([--enable-macosx_module],
# Line 126  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 ==========================================================================  dnl ==========================================================================
153  dnl  dnl
# Line 162  Line 184 
184            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
185                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
186                  ;;                  ;;
187              x86_64)
188                    AC_MSG_RESULT(x86_64)
189                    ARCHITECTURE="X86_64"
190                    ;;
191                  powerpc)                  powerpc)
192                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
193                  ARCHITECTURE="PPC"                  ARCHITECTURE="PPC"
# Line 194  Line 220 
220          BUS="64BIT"          BUS="64BIT"
221          ;;          ;;
222       *)       *)
223          AC_MSG_ERROR([XviD supports only 32/64 bit architectures])          AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
224          ;;          ;;
225  esac  esac
226    
# Line 217  Line 243 
243  STATIC_EXTENSION=""  STATIC_EXTENSION=""
244  OBJECT_EXTENSION=""  OBJECT_EXTENSION=""
245  case "$target_os" in  case "$target_os" in
246       *bsd*|linux*|beos|irix*|solaris*)       *bsd*|linux*|beos|irix*|solaris*|gnu*)
247          AC_MSG_RESULT([.so .a .o])          AC_MSG_RESULT([.so .a .o])
248          STATIC_EXTENSION="a"          STATIC_EXTENSION="a"
249          SHARED_EXTENSION="so"          SHARED_EXTENSION="so"
# Line 258  Line 284 
284  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
285  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
286  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
287    ALTIVEC_CFLAGS=""
288  PRE_SHARED_LIB=""  PRE_SHARED_LIB=""
289  case "$target_os" in  case "$target_os" in
290       *bsd*|linux*|irix*|solaris*)       linux*|solaris*|gnu*)
291            AC_MSG_RESULT([ok])
292            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
293            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
294            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
295            SPECIFIC_CFLAGS="-fPIC"
296            ;;
297         *bsd*|irix*)
298          AC_MSG_RESULT([ok])          AC_MSG_RESULT([ok])
299          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
300          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
# Line 271  Line 305 
305          AC_MSG_RESULT([ok])          AC_MSG_RESULT([ok])
306          STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"
307          SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"          SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"
308          SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
309          SPECIFIC_CFLAGS="-mno-cygwin"          SPECIFIC_CFLAGS=""
310          ;;          ;;
311       darwin*|raphsody*)       darwin*|raphsody*)
312          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
# Line 280  Line 314 
314          if test x"$macosx_module" = x"no"; then          if test x"$macosx_module" = x"no"; then
315             AC_MSG_RESULT([dylib options])             AC_MSG_RESULT([dylib options])
316             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
317             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)"
318          else          else
319             AC_MSG_RESULT([module options])             AC_MSG_RESULT([module options])
320             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
# Line 325  Line 359 
359  dnl IA32  dnl IA32
360  dnl  dnl
361    
362  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
363    
364     dnl     dnl
365     dnl Checking nasm existence     dnl Checking for nasm compatible programs
366     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
367    
368       found_nasm_comp_prog="no"
369       chosen_asm_prog=""
370    
371       dnl Check for yasm first
372       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
373       if test "$ac_yasm" = "yes" ; then
374        dnl        dnl
375        dnl Checking nasm patch version         dnl Checking yasm version
376        dnl        dnl
377        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
378        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`
379        if test -z $nasm_patch ; then         if test -z $yasm_major ; then
380          nasm_patch=-1            yasm_major=-1
381        fi        fi
382        AC_MSG_RESULT([$nasm_patch])         AC_MSG_RESULT([$yasm_major])
383    
384           dnl Actually, yasm >= 0.7.99.2161 should be ok
385           dnl But I'm too lazy to check also the patch version...
386           if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
387             AC_MSG_WARN([yasm version is too old])
388           else
389             found_nasm_comp_prog="yes"
390             chosen_asm_prog="$yasm_prog"
391           fi
392       fi
393    
394        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then     dnl Check for nasm (not buggy version)
395          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])     if test "$found_nasm_comp_prog" = "no" ; then
396          ARCHITECTURE="GENERIC"         AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
397           if test "$ac_nasm" = "yes" ; then
398               dnl
399               dnl Checking nasm version
400               dnl
401               AC_MSG_CHECKING([for nasm version])
402               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
403               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
404               if test -z $nasm_minor ; then
405                  nasm_minor=-1
406               fi
407               if test -z $nasm_major ; then
408                  nasm_major=-1
409               fi
410               AC_MSG_RESULT([$nasm_major])
411    
412               dnl need nasm 2.x for SSE3/4 and X86_64
413               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
414                 AC_MSG_WARN([nasm version is too old])
415        else        else
416                 found_nasm_comp_prog="yes"
417                   chosen_asm_prog="$nasm_prog"
418               fi
419           fi
420       fi
421    
422           dnl           dnl
423           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
424           dnl           dnl
425           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
426           AC_MSG_CHECKING([for asm object format])
427           case "$target_os" in           case "$target_os" in
428                *bsd*|linux*|beos|irix*|solaris*)             *bsd*|linux*|beos|irix*|solaris*|gnu*)
429                   if test "$ARCHITECTURE" = "X86_64" ; then
430                       AC_MSG_RESULT([elf64])
431                       NASM_FORMAT="elf64"
432                   else
433                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
434                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
435                   fi
436                   MARK_FUNCS="-DMARK_FUNCS"
437                    PREFIX=""                    PREFIX=""
438                    ;;                    ;;
439                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
440                   if test "$ARCHITECTURE" = "X86_64" ; then
441                       AC_MSG_RESULT([win64])
442                       NASM_FORMAT="win64"
443                   else
444                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
445                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
446                   fi
447                   PREFIX="-DWINDOWS"
448                   if test "$GCC" = "yes" ; then
449                       echo 'int main(void) {return 0;}' > conftest.c
450                       $CC -S -o conftest conftest.c
451                       if test `$EGREP -c '_main:' conftest` -eq 0 ; then
452                           PREFIX="$PREFIX -DNO_PREFIX"
453                       fi
454                       rm -f conftest*
455                   fi
456                   MARK_FUNCS=""
457                   ;;
458               *darwin*)
459                   if test "$ARCHITECTURE" = "X86_64" ; then
460                       AC_MSG_RESULT([macho64])
461                       NASM_FORMAT="macho64"
462                   else
463                       AC_MSG_RESULT([macho32])
464                       NASM_FORMAT="macho32"
465                   fi
466                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
467                   MARK_FUNCS=""
468                    ;;                    ;;
469            esac            esac
470    
471            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"  
472            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
473            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
474           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
475           if test "$ARCHITECTURE" = "X86_64" ; then
476                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
477         fi         fi
   
478     else     else
479          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
480          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
481     fi     fi
   
482  fi  fi
483    
484  dnl  dnl
# Line 387  Line 489 
489  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:
490  dnl  dnl
491  dnl Apple:  dnl Apple:
492  dnl  - compile with the option -faltivec  dnl  - compile with the option -arch ppc -faltivec
493  dnl  - define vectors with parentheses vec = (0,0,0,0)  dnl  - define vectors with parentheses vec = (0,0,0,0)
494  dnl GNU  dnl GNU
495  dnl  - compile with -maltivec -mabi=altivec  dnl  - compile with -maltivec -mabi=altivec
# Line 412  Line 514 
514  #include <altivec.h>  #include <altivec.h>
515  int main() { return(0); }  int main() { return(0); }
516  EOF  EOF
517     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 || \
518        $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
519          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
520          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
# Line 436  Line 538 
538    return(0);    return(0);
539  }  }
540  EOF  EOF
541     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
542          AC_MSG_RESULT([yes (Apple)])          AC_MSG_RESULT([yes (Apple)])
543          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
544          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
545     else     else
546  cat > conftest.c << EOF  cat > conftest.c << EOF
# Line 456  Line 558 
558  EOF  EOF
559     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
560          AC_MSG_RESULT([yes (GNU)])          AC_MSG_RESULT([yes (GNU)])
561          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
562          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"          PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
563            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
564     else     else
565          AC_MSG_RESULT([no (ppc support won't be compiled in)])          AC_MSG_RESULT([no (ppc support won't be compiled in)])
566          dnl Only C code can be compiled :-(          dnl Only C code can be compiled :-(
# Line 512  Line 615 
615    
616  dnl ==========================================================================  dnl ==========================================================================
617  dnl  dnl
618    dnl Check for pthread
619    dnl
620    dnl ==========================================================================
621    
622    if test x"$pthread" = x"yes" ; then
623       AC_CHECK_HEADER(
624            [pthread.h],
625            [AC_CHECK_LIB(
626                    [pthread],
627                    [pthread_create],
628                    [SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
629                     SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread"],
630                    AC_MSG_WARN(Pthread not supported. No SMP support))],
631            AC_MSG_WARN(Pthread not supported. No SMP support))
632    else
633       AC_MSG_WARN(Pthread support disabled. No SMP support)
634    fi
635    
636    dnl ==========================================================================
637    dnl
638  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
639  dnl  dnl
640  dnl ==========================================================================  dnl ==========================================================================
# Line 536  Line 659 
659  fi  fi
660    
661  dnl ==========================================================================  dnl ==========================================================================
662    dnl Some gcc flags can't be used for gcc >= 3.4.0
663    dnl ==========================================================================
664    
665    if test "$GCC" = "yes" ; then
666    
667            GCC_MAJOR=`$CC -dumpversion | cut -d . -f 1`
668            GCC_MINOR=`$CC -dumpversion | cut -d . -f 2`
669    
670            # GCC 4.x
671            if test "${GCC_MAJOR}" -gt 3 ; then
672                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
673                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
674                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
675                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
676                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
677            fi
678    
679            # GCC 3.4.x
680            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
681                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
682            fi
683    fi
684    
685    
686    dnl ==========================================================================
687  dnl  dnl
688  dnl Substitions  dnl Substitions
689  dnl  dnl
# Line 556  Line 704 
704  AC_SUBST(ASSEMBLY_SOURCES)  AC_SUBST(ASSEMBLY_SOURCES)
705  AC_SUBST(CC)  AC_SUBST(CC)
706  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
707    AC_SUBST(LDFLAGS)
708  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
709  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
710  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
711  AC_SUBST(PPC_ALTIVEC_SOURCES)  AC_SUBST(PPC_ALTIVEC_SOURCES)
712  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
713    AC_SUBST(AR)
714  AC_SUBST(API_MAJOR)  AC_SUBST(API_MAJOR)
715  AC_SUBST(API_MINOR)  AC_SUBST(API_MINOR)
716  AC_SUBST(STATIC_LIB)  AC_SUBST(STATIC_LIB)
717  AC_SUBST(PRE_SHARED_LIB)  AC_SUBST(PRE_SHARED_LIB)
718  AC_SUBST(SHARED_LIB)  AC_SUBST(SHARED_LIB)
719    AC_SUBST(ALTIVEC_CFLAGS)
720    
721  dnl ==========================================================================  dnl ==========================================================================
722  dnl  dnl

Legend:
Removed from v.1472  
changed lines
  Added in v.2035

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