[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 845, Thu Feb 13 17:31:33 2003 UTC revision 1451, Fri May 21 14:40:15 2004 UTC
# Line 2  Line 2 
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], [xvid-devel@xvid.org])  AC_PREREQ([2.50])
10    
11    AC_INIT([XviD], [1.0.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.
15    API_MAJOR="4"
16    API_MINOR="0"
17    
18  dnl NASM version requirement  dnl NASM version requirement
19  minimum_nasm_patch_version=34  minimum_nasm_patch_version=34
20  nasm_prog="nasm"  nasm_prog="nasm"
# Line 16  Line 22 
22  dnl Default CFLAGS -- Big impact on overall speed  dnl Default CFLAGS -- Big impact on overall speed
23  our_cflags_defaults="-Wall"  our_cflags_defaults="-Wall"
24  our_cflags_defaults="$our_cflags_defaults -O2"  our_cflags_defaults="$our_cflags_defaults -O2"
25  our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"  our_cflags_defaults="$our_cflags_defaults -fstrength-reduce"
26    our_cflags_defaults="$our_cflags_defaults -finline-functions"
27    our_cflags_defaults="$our_cflags_defaults -freduce-all-givs"
28  our_cflags_defaults="$our_cflags_defaults -ffast-math"  our_cflags_defaults="$our_cflags_defaults -ffast-math"
29  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"  
30    
31  dnl ==========================================================================  dnl ==========================================================================
32  dnl Features - configure options  dnl Features - configure options
33  dnl ==========================================================================  dnl ==========================================================================
34    
35  FEATURES=""  FEATURES=""
 DIVX4COMPAT_SOURCES=""  
 DIVX4_ENCORE=""  
 DIVX4_DECORE=""  
   
 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])  
36    
37  dnl Internal Debug  dnl Internal Debug
38  AC_ARG_ENABLE(idebug,  AC_ARG_ENABLE(idebug,
# Line 55  Line 50 
50                       FEATURES="$FEATURES -D_PROFILING_"                       FEATURES="$FEATURES -D_PROFILING_"
51                    fi])                    fi])
52    
53    dnl GNU Profiling options
54    AC_ARG_ENABLE(gnuprofile,
55                    AC_HELP_STRING([--enable-gnuprofile],
56                                     [Enable profiling informations for gprof]),
57                     [if test "$enable_gnuprofile" = "yes" ; then
58                         GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage"
59                         GNU_PROF_LDFLAGS="-pg"
60                      fi])
61    
62  dnl Assembly code  dnl Assembly code
63  AC_ARG_ENABLE(assembly,  AC_ARG_ENABLE(assembly,
64                  AC_HELP_STRING([--disable-assembly],                  AC_HELP_STRING([--disable-assembly],
# Line 68  Line 72 
72                    fi],                    fi],
73                   [assembly="yes"])                   [assembly="yes"])
74    
75  dnl Internal Debug  dnl Build as a module not a shared lib on darwin
76  AC_ARG_ENABLE(divx4compat,  AC_ARG_ENABLE(macosx_module,
77                  AC_HELP_STRING([--enable-divx4compat],                  AC_HELP_STRING([--enable-macosx_module],
78                                   [Enable DivX4 compatibility API]),                                   [Build as a module on MacOS X]),
79                   [if test "$enable_divx4compat" = "yes" ; then                   [if test "$enable_macosx_module" = "yes" ; then
80                       DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"                       macosx_module="yes"
81                       DIVX4_ENCORE="encore;"                    else
82                       DIVX4_DECORE="decore;"                       macosx_module="no"
83                    fi])                    fi],
84                      [macosx_module="no"])
85    
86  dnl ==========================================================================  dnl ==========================================================================
87  dnl Default install prefix and checks build type  dnl Default install prefix and checks build type
# Line 160  Line 164 
164                  ;;                  ;;
165                  powerpc)                  powerpc)
166                  AC_MSG_RESULT(PowerPC)                  AC_MSG_RESULT(PowerPC)
167                  dnl ATM the ppc port is out of date                  ARCHITECTURE="PPC"
                 dnl ARCHITECTURE="PPC"  
                 ARCHITECTURE="GENERIC"  
168                  ;;                  ;;
169                  ia64)                  ia64)
170                  AC_MSG_RESULT(ia64)                  AC_MSG_RESULT(ia64)
# Line 221  Line 223 
223          SHARED_EXTENSION="so"          SHARED_EXTENSION="so"
224          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
225          ;;          ;;
226       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
227          AC_MSG_RESULT([.dll .lib .obj])          AC_MSG_RESULT([.dll .a .obj])
228          STATIC_EXTENSION="lib"          STATIC_EXTENSION="a"
229          SHARED_EXTENSION="dll"          SHARED_EXTENSION="dll"
230          OBJECT_EXTENSION="obj"          OBJECT_EXTENSION="obj"
231          ;;          ;;
232       darwin*|raphsody*)       darwin*|raphsody*)
233            if test x"$macosx_module" = x"yes"; then
234               AC_MSG_RESULT([.so .a .o])
235               SHARED_EXTENSION="so"
236            else
237          AC_MSG_RESULT([.dynlib .a .o])          AC_MSG_RESULT([.dynlib .a .o])
         STATIC_EXTENSION="a"  
238          SHARED_EXTENSION="dylib"          SHARED_EXTENSION="dylib"
239            fi
240            STATIC_EXTENSION="a"
241          OBJECT_EXTENSION="o"          OBJECT_EXTENSION="o"
242          ;;          ;;
243       *)       *)
# Line 241  Line 248 
248          ;;          ;;
249  esac  esac
250    
251    dnl ==========================================================================
252    dnl
253    dnl Determines best options for CC and LD
254    dnl  - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
255    dnl
256    dnl ==========================================================================
257    
258  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)  AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
259  SPECIFIC_LDFLAGS=""  SPECIFIC_LDFLAGS=""
260  SPECIFIC_CFLAGS=""  SPECIFIC_CFLAGS=""
261    PRE_SHARED_LIB=""
262  case "$target_os" in  case "$target_os" in
263       *bsd*|linux*|irix*|solaris*)       *bsd*|linux*|irix*|solaris*)
264          AC_MSG_RESULT([-shared -lc -lm])          AC_MSG_RESULT([ok])
265          SPECIFIC_LDFLAGS="-shared -lc -lm"          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
266            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)"
267            SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm"
268          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
269          ;;          ;;
270       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)       [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
271          AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])          AC_MSG_RESULT([ok])
272          SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"          STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)"
273            SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)"
274            SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
275          SPECIFIC_CFLAGS="-mno-cygwin"          SPECIFIC_CFLAGS="-mno-cygwin"
276          ;;          ;;
277       darwin*|raphsody*)       darwin*|raphsody*)
278          AC_MSG_RESULT([-dynamiclib -flat_namespace])          STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
279          SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace"          SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp"
280          SPECIFIC_CFLAGS="-fPIC -fno-common"          if test x"$macosx_module" = x"no"; then
281               AC_MSG_RESULT([dylib options])
282               SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)"
283               SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MAJOR).\$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)"
284            else
285               AC_MSG_RESULT([module options])
286               PRE_SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o"
287               SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR)"
288               SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(PRE_SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress"
289            fi
290          ;;          ;;
291       beos)       beos)
292          AC_MSG_RESULT([-nostart])          AC_MSG_RESULT([ok])
293            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
294            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
295          SPECIFIC_LDFLAGS="-nostart"          SPECIFIC_LDFLAGS="-nostart"
296          SPECIFIC_CFLAGS="-fPIC"          SPECIFIC_CFLAGS="-fPIC"
297          ;;          ;;
298       *)       *)
299          AC_MSG_RESULT([Unknown OS - -shared -lc -lm])          AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)])
300            STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)"
301            SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)"
302          SPECIFIC_LDFLAGS=""          SPECIFIC_LDFLAGS=""
303          SPECIFIC_CFLAGS=""          SPECIFIC_CFLAGS=""
304          ;;          ;;
305  esac  esac
306    
307    if test x"$PRE_SHARED_LIB" = x; then
308      PRE_SHARED_LIB=$SHARED_LIB
309    fi
310    
311  dnl ==========================================================================  dnl ==========================================================================
312  dnl  dnl
313  dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES  dnl Assembler stuff
314    dnl  - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
315  dnl  dnl
316  dnl ==========================================================================  dnl ==========================================================================
317    
# Line 301  Line 338 
338        dnl        dnl
339        AC_MSG_CHECKING([for nasm patch version])        AC_MSG_CHECKING([for nasm patch version])
340        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`        nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
341          if test -z $nasm_patch ; then
342            nasm_patch=-1
343          fi
344        AC_MSG_RESULT([$nasm_patch])        AC_MSG_RESULT([$nasm_patch])
345    
346    
347        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then        if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then
348          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])          AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])
349          ARCHITECTURE="GENERIC"          ARCHITECTURE="GENERIC"
# Line 318  Line 359 
359                    NASM_FORMAT="elf"                    NASM_FORMAT="elf"
360                    PREFIX=""                    PREFIX=""
361                    ;;                    ;;
362                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)                [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*)
363                    AC_MSG_RESULT([win32])                    AC_MSG_RESULT([win32])
364                    NASM_FORMAT="win32"                    NASM_FORMAT="win32"
365                    PREFIX="-DPREFIX"                    PREFIX="-DPREFIX"
# Line 326  Line 367 
367            esac            esac
368    
369            AS=nasm            AS=nasm
370            AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"            AFLAGS="-I\$(<D)/ -f $NASM_FORMAT $PREFIX"
371            ASSEMBLY_EXTENSION="asm"            ASSEMBLY_EXTENSION="asm"
372            ASSEMBLY_SOURCES="SRC_IA32"            ASSEMBLY_SOURCES="SRC_IA32"
373         fi         fi
# Line 341  Line 382 
382  dnl  dnl
383  dnl PPC  dnl PPC
384  dnl  dnl
385    dnl With the PPC platform we do not use assembly language, we better keep with
386    dnl intrinsic altivec functions and types as they are supported by both Apple
387    dnl and GNU gcc with very slight changes to code which can be sumed up by:
388    dnl
389    dnl Apple:
390    dnl  - compile with the option -faltivec
391    dnl  - define vectors with parentheses vec = (0,0,0,0)
392    dnl GNU
393    dnl  - compile with -maltivec -mabi=altivec
394    dnl  - include <altivec.h> before using intrincic
395    dnl  - define vectors with vec = {0,0,0,0}
396    dnl
397    dnl * The compile time option will be "injected" into SPECIFIC_CFLAGS variable
398    dnl * The need for altivec.h will also be injected into SPECIFIC_CFLAGS through
399    dnl   a -DHAVE_ALTIVEC_H
400    dnl * The vector definition is handled in portab.h thx to
401    dnl   HAVE_PARENTHESES/BRACES_ALTIVEC_DECL
402    dnl
403    PPC_ALTIVEC_SOURCES=""
404  if test "$ARCHITECTURE" = "PPC" ; then  if test "$ARCHITECTURE" = "PPC" ; then
405     AS="\$(CC)"     AS="\$(CC)"
406     AFLAGS="-c"     AFLAGS=""
407     ASSEMBLY_EXTENSION="s"     ASSEMBLY_EXTENSION=".s"
408     ASSEMBLY_SOURCES="SRC_PPC"     ASSEMBLY_SOURCES=""
409     AC_MSG_CHECKING([for Altivec support])  
410     cat > conftest.S << EOF     AC_MSG_CHECKING([for altivec.h])
411           .text  cat > conftest.c << EOF
412           vxor 0,0,0  #include <altivec.h>
413    int main() { return(0); }
414  EOF  EOF
415     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then     if $CC -faltivec -c conftest.c 2>/dev/null 1>/dev/null || \
416          $CC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
417          AC_MSG_RESULT(yes)          AC_MSG_RESULT(yes)
418          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DARCH_IS_PPC_ALTIVEC"          SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_ALTIVEC_H"
419          ASSEMBLY_SOURCES="SRC_ALTIVEC"          TEMP_ALTIVEC="-DHAVE_ALTIVEC_H"
420     else     else
421          AC_MSG_RESULT(no)          AC_MSG_RESULT(no)
422            TEMP_ALTIVEC=""
423     fi     fi
424    
425       AC_MSG_CHECKING([for Altivec compiler support])
426    cat > conftest.c << EOF
427    #ifdef HAVE_ALTIVEC_H
428    #include <altivec.h>
429    #endif
430    
431    int main()
432    {
433      vector unsigned int vartest2 = (vector unsigned int)(0);
434      vector unsigned int vartest3 = (vector unsigned int)(1);
435      vartest2 = vec_add(vartest2, vartest3);
436      return(0);
437    }
438    EOF
439       if $CC $TEMP_ALTIVEC -faltivec -c conftest.c 2>/dev/null 1>/dev/null ; then
440            AC_MSG_RESULT([yes (Apple)])
441            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -faltivec -DHAVE_ALTIVEC_PARENTHESES_DECL $TEMP_ALTIVEC"
442            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
443       else
444    cat > conftest.c << EOF
445    #ifdef HAVE_ALTIVEC_H
446    #include <altivec.h>
447    #endif
448    
449    int main()
450    {
451      vector unsigned int vartest2 = (vector unsigned int){0};
452      vector unsigned int vartest3 = (vector unsigned int){1};
453      vartest2 = vec_add(vartest2, vartest3);
454      return(0);
455    }
456    EOF
457       if $CC $TEMP_ALTIVEC -maltivec -mabi=altivec -c conftest.c 2>/dev/null 1>/dev/null ; then
458            AC_MSG_RESULT([yes (GNU)])
459            SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_BRACES_DECL $TEMP_ALTIVEC"
460            PPC_ALTIVEC_SOURCES="SRC_PPC_ALTIVEC"
461       else
462            AC_MSG_RESULT([no (ppc support won't be compiled in)])
463            dnl Only C code can be compiled :-(
464            ARCHITECTURE="GENERIC"
465       fi
466       fi
467    
468     rm -f conftest.*     rm -f conftest.*
469  fi  fi
470    
# Line 374  Line 480 
480    
481     case `basename $CC` in     case `basename $CC` in
482          *ecc*)          *ecc*)
483                  DCT_IA64_SOURCES="idct_ia64_ecc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC"
484    
485                  dnl If the compiler is ecc, then i don't know its options                  dnl If the compiler is ecc, then i don't know its options
486                  dnl fallback to "no options"                  dnl fallback to "no options"
# Line 383  Line 489 
489                  fi                  fi
490                  ;;                  ;;
491          *)          *)
492                  DCT_IA64_SOURCES="idct_ia64_gcc.s"                  DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC"
493                  ;;                  ;;
494     esac     esac
495    
# Line 398  Line 504 
504  AC_CHECK_HEADERS(  AC_CHECK_HEADERS(
505          stdio.h \          stdio.h \
506          signal.h \          signal.h \
507            stdlib.h \
508            string.h \
509            assert.h \
510            math.h \
511          , , AC_MSG_ERROR(Missing header file))          , , AC_MSG_ERROR(Missing header file))
512    
513  dnl ==========================================================================  dnl ==========================================================================
# Line 412  Line 522 
522    
523  dnl ==========================================================================  dnl ==========================================================================
524  dnl  dnl
525    dnl Profiling stuff goes here
526    dnl  - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS
527    dnl  - removes incompatible options from CFLAGS
528    dnl
529    dnl ==========================================================================
530    
531    SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS"
532    SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS"
533    
534    if test "$enable_gnuprofile" = "yes" ; then
535       CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/`
536    fi
537    
538    dnl ==========================================================================
539    dnl
540  dnl Substitions  dnl Substitions
541  dnl  dnl
542  dnl ==========================================================================  dnl ==========================================================================
# Line 433  Line 558 
558  AC_SUBST(CFLAGS)  AC_SUBST(CFLAGS)
559  AC_SUBST(SPECIFIC_LDFLAGS)  AC_SUBST(SPECIFIC_LDFLAGS)
560  AC_SUBST(SPECIFIC_CFLAGS)  AC_SUBST(SPECIFIC_CFLAGS)
 AC_SUBST(DIVX4COMPAT_SOURCES)  
561  AC_SUBST(DCT_IA64_SOURCES)  AC_SUBST(DCT_IA64_SOURCES)
562  AC_SUBST(DIVX4_ENCORE)  AC_SUBST(PPC_ALTIVEC_SOURCES)
 AC_SUBST(DIVX4_DECORE)  
563  AC_SUBST(RANLIB)  AC_SUBST(RANLIB)
564    AC_SUBST(API_MAJOR)
565    AC_SUBST(API_MINOR)
566    AC_SUBST(STATIC_LIB)
567    AC_SUBST(PRE_SHARED_LIB)
568    AC_SUBST(SHARED_LIB)
569    
570  dnl ==========================================================================  dnl ==========================================================================
571  dnl  dnl
# Line 446  Line 574 
574  dnl ==========================================================================  dnl ==========================================================================
575    
576  AC_CONFIG_FILES(platform.inc)  AC_CONFIG_FILES(platform.inc)
 AC_CONFIG_FILES(libxvidcore.def)  
577    
578  AC_OUTPUT  AC_OUTPUT

Legend:
Removed from v.845  
changed lines
  Added in v.1451

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