summaryrefslogtreecommitdiff
path: root/gotools/Makefile.am
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2015-01-09 21:23:09 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2015-01-09 21:23:09 +0000
commitdcfe52b64946b633bcd7902e828b9c78e9940312 (patch)
treeac01f2f285980d0d29dd2d65f8bea8c6f69f3ea9 /gotools/Makefile.am
parent06df6acd196af4e89ccfbc7b23fcc4ea195f556f (diff)
downloadgcc-dcfe52b64946b633bcd7902e828b9c78e9940312.tar.gz
./:
2015-01-09 Ian Lance Taylor <iant@google.com> * configure.ac (host_tools): Add gotools. * Makefile.def (host_modules): Add gotools. (dependencies): Add dependency of all-gotools on all-target-libgo. gcc/go/: 2015-01-09 Ian Lance Taylor <iant@google.com> * config-lang.in (lang_dirs): Define. gotools/: 2015-01-09 Ian Lance Taylor <iant@google.com> * Initial implementation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219407 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gotools/Makefile.am')
-rw-r--r--gotools/Makefile.am115
1 files changed, 115 insertions, 0 deletions
diff --git a/gotools/Makefile.am b/gotools/Makefile.am
new file mode 100644
index 00000000000..248bed4b82c
--- /dev/null
+++ b/gotools/Makefile.am
@@ -0,0 +1,115 @@
+# Makefile for gotools
+# Copyright 2015 Free Software Foundation, Inc.
+#
+# This file 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; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+ACLOCAL_AMFLAGS = -I ./config -I ../config
+
+gcc_version := $(shell $(GCC_FOR_TARGET) -dumpversion)
+
+libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
+
+mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+PWD_COMMAND = $${PWDCMD-pwd}
+STAMP = echo timestamp >
+
+libgodir = ../$(target_noncanonical)/libgo
+LIBGODEP = $(libgodir)/libgo.la
+
+GOCFLAGS = $(CFLAGS_FOR_TARGET)
+GOCOMPILE = $(GOC) $(GOCFLAGS)
+
+AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs -static-libgo
+GOLINK = $(GOC) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
+
+cmdsrcdir = $(srcdir)/../libgo/go/cmd
+
+go_cmd_go_files = \
+ $(cmdsrcdir)/go/build.go \
+ $(cmdsrcdir)/go/clean.go \
+ $(cmdsrcdir)/go/main.go \
+ $(cmdsrcdir)/go/signal.go \
+ $(cmdsrcdir)/go/version.go \
+ $(cmdsrcdir)/go/env.go \
+ $(cmdsrcdir)/go/help.go \
+ $(cmdsrcdir)/go/run.go \
+ $(cmdsrcdir)/go/tool.go \
+ $(cmdsrcdir)/go/vet.go \
+ $(cmdsrcdir)/go/context.go \
+ $(cmdsrcdir)/go/fix.go \
+ $(cmdsrcdir)/go/get.go \
+ $(cmdsrcdir)/go/http.go \
+ $(cmdsrcdir)/go/signal_unix.go \
+ $(cmdsrcdir)/go/vcs.go \
+ $(cmdsrcdir)/go/discovery.go \
+ $(cmdsrcdir)/go/fmt.go \
+ $(cmdsrcdir)/go/go11.go \
+ $(cmdsrcdir)/go/list.go \
+ $(cmdsrcdir)/go/pkg.go \
+ $(cmdsrcdir)/go/test.go \
+ $(cmdsrcdir)/go/testflag.go
+
+go_cmd_gofmt_files = \
+ $(cmdsrcdir)/gofmt/doc.go \
+ $(cmdsrcdir)/gofmt/gofmt.go \
+ $(cmdsrcdir)/gofmt/rewrite.go \
+ $(cmdsrcdir)/gofmt/simplify.go
+
+go_cmd_cgo_files = \
+ $(cmdsrcdir)/cgo/ast.go \
+ $(cmdsrcdir)/cgo/doc.go \
+ $(cmdsrcdir)/cgo/gcc.go \
+ $(cmdsrcdir)/cgo/godefs.go \
+ $(cmdsrcdir)/cgo/main.go \
+ $(cmdsrcdir)/cgo/out.go \
+ $(cmdsrcdir)/cgo/util.go
+
+GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)')
+GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
+GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
+
+zdefaultcc.go: s-zdefaultcc; @true
+s-zdefaultcc: Makefile
+ echo 'package main' > zdefaultcc.go.tmp
+ echo 'const defaultGCCGO = "$(bindir)/$(GCCGO_INSTALL_NAME)"' >> zdefaultcc.go.tmp
+ echo 'const defaultCC = "$(bindir)/$(GCC_INSTALL_NAME)"' >> zdefaultcc.go.tmp
+ echo 'const defaultCXX = "$(bindir)/$(GXX_INSTALL_NAME)"' >> zdefaultcc.go.tmp
+ $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go
+ $(STAMP) $@
+
+if NATIVE
+
+# For a native build we build the programs using the newly built libgo
+# and install them as regular programs.
+
+bin_PROGRAMS = go$(EXEEXT) gofmt$(EXEEXT)
+libexecsub_PROGRAMS = cgo$(EXEEXT)
+
+go$(EXEEXT): $(go_cmd_go_files) zdefaultcc.go $(LIBGODEP)
+ $(GOLINK) $(go_cmd_go_files) zdefaultcc.go
+gofmt$(EXEEXT): $(go_cmd_gofmt_files) $(LIBGODEP)
+ $(GOLINK) $(go_cmd_gofmt_files)
+cgo$(EXEEXT): $(go_cmd_cgo_files) zdefaultcc.go $(LIBGODEP)
+ $(GOLINK) $(go_cmd_cgo_files) zdefaultcc.go
+
+else
+
+# For a non-native build we have to build the programs using a
+# previously built host (or build -> host) Go compiler. We should
+# only do this if such a compiler is available. We also need to get
+# the right values for GOARCH and GOOS in the default build context in
+# the go/build package. Figure this out later.
+
+endif