[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 1942, Thu Jan 6 14:12:29 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.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="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 160  Line 164 
164            AC_MSG_RESULT(ia32)            AC_MSG_RESULT(ia32)
165                  ARCHITECTURE="IA32"                  ARCHITECTURE="IA32"
166                  ;;                  ;;
167              x86_64)
168                    AC_MSG_RESULT(x86_64)
169                    ARCHITECTURE="X86_64"
170                    ;;
171                  powerpc)                  powerpc)
172                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
173                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
174                  ;;                  ;;
175                  ia64)                  ia64)
176                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 194  Line 200 
200          BUS="64BIT"          BUS="64BIT"
201          ;;          ;;
202       *)       *)
203          AC_MSG_ERROR([XviD supports only 32/64 bit architectures])          AC_MSG_ERROR([Xvid supports only 32/64 bit architectures])
204          ;;          ;;
205  esac  esac
206    
# Line 258  Line 264 
264  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
265  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
266  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
267    ALTIVEC_CFLAGS=""
268  PRE_SHARED_LIB=""  PRE_SHARED_LIB=""
269  case "$target_os" in  case "$target_os" in
270       *bsd*|linux*|irix*|solaris*)       linux*|solaris*)
271            AC_MSG_RESULT([ok])
272            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
273            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
274            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -Wl,--version-script=libxvidcore.ld -lc -lm"
275            SPECIFIC_CFLAGS="-fPIC"
276            ;;
277         *bsd*|irix*)
278          AC_MSG_RESULT([ok])          AC_MSG_RESULT([ok])
279          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
280          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"          SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
# Line 280  Line 294 
294          if test x"$macosx_module" = x"no"; then          if test x"$macosx_module" = x"no"; then
295             AC_MSG_RESULT([dylib options])             AC_MSG_RESULT([dylib options])
296             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"             SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
297             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)"
298          else          else
299             AC_MSG_RESULT([module options])             AC_MSG_RESULT([module options])
300             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"             PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
# Line 325  Line 339 
339  dnl IA32  dnl IA32
340  dnl  dnl
341    
342  if test "$ARCHITECTURE" = "IA32" ; then  if test "$ARCHITECTURE" = "IA32" -o "$ARCHITECTURE" = "X86_64" ; then
343    
344     dnl     dnl
345     dnl Checking nasm existence     dnl Checking for nasm compatible programs
346     dnl     dnl
    AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])  
    if test "$ac_nasm" = "yes" ; then  
347    
348       found_nasm_comp_prog="no"
349       chosen_asm_prog=""
350    
351       dnl Check for yasm first
352       AC_CHECK_PROG([ac_yasm], [$yasm_prog], [yes], [no], , [yes])
353       if test "$ac_yasm" = "yes" ; then
354        dnl        dnl
355        dnl Checking nasm patch version         dnl Checking yasm version
356        dnl        dnl
357        AC_MSG_CHECKING([for nasm patch version])         AC_MSG_CHECKING([for yasm version])
358        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`
359        if test -z $nasm_patch ; then         if test -z $yasm_major ; then
360          nasm_patch=-1            yasm_major=-1
361        fi        fi
362        AC_MSG_RESULT([$nasm_patch])         AC_MSG_RESULT([$yasm_major])
363    
364           dnl Actually, yasm >= 0.7.99.2161 should be ok
365           dnl But I'm too lazy to check also the patch version...
366           if test "$yasm_major" -lt "$minimum_yasm_major_version" ; then
367             AC_MSG_WARN([yasm version is too old])
368           else
369             found_nasm_comp_prog="yes"
370             chosen_asm_prog="$yasm_prog"
371           fi
372       fi
373    
374        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then     dnl Check for nasm (not buggy version)
375          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])     if test "$found_nasm_comp_prog" = "no" ; then
376          ARCHITECTURE="GENERIC"         AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
377           if test "$ac_nasm" = "yes" ; then
378               dnl
379               dnl Checking nasm version
380               dnl
381               AC_MSG_CHECKING([for nasm version])
382               nasm_minor=`$nasm_prog -v | cut -d '.' -f 2 | cut -d ' ' -f 1`
383               nasm_major=`$nasm_prog -v | cut -d '.' -f 1 | cut -d ' ' -f 3`
384               if test -z $nasm_minor ; then
385                  nasm_minor=-1
386               fi
387               if test -z $nasm_major ; then
388                  nasm_major=-1
389               fi
390               AC_MSG_RESULT([$nasm_major])
391    
392               dnl need nasm 2.x for SSE3/4 and X86_64
393               if test "$nasm_major" -lt "$minimum_nasm_major_version" ; then
394                 AC_MSG_WARN([nasm version is too old])
395        else        else
396                 found_nasm_comp_prog="yes"
397                   chosen_asm_prog="$nasm_prog"
398               fi
399           fi
400       fi
401    
402           dnl           dnl
403           dnl Checking nasm format - win32 or elf     dnl Ok now sort what object format we must use
404           dnl           dnl
405           AC_MSG_CHECKING([for nasm object format])     if test "$found_nasm_comp_prog" = "yes" ; then
406           AC_MSG_CHECKING([for asm object format])
407           case "$target_os" in           case "$target_os" in
408                *bsd*|linux*|beos|irix*|solaris*)                *bsd*|linux*|beos|irix*|solaris*)
409                   if test "$ARCHITECTURE" = "X86_64" ; then
410                       AC_MSG_RESULT([elf64])
411                       NASM_FORMAT="elf64"
412                   else
413                    AC_MSG_RESULT([elf])                    AC_MSG_RESULT([elf])
414                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
415                   fi
416                   MARK_FUNCS="-DMARK_FUNCS"
417                    PREFIX=""                    PREFIX=""
418                    ;;                    ;;
419                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
420                   if test "$ARCHITECTURE" = "X86_64" ; then
421                       AC_MSG_RESULT([win64])
422                       NASM_FORMAT="win64"
423                   else
424                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
425                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
426                   fi
427                   PREFIX="-DWINDOWS"
428                   MARK_FUNCS=""
429                   ;;
430               *darwin*)
431                   if test "$ARCHITECTURE" = "X86_64" ; then
432                       AC_MSG_RESULT([macho64])
433                       NASM_FORMAT="macho64"
434                   else
435                       AC_MSG_RESULT([macho32])
436                       NASM_FORMAT="macho32"
437                   fi
438                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
439                   MARK_FUNCS=""
440                    ;;                    ;;
441            esac            esac
442    
443            AS=nasm         AS="$chosen_asm_prog"
           AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"  
444            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
445            ASSEMBLY_SOURCES="SRC_IA32"         AFLAGS="-I\$(<D)/ -I../../src/ -f $NASM_FORMAT $PREFIX $MARK_FUNCS"
446           ASSEMBLY_SOURCES="SRC_${ARCHITECTURE}"
447           if test "$ARCHITECTURE" = "X86_64" ; then
448                   AFLAGS=${AFLAGS}" -DARCH_IS_X86_64"
449         fi         fi
   
450     else     else
451          AC_MSG_WARN([nasm not found - Compiling generic sources only])         AC_MSG_WARN([no correct assembler was found - Compiling generic sources only])
452          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
453     fi     fi
   
454  fi  fi
455    
456  dnl  dnl
457  dnl PPC  dnl PPC
458  dnl  dnl
459    dnl With the PPC platform we do not use assembly language, we better keep with
460    dnl intrinsic altivec functions and types as they are supported by both Apple
461    dnl and GNU gcc with very slight changes to code which can be sumed up by:
462    dnl
463    dnl Apple:
464    dnl  - compile with the option -arch ppc -faltivec
465    dnl  - define vectors with parentheses vec = (0,0,0,0)
466    dnl GNU
467    dnl  - compile with -maltivec -mabi=altivec
468    dnl  - include <altivec.h> before using intrincic
469    dnl  - define vectors with vec = {0,0,0,0}
470    dnl
471    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
472    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
473    dnl   a -DHAVE_ALTIVEC_H
474    dnl * The vector definition is handled in portab.h thx to
475    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
476    dnl
477    PPC_ALTIVEC_SOURCES=""
478  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
479     AS="\$(CC)"     AS="\$(CC)"
480     AFLAGS="-c"     AFLAGS=""
481     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
482     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
483     AC_MSG_CHECKING([for Altivec support])  
484     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
485           .text  cat > conftest.c << EOF
486           vxor 0,0,0  #include <altivec.h>
487    int main() { return(0); }
488  EOF  EOF
489     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 || \
490          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
491          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
492          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
493          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
494     else     else
495          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
496            TEMP_ALTIVEC=""
497       fi
498    
499       AC_MSG_CHECKING([for Altivec compiler support])
500    cat > conftest.c << EOF
501    #ifdef HAVE_ALTIVEC_H
502    #include <altivec.h>
503    #endif
504    
505    int main()
506    {
507      vector unsigned int vartest2 = (vector unsigned int)(0);
508      vector unsigned int vartest3 = (vector unsigned int)(1);
509      vartest2 = vec_add(vartest2, vartest3);
510      return(0);
511    }
512    EOF
513       if $CC $TEMP_ALTIVEC -arch ppc -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
514            AC_MSG_RESULT([yes (Apple)])
515            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -arch ppc -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
516            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
517       else
518    cat > conftest.c << EOF
519    #ifdef HAVE_ALTIVEC_H
520    #include <altivec.h>
521    #endif
522    
523    int main()
524    {
525      vector unsigned int vartest2 = (vector unsigned int){0};
526      vector unsigned int vartest3 = (vector unsigned int){1};
527      vartest2 = vec_add(vartest2, vartest3);
528      return(0);
529    }
530    EOF
531       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
532            AC_MSG_RESULT([yes (GNU)])
533            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
534            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
535            ALTIVEC_CFLAGS="-maltivec -mabi=altivec"
536       else
537            AC_MSG_RESULT([no (ppc support won't be compiled in)])
538            dnl Only C code can be compiled :-(
539            ARCHITECTURE="GENERIC"
540       fi
541     fi     fi
542    
543     rm -f conftest.*     rm -f conftest.*
544  fi  fi
545    
# Line 439  Line 579 
579  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
580          stdio.h \          stdio.h \
581          signal.h \          signal.h \
582            stdlib.h \
583            string.h \
584            assert.h \
585            math.h \
586          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
587    
588  dnl ==========================================================================  dnl ==========================================================================
589  dnl  dnl
590    dnl Check for pthread
591    dnl
592    dnl ==========================================================================
593    
594    AC_CHECK_HEADER(
595            pthread.h,
596            AC_CHECK_LIB(
597                    pthread,
598                    pthread_create,
599                    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD"
600                    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread",
601                    AC_MSG_WARN(Pthread not supported. No SMP support)),
602            AC_MSG_WARN(Pthread not supported. No SMP support))
603    
604    dnl ==========================================================================
605    dnl
606  dnl Now we can set CFLAGS if needed  dnl Now we can set CFLAGS if needed
607  dnl  dnl
608  dnl ==========================================================================  dnl ==========================================================================
# Line 467  Line 627 
627  fi  fi
628    
629  dnl ==========================================================================  dnl ==========================================================================
630    dnl Some gcc flags can't be used for gcc >= 3.4.0
631    dnl ==========================================================================
632    
633    if test "$GCC" = "yes" ; then
634    cat << EOF > test.c
635    #include <stdio.h>
636    int main(int argc, char **argv)
637    {
638            if (*argv[[1]] == 'M') {
639                    printf("%d", __GNUC__);
640            }
641            if (*argv[[1]] == 'm') {
642                    printf("%d", __GNUC_MINOR__);
643            }
644            return 0;
645    }
646    EOF
647            $CC -o gcc-ver test.c
648    
649            GCC_MAJOR=`./gcc-ver M`
650            GCC_MINOR=`./gcc-ver m`
651    
652            rm -f test.c
653            rm -f gcc-ver
654    
655            # GCC 4.x
656            if test "${GCC_MAJOR}" -gt 3 ; then
657                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
658                    CFLAGS=`echo $CFLAGS | sed s,'-freduce-all-givs','',g`
659                    CFLAGS=`echo $CFLAGS | sed s,'-fmove-all-movables','',g`
660                    CFLAGS=`echo $CFLAGS | sed s,'-fnew-ra','',g`
661                    CFLAGS=`echo $CFLAGS | sed s,'-fwritable-strings','',g`
662            fi
663    
664            # GCC 3.4.x
665            if test "${GCC_MAJOR}" -eq 3 && test "${GCC_MINOR}" -gt 3 ; then
666                    CFLAGS=`echo $CFLAGS | sed s,"-mcpu","-mtune",g`
667            fi
668    fi
669    
670    
671    dnl ==========================================================================
672  dnl  dnl
673  dnl Substitions  dnl Substitions
674  dnl  dnl
# Line 490  Line 692 
692  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
693  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
694  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
695    AC_SUBST(PPC_ALTIVEC_SOURCES)
696  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
697  AC_SUBST(API_MAJOR)  AC_SUBST(API_MAJOR)
698  AC_SUBST(API_MINOR)  AC_SUBST(API_MINOR)
699  AC_SUBST(STATIC_LIB)  AC_SUBST(STATIC_LIB)
700  AC_SUBST(PRE_SHARED_LIB)  AC_SUBST(PRE_SHARED_LIB)
701  AC_SUBST(SHARED_LIB)  AC_SUBST(SHARED_LIB)
702    AC_SUBST(ALTIVEC_CFLAGS)
703    
704  dnl ==========================================================================  dnl ==========================================================================
705  dnl  dnl

Legend:
Removed from v.1382  
changed lines
  Added in v.1942

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