autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.68-44-g


From: Ralf Wildenhues
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.68-44-g67b4182
Date: Mon, 21 Feb 2011 20:25:59 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=67b4182579092fbc41bb72d44d979199f31690f7

The branch, master has been updated
       via  67b4182579092fbc41bb72d44d979199f31690f7 (commit)
      from  ce791e5a957f3bb7787a804423482f9c708a698e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 67b4182579092fbc41bb72d44d979199f31690f7
Author: Ian Lance Taylor <address@hidden>
Date:   Tue Oct 12 12:26:39 2010 -0700

    Add support for the Go programming language.
    
    * lib/autoconf/go.m4: New file.
    * lib/autoconf/autoconf.m4: Include autoconf/go.m4.
    * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Add go.m4.
    * lib/freeze.mk (autoconf_m4f_dependencies): Add
    $(src_libdir)/autoconf/go.m4.
    * doc/autoconf.texi: Rebuild menus.
    (Preset Output Variables): Mention Go.  Document GOFLAGS.
    (Libraries): Mention Go.
    (Go Compiler): New subsection.
    (Language Choice): Mention Go.
    (Generating Sources): Likewise.
    (Running the Preprocessor): Likewise.
    * tests/go.at: New file.
    * tests/suite.at: Include go.at and acgo.at.
    * tests/local.at (_AT_CHECK_ENV): Add GOC and GOFLAGS.
    * tests/Makefile.am (TESTSUITE_GENERATED_AT): Add
    $(srcdir)/acgo.at.
    (TESTSUITE_HAND_AT): Add go.at.
    (AUTOCONF_FILES): Add $(autoconfdir)/go.m4.
    * NEWS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                |   23 ++++++
 NEWS                     |    3 +
 doc/autoconf.texi        |   57 +++++++++++++---
 lib/autoconf/Makefile.am |    2 +-
 lib/autoconf/autoconf.m4 |    1 +
 lib/autoconf/go.m4       |  177 ++++++++++++++++++++++++++++++++++++++++++++++
 lib/freeze.mk            |    1 +
 tests/Makefile.am        |    4 +-
 tests/go.at              |   35 +++++++++
 tests/local.at           |    1 +
 tests/suite.at           |    2 +
 11 files changed, 295 insertions(+), 11 deletions(-)
 create mode 100644 lib/autoconf/go.m4
 create mode 100644 tests/go.at

diff --git a/ChangeLog b/ChangeLog
index 52d4cac..00c13f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2011-02-21  Ian Lance Taylor  <address@hidden>
+
+       * lib/autoconf/go.m4: New file.
+       * lib/autoconf/autoconf.m4: Include autoconf/go.m4.
+       * lib/autoconf/Makefile.am (dist_autoconflib_DATA): Add go.m4.
+       * lib/freeze.mk (autoconf_m4f_dependencies): Add
+       $(src_libdir)/autoconf/go.m4.
+       * doc/autoconf.texi: Rebuild menus.
+       (Preset Output Variables): Mention Go.  Document GOFLAGS.
+       (Libraries): Mention Go.
+       (Go Compiler): New subsection.
+       (Language Choice): Mention Go.
+       (Generating Sources): Likewise.
+       (Running the Preprocessor): Likewise.
+       * tests/go.at: New file.
+       * tests/suite.at: Include go.at and acgo.at.
+       * tests/local.at (_AT_CHECK_ENV): Add GOC and GOFLAGS.
+       * tests/Makefile.am (TESTSUITE_GENERATED_AT): Add
+       $(srcdir)/acgo.at.
+       (TESTSUITE_HAND_AT): Add go.at.
+       (AUTOCONF_FILES): Add $(autoconfdir)/go.m4.
+       * NEWS: Update.
+
 2011-02-20  Christian Rössel  <address@hidden>  (tiny change)
            Markus Geimer  <address@hidden>  (tiny change)
 
diff --git a/NEWS b/NEWS
index c485f22..3edebd8 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ GNU Autoconf NEWS - User visible changes.
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
+** Support for the Go programming language has been added.  The new macro
+   AC_LANG_GO sets variables GOC and GOFLAGS.
+
 ** AS_LITERAL_IF again treats '=' as a literal.  Regression introduced in
    2.66.
 
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index a08208f..b011316 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -413,6 +413,7 @@ Compilers and Preprocessors
 * Objective C++ Compiler::      Likewise
 * Erlang Compiler and Interpreter::  Likewise
 * Fortran Compiler::            Likewise
+* Go Compiler::                 Likewise
 
 Writing Tests
 
@@ -2605,7 +2606,7 @@ programs to test for Fortran 77 features.
 Options for the linker.  If it is not set
 in the environment when @command{configure} runs, the default value is empty.
 @command{configure} uses this variable when linking programs to test for
-C, C++, Objective C, Objective C++, and Fortran features.
+C, C++, Objective C, Objective C++, Fortran, and Go features.
 
 This variable's contents should contain options like @option{-s} and
 @option{-L} that affect only the behavior of the linker.  Please see the
@@ -2623,7 +2624,7 @@ Don't use this variable to pass library names
 but some Autoconf macros may prepend extra libraries to this variable if
 those libraries are found and provide necessary functions, see
 @ref{Libraries}.  @command{configure} uses this variable when linking
-programs to test for C, C++, Objective C, Objective C++, and Fortran
+programs to test for C, C++, Objective C, Objective C++, Fortran, and Go
 features.
 @end defvar
 
@@ -2641,6 +2642,13 @@ Debugging and optimization options for the Objective C++ 
compiler.  It
 acts like @code{CXXFLAGS}, but for Objective C++ instead of C++.
 @end defvar
 
address@hidden GOFLAGS
address@hidden GOFLAGS
address@hidden GOFLAGS
+Debugging and optimization options for the Go compiler.  It acts like
address@hidden, but for Go instead of C.
address@hidden defvar
+
 @defvar builddir
 @ovindex builddir
 Rigorously equal to @samp{.}.  Added for symmetry only.
@@ -4435,8 +4443,8 @@ a variable name mapped to underscores.
 @section Library Files
 @cindex Library, checking
 
-The following macros check for the presence of certain C, C++, or Fortran
-library archive files.
+The following macros check for the presence of certain C, C++, Fortran,
+or Go library archive files.
 
 @anchor{AC_CHECK_LIB}
 @defmac AC_CHECK_LIB (@var{library}, @var{function}, @
@@ -6989,6 +6997,7 @@ compiling.
 * Objective C++ Compiler::      Likewise
 * Erlang Compiler and Interpreter::  Likewise
 * Fortran Compiler::            Likewise
+* Go Compiler::                 Likewise
 @end menu
 
 @node Specific Compiler Characteristics
@@ -8238,6 +8247,32 @@ message).
 @end defmac
 
 
address@hidden Go Compiler
address@hidden Go Compiler Characteristics
address@hidden Go
+
+Autoconf provides basic support for the Go programming language when
+using the @code{gccgo} compiler (there is currently no support for the
address@hidden and @code{8g} compilers).
+
address@hidden AC_PROG_GO (@ovar{compiler-search-list})
+Find the Go compiler to use.  Check whether the environment variable
address@hidden is set; if so, then set output variable @code{GOC} to its
+value.
+
+Otherwise, if the macro is invoked without an argument, then search for
+a Go compiler named @code{gccgo}.  If it is not found, then as a last
+resort set @code{GOC} to @code{gccgo}.
+
+This macro may be invoked with an optional first argument which, if
+specified, must be a blank-separated list of Go compilers to search for.
+
+If output variable @code{GOFLAGS} was not already set, set it to
address@hidden -O2}.  If your package does not like this default,
address@hidden may be set before @code{AC_PROG_GO}.
address@hidden defmac
+
+
 @node System Services
 @section System Services
 
@@ -8628,6 +8663,10 @@ Do compilation tests using @code{OBJCXX} and 
@code{OBJCXXCPP} and use
 extension @file{.mm} for test programs.  Use compilation flags:
 @code{CPPFLAGS} with @code{OBJCXXCPP}, and both @code{CPPFLAGS} and
 @code{OBJCXXFLAGS} with @code{OBJCXX}.
+
address@hidden Go
+Do compilation tests using @code{GOC} and use extension @file{.go} for
+test programs.  Use compilation flags @code{GOFLAGS}.
 @end table
 @end defmac
 
@@ -8871,9 +8910,9 @@ on a system with @command{gcc} installed, results in:
 const char hw[] = "Hello, World\n";
 @end example
 
-When the test language is Fortran or Erlang, the @code{AC_DEFINE} definitions
-are not automatically translated into constants in the source code by this
-macro.
+When the test language is Fortran, Erlang, or Go, the @code{AC_DEFINE}
+definitions are not automatically translated into constants in the
+source code by this macro.
 
 @defmac AC_LANG_PROGRAM (@var{prologue}, @var{body})
 @acindex{LANG_PROGRAM}
@@ -8995,8 +9034,8 @@ temptation of following the easiest path.
 Nevertheless, if you need to run the preprocessor, then use
 @code{AC_PREPROC_IFELSE}.
 
-The macros described in this section cannot be used for tests in Erlang or
-Fortran, since those languages require no preprocessor.
+The macros described in this section cannot be used for tests in Erlang,
+Fortran, or Go, since those languages require no preprocessor.
 
 @anchor{AC_PREPROC_IFELSE}
 @defmac AC_PREPROC_IFELSE (@var{input}, @ovar{action-if-true}, @
diff --git a/lib/autoconf/Makefile.am b/lib/autoconf/Makefile.am
index ed2d4e9..6390590 100644
--- a/lib/autoconf/Makefile.am
+++ b/lib/autoconf/Makefile.am
@@ -22,7 +22,7 @@ dist_autoconflib_DATA = \
        general.m4 status.m4 oldnames.m4 specific.m4 \
        autoheader.m4 autoupdate.m4 autotest.m4 autoscan.m4 \
        lang.m4 c.m4 erlang.m4 fortran.m4 \
-       functions.m4 headers.m4 types.m4 libs.m4 programs.m4
+       functions.m4 go.m4 headers.m4 types.m4 libs.m4 programs.m4
 
 nodist_autoconflib_DATA = autoconf.m4f
 CLEANFILES = $(nodist_autoconflib_DATA)
diff --git a/lib/autoconf/autoconf.m4 b/lib/autoconf/autoconf.m4
index 32a6248..897639c 100644
--- a/lib/autoconf/autoconf.m4
+++ b/lib/autoconf/autoconf.m4
@@ -42,6 +42,7 @@ m4_include([autoconf/lang.m4])
 m4_include([autoconf/c.m4])
 m4_include([autoconf/erlang.m4])
 m4_include([autoconf/fortran.m4])
+m4_include([autoconf/go.m4])
 m4_include([autoconf/functions.m4])
 m4_include([autoconf/headers.m4])
 m4_include([autoconf/types.m4])
diff --git a/lib/autoconf/go.m4 b/lib/autoconf/go.m4
new file mode 100644
index 0000000..0539d99
--- /dev/null
+++ b/lib/autoconf/go.m4
@@ -0,0 +1,177 @@
+# This file is part of Autoconf.                       -*- Autoconf -*-
+# Go language support.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+
+# This file is part of Autoconf.  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 3 of the License, 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.
+#
+# Under Section 7 of GPL version 3, you are granted additional
+# permissions described in the Autoconf Configure Script Exception,
+# version 3.0, as published by the Free Software Foundation.
+#
+# You should have received a copy of the GNU General Public License
+# and a copy of the Autoconf Configure Script Exception along with
+# this program; see the files COPYINGv3 and COPYING.EXCEPTION
+# respectively.  If not, see <http://www.gnu.org/licenses/>.
+
+# Go support contributed by Ian Lance Taylor.
+
+# This currently only supports gccgo, not 6g/8g/5g.
+
+# ------------------- #
+# Language selection.
+# ------------------- #
+
+# AC_LANG(Go)
+# -----------
+AC_LANG_DEFINE([Go], [go], [GO], [GOC], [],
+[ac_ext=go
+ac_compile='$GOC -c $GOFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
+ac_link='$GOC -o conftest$ac_exeext $GOFLAGS $LDFLAGS conftest.$ac_ext $LIBS 
>&AS_MESSAGE_LOG_FD'
+ac_compiler_gnu=yes
+])
+
+# AC_LANG_GO
+# ----------
+AU_DEFUN([AC_LANG_GO], [AC_LANG(Go)])
+
+# ------------------- #
+# Producing programs.
+# ------------------- #
+
+# AC_LANG_PROGRAM(Go)([PROLOGUE], [BODY])
+# ---------------------------------------
+m4_define([AC_LANG_PROGRAM(Go)],
+[package main
+$1
+func main() {
+$2
+}])
+
+# _AC_LANG_IO_PROGRAM(Go)
+# -----------------------
+# Produce source that performs I/O.
+m4_define([_AC_LANG_IO_PROGRAM(Go)],
+[AC_LANG_PROGRAM([import ( "fmt"; "os" )],
+[f, err := os.Open("conftest.out", os.O_CREATE|os.O_WRONLY, 0777)
+ if err != nil {
+       fmt.Println(err)
+       os.Exit(1)
+ }
+ if err = f.Close(); err != nil {
+       fmt.Println(err)
+       os.Exit(1)
+ }
+ os.Exit(0)
+])])
+
+# AC_LANG_CALL(Go)(PROLOGUE, FUNCTION)
+# ------------------------------------
+# Avoid conflicting decl of main.
+m4_define([AC_LANG_CALL(Go)],
+[AC_LANG_PROGRAM([$1
+m4_if([$2], [main], ,
+[func $2()])],[$2()])])
+
+# AC_LANG_FUNC_LINK_TRY(Go)(FUNCTION)
+# -----------------------------------
+# Try to link a program which calls FUNCTION.
+m4_define([AC_LANG_FUNC_LINK_TRY(Go)],
+[AC_LANG_PROGRAM(
+[func $1() int
+var f = $1
+], [return f()])])
+
+# AC_LANG_BOOL_COMPILE_TRY(Go)(PROLOGUE, EXPRESSION)
+# --------------------------------------------------
+# Return a program which is valid if EXPRESSION is nonzero.
+m4_define([AC_LANG_BOOL_COMPILE_TRY(Go)],
+[AC_LANG_PROGRAM([$1], [var test_array @<:@1 - 2 * !($2)@:>@int
+test_array @<:@0@:>@ = 0
+])])
+
+# AC_LANG_INT_SAVE(Go)(PROLOGUE, EXPRESSION)
+# ------------------------------------------
+m4_define([AC_LANG_INT_SAVE(Go)],
+[AC_LANG_PROGRAM([$1
+import (
+       "fmt"
+       "os"
+)
+],
+[f, err := os.Open("conftest.val", os.O_CREATE|os.O_WRONLY, 0777)
+ if err != nil {
+       os.Exit(1)
+ }
+ if $2 < 0 {
+       int64 i = int64($2)
+       if i != $2 {
+               os.Exit(1)
+       }
+       if _, err := fmt.Print(f, i); err != nil {
+               os.Exit(1)
+       }
+ } else {
+       uint64 i = uint64($2)
+       if i != $2 {
+               os.Exit(1)
+       }
+       if _, err := fmt.Print(f, i); err != nil {
+               os.Exit(1)
+       }
+ }
+ if err = f.Close(); err != nil {
+       os.Exit(1)
+ }
+ os.Exit(0);
+])])
+
+# ---------------------- #
+# Looking for compilers. #
+# ---------------------- #
+
+# AC_LANG_COMPILER(Go)
+# --------------------
+AC_DEFUN([AC_LANG_COMPILER(Go)],
+[AC_REQUIRE([AC_PROG_GO])])
+
+# AC_PROG_GO
+# ----------
+AN_MAKEVAR([GOC], [AC_PROG_GO])
+AN_PROGRAM([gccgo], [AC_PROG_GO])
+AC_DEFUN([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],   [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+m4_ifval([$1],
+      [AC_CHECK_TOOLS(GOC, [$1])],
+[AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [$ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, , , false)
+fi
+])
+
+# Provide some information about the compiler.
+_AS_ECHO_LOG([checking for _AC_LANG compiler version])
+set X $ac_compile
+ac_compiler=$[2]
+_AC_DO_LIMIT([$ac_compiler --version >&AS_MESSAGE_LOG_FD])
+m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
+m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
+GOFLAGS="-g -O2"
+AC_LANG_POP(Go)dnl
+])# AC_PROG_GO
diff --git a/lib/freeze.mk b/lib/freeze.mk
index 31a946e..bf7de4d 100644
--- a/lib/freeze.mk
+++ b/lib/freeze.mk
@@ -88,6 +88,7 @@ autoconf_m4f_dependencies =                   \
        $(src_libdir)/autoconf/c.m4             \
        $(src_libdir)/autoconf/fortran.m4       \
        $(src_libdir)/autoconf/erlang.m4        \
+       $(src_libdir)/autoconf/go.m4            \
        $(src_libdir)/autoconf/functions.m4     \
        $(src_libdir)/autoconf/headers.m4       \
        $(src_libdir)/autoconf/types.m4         \
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d068a10..265a749 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -84,6 +84,7 @@ TESTSUITE_GENERATED_AT = \
        $(srcdir)/aclang.at \
        $(srcdir)/acc.at \
        $(srcdir)/acfortran.at \
+       $(srcdir)/acgo.at \
        $(srcdir)/acgeneral.at \
        $(srcdir)/acstatus.at \
        $(srcdir)/acautoheader.at \
@@ -99,7 +100,7 @@ TESTSUITE_HAND_AT = \
        suite.at \
        m4sugar.at m4sh.at autotest.at \
        base.at tools.at torture.at \
-       compile.at c.at erlang.at fortran.at \
+       compile.at c.at erlang.at fortran.at go.at \
        semantics.at \
        autoscan.at \
        foreign.at
@@ -169,6 +170,7 @@ AUTOCONF_FILES = $(autoconfdir)/general.m4 \
                 $(autoconfdir)/c.m4 \
                 $(autoconfdir)/erlang.m4 \
                 $(autoconfdir)/fortran.m4 \
+                $(autoconfdir)/go.m4 \
                 $(autoconfdir)/headers.m4 \
                 $(autoconfdir)/libs.m4 \
                 $(autoconfdir)/types.m4 \
diff --git a/tests/go.at b/tests/go.at
new file mode 100644
index 0000000..6bad32d
--- /dev/null
+++ b/tests/go.at
@@ -0,0 +1,35 @@
+#                                                      -*- Autotest -*-
+
+AT_BANNER([Go low level compiling and utility macros.])
+
+# Copyright (C) 2011 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 3 of the License, 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+
+# Since the macros which compile are required by most tests, check
+# them first.  But remember that looking for a compiler is even more
+# primitive, so check those first.
+
+
+## ------------- ##
+## Go Compiler.  ##
+## ------------- ##
+
+AT_CHECK_MACRO([Go],
+[[AC_LANG(Go)
+AC_LANG_COMPILER
+]])
diff --git a/tests/local.at b/tests/local.at
index 8e20ec3..bfd124f 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -307,6 +307,7 @@ if test -f state-env.before && test -f state-env.after; then
       [ERLANG_LIB_DIR_.*|ERLANG_LIB_VER_.*|ERLANG_INSTALL_LIB_DIR],
       [ERLANG_INSTALL_LIB_DIR_.*|ERLANG_ERTS_VER|OBJC|OBJCPP|OBJCFLAGS],
       [OBJCXX|OBJCXXCPP|OBJCXXFLAGS],
+      [GOC|GOFLAGS],
       [OPENMP_CFLAGS],
       [LIBS|LIB@&address@hidden|LTLIBOBJS|LDFLAGS],
       [INSTALL(_(DATA|PROGRAM|SCRIPT))?],
diff --git a/tests/suite.at b/tests/suite.at
index 24685a0..9a23d60 100644
--- a/tests/suite.at
+++ b/tests/suite.at
@@ -52,6 +52,8 @@ m4_include([acc.at])
 m4_include([fortran.at])
 m4_include([acfortran.at])
 m4_include([erlang.at])
+m4_include([go.at])
+m4_include([acgo.at])
 
 # Checking that AC_CHECK_FOO macros work properly.
 m4_include([semantics.at])


hooks/post-receive
-- 
GNU Autoconf source repository



reply via email to

[Prev in Thread] Current Thread [Next in Thread]