configure: replace XIPH_C_FIND_ENDIAN by AC_C_BIGENDIAN
[platform/upstream/flac.git] / configure.ac
index 9daa52c..f206b32 100644 (file)
 # NOTE that for many of the AM_CONDITIONALs we use the prefix FLaC__
 # instead of FLAC__ since autoconf triggers off 'AC_' in strings
 
-AC_INIT(src/flac/main.c)
-AM_INIT_AUTOMAKE(flac, 1.2.1)
+AC_PREREQ(2.60)
+AC_INIT([flac], [1.2.1])
+AC_CONFIG_SRCDIR([src/flac/main.c])
+AC_CONFIG_MACRO_DIR([m4])
+AM_INIT_AUTOMAKE([foreign -Wall tar-pax no-dist-gzip dist-xz subdir-objects])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-# Don't automagically regenerate autoconf/automake generated files unless
-# explicitly requested.  Eases autobuilding -mdz
-AM_MAINTAINER_MODE
-
-# Enable the generation of shared libraries under Win32
-AC_LIBTOOL_WIN32_DLL
-
-# We need two libtools, one that builds both shared and static, and
-# one that builds only static.  This is because the resulting libtool
-# does not allow us to choose which to build at runtime.
-AM_PROG_LIBTOOL
-sed -e 's/^build_old_libs=yes/build_old_libs=no/' libtool > libtool-disable-static
-chmod +x libtool-disable-static
-
-AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
+user_cflags=$CFLAGS
 
+#Prefer whatever the current ISO standard is.
+AC_PROG_CC_STDC
+AC_USE_SYSTEM_EXTENSIONS
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+LT_INIT([win32-dll disable-static pic-only])
 AM_PROG_AS
 AC_PROG_CXX
 AC_PROG_MAKE_SET
@@ -46,7 +40,7 @@ AC_SYS_LARGEFILE
 AC_FUNC_FSEEKO
 
 AC_CHECK_SIZEOF(void*,0)
-
+AC_SEARCH_LIBS([lround],[m], [AC_DEFINE(HAVE_LROUND,1,lround support)])
 #@@@ new name is AC_CONFIG_HEADERS
 AM_CONFIG_HEADER(config.h)
 
@@ -57,8 +51,13 @@ if test $ac_cv_c_vararrays = yes; then
        AC_DEFINE([HAVE_CXX_VARARRAYS], 1, [Define to 1 if C++ supports variable-length arrays.])
 fi
 AC_LANG_POP(C++)
+
 # c flavor
 AC_HEADER_STDC
+AM_PROG_CC_C_O
+AC_C_INLINE
+AC_C_VARARRAYS
+AC_C_TYPEOF
 
 AC_CHECK_HEADERS(stdint.h)
 AC_SUBST(HAVE_STDINT_H)
@@ -67,11 +66,27 @@ AC_SUBST(HAVE_INTTYPES_H)
 AC_CHECK_HEADERS(byteswap.h)
 AC_SUBST(HAVE_BYTESWAP_H)
 
-AC_C_VARARRAYS
+AC_CHECK_HEADERS([sys/param.h])
 
-AC_C_BIGENDIAN
-AC_C_INLINE
+XIPH_C_BSWAP32
 
+ac_cv_c_big_endian=0
+ac_cv_c_little_endian=0
+AC_C_BIGENDIAN([ac_cv_c_big_endian=1], [ac_cv_c_little_endian=1], [
+       AC_MSG_WARN([[*****************************************************************]])
+       AC_MSG_WARN([[*** Not able to determine endian-ness of target processor.       ]])
+       AC_MSG_WARN([[*** The constants CPU_IS_BIG_ENDIAN and CPU_IS_LITTLE_ENDIAN in  ]])
+       AC_MSG_WARN([[*** config.h may need to be hand editied.                        ]])
+       AC_MSG_WARN([[*****************************************************************]])
+])
+AC_DEFINE_UNQUOTED(CPU_IS_BIG_ENDIAN, ${ac_cv_c_big_endian},
+                                       [Target processor is big endian.])
+AC_DEFINE_UNQUOTED(CPU_IS_LITTLE_ENDIAN, ${ac_cv_c_little_endian},
+                                       [Target processor is little endian.])
+AC_DEFINE_UNQUOTED(WORDS_BIGENDIAN, ${ac_cv_c_big_endian},
+                                       [Target processor is big endian.])
+
+# For the XMMS plugin.
 AC_CHECK_TYPES(socklen_t, [], [])
 
 dnl check for getopt in standard library
@@ -103,24 +118,29 @@ case "$host" in
        i386-*-openbsd3.[[0-3]]) OBJ_FORMAT=aoutb ;;
        *-*-cygwin|*mingw*) OBJ_FORMAT=win32 ;;
        *-*-darwin*) OBJ_FORMAT=macho ;;
+       *emx*) OBJ_FORMAT=aout ;;
        *) OBJ_FORMAT=elf ;;
 esac
 AC_SUBST(OBJ_FORMAT)
+case "$host" in
+       *-gnuspe)
+               abi_spe=true
+               AC_DEFINE(FLAC__CPU_PPC_SPE)
+               AH_TEMPLATE(FLAC__CPU_PPC_SPE, [define if building for PowerPC with SPE ABI])
+               ;;
+esac
+AM_CONDITIONAL(FLaC__CPU_PPC_SPE, test "x$abi_spe" = xtrue)
 
 case "$host" in
-       *-*-cygwin|*mingw*)
-               # define this variable for enabling strict exports with libtool; for now, it's only supported by Win32
+       *-*-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"
-               # -lwsock32 only needed because of ntohl() usage, can get rid of after that's gone:
-               MINGW_WINSOCK_LIBS=-lwsock32
                ;;
        *)
                LT_NO_UNDEFINED=
-               MINGW_WINSOCK_LIBS=
                ;;
 esac
 AC_SUBST(LT_NO_UNDEFINED)
-AC_SUBST(MINGW_WINSOCK_LIBS)
 
 case "$host" in
        *-pc-linux-gnu)
@@ -287,8 +307,9 @@ fi
 
 AM_CONDITIONAL(FLaC__HAS_OGG, [test "x$have_ogg" = xyes])
 if test "x$have_ogg" = xyes ; then
-AC_DEFINE(FLAC__HAS_OGG)
-AH_TEMPLATE(FLAC__HAS_OGG, [define if you have the ogg library])
+       AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],1,[define if you have the ogg library])
+else
+       AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],0)
 fi
 
 dnl check for i18n(internationalization); these are from libiconv/gettext
@@ -329,29 +350,33 @@ AC_DEFINE(FLAC__HAS_GAS)
 AH_TEMPLATE(FLAC__HAS_GAS, [define if you are compiling for PowerPC and have the 'gas' assembler])
 fi
 
-CPPFLAGS='-I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/include'" $CPPFLAGS"
 if test "x$debug" = xtrue; then
-       CPPFLAGS="-DDEBUG -DFLaC__INLINE= $CPPFLAGS"
+       CPPFLAGS="-DDEBUG $CPPFLAGS"
        CFLAGS="-g $CFLAGS"
 else
        CPPFLAGS="-DNDEBUG $CPPFLAGS"
-       # $ac_cv_c_inline from AC_C_INLINE
-       if test "x$ac_cv_c_inline" != xno ; then
-               CPPFLAGS="-DFLaC__INLINE=$ac_cv_c_inline $CPPFLAGS"
-       fi
        if test "x$GCC" = xyes; then
-               CFLAGS="-O3 -funroll-loops -finline-functions -Wall -W -Winline $CFLAGS"
+               if test "x$user_cflags" = x; then
+                       CFLAGS="-O3 -funroll-loops -Wall -W -Winline"
+               fi
        fi
 fi
 
+XIPH_GCC_VERSION
 
 if test x$ac_cv_c_compiler_gnu = xyes ; then
        if test x$enable_gcc_werror = "xyes" ; then
-               CFLAGS="-Werror $CFLAGS"
-               CXXFLAGS="-Werror $CXXFLAGS"
-               fi
+               CFLAGS="-Wall -Wextra -Werror $CFLAGS"
+               CXXFLAGS="-Wall -Wextra -Werror $CXXFLAGS"
        fi
 
+       if test "$GCC_MAJOR_VERSION" -ge 4 && test "$OBJ_FORMAT" = elf; then
+               CPPFLAGS="$CPPFLAGS -DFLAC__USE_VISIBILITY_ATTR"
+               CFLAGS="$CFLAGS -fvisibility=hidden"
+               CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+       fi
+fi
+
 
 #@@@
 AM_CONDITIONAL(FLaC__HAS_AS__TEMPORARILY_DISABLED, test "yes" = "no")
@@ -377,9 +402,6 @@ AC_CONFIG_FILES([ \
        src/monkeys_audio_utilities/flac_mac/Makefile \
        src/monkeys_audio_utilities/flac_ren/Makefile \
        src/plugin_common/Makefile \
-       src/plugin_winamp2/Makefile \
-       src/plugin_winamp2/include/Makefile \
-       src/plugin_winamp2/include/winamp2/Makefile \
        src/plugin_xmms/Makefile \
        src/share/Makefile \
        src/share/getopt/Makefile \
@@ -439,3 +461,20 @@ AC_CONFIG_FILES([ \
        obj/release/lib/Makefile \
 ])
 AC_OUTPUT
+
+AC_MSG_RESULT([
+-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=-
+
+  Configuration summary :
+
+    FLAC version : ........................ ${VERSION}
+
+    Host CPU : ............................ ${host_cpu}
+    Host Vendor : ......................... ${host_vendor}
+    Host OS : ............................. ${host_os}
+])
+
+if test x$ac_cv_c_compiler_gnu = xyes ; then
+       echo "    Compiler is GCC : ..................... ${ac_cv_c_compiler_gnu}"
+       echo "    GCC version : ......................... ${GCC_VERSION}"
+       fi