go.m4
2.24 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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