7a9389330e
gcc/: * gcc.c (default_compilers): Add entry for ".go". * common.opt: Add -static-libgo as a driver option. * doc/install.texi (Configuration): Mention libgo as an option for --enable-shared. Mention go as an option for --enable-languages. * doc/invoke.texi (Overall Options): Mention .go as a file name suffix. Mention go as a -x option. * doc/frontends.texi (G++ and GCC): Mention Go as a supported language. * doc/sourcebuild.texi (Top Level): Mention libgo. * doc/standards.texi (Standards): Add section on Go language. Move references for other languages into their own section. * doc/contrib.texi (Contributors): Mention that I contributed the Go frontend. gcc/testsuite/: * lib/go.exp: New file. * lib/go-dg.exp: New file. * lib/go-torture.exp: New file. * lib/target-supports.exp (check_compile): Match // Go. From-SVN: r167407
93 lines
2.2 KiB
Plaintext
93 lines
2.2 KiB
Plaintext
dnl acinclude.m4 -- configure macros
|
|
|
|
dnl Copyright 2009 The Go Authors. All rights reserved.
|
|
dnl Use of this source code is governed by a BSD-style
|
|
dnl license that can be found in the LICENSE file.
|
|
|
|
dnl Go support--this could be in autoconf.
|
|
dnl This version is probably autoconf 2.64 specific.
|
|
|
|
AC_LANG_DEFINE([Go], [go], [GO], [],
|
|
[ac_ext=go
|
|
ac_compile='$GOC -c $GOCFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
|
|
ac_link='$GOC -o conftest$ac_exeext $GOCFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
|
|
ac_compile_gnu=yes
|
|
])
|
|
|
|
AU_DEFUN([AC_LANG_GO], [AC_LANG(Go)])
|
|
|
|
m4_define([AC_LANG_PROGRAM(Go)],
|
|
[package main
|
|
$1
|
|
func main() {
|
|
$2
|
|
}])
|
|
|
|
m4_define([AC_LANG_IO_PROGRAM(Go)],
|
|
[AC_LANG_PROGRAM([import "os"],
|
|
[if f, err := os.Open("conftest.out", os.O_WRONLY), err != nil {
|
|
os.Exit(1);
|
|
}
|
|
if err := f.Close(); err != nil {
|
|
os.Exit(1);
|
|
}
|
|
os.Exit(0);
|
|
])])
|
|
|
|
m4_define([AC_LANG_CALL(Go)],
|
|
[AC_LANG_PROGRAM([$1
|
|
m4_if([$2], [main], ,
|
|
[func $2();])],[$2();])])
|
|
|
|
m4_define([AC_LANG_FUNC_LINK_TRY(Go)],
|
|
[AC_LANG_PROGRAM(
|
|
[func $1() int;
|
|
var f := $1;
|
|
], [return f();])])
|
|
|
|
m4_define([AC_LANG_BOOL_COMPILE_TRY(Go)],
|
|
[AC_LANG_PROGRAM([$1], [var test_array @<:@1 - 2 * !($2)@:>@;
|
|
test_array @<:@0@:>@ = 0
|
|
])])
|
|
|
|
m4_define([AC_LANG_INT_SAVE(Go)],
|
|
[AC_LANG_PROGRAM([$1
|
|
import os
|
|
func longval() long { return $2 }
|
|
func ulongval() ulong { return $2 }],
|
|
[panic("unimplemented")])])
|
|
|
|
AC_DEFUN([AC_LANG_COMPILER(Go)],
|
|
[AC_REQUIRE([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([GOCFLAGS], [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, , , gccgo)
|
|
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
|
|
GOCFLAGS="-g -O2"
|
|
AC_LANG_POP(Go)dnl
|
|
])# AC_PROG_GO
|