]>
Commit | Line | Data |
---|---|---|
dcfe52b6 | 1 | # Makefile for gotools |
2 | # Copyright 2015 Free Software Foundation, Inc. | |
3 | # | |
4 | # This file is free software; you can redistribute it and/or modify | |
5 | # it under the terms of the GNU General Public License as published by | |
6 | # the Free Software Foundation; either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU General Public License | |
15 | # along with this program; see the file COPYING3. If not see | |
16 | # <http://www.gnu.org/licenses/>. | |
17 | ||
18 | ACLOCAL_AMFLAGS = -I ./config -I ../config | |
19 | ||
20 | gcc_version := $(shell $(GCC_FOR_TARGET) -dumpversion) | |
21 | ||
22 | libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) | |
23 | ||
24 | mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs | |
25 | PWD_COMMAND = $${PWDCMD-pwd} | |
26 | STAMP = echo timestamp > | |
27 | ||
28 | libgodir = ../$(target_noncanonical)/libgo | |
29 | LIBGODEP = $(libgodir)/libgo.la | |
30 | ||
ff5b9b4f | 31 | if NATIVE |
32 | # Use the compiler we just built. | |
33 | GOCOMPILER = $(GOC_FOR_TARGET) | |
34 | else | |
35 | GOCOMPILER = $(GOC) | |
36 | endif | |
37 | ||
dcfe52b6 | 38 | GOCFLAGS = $(CFLAGS_FOR_TARGET) |
ff5b9b4f | 39 | GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) |
dcfe52b6 | 40 | |
bb11842d | 41 | AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs |
9176c716 | 42 | GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ |
dcfe52b6 | 43 | |
44 | cmdsrcdir = $(srcdir)/../libgo/go/cmd | |
45 | ||
46 | go_cmd_go_files = \ | |
47 | $(cmdsrcdir)/go/build.go \ | |
48 | $(cmdsrcdir)/go/clean.go \ | |
dcfe52b6 | 49 | $(cmdsrcdir)/go/context.go \ |
dcfe52b6 | 50 | $(cmdsrcdir)/go/discovery.go \ |
f11c2155 | 51 | $(cmdsrcdir)/go/env.go \ |
52 | $(cmdsrcdir)/go/fix.go \ | |
dcfe52b6 | 53 | $(cmdsrcdir)/go/fmt.go \ |
f11c2155 | 54 | $(cmdsrcdir)/go/generate.go \ |
55 | $(cmdsrcdir)/go/get.go \ | |
dcfe52b6 | 56 | $(cmdsrcdir)/go/go11.go \ |
f11c2155 | 57 | $(cmdsrcdir)/go/help.go \ |
58 | $(cmdsrcdir)/go/http.go \ | |
dcfe52b6 | 59 | $(cmdsrcdir)/go/list.go \ |
f11c2155 | 60 | $(cmdsrcdir)/go/main.go \ |
dcfe52b6 | 61 | $(cmdsrcdir)/go/pkg.go \ |
f11c2155 | 62 | $(cmdsrcdir)/go/run.go \ |
63 | $(cmdsrcdir)/go/signal.go \ | |
64 | $(cmdsrcdir)/go/signal_unix.go \ | |
dcfe52b6 | 65 | $(cmdsrcdir)/go/test.go \ |
f11c2155 | 66 | $(cmdsrcdir)/go/testflag.go \ |
67 | $(cmdsrcdir)/go/tool.go \ | |
68 | $(cmdsrcdir)/go/vcs.go \ | |
69 | $(cmdsrcdir)/go/version.go \ | |
39eba414 | 70 | $(cmdsrcdir)/go/vet.go \ |
71 | $(libgodir)/zstdpkglist.go | |
dcfe52b6 | 72 | |
73 | go_cmd_gofmt_files = \ | |
74 | $(cmdsrcdir)/gofmt/doc.go \ | |
75 | $(cmdsrcdir)/gofmt/gofmt.go \ | |
76 | $(cmdsrcdir)/gofmt/rewrite.go \ | |
77 | $(cmdsrcdir)/gofmt/simplify.go | |
78 | ||
79 | go_cmd_cgo_files = \ | |
80 | $(cmdsrcdir)/cgo/ast.go \ | |
81 | $(cmdsrcdir)/cgo/doc.go \ | |
82 | $(cmdsrcdir)/cgo/gcc.go \ | |
83 | $(cmdsrcdir)/cgo/godefs.go \ | |
84 | $(cmdsrcdir)/cgo/main.go \ | |
85 | $(cmdsrcdir)/cgo/out.go \ | |
86 | $(cmdsrcdir)/cgo/util.go | |
87 | ||
88 | GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)') | |
89 | GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') | |
90 | GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)') | |
91 | ||
92 | zdefaultcc.go: s-zdefaultcc; @true | |
93 | s-zdefaultcc: Makefile | |
94 | echo 'package main' > zdefaultcc.go.tmp | |
95 | echo 'const defaultGCCGO = "$(bindir)/$(GCCGO_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
96 | echo 'const defaultCC = "$(bindir)/$(GCC_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
97 | echo 'const defaultCXX = "$(bindir)/$(GXX_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
98 | $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go | |
99 | $(STAMP) $@ | |
100 | ||
ff5b9b4f | 101 | MOSTLYCLEANFILES = zdefaultcc.go s-zdefaultcc |
102 | ||
dcfe52b6 | 103 | if NATIVE |
104 | ||
105 | # For a native build we build the programs using the newly built libgo | |
106 | # and install them as regular programs. | |
107 | ||
108 | bin_PROGRAMS = go$(EXEEXT) gofmt$(EXEEXT) | |
b2fa8650 | 109 | noinst_PROGRAMS = cgo$(EXEEXT) |
0d0ad5e6 | 110 | man_MANS = go.1 gofmt.1 |
dcfe52b6 | 111 | |
112 | go$(EXEEXT): $(go_cmd_go_files) zdefaultcc.go $(LIBGODEP) | |
b7450aac | 113 | $(GOLINK) $(go_cmd_go_files) zdefaultcc.go $(LIBS) $(NET_LIBS) |
dcfe52b6 | 114 | gofmt$(EXEEXT): $(go_cmd_gofmt_files) $(LIBGODEP) |
b7450aac | 115 | $(GOLINK) $(go_cmd_gofmt_files) $(LIBS) $(NET_LIBS) |
dcfe52b6 | 116 | cgo$(EXEEXT): $(go_cmd_cgo_files) zdefaultcc.go $(LIBGODEP) |
b7450aac | 117 | $(GOLINK) $(go_cmd_cgo_files) zdefaultcc.go $(LIBS) $(NET_LIBS) |
dcfe52b6 | 118 | |
b2fa8650 | 119 | install-exec-local: cgo$(EXEEXT) |
120 | $(MKDIR_P) $(DESTDIR)$(libexecsubdir) | |
121 | rm -f $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
122 | $(INSTALL_PROGRAM) cgo$(exeext) $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
123 | ||
124 | uninstall-local: | |
125 | rm -f $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
126 | ||
dcfe52b6 | 127 | else |
128 | ||
129 | # For a non-native build we have to build the programs using a | |
130 | # previously built host (or build -> host) Go compiler. We should | |
131 | # only do this if such a compiler is available. We also need to get | |
132 | # the right values for GOARCH and GOOS in the default build context in | |
133 | # the go/build package. Figure this out later. | |
134 | ||
135 | endif |