stream_encoder/decoder : Comment fixes.
[flac.git] / configure.ac
index 8b6edcb..19320a4 100644 (file)
@@ -2,7 +2,7 @@
 #  Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2008,2009  Josh Coalson
 #
 #  This file is part the FLAC project.  FLAC is comprised of several
-#  components distributed under difference licenses.  The codec libraries
+#  components distributed under different licenses.  The codec libraries
 #  are distributed under Xiph.Org's BSD-like license (see the file
 #  COPYING.Xiph in this distribution).  All other programs, libraries, and
 #  plugins are distributed under the GPL (see COPYING.GPL).  The documentation
@@ -19,7 +19,7 @@
 # instead of FLAC__ since autoconf triggers off 'AC_' in strings
 
 AC_PREREQ(2.60)
-AC_INIT([flac], [1.3.0pre2], [flac-dev@xiph.org], [flac], [https://www.xiph.org/flac/])
+AC_INIT([flac], [1.3.0], [flac-dev@xiph.org], [flac], [https://www.xiph.org/flac/])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([src/flac/main.c])
 AC_CONFIG_MACRO_DIR([m4])
@@ -35,6 +35,8 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 LT_INIT([win32-dll disable-static pic-only])
 AM_PROG_AS
 AC_PROG_CXX
+XIPH_C_COMPILER_IS_CLANG
+XIPH_GCC_REALLY_IS_GCC
 AC_PROG_MAKE_SET
 
 AC_SYS_LARGEFILE
@@ -59,7 +61,9 @@ AC_C_INLINE
 AC_C_VARARRAYS
 AC_C_TYPEOF
 
-AC_CHECK_HEADERS([stdint.h inttypes.h byteswap.h sys/param.h])
+AC_CHECK_HEADERS([stdint.h inttypes.h byteswap.h sys/param.h termios.h x86intrin.h])
+
+AC_HEADER_TIOCGWINSZ
 
 XIPH_C_BSWAP32
 
@@ -79,6 +83,14 @@ AC_DEFINE_UNQUOTED(CPU_IS_LITTLE_ENDIAN, ${ac_cv_c_little_endian},
 AC_DEFINE_UNQUOTED(WORDS_BIGENDIAN, ${ac_cv_c_big_endian},
                                        [Target processor is big endian.])
 
+AC_ARG_ENABLE(asm-optimizations, AC_HELP_STRING([--disable-asm-optimizations], [Don't use any assembly optimization routines]), asm_opt=no, asm_opt=yes)
+dnl ' Terminate the damn single quote
+AM_CONDITIONAL(FLaC__NO_ASM, test "x$asm_opt" = xno)
+if test "x$asm_opt" = xno ; then
+AC_DEFINE(FLAC__NO_ASM)
+AH_TEMPLATE(FLAC__NO_ASM, [define to disable use of assembly code])
+fi
+
 # For the XMMS plugin.
 AC_CHECK_TYPES(socklen_t, [], [])
 
@@ -86,27 +98,51 @@ dnl check for getopt in standard library
 dnl AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] )
 AC_CHECK_FUNCS(getopt_long, [], [])
 
+AC_CHECK_SIZEOF(void*,1)
+
+asm_optimisation=no
 case "$host_cpu" in
+       x86_64)
+               if test $ac_cv_sizeof_voidp = 4 ; then
+                       # This must be a 32 bit user space running on 64 bit kernel so treat
+                       # this as ia32.
+                       cpu_ia32=true
+                       AC_DEFINE(FLAC__CPU_IA32)
+                       AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386])
+               else
+                       # x86_64 user space and kernel.
+                       cpu_x86_64=true
+                       AC_DEFINE(FLAC__CPU_X86_64)
+                       AH_TEMPLATE(FLAC__CPU_X86_64, [define if building for x86_64])
+                       fi
+               asm_optimisation=$asm_opt
+               ;;
        i*86)
                cpu_ia32=true
                AC_DEFINE(FLAC__CPU_IA32)
                AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386])
+               asm_optimisation=$asm_opt
                ;;
        powerpc|powerpc64)
                cpu_ppc=true
                AC_DEFINE(FLAC__CPU_PPC)
                AH_TEMPLATE(FLAC__CPU_PPC, [define if building for PowerPC])
+               asm_optimisation=$asm_opt
                ;;
        sparc)
                cpu_sparc=true
                AC_DEFINE(FLAC__CPU_SPARC)
                AH_TEMPLATE(FLAC__CPU_SPARC, [define if building for SPARC])
+               asm_optimisation=$asm_opt
                ;;
 esac
+AM_CONDITIONAL(FLAC__CPU_X86_64, test "x$cpu_x86_64" = xtrue)
 AM_CONDITIONAL(FLaC__CPU_IA32, test "x$cpu_ia32" = xtrue)
 AM_CONDITIONAL(FLaC__CPU_PPC, test "x$cpu_ppc" = xtrue)
 AM_CONDITIONAL(FLaC__CPU_SPARC, test "x$cpu_sparc" = xtrue)
 
+AC_DEFINE_UNQUOTED([FLAC__HAS_X86INTRIN],${HAVE_X86INTRIN_H}, [Set to 1 if <x86intrin.h> is available.])
+
 case "$host" in
        i386-*-openbsd3.[[0-3]]) OBJ_FORMAT=aoutb ;;
        *-*-cygwin|*mingw*) OBJ_FORMAT=win32 ;;
@@ -124,16 +160,15 @@ case "$host" in
 esac
 AM_CONDITIONAL(FLaC__CPU_PPC_SPE, test "x$abi_spe" = xtrue)
 
+os_is_windows=no
 case "$host" in
-       *-*-cygwin|*mingw*|*emx*)
-               # define this variable for enabling strict exports with libtool; for now, it's supported by Win32 and OS/2
-               LT_NO_UNDEFINED="-no-undefined"
-               ;;
-       *)
-               LT_NO_UNDEFINED=
+       *-*-cygwin|*mingw*)
+               CPPFLAGS="-D__MSVCRT_VERSION__=0x0601 $CPPFLAGS"
+               os_is_windows=yes
                ;;
 esac
-AC_SUBST(LT_NO_UNDEFINED)
+
+AM_CONDITIONAL(OS_IS_WINDOWS, test "x$os_is_windows" = xyes)
 
 case "$host" in
        *-pc-linux-gnu)
@@ -150,19 +185,11 @@ esac
 AM_CONDITIONAL(FLaC__SYS_DARWIN, test "x$sys_darwin" = xtrue)
 AM_CONDITIONAL(FLaC__SYS_LINUX, test "x$sys_linux" = xtrue)
 
-if test "x$cpu_ia32" = xtrue ; then
+if test "x$cpu_ia32" = xtrue || test "x$cpu_x86_64" = xtrue ; then
 AC_DEFINE(FLAC__ALIGN_MALLOC_DATA)
 AH_TEMPLATE(FLAC__ALIGN_MALLOC_DATA, [define to align allocated memory on 32-byte boundaries])
 fi
 
-AC_ARG_ENABLE(asm-optimizations, AC_HELP_STRING([--disable-asm-optimizations], [Don't use any assembly optimization routines]), asm_opt=no, asm_opt=yes)
-dnl ' Terminate the damn single quote
-AM_CONDITIONAL(FLaC__NO_ASM, test "x$asm_opt" = xno)
-if test "x$asm_opt" = xno ; then
-AC_DEFINE(FLAC__NO_ASM)
-AH_TEMPLATE(FLAC__NO_ASM, [define to disable use of assembly code])
-fi
-
 AC_ARG_ENABLE(debug,
 AC_HELP_STRING([--enable-debug], [Turn on debugging]),
 [case "${enableval}" in
@@ -304,9 +331,12 @@ fi
 AM_CONDITIONAL(FLaC__HAS_OGG, [test "x$have_ogg" = xyes])
 if test "x$have_ogg" = xyes ; then
        AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],1,[define if you have the ogg library])
+       OGG_PACKAGE="ogg"
 else
        AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],0)
+       have_ogg=no
 fi
+AC_SUBST(OGG_PACKAGE)
 
 dnl check for i18n(internationalization); these are from libiconv/gettext
 AM_ICONV
@@ -361,15 +391,22 @@ fi
 XIPH_GCC_VERSION
 
 if test x$ac_cv_c_compiler_gnu = xyes ; then
-       CFLAGS="$CFLAGS -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Winline -Wconversion
-       CXXFLAGS="$CXXFLAGS -Wcast-align -Wshadow -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Wsign-promo -Wundef " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Woverloaded-virtual -Wmissing-declarations
+       CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Winline -Wconversion
+       CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wcast-align -Wshadow -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Wsign-promo -Wundef " # -Wcast-qual -Wbad-function-cast -Wwrite-strings -Woverloaded-virtual -Wmissing-declarations
 
 
        if test x$enable_gcc_werror = "xyes" ; then
-               CFLAGS="$CFLAGS -Wall -Wextra -Werror "
-               CXXFLAGS="$CXXFLAGS -Wall -Wextra -Werror "
+               CFLAGS="$CFLAGS -Werror "
+               CXXFLAGS="$CXXFLAGS -Werror "
                fi
 
+       XIPH_ADD_CFLAGS([-Wdeclaration-after-statement])
+       XIPH_ADD_CFLAGS([-D_FORTIFY_SOURCE=2])
+
+       AC_LANG_PUSH([C++])
+       XIPH_ADD_CXXFLAGS([-Weffc++])
+       AC_LANG_POP([C++])
+
        if test "$GCC_MAJOR_VERSION" -ge 4 && test "$OBJ_FORMAT" = elf; then
                CPPFLAGS="$CPPFLAGS -DFLAC__USE_VISIBILITY_ATTR"
                CFLAGS="$CFLAGS -fvisibility=hidden"
@@ -379,12 +416,14 @@ if test x$ac_cv_c_compiler_gnu = xyes ; then
        if test "x$GCC_MAJOR_VERSION$GCC_MINOR_VERSION" = "x42" ; then
                XIPH_ADD_CFLAGS([-fgnu89-inline])
                fi
-       fi
 
+       if test "x$asm_optimisation" = "xyes" ; then
+               XIPH_ADD_CFLAGS([-msse2])
+               fi
+
+       fi
 
 XIPH_ADD_CFLAGS([-Wextra])
-XIPH_ADD_CFLAGS([-Wdeclaration-after-statement])
-XIPH_ADD_CFLAGS([-D_FORTIFY_SOURCE=2])
 
 if test x$enable_stack_smash_protection = "xyes" ; then
        XIPH_GCC_STACK_PROTECTOR
@@ -417,13 +456,6 @@ AC_CONFIG_FILES([ \
        src/plugin_common/Makefile \
        src/plugin_xmms/Makefile \
        src/share/Makefile \
-       src/share/getopt/Makefile \
-       src/share/grabbag/Makefile \
-       src/share/replaygain_analysis/Makefile \
-       src/share/replaygain_synthesis/Makefile \
-       src/share/replaygain_synthesis/include/Makefile \
-       src/share/replaygain_synthesis/include/private/Makefile \
-       src/share/utf8/Makefile \
        src/test_grabbag/Makefile \
        src/test_grabbag/cuesheet/Makefile \
        src/test_grabbag/picture/Makefile \
@@ -456,10 +488,9 @@ AC_CONFIG_FILES([ \
        doc/Makefile \
        doc/html/Makefile \
        doc/html/images/Makefile \
-       doc/html/images/hw/Makefile \
-       doc/html/ru/Makefile \
        m4/Makefile \
        man/Makefile \
+       test/common.sh \
        test/Makefile \
        test/cuesheets/Makefile \
        test/flac-to-flac-metadata-test-files/Makefile \
@@ -492,4 +523,7 @@ AC_MSG_RESULT([
 if test x$ac_cv_c_compiler_gnu = xyes ; then
        echo "    GCC version : ......................... ${GCC_VERSION}"
 fi
+       echo "    Compiler is Clang : ................... ${xiph_cv_c_compiler_clang}"
+       echo "    Asm optimizations : ................... ${asm_optimisation}"
+       echo "    Ogg/FLAC support : .................... ${have_ogg}"
 echo