]>
Commit | Line | Data |
---|---|---|
bf1de3f0 | 1 | # Makefile for gotools |
48eae472 | 2 | # Copyright (C) 2015-2016 Free Software Foundation, Inc. |
bf1de3f0 ILT |
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 | ||
6b3762e4 ILT |
31 | if NATIVE |
32 | # Use the compiler we just built. | |
105b682e | 33 | GOCOMPILER = $(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) |
6b3762e4 ILT |
34 | else |
35 | GOCOMPILER = $(GOC) | |
36 | endif | |
37 | ||
bf1de3f0 | 38 | GOCFLAGS = $(CFLAGS_FOR_TARGET) |
6b3762e4 | 39 | GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) |
bf1de3f0 | 40 | |
0b855aa3 | 41 | AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs |
fafa095c | 42 | GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ |
bf1de3f0 ILT |
43 | |
44 | cmdsrcdir = $(srcdir)/../libgo/go/cmd | |
45 | ||
46 | go_cmd_go_files = \ | |
da235df8 | 47 | $(cmdsrcdir)/go/alldocs.go \ |
bf1de3f0 ILT |
48 | $(cmdsrcdir)/go/build.go \ |
49 | $(cmdsrcdir)/go/clean.go \ | |
bf1de3f0 | 50 | $(cmdsrcdir)/go/context.go \ |
bf1de3f0 | 51 | $(cmdsrcdir)/go/discovery.go \ |
da235df8 | 52 | $(cmdsrcdir)/go/doc.go \ |
f8d9fa9e ILT |
53 | $(cmdsrcdir)/go/env.go \ |
54 | $(cmdsrcdir)/go/fix.go \ | |
bf1de3f0 | 55 | $(cmdsrcdir)/go/fmt.go \ |
f8d9fa9e ILT |
56 | $(cmdsrcdir)/go/generate.go \ |
57 | $(cmdsrcdir)/go/get.go \ | |
bf1de3f0 | 58 | $(cmdsrcdir)/go/go11.go \ |
f8d9fa9e ILT |
59 | $(cmdsrcdir)/go/help.go \ |
60 | $(cmdsrcdir)/go/http.go \ | |
bf1de3f0 | 61 | $(cmdsrcdir)/go/list.go \ |
f8d9fa9e | 62 | $(cmdsrcdir)/go/main.go \ |
da235df8 | 63 | $(cmdsrcdir)/go/note.go \ |
bf1de3f0 | 64 | $(cmdsrcdir)/go/pkg.go \ |
f8d9fa9e ILT |
65 | $(cmdsrcdir)/go/run.go \ |
66 | $(cmdsrcdir)/go/signal.go \ | |
67 | $(cmdsrcdir)/go/signal_unix.go \ | |
bf1de3f0 | 68 | $(cmdsrcdir)/go/test.go \ |
f8d9fa9e ILT |
69 | $(cmdsrcdir)/go/testflag.go \ |
70 | $(cmdsrcdir)/go/tool.go \ | |
71 | $(cmdsrcdir)/go/vcs.go \ | |
72 | $(cmdsrcdir)/go/version.go \ | |
ab24432b ILT |
73 | $(cmdsrcdir)/go/vet.go \ |
74 | $(libgodir)/zstdpkglist.go | |
bf1de3f0 ILT |
75 | |
76 | go_cmd_gofmt_files = \ | |
77 | $(cmdsrcdir)/gofmt/doc.go \ | |
78 | $(cmdsrcdir)/gofmt/gofmt.go \ | |
f98dd1a3 | 79 | $(cmdsrcdir)/gofmt/internal.go \ |
bf1de3f0 ILT |
80 | $(cmdsrcdir)/gofmt/rewrite.go \ |
81 | $(cmdsrcdir)/gofmt/simplify.go | |
82 | ||
83 | go_cmd_cgo_files = \ | |
84 | $(cmdsrcdir)/cgo/ast.go \ | |
85 | $(cmdsrcdir)/cgo/doc.go \ | |
86 | $(cmdsrcdir)/cgo/gcc.go \ | |
87 | $(cmdsrcdir)/cgo/godefs.go \ | |
88 | $(cmdsrcdir)/cgo/main.go \ | |
89 | $(cmdsrcdir)/cgo/out.go \ | |
90 | $(cmdsrcdir)/cgo/util.go | |
91 | ||
92 | GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)') | |
93 | GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') | |
94 | GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)') | |
95 | ||
96 | zdefaultcc.go: s-zdefaultcc; @true | |
97 | s-zdefaultcc: Makefile | |
98 | echo 'package main' > zdefaultcc.go.tmp | |
99 | echo 'const defaultGCCGO = "$(bindir)/$(GCCGO_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
100 | echo 'const defaultCC = "$(bindir)/$(GCC_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
101 | echo 'const defaultCXX = "$(bindir)/$(GXX_INSTALL_NAME)"' >> zdefaultcc.go.tmp | |
102 | $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go | |
103 | $(STAMP) $@ | |
104 | ||
6b3762e4 ILT |
105 | MOSTLYCLEANFILES = zdefaultcc.go s-zdefaultcc |
106 | ||
bf1de3f0 ILT |
107 | if NATIVE |
108 | ||
109 | # For a native build we build the programs using the newly built libgo | |
110 | # and install them as regular programs. | |
111 | ||
112 | bin_PROGRAMS = go$(EXEEXT) gofmt$(EXEEXT) | |
fa3340ec | 113 | noinst_PROGRAMS = cgo$(EXEEXT) |
c92e723d | 114 | man_MANS = go.1 gofmt.1 |
bf1de3f0 ILT |
115 | |
116 | go$(EXEEXT): $(go_cmd_go_files) zdefaultcc.go $(LIBGODEP) | |
5bd8d5c1 | 117 | $(GOLINK) $(go_cmd_go_files) zdefaultcc.go $(LIBS) $(NET_LIBS) |
bf1de3f0 | 118 | gofmt$(EXEEXT): $(go_cmd_gofmt_files) $(LIBGODEP) |
5bd8d5c1 | 119 | $(GOLINK) $(go_cmd_gofmt_files) $(LIBS) $(NET_LIBS) |
bf1de3f0 | 120 | cgo$(EXEEXT): $(go_cmd_cgo_files) zdefaultcc.go $(LIBGODEP) |
5bd8d5c1 | 121 | $(GOLINK) $(go_cmd_cgo_files) zdefaultcc.go $(LIBS) $(NET_LIBS) |
bf1de3f0 | 122 | |
fa3340ec ILT |
123 | install-exec-local: cgo$(EXEEXT) |
124 | $(MKDIR_P) $(DESTDIR)$(libexecsubdir) | |
125 | rm -f $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
126 | $(INSTALL_PROGRAM) cgo$(exeext) $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
127 | ||
128 | uninstall-local: | |
129 | rm -f $(DESTDIR)$(libexecsubdir)/cgo$(exeext) | |
130 | ||
bf1de3f0 ILT |
131 | else |
132 | ||
133 | # For a non-native build we have to build the programs using a | |
134 | # previously built host (or build -> host) Go compiler. We should | |
135 | # only do this if such a compiler is available. We also need to get | |
136 | # the right values for GOARCH and GOOS in the default build context in | |
137 | # the go/build package. Figure this out later. | |
138 | ||
139 | endif |