Hash :
68075ce0
Author :
Date :
2012-05-05T21:48:49
require: autoconf >= 2.65; related simplifications The new support for Objective C++ (to be added in Automake 1.12.1) can be simplified if we assume Autoconf version 2.65 or later (2.65 being the version that introduced support for Objective C++). Since such an Autoconf version is two and half years old now (and will likely be almost three years old when Automake 1.13 gets released), requiring it is acceptable. This will also simplify testing and maintenance of Automake, because we'll need to test with fewer Autoconf version, and possibly rely on new Autoconf features. * NEWS (Version requirements): Automake 1.13 will require Autoconf 2.65 or later. * configure.ac ($required_autoconf_version): Bump to 2.65. * m4/init.m4 (AM_INIT_AUTOMAKE): Require Autoconf >= 2.65. Assume AC_PROG_OBJCXX is unconditionally defined. * m4/depout.m4: Adjust a comment about a nugget of defensive programming. * t/ext.sh: Assume that AC_PROG_OBJCXX is unconditionally defined, and that we are using Autoconf >= 2.65. Related simplifications. * t/objc-megademo.sh: Likewise. * t/objcxx-basic.sh: Likewise. * t/objcxx-deps.sh: Likewise. * t/objcxx-flags.sh: Likewise. * t/objcxx-minidemo.sh: Likewise. * t/nodep2.sh: Likewise. * t/backcompat3.sh: Assume AC_INIT accepts an URL argument. * t/depend5.sh: Adjust a comment. * syntax-checks.mk (sc_test_names): Delete this check as now useless: autoconf >= 2.65 (>= 2.63, actually) can handle arguments to AC_INIT that contain or are m4 builtins or predefined macros. (m4_builtin): Delete this now-useless variable as well, was used only by the check above. (syntax_check_rules): Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
#! /bin/sh
# Copyright (C) 2012 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Test Objective C++ compilation flags.
# See also sister test 'objc-flags.sh'.
. ./defs || Exit 1
cat >> configure.ac << 'END'
AC_PROG_OBJCXX
AC_OUTPUT
END
cat > Makefile.am << 'END'
AM_DEFAULT_SOURCE_EXT = .mm
bin_PROGRAMS = foo2 foo4
AM_OBJCXXFLAGS = -DVALUE=2 -DERROR=1
foo4_OBJCXXFLAGS = -DVALUE=4 -DERROR=1
END
for i in 2 4; do
unindent > foo$i.mm << END
/* Let's make this file valid Objective C but invalid C. */
#import <stdlib.h>
@interface Who_Cares { } @end
#ifdef ERROR
# error "macro ERROR is defined for foo.mm"
#else
# if VALUE == $i
int main (void) { exit (0); }
# else
# error "VALUE is != $i in foo.mm"
# endif
#endif
END
done
$ACLOCAL
$AUTOCONF
$AUTOMAKE -a
$FGREP OBJCXXFLAGS Makefile.in # For debugging.
grep '\$(OBJCXXFLAGS).*\$(AM_OBJCXXFLAGS)' Makefile.in && Exit 1
grep '\$(OBJCXXFLAGS).*\$(foo.*_OBJCXXFLAGS)' Makefile.in && Exit 1
grep '\$(foo.*_OBJCXXFLAGS).*\$(AM_OBJCXXFLAGS)' Makefile.in && Exit 1
./configure OBJCXXFLAGS=-UERROR
$MAKE
: