--- trunk/xvidcore/build/generic/configure.in 2003/02/15 15:22:19 851 +++ branches/dev-api-4/xvidcore/build/generic/configure.in 2003/09/11 14:12:16 1147 @@ -9,6 +9,10 @@ AC_INIT([XviD], [1.0.0 cvs-snapshot], [xvid-devel@xvid.org]) AC_CONFIG_SRCDIR(configure.in) +dnl Do not forget to increase that when needed. +API_MAJOR="4" +API_MINOR="0" + dnl NASM version requirement minimum_nasm_patch_version=34 nasm_prog="nasm" @@ -27,9 +31,6 @@ dnl ========================================================================== FEATURES="" -DIVX4COMPAT_SOURCES="" -DIVX4_ENCORE="" -DIVX4_DECORE="" dnl BIGLUT aka old VLC code AC_ARG_ENABLE(oldvlc, @@ -55,6 +56,15 @@ FEATURES="$FEATURES -D_PROFILING_" fi]) +dnl GNU Profiling options +AC_ARG_ENABLE(gnuprofile, + AC_HELP_STRING([--enable-gnuprofile], + [Enable profiling informations for gprof]), + [if test "$enable_gnuprofile" = "yes" ; then + GNU_PROF_CFLAGS="-pg -fprofile-arcs -ftest-coverage" + GNU_PROF_LDFLAGS="-pg" + fi]) + dnl Assembly code AC_ARG_ENABLE(assembly, AC_HELP_STRING([--disable-assembly], @@ -68,17 +78,16 @@ fi], [assembly="yes"]) -dnl Internal Debug -AC_ARG_ENABLE(divx4compat, - AC_HELP_STRING([--enable-divx4compat], - [Enable DivX4 compatibility API]), - [if test "$enable_divx4compat" = "yes" ; then - DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT" - DIVX4_ENCORE="encore;" - DIVX4_DECORE="decore;" +dnl Build as a module not a shared lib on darwin +AC_ARG_ENABLE(macosx_module, + AC_HELP_STRING([--enable-macosx_module], + [Build as a module on MacOS X]), + [if test "$enable_macosx_module" = "yes" ; then + macosx_module="yes" + else + macosx_module="no" fi]) - dnl ========================================================================== dnl Default install prefix and checks build type dnl ========================================================================== @@ -222,15 +231,20 @@ OBJECT_EXTENSION="o" ;; [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks) - AC_MSG_RESULT([.dll .lib .obj]) - STATIC_EXTENSION="lib" + AC_MSG_RESULT([.dll .a .obj]) + STATIC_EXTENSION="a" SHARED_EXTENSION="dll" OBJECT_EXTENSION="obj" ;; darwin*|raphsody*) - AC_MSG_RESULT([.dynlib .a .o]) + if test x"$macosx_module" = x"yes"; then + AC_MSG_RESULT([.so .a .o]) + SHARED_EXTENSION="so" + else + AC_MSG_RESULT([.dynlib .a .o]) + SHARED_EXTENSION="dylib" + fi STATIC_EXTENSION="a" - SHARED_EXTENSION="dylib" OBJECT_EXTENSION="o" ;; *) @@ -241,32 +255,56 @@ ;; esac +dnl ========================================================================== +dnl +dnl Determines best options for CC and LD +dnl - STATIC_LIB, SHARED_LIB, SPECIFIC_CFLAGS, SPECIFIC_LDLAGS +dnl +dnl ========================================================================== + AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS) SPECIFIC_LDFLAGS="" SPECIFIC_CFLAGS="" case "$target_os" in *bsd*|linux*|irix*|solaris*) - AC_MSG_RESULT([-shared -lc -lm]) - SPECIFIC_LDFLAGS="-shared -lc -lm" + AC_MSG_RESULT([ok]) + STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" + SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR).\$(API_MINOR)" + SPECIFIC_LDFLAGS="-Wl,-soname,libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -shared -lc -lm" SPECIFIC_CFLAGS="-fPIC" ;; [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks) - AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a]) - SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def" + AC_MSG_RESULT([ok]) + STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" + SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" + SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def" SPECIFIC_CFLAGS="-mno-cygwin" ;; darwin*|raphsody*) - AC_MSG_RESULT([-dynamiclib -flat_namespace]) - SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace" - SPECIFIC_CFLAGS="-fPIC -fno-common" + AC_MSG_RESULT([ok]) + STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" + SPECIFIC_CFLAGS="-fPIC -fno-common -no-cpp-precomp" + if test x"$macosx_module" = x"no"; then + AC_MSG_RESULT([dylib options]) + SHARED_LIB="libxvidcore.\$(API_MAJOR).\$(SHARED_EXTENSION)" + SPECIFIC_LDFLAGS="-dynamiclib -flat_namespace -compatibility_version \$(API_MAJOR) -current_version \$(API_MINOR) -install_name \$(libdir)/\$(SHARED_LIB)" + else + AC_MSG_RESULT(["module options]) + SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)-temp.o" + SPECIFIC_LDFLAGS="-r -keep_private_externs -nostdlib && \$(CC) \$(LDFLAGS) \$(SHARED_LIB) -o libxvidcore.\$(SHARED_EXTENSION).\$(API_MAJOR) -bundle -flat_namespace -undefined suppress" + fi ;; beos) - AC_MSG_RESULT([-nostart]) + AC_MSG_RESULT([ok]) + STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" + SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="-nostart" SPECIFIC_CFLAGS="-fPIC" ;; *) - AC_MSG_RESULT([Unknown OS - -shared -lc -lm]) + AC_MSG_RESULT([Unknown Platform (Using default -shared -lc -lm)]) + STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" + SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" SPECIFIC_LDFLAGS="" SPECIFIC_CFLAGS="" ;; @@ -274,7 +312,8 @@ dnl ========================================================================== dnl -dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES +dnl Assembler stuff +dnl - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES dnl dnl ========================================================================== @@ -374,7 +413,7 @@ case `basename $CC` in *ecc*) - DCT_IA64_SOURCES="idct_ia64_ecc.s" + DCT_IA64_SOURCES="SRC_IA64_IDCT_ECC" dnl If the compiler is ecc, then i don't know its options dnl fallback to "no options" @@ -383,7 +422,7 @@ fi ;; *) - DCT_IA64_SOURCES="idct_ia64_gcc.s" + DCT_IA64_SOURCES="SRC_IA64_IDCT_GCC" ;; esac @@ -412,6 +451,21 @@ dnl ========================================================================== dnl +dnl Profiling stuff goes here +dnl - adds options to SPECIFIC_CFLAGS, SPECIFIC_LDLAGS +dnl - removes incompatible options from CFLAGS +dnl +dnl ========================================================================== + +SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS $GNU_PROF_LDFLAGS" +SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS $GNU_PROF_CFLAGS" + +if test "$enable_gnuprofile" = "yes" ; then + CFLAGS=`echo $CFLAGS | sed s/'-fomit-frame-pointer'/''/` +fi + +dnl ========================================================================== +dnl dnl Substitions dnl dnl ========================================================================== @@ -433,11 +487,12 @@ AC_SUBST(CFLAGS) AC_SUBST(SPECIFIC_LDFLAGS) AC_SUBST(SPECIFIC_CFLAGS) -AC_SUBST(DIVX4COMPAT_SOURCES) AC_SUBST(DCT_IA64_SOURCES) -AC_SUBST(DIVX4_ENCORE) -AC_SUBST(DIVX4_DECORE) AC_SUBST(RANLIB) +AC_SUBST(API_MAJOR) +AC_SUBST(API_MINOR) +AC_SUBST(STATIC_LIB) +AC_SUBST(SHARED_LIB) dnl ========================================================================== dnl @@ -446,6 +501,5 @@ dnl ========================================================================== AC_CONFIG_FILES(platform.inc) -AC_CONFIG_FILES(libxvidcore.def) AC_OUTPUT