From 11efaa37f7b880a4014432f5b2da0b14d8067e6e Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Sun, 10 Mar 2013 12:30:49 +1100 Subject: [PATCH 1/1] gcc_version.m4 : Use cut instead of sed. Add this and other macros to Makefile.am. --- m4/Makefile.am | 5 ++ m4/endian.m4 | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ m4/gcc_version.m4 | 8 +-- 3 files changed, 185 insertions(+), 5 deletions(-) create mode 100644 m4/endian.m4 diff --git a/m4/Makefile.am b/m4/Makefile.am index 71fac28..c5da5bb 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -16,5 +16,10 @@ # distribution. EXTRA_DIST = \ + add_cflags.m4 \ + add_cxxflags.m4 \ + bswap.m4 \ + endian.m4 \ + gcc_version.m4 \ ogg.m4 \ xmms.m4 diff --git a/m4/endian.m4 b/m4/endian.m4 new file mode 100644 index 0000000..87c1f49 --- /dev/null +++ b/m4/endian.m4 @@ -0,0 +1,177 @@ +dnl Copyright (C) 2012 Xiph.org Foundation +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl +dnl - Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl +dnl - Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl - Neither the name of the Xiph.org Foundation nor the names of its +dnl contributors may be used to endorse or promote products derived from +dnl this software without specific prior written permission. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +dnl ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +dnl LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +dnl A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR +dnl CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +dnl EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +dnl PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +dnl PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +dnl LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +dnl NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +dnl SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +dnl @synopsis XIPH_C_FIND_ENDIAN +dnl +dnl Determine endian-ness of target processor. +dnl @version 1.1 Mar 03 2002 +dnl @author Erik de Castro Lopo +dnl +dnl Majority written from scratch to replace the standard autoconf macro +dnl AC_C_BIGENDIAN. Only part remaining from the original is the invocation +dnl of the AC_TRY_RUN macro. +dnl +dnl Find endian-ness in the following way: +dnl 1) Look in . +dnl 2) If 1) fails, look in and . +dnl 3) If 1) and 2) fails and not cross compiling run a test program. +dnl 4) If 1) and 2) fails and cross compiling then guess based on target. + +AC_DEFUN([XIPH_C_FIND_ENDIAN], +[AC_CACHE_CHECK(processor byte ordering, + ac_cv_c_byte_order, + +# Initialize to unknown +ac_cv_c_byte_order=unknown + +if test x$ac_cv_header_endian_h = xyes ; then + + # First try which should set BYTE_ORDER. + + [AC_TRY_LINK([ + #include + #if BYTE_ORDER != LITTLE_ENDIAN + not big endian + #endif + ], return 0 ;, + ac_cv_c_byte_order=little + )] + + [AC_TRY_LINK([ + #include + #if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + ], return 0 ;, + ac_cv_c_byte_order=big + )] + + fi + +if test $ac_cv_c_byte_order = unknown ; then + + [AC_TRY_LINK([ + #include + #include + #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN + bogus endian macros + #endif + ], return 0 ;, + + [AC_TRY_LINK([ + #include + #include + #if BYTE_ORDER != LITTLE_ENDIAN + not big endian + #endif + ], return 0 ;, + ac_cv_c_byte_order=little + )] + + [AC_TRY_LINK([ + #include + #include + #if BYTE_ORDER != LITTLE_ENDIAN + not big endian + #endif + ], return 0 ;, + ac_cv_c_byte_order=little + )] + + )] + + fi + +if test $ac_cv_c_byte_order = unknown ; then + if test $cross_compiling = yes ; then + # This is the last resort. Try to guess the target processor endian-ness + # by looking at the target CPU type. + [ + case "$target_cpu" in + alpha* | i?86* | mipsel* | ia64*) + ac_cv_c_byte_order=little + ;; + + m68* | mips* | powerpc* | hppa* | sparc*) + ac_cv_c_byte_order=big + ;; + + esac + ] + else + AC_TRY_RUN( + [[ + int main (void) + { /* Are we little or big endian? From Harbison&Steele. */ + union + { long l ; + char c [sizeof (long)] ; + } u ; + u.l = 1 ; + return (u.c [sizeof (long) - 1] == 1); + } + ]], , ac_cv_c_byte_order=big, + ) + + AC_TRY_RUN( + [[int main (void) + { /* Are we little or big endian? From Harbison&Steele. */ + union + { long l ; + char c [sizeof (long)] ; + } u ; + u.l = 1 ; + return (u.c [0] == 1); + }]], , ac_cv_c_byte_order=little, + ) + fi + fi + +) + +if test $ac_cv_c_byte_order = big ; then + ac_cv_c_big_endian=1 + ac_cv_c_little_endian=0 +elif test $ac_cv_c_byte_order = little ; then + ac_cv_c_big_endian=0 + ac_cv_c_little_endian=1 +else + ac_cv_c_big_endian=0 + ac_cv_c_little_endian=0 + + 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([[*****************************************************************]]) + fi + +] +)# XIPH_C_FIND_ENDIAN diff --git a/m4/gcc_version.m4 b/m4/gcc_version.m4 index a643ef2..1c53086 100644 --- a/m4/gcc_version.m4 +++ b/m4/gcc_version.m4 @@ -2,6 +2,7 @@ dnl @synopsis XIPH_GCC_VERSION dnl dnl Find the version of gcc. dnl @version 1.0 Nov 05 2007 +dnl @version 1.1 Mar 10 2013 dnl @author Erik de Castro Lopo dnl dnl Permission to use, copy, modify, distribute, and sell this file for any @@ -19,10 +20,8 @@ if test "x$ac_cv_c_compiler_gnu" = "xyes" ; then GCC_VERSION=`$CC -dumpversion` AC_MSG_RESULT($GCC_VERSION) - changequote(,)dnl - GCC_MAJOR_VERSION=`echo $GCC_VERSION | sed "s/\..*//"` - GCC_MINOR_VERSION=`echo $GCC_VERSION | sed "s/$GCC_MAJOR_VERSION\.//" | sed "s/\..*//"` - changequote([,])dnl + GCC_MAJOR_VERSION=`echo $GCC_VERSION | cut -d. -f 1` + GCC_MINOR_VERSION=`echo $GCC_VERSION | cut -d. -f 2` fi AC_SUBST(GCC_VERSION) @@ -30,4 +29,3 @@ AC_SUBST(GCC_MAJOR_VERSION) AC_SUBST(GCC_MINOR_VERSION) ])# XIPH_GCC_VERSION - -- 2.7.4