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

Legend:
Removed from v.900  
changed lines
  Added in v.1412

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