[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 1382, Mon Mar 22 22:36:25 2004 UTC branches/release-1_3-branch/xvidcore/build/generic/configure.in revision 1961, Thu Mar 10 15:27:57 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 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], [1.0.0 rc3], [xvid-devel@xvid.org])  AC_PREREQ([2.50])
10    
11    AC_INIT([Xvid], [1.3.1], [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="3"
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 124  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 160  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                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
175                  ;;                  ;;
176                  ia64)                  ia64)
177                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 194  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 258  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 280  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 325  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 nasm existence     dnl Checking for nasm compatible programs
347     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
348    
349       found_nasm_comp_prog="no"
350       chosen_asm_prog=""
351    
352       dnl Check for yasm first
353       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
354       if test "$ac_yasm" = "yes" ; then
355        dnl        dnl
356        dnl Checking nasm patch version         dnl Checking yasm version
357        dnl        dnl
358        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
359        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`
360        if test -z $nasm_patch ; then         if test -z $yasm_major ; then
361          nasm_patch=-1            yasm_major=-1
362        fi        fi
363        AC_MSG_RESULT([$nasm_patch])         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"
371             chosen_asm_prog="$yasm_prog"
372           fi
373       fi
374    
375        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then     dnl Check for nasm (not buggy version)
376          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])     if test "$found_nasm_comp_prog" = "no" ; then
377          ARCHITECTURE="GENERIC"         AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
378           if test "$ac_nasm" = "yes" ; then
379               dnl
380               dnl Checking nasm version
381               dnl
382               AC_MSG_CHECKING([for nasm version])
383               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
384               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
385               if test -z $nasm_minor ; then
386                  nasm_minor=-1
387               fi
388               if test -z $nasm_major ; then
389                  nasm_major=-1
390               fi
391               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"
398                   chosen_asm_prog="$nasm_prog"
399               fi
400           fi
401       fi
402    
403           dnl           dnl
404           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
405           dnl           dnl
406           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
407           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"
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=""
441                    ;;                    ;;
442            esac            esac
443    
444            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"  
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         fi
   
451     else     else
452          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
453          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
454     fi     fi
   
455  fi  fi
456    
457  dnl  dnl
458  dnl PPC  dnl PPC
459  dnl  dnl
460    dnl With the PPC platform we do not use assembly language, we better keep with
461    dnl intrinsic altivec functions and types as they are supported by both Apple
462    dnl and GNU gcc with very slight changes to code which can be sumed up by:
463    dnl
464    dnl Apple:
465    dnl  - compile with the option -arch ppc -faltivec
466    dnl  - define vectors with parentheses vec = (0,0,0,0)
467    dnl GNU
468    dnl  - compile with -maltivec -mabi=altivec
469    dnl  - include <altivec.h> before using intrincic
470    dnl  - define vectors with vec = {0,0,0,0}
471    dnl
472    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
473    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
474    dnl   a -DHAVE_ALTIVEC_H
475    dnl * The vector definition is handled in portab.h thx to
476    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
477    dnl
478    PPC_ALTIVEC_SOURCES=""
479  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
480     AS="\$(CC)"     AS="\$(CC)"
481     AFLAGS="-c"     AFLAGS=""
482     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
483     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
484     AC_MSG_CHECKING([for Altivec support])  
485     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
486           .text  cat > conftest.c << EOF
487           vxor 0,0,0  #include <altivec.h>
488    int main() { return(0); }
489  EOF  EOF
490     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 || \
491          $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 -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
494          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
495     else     else
496          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
497            TEMP_ALTIVEC=""
498       fi
499    
500       AC_MSG_CHECKING([for Altivec compiler support])
501    cat > conftest.c << EOF
502    #ifdef HAVE_ALTIVEC_H
503    #include <altivec.h>
504    #endif
505    
506    int main()
507    {
508      vector unsigned int vartest2 = (vector unsigned int)(0);
509      vector unsigned int vartest3 = (vector unsigned int)(1);
510      vartest2 = vec_add(vartest2, vartest3);
511      return(0);
512    }
513    EOF
514       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
515            AC_MSG_RESULT([yes (Apple)])
516            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
517            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
518       else
519    cat > conftest.c << EOF
520    #ifdef HAVE_ALTIVEC_H
521    #include <altivec.h>
522    #endif
523    
524    int main()
525    {
526      vector unsigned int vartest2 = (vector unsigned int){0};
527      vector unsigned int vartest3 = (vector unsigned int){1};
528      vartest2 = vec_add(vartest2, vartest3);
529      return(0);
530    }
531    EOF
532       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
533            AC_MSG_RESULT([yes (GNU)])
534            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
535            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
536            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
537       else
538            AC_MSG_RESULT([no (ppc support won't be compiled in)])
539            dnl Only C code can be compiled :-(
540            ARCHITECTURE="GENERIC"
541       fi
542     fi     fi
543    
544     rm -f conftest.*     rm -f conftest.*
545  fi  fi
546    
# Line 439  Line 580 
580  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
581          stdio.h \          stdio.h \
582          signal.h \          signal.h \
583            stdlib.h \
584            string.h \
585            assert.h \
586            math.h \
587          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
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 467  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 490  Line 693 
693  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
694  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
695  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
696    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.1382  
changed lines
  Added in v.1961

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