]>
Commit | Line | Data |
---|---|---|
e440a328 | 1 | # Makefile.am -- Go library Makefile. |
2 | ||
45ef2846 | 3 | # Copyright 2009 The Go Authors. All rights reserved. |
e440a328 | 4 | # Use of this source code is governed by a BSD-style |
5 | # license that can be found in the LICENSE file. | |
6 | ||
7 | # Process this file with autoreconf to produce Makefile.in. | |
8 | ||
9 | # Go support. | |
10 | SUFFIXES = .c .go .gox .o .obj .lo .a | |
11 | ||
12 | if LIBGO_IS_RTEMS | |
13 | subdirs = testsuite | |
14 | endif | |
15 | ||
16 | SUBDIRS = ${subdirs} | |
17 | ||
5ffe68e4 | 18 | gcc_version := $(shell $(GOC) -dumpversion) |
b978ac2f | 19 | |
e440a328 | 20 | MAINT_CHARSET = latin1 |
21 | ||
22 | mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs | |
23 | PWD_COMMAND = $${PWDCMD-pwd} | |
24 | STAMP = echo timestamp > | |
25 | ||
26 | toolexecdir = $(glibgo_toolexecdir) | |
27 | toolexeclibdir = $(glibgo_toolexeclibdir) | |
61efdf66 | 28 | toolexeclibgodir = $(nover_glibgo_toolexeclibdir)/go/$(gcc_version)/$(target_alias) |
0e762700 | 29 | libexecsubdir = $(libexecdir)/gcc/$(target_alias)/$(gcc_version) |
e440a328 | 30 | |
31 | LIBFFI = @LIBFFI@ | |
32 | LIBFFIINCS = @LIBFFIINCS@ | |
33 | ||
7920387d | 34 | LIBATOMIC = @LIBATOMIC@ |
35 | ||
e440a328 | 36 | WARN_CFLAGS = $(WARN_FLAGS) $(WERROR) |
37 | ||
38 | # -I/-D flags to pass when compiling. | |
f555a9df | 39 | AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS) |
e440a328 | 40 | |
41 | ACLOCAL_AMFLAGS = -I ./config -I ../config | |
42 | ||
ca06e200 | 43 | AM_CFLAGS = -fexceptions -fnon-call-exceptions \ |
0ce10ea1 | 44 | $(SPLIT_STACK) $(WARN_CFLAGS) \ |
f7b28005 | 45 | $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \ |
e4fbfaf5 | 46 | -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ |
47 | -I $(MULTIBUILDTOP)../../gcc/include | |
e440a328 | 48 | |
03118c21 | 49 | AM_LDFLAGS = |
50 | ||
e440a328 | 51 | if USING_SPLIT_STACK |
03118c21 | 52 | AM_LDFLAGS += -XCClinker $(SPLIT_STACK) |
53 | endif | |
54 | ||
55 | if LIBGO_IS_AIX | |
56 | # Using an import file for libgo avoid requiring to use the -brtl flag | |
57 | # when builing a go program | |
58 | AM_LDFLAGS += -Wl,-bbigtoc -Wl,-bI:$(srcdir)/libgo.imp | |
59 | EXTRA_libgo_la_DEPENDENCIES = libgo.imp | |
e440a328 | 60 | endif |
61 | ||
62 | # Multilib support. | |
63 | MAKEOVERRIDES= | |
64 | ||
65 | # Work around what appears to be a GNU make handling MAKEFLAGS | |
66 | # values defined in terms of make variables, as is the case for CC and | |
67 | # friends when we are called from the top level Makefile. | |
68 | AM_MAKEFLAGS = \ | |
69 | "AR_FLAGS=$(AR_FLAGS)" \ | |
70 | "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ | |
71 | "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ | |
72 | "CFLAGS=$(CFLAGS)" \ | |
73 | "CXXFLAGS=$(CXXFLAGS)" \ | |
74 | "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ | |
75 | "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ | |
76 | "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ | |
77 | "GOC=$(GOC)" \ | |
78 | "GOCFLAGS=$(GOCFLAGS)" \ | |
79 | "INSTALL=$(INSTALL)" \ | |
80 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
81 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
82 | "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ | |
83 | "LDFLAGS=$(LDFLAGS)" \ | |
84 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
85 | "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ | |
86 | "MAKE=$(MAKE)" \ | |
87 | "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ | |
88 | "PICFLAG=$(PICFLAG)" \ | |
89 | "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ | |
90 | "SHELL=$(SHELL)" \ | |
91 | "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ | |
92 | "exec_prefix=$(exec_prefix)" \ | |
93 | "infodir=$(infodir)" \ | |
94 | "libdir=$(libdir)" \ | |
95 | "includedir=$(includedir)" \ | |
96 | "prefix=$(prefix)" \ | |
97 | "tooldir=$(tooldir)" \ | |
98 | "gxx_include_dir=$(gxx_include_dir)" \ | |
99 | "AR=$(AR)" \ | |
100 | "AS=$(AS)" \ | |
101 | "LD=$(LD)" \ | |
102 | "RANLIB=$(RANLIB)" \ | |
103 | "NM=$(NM)" \ | |
104 | "NM_FOR_BUILD=$(NM_FOR_BUILD)" \ | |
105 | "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ | |
106 | "DESTDIR=$(DESTDIR)" \ | |
107 | "WERROR=$(WERROR)" | |
108 | ||
109 | # Subdir rules rely on $(FLAGS_TO_PASS) | |
110 | FLAGS_TO_PASS = $(AM_MAKEFLAGS) | |
111 | ||
b5f8bff0 | 112 | if GOC_IS_LLGO |
113 | toolexeclib_LTLIBRARIES = libgo-llgo.la | |
114 | toolexeclib_LIBRARIES = libgobegin-llgo.a | |
115 | else | |
e440a328 | 116 | toolexeclib_LTLIBRARIES = libgo.la |
41fd2d10 | 117 | toolexeclib_LIBRARIES = libgobegin.a libgolibbegin.a |
b5f8bff0 | 118 | endif |
e440a328 | 119 | |
e104cab8 | 120 | noinst_LIBRARIES = libgotool.a |
121 | ||
b978ac2f | 122 | toolexeclibgo_DATA = \ |
e440a328 | 123 | bufio.gox \ |
124 | bytes.gox \ | |
be239ed2 | 125 | context.gox \ |
31c6ec42 | 126 | crypto.gox \ |
0ce10ea1 | 127 | encoding.gox \ |
6692ad1d | 128 | errors.gox \ |
e440a328 | 129 | expvar.gox \ |
130 | flag.gox \ | |
131 | fmt.gox \ | |
e440a328 | 132 | hash.gox \ |
133 | html.gox \ | |
e440a328 | 134 | image.gox \ |
135 | io.gox \ | |
e440a328 | 136 | log.gox \ |
137 | math.gox \ | |
138 | mime.gox \ | |
139 | net.gox \ | |
e440a328 | 140 | os.gox \ |
e440a328 | 141 | path.gox \ |
e440a328 | 142 | reflect.gox \ |
143 | regexp.gox \ | |
e440a328 | 144 | runtime.gox \ |
e440a328 | 145 | sort.gox \ |
146 | strconv.gox \ | |
147 | strings.gox \ | |
148 | sync.gox \ | |
149 | syscall.gox \ | |
e440a328 | 150 | testing.gox \ |
151 | time.gox \ | |
86babf4b | 152 | unicode.gox |
e440a328 | 153 | |
b978ac2f | 154 | toolexeclibgoarchivedir = $(toolexeclibgodir)/archive |
e440a328 | 155 | |
b978ac2f | 156 | toolexeclibgoarchive_DATA = \ |
e440a328 | 157 | archive/tar.gox \ |
158 | archive/zip.gox | |
159 | ||
b978ac2f | 160 | toolexeclibgocompressdir = $(toolexeclibgodir)/compress |
e440a328 | 161 | |
b978ac2f | 162 | toolexeclibgocompress_DATA = \ |
31c6ec42 | 163 | compress/bzip2.gox \ |
e440a328 | 164 | compress/flate.gox \ |
165 | compress/gzip.gox \ | |
31c6ec42 | 166 | compress/lzw.gox \ |
e440a328 | 167 | compress/zlib.gox |
168 | ||
b978ac2f | 169 | toolexeclibgocontainerdir = $(toolexeclibgodir)/container |
e440a328 | 170 | |
b978ac2f | 171 | toolexeclibgocontainer_DATA = \ |
e440a328 | 172 | container/heap.gox \ |
173 | container/list.gox \ | |
fa5d125b | 174 | container/ring.gox |
e440a328 | 175 | |
b978ac2f | 176 | toolexeclibgocryptodir = $(toolexeclibgodir)/crypto |
e440a328 | 177 | |
b978ac2f | 178 | toolexeclibgocrypto_DATA = \ |
e440a328 | 179 | crypto/aes.gox \ |
48080209 | 180 | crypto/cipher.gox \ |
35a02ae0 | 181 | crypto/des.gox \ |
31c6ec42 | 182 | crypto/dsa.gox \ |
f9722886 | 183 | crypto/ecdsa.gox \ |
48080209 | 184 | crypto/elliptic.gox \ |
e440a328 | 185 | crypto/hmac.gox \ |
e440a328 | 186 | crypto/md5.gox \ |
e440a328 | 187 | crypto/rand.gox \ |
188 | crypto/rc4.gox \ | |
e440a328 | 189 | crypto/rsa.gox \ |
190 | crypto/sha1.gox \ | |
191 | crypto/sha256.gox \ | |
192 | crypto/sha512.gox \ | |
193 | crypto/subtle.gox \ | |
194 | crypto/tls.gox \ | |
86babf4b | 195 | crypto/x509.gox |
48080209 | 196 | |
49b4e44b | 197 | toolexeclibgocryptox509dir = $(toolexeclibgocryptodir)/x509 |
198 | ||
199 | toolexeclibgocryptox509_DATA = \ | |
200 | crypto/x509/pkix.gox | |
201 | ||
476d22b5 | 202 | toolexeclibgodatabasedir = $(toolexeclibgodir)/database |
203 | ||
204 | toolexeclibgodatabase_DATA = \ | |
205 | database/sql.gox | |
206 | ||
207 | toolexeclibgodatabasesqldir = $(toolexeclibgodatabasedir)/sql | |
208 | ||
209 | toolexeclibgodatabasesql_DATA = \ | |
210 | database/sql/driver.gox | |
211 | ||
b978ac2f | 212 | toolexeclibgodebugdir = $(toolexeclibgodir)/debug |
e440a328 | 213 | |
b978ac2f | 214 | toolexeclibgodebug_DATA = \ |
e440a328 | 215 | debug/dwarf.gox \ |
216 | debug/elf.gox \ | |
217 | debug/gosym.gox \ | |
218 | debug/macho.gox \ | |
a756a05a | 219 | debug/pe.gox \ |
c80b5132 | 220 | debug/plan9obj.gox \ |
221 | debug/xcoff.gox | |
e440a328 | 222 | |
b978ac2f | 223 | toolexeclibgoencodingdir = $(toolexeclibgodir)/encoding |
e440a328 | 224 | |
b978ac2f | 225 | toolexeclibgoencoding_DATA = \ |
e440a328 | 226 | encoding/ascii85.gox \ |
8388e3ab | 227 | encoding/asn1.gox \ |
48080209 | 228 | encoding/base32.gox \ |
e440a328 | 229 | encoding/base64.gox \ |
230 | encoding/binary.gox \ | |
8388e3ab | 231 | encoding/csv.gox \ |
8388e3ab | 232 | encoding/gob.gox \ |
e440a328 | 233 | encoding/hex.gox \ |
8388e3ab | 234 | encoding/json.gox \ |
235 | encoding/pem.gox \ | |
236 | encoding/xml.gox | |
e440a328 | 237 | |
b978ac2f | 238 | toolexeclibgogodir = $(toolexeclibgodir)/go |
e440a328 | 239 | |
b978ac2f | 240 | toolexeclibgogo_DATA = \ |
e440a328 | 241 | go/ast.gox \ |
49b4e44b | 242 | go/build.gox \ |
4a3da3a8 | 243 | go/constant.gox \ |
e440a328 | 244 | go/doc.gox \ |
3103c81f | 245 | go/format.gox \ |
4a3da3a8 | 246 | go/importer.gox \ |
e440a328 | 247 | go/parser.gox \ |
248 | go/printer.gox \ | |
249 | go/scanner.gox \ | |
4a3da3a8 | 250 | go/token.gox \ |
251 | go/types.gox | |
e440a328 | 252 | |
b978ac2f | 253 | toolexeclibgohashdir = $(toolexeclibgodir)/hash |
e440a328 | 254 | |
b978ac2f | 255 | toolexeclibgohash_DATA = \ |
e440a328 | 256 | hash/adler32.gox \ |
257 | hash/crc32.gox \ | |
f9722886 | 258 | hash/crc64.gox \ |
259 | hash/fnv.gox | |
e440a328 | 260 | |
8388e3ab | 261 | toolexeclibgohtmldir = $(toolexeclibgodir)/html |
e440a328 | 262 | |
8388e3ab | 263 | toolexeclibgohtml_DATA = \ |
264 | html/template.gox | |
e440a328 | 265 | |
b978ac2f | 266 | toolexeclibgoimagedir = $(toolexeclibgodir)/image |
e440a328 | 267 | |
b978ac2f | 268 | toolexeclibgoimage_DATA = \ |
fa5d125b | 269 | image/color.gox \ |
49b4e44b | 270 | image/draw.gox \ |
84911de8 | 271 | image/gif.gox \ |
e440a328 | 272 | image/jpeg.gox \ |
2da6f72b | 273 | image/png.gox |
e440a328 | 274 | |
0ce10ea1 | 275 | toolexeclibgoimagecolordir = $(toolexeclibgoimagedir)/color |
276 | ||
277 | toolexeclibgoimagecolor_DATA = \ | |
278 | image/color/palette.gox | |
279 | ||
b978ac2f | 280 | toolexeclibgoindexdir = $(toolexeclibgodir)/index |
e440a328 | 281 | |
b978ac2f | 282 | toolexeclibgoindex_DATA = \ |
e440a328 | 283 | index/suffixarray.gox |
284 | ||
b978ac2f | 285 | toolexeclibgoiodir = $(toolexeclibgodir)/io |
e440a328 | 286 | |
b978ac2f | 287 | toolexeclibgoio_DATA = \ |
e440a328 | 288 | io/ioutil.gox |
289 | ||
8388e3ab | 290 | toolexeclibgologdir = $(toolexeclibgodir)/log |
291 | ||
292 | toolexeclibgolog_DATA = \ | |
293 | log/syslog.gox | |
294 | ||
295 | toolexeclibgomathdir = $(toolexeclibgodir)/math | |
296 | ||
297 | toolexeclibgomath_DATA = \ | |
298 | math/big.gox \ | |
e104cab8 | 299 | math/bits.gox \ |
8388e3ab | 300 | math/cmplx.gox \ |
301 | math/rand.gox | |
302 | ||
b978ac2f | 303 | toolexeclibgomimedir = $(toolexeclibgodir)/mime |
e440a328 | 304 | |
b978ac2f | 305 | toolexeclibgomime_DATA = \ |
4a3da3a8 | 306 | mime/multipart.gox \ |
307 | mime/quotedprintable.gox | |
e440a328 | 308 | |
b978ac2f | 309 | toolexeclibgonetdir = $(toolexeclibgodir)/net |
e440a328 | 310 | |
b978ac2f | 311 | toolexeclibgonet_DATA = \ |
8388e3ab | 312 | net/http.gox \ |
313 | net/mail.gox \ | |
314 | net/rpc.gox \ | |
315 | net/smtp.gox \ | |
316 | net/textproto.gox \ | |
317 | net/url.gox | |
318 | ||
319 | toolexeclibgonethttpdir = $(toolexeclibgonetdir)/http | |
320 | ||
321 | toolexeclibgonethttp_DATA = \ | |
322 | net/http/cgi.gox \ | |
f4ca453c | 323 | net/http/cookiejar.gox \ |
8388e3ab | 324 | net/http/fcgi.gox \ |
325 | net/http/httptest.gox \ | |
be239ed2 | 326 | net/http/httptrace.gox \ |
8388e3ab | 327 | net/http/httputil.gox \ |
328 | net/http/pprof.gox | |
329 | ||
330 | toolexeclibgonetrpcdir = $(toolexeclibgonetdir)/rpc | |
331 | ||
332 | toolexeclibgonetrpc_DATA = \ | |
333 | net/rpc/jsonrpc.gox | |
e440a328 | 334 | |
b978ac2f | 335 | toolexeclibgoosdir = $(toolexeclibgodir)/os |
e440a328 | 336 | |
b978ac2f | 337 | toolexeclibgoos_DATA = \ |
8388e3ab | 338 | os/exec.gox \ |
2d2d80b8 | 339 | os/signal.gox \ |
2da6f72b | 340 | os/user.gox |
e440a328 | 341 | |
f9722886 | 342 | toolexeclibgopathdir = $(toolexeclibgodir)/path |
343 | ||
344 | toolexeclibgopath_DATA = \ | |
345 | path/filepath.gox | |
346 | ||
fa5d125b | 347 | toolexeclibgoregexpdir = $(toolexeclibgodir)/regexp |
348 | ||
349 | toolexeclibgoregexp_DATA = \ | |
350 | regexp/syntax.gox | |
351 | ||
b978ac2f | 352 | toolexeclibgoruntimedir = $(toolexeclibgodir)/runtime |
e440a328 | 353 | |
b978ac2f | 354 | toolexeclibgoruntime_DATA = \ |
48080209 | 355 | runtime/debug.gox \ |
ccea2b36 | 356 | runtime/pprof.gox \ |
357 | runtime/trace.gox | |
e440a328 | 358 | |
31c6ec42 | 359 | toolexeclibgosyncdir = $(toolexeclibgodir)/sync |
360 | ||
361 | toolexeclibgosync_DATA = \ | |
362 | sync/atomic.gox | |
363 | ||
b978ac2f | 364 | toolexeclibgotestingdir = $(toolexeclibgodir)/testing |
e440a328 | 365 | |
b978ac2f | 366 | toolexeclibgotesting_DATA = \ |
e440a328 | 367 | testing/iotest.gox \ |
2d2d80b8 | 368 | testing/quick.gox |
e440a328 | 369 | |
84dd8337 | 370 | toolexeclibgotestinginternaldir = $(toolexeclibgotestingdir)/internal |
371 | ||
372 | toolexeclibgotestinginternal_DATA = \ | |
373 | testing/internal/testdeps.gox | |
374 | ||
8388e3ab | 375 | toolexeclibgotextdir = $(toolexeclibgodir)/text |
376 | ||
377 | toolexeclibgotext_DATA = \ | |
378 | text/scanner.gox \ | |
379 | text/tabwriter.gox \ | |
380 | text/template.gox | |
381 | ||
382 | toolexeclibgotexttemplatedir = $(toolexeclibgotextdir)/template | |
383 | ||
384 | toolexeclibgotexttemplate_DATA = \ | |
385 | text/template/parse.gox | |
386 | ||
387 | toolexeclibgounicodedir = $(toolexeclibgodir)/unicode | |
388 | ||
389 | toolexeclibgounicode_DATA = \ | |
390 | unicode/utf16.gox \ | |
391 | unicode/utf8.gox | |
392 | ||
ba0f39c8 | 393 | # Some packages are only needed for tests, so unlike the other |
394 | # internal packages nothing will explicitly depend on them. | |
395 | # Force them to be built. | |
396 | noinst_DATA = \ | |
33d1d391 | 397 | golang_org/x/net/internal/nettest.gox \ |
398 | golang_org/x/net/nettest.gox \ | |
ba0f39c8 | 399 | internal/testenv.gox \ |
107dc7fc | 400 | internal/trace.gox \ |
33d1d391 | 401 | net/internal/socktest.gox \ |
79bf8be0 | 402 | os/signal/internal/pty.gox \ |
403 | runtime/pprof/internal/profile.gox | |
ba0f39c8 | 404 | |
e440a328 | 405 | if LIBGO_IS_RTEMS |
406 | rtems_task_variable_add_file = runtime/rtems-task-variable-add.c | |
407 | else | |
408 | rtems_task_variable_add_file = | |
409 | endif | |
410 | ||
e04e2524 | 411 | if LIBGO_IS_LINUX |
412 | runtime_getncpu_file = runtime/getncpu-linux.c | |
413 | else | |
414 | if LIBGO_IS_DARWIN | |
415 | runtime_getncpu_file = runtime/getncpu-bsd.c | |
416 | else | |
417 | if LIBGO_IS_IRIX | |
418 | runtime_getncpu_file = runtime/getncpu-irix.c | |
419 | else | |
420 | if LIBGO_IS_SOLARIS | |
421 | runtime_getncpu_file = runtime/getncpu-solaris.c | |
422 | else | |
423 | if LIBGO_IS_FREEBSD | |
424 | runtime_getncpu_file = runtime/getncpu-bsd.c | |
425 | else | |
426 | if LIBGO_IS_NETBSD | |
427 | runtime_getncpu_file = runtime/getncpu-bsd.c | |
428 | else | |
03118c21 | 429 | if LIBGO_IS_AIX |
430 | runtime_getncpu_file = runtime/getncpu-aix.c | |
431 | else | |
e04e2524 | 432 | runtime_getncpu_file = runtime/getncpu-none.c |
433 | endif | |
434 | endif | |
435 | endif | |
436 | endif | |
437 | endif | |
438 | endif | |
03118c21 | 439 | endif |
e04e2524 | 440 | |
e440a328 | 441 | runtime_files = \ |
4cee8921 | 442 | runtime/aeshash.c \ |
e440a328 | 443 | runtime/go-assert.c \ |
e440a328 | 444 | runtime/go-caller.c \ |
2d2d80b8 | 445 | runtime/go-callers.c \ |
1850e20c | 446 | runtime/go-cdiv.c \ |
ab0157dd | 447 | runtime/go-cgo.c \ |
e440a328 | 448 | runtime/go-construct-map.c \ |
02d42640 | 449 | runtime/go-ffi.c \ |
149eabc5 | 450 | runtime/go-fieldtrack.c \ |
5b49fca6 | 451 | runtime/go-matherr.c \ |
0d5530d9 | 452 | runtime/go-memclr.c \ |
0b6b034c | 453 | runtime/go-memcmp.c \ |
0d5530d9 | 454 | runtime/go-memequal.c \ |
455 | runtime/go-memmove.c \ | |
e440a328 | 456 | runtime/go-nanotime.c \ |
43eb1b72 | 457 | runtime/go-now.c \ |
8202cb3c | 458 | runtime/go-nosys.c \ |
e440a328 | 459 | runtime/go-reflect-call.c \ |
e440a328 | 460 | runtime/go-runtime-error.c \ |
84911de8 | 461 | runtime/go-setenv.c \ |
e440a328 | 462 | runtime/go-signal.c \ |
e440a328 | 463 | runtime/go-strslice.c \ |
e440a328 | 464 | runtime/go-typedesc-equal.c \ |
e440a328 | 465 | runtime/go-unsafe-pointer.c \ |
f11c2155 | 466 | runtime/go-unsetenv.c \ |
e440a328 | 467 | runtime/go-unwind.c \ |
9eb89a08 | 468 | runtime/go-varargs.c \ |
362133b5 | 469 | runtime/env_posix.c \ |
fb08d005 | 470 | runtime/panic.c \ |
ea45cfe0 | 471 | runtime/print.c \ |
e440a328 | 472 | runtime/proc.c \ |
41fd2d10 | 473 | runtime/runtime_c.c \ |
03118c21 | 474 | runtime/stack.c \ |
e440a328 | 475 | runtime/thread.c \ |
fa5d125b | 476 | runtime/yield.c \ |
e440a328 | 477 | $(rtems_task_variable_add_file) \ |
e04e2524 | 478 | $(runtime_getncpu_file) |
e440a328 | 479 | |
e440a328 | 480 | version.go: s-version; @true |
481 | s-version: Makefile | |
482 | rm -f version.go.tmp | |
91d733e1 | 483 | echo "package sys" > version.go.tmp |
a38180cf | 484 | echo 'func init() { DefaultGoroot = "$(prefix)" }' >> version.go.tmp |
91d733e1 | 485 | echo 'const TheVersion = "'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'"' >> version.go.tmp |
03118c21 | 486 | echo 'const Goexperiment = ``' >> version.go.tmp |
91d733e1 | 487 | echo 'const GOARCH = "'$(GOARCH)'"' >> version.go.tmp |
488 | echo 'const GOOS = "'$(GOOS)'"' >> version.go.tmp | |
489 | echo 'const GccgoToolDir = "$(libexecsubdir)"' >> version.go.tmp | |
490 | echo >> version.go.tmp | |
491 | echo "type ArchFamilyType int" >> version.go.tmp | |
492 | echo >> version.go.tmp | |
493 | echo "const (" >> version.go.tmp | |
494 | echo " UNKNOWN ArchFamilyType = iota" >> version.go.tmp | |
495 | for a in $(ALLGOARCHFAMILY); do \ | |
496 | echo " $${a}" >> version.go.tmp; \ | |
497 | done | |
498 | echo ")" >> version.go.tmp | |
499 | echo >> version.go.tmp | |
500 | for a in $(ALLGOARCH); do \ | |
501 | f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \ | |
502 | n="$${f}`echo $${a} | sed -e 's/.//'`"; \ | |
503 | if test "$${a}" = "$(GOARCH)"; then \ | |
504 | echo "const Goarch$${n} = 1" >> version.go.tmp; \ | |
505 | else \ | |
506 | echo "const Goarch$${n} = 0" >> version.go.tmp; \ | |
507 | fi; \ | |
508 | done | |
509 | echo >> version.go.tmp | |
510 | echo "const (" >> version.go.tmp | |
a3cba53d | 511 | echo " ArchFamily = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) family`" >> version.go.tmp |
512 | echo " BigEndian = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) bigendian`" >> version.go.tmp | |
513 | echo " CacheLineSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> version.go.tmp | |
514 | echo " DefaultPhysPageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) defaultphyspagesize`" >> version.go.tmp | |
515 | echo " HugePageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) hugepagesize`" >> version.go.tmp | |
516 | echo " Int64Align = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) int64align`" >> version.go.tmp | |
517 | echo " MinFrameSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) minframesize`" >> version.go.tmp | |
518 | echo " PCQuantum = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) pcquantum`" >> version.go.tmp | |
91d733e1 | 519 | echo ")" >> version.go.tmp |
520 | echo >> version.go.tmp | |
521 | for a in $(ALLGOOS); do \ | |
522 | f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \ | |
523 | n="$${f}`echo $${a} | sed -e 's/.//'`"; \ | |
524 | if test "$${a}" = "$(GOOS)"; then \ | |
525 | echo "const Goos$${n} = 1" >> version.go.tmp; \ | |
526 | else \ | |
527 | echo "const Goos$${n} = 0" >> version.go.tmp; \ | |
528 | fi; \ | |
529 | done | |
530 | echo >> version.go.tmp | |
531 | echo "type Uintreg uintptr" >> version.go.tmp | |
e650f89d | 532 | $(SHELL) $(srcdir)/mvifdiff.sh version.go.tmp version.go |
e440a328 | 533 | $(STAMP) $@ |
534 | ||
cb80685b | 535 | cpugen.go: s-cpu; @true |
536 | s-cpu: Makefile | |
537 | rm -f cpugen.go.tmp | |
538 | echo "package cpu" > cpugen.go.tmp | |
539 | echo "const CacheLineSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> cpugen.go.tmp | |
540 | $(SHELL) $(srcdir)/mvifdiff.sh cpugen.go.tmp cpugen.go | |
541 | $(STAMP) $@ | |
542 | ||
33d1d391 | 543 | objabi.go: s-objabi; @true |
544 | s-objabi: Makefile | |
545 | rm -f objabi.go.tmp | |
546 | echo "package objabi" > objabi.go.tmp | |
547 | echo "import \"runtime\"" >> objabi.go.tmp | |
a38180cf | 548 | echo 'func init() { defaultGOROOT = `$(prefix)` }' >> objabi.go.tmp |
33d1d391 | 549 | echo 'const defaultGO386 = `sse2`' >> objabi.go.tmp |
550 | echo 'const defaultGOARM = `5`' >> objabi.go.tmp | |
551 | echo 'const defaultGOMIPS = `hardfloat`' >> objabi.go.tmp | |
b0751b12 | 552 | echo 'const defaultGOMIPS64 = `hardfloat`' >> objabi.go.tmp |
33d1d391 | 553 | echo 'const defaultGOOS = runtime.GOOS' >> objabi.go.tmp |
554 | echo 'const defaultGOARCH = runtime.GOARCH' >> objabi.go.tmp | |
555 | echo 'const defaultGO_EXTLINK_ENABLED = ``' >> objabi.go.tmp | |
556 | echo 'const version = `'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'`' >> objabi.go.tmp | |
557 | echo 'const stackGuardMultiplier = 1' >> objabi.go.tmp | |
558 | echo 'const goexperiment = ``' >> objabi.go.tmp | |
559 | $(SHELL) $(srcdir)/mvifdiff.sh objabi.go.tmp objabi.go | |
560 | $(STAMP) $@ | |
561 | ||
a3cba53d | 562 | gccgosizes.go: s-gccgosizes; @true |
563 | s-gccgosizes: Makefile goarch.sh | |
564 | rm -f gccgosizes.go.tmp | |
565 | echo "package types" > gccgosizes.go.tmp | |
566 | echo >> gccgosizes.go.tmp | |
567 | echo "var gccgoArchSizes = map[string]*StdSizes{" >> gccgosizes.go.tmp | |
568 | for a in $(ALLGOARCH); do \ | |
569 | ptrsize=`$(SHELL) $(srcdir)/goarch.sh $$a ptrsize`; \ | |
570 | maxalign=`$(SHELL) $(srcdir)/goarch.sh $$a maxalign`; \ | |
571 | echo " \"$$a\": {$${ptrsize}, $${maxalign}}," >> gccgosizes.go.tmp; \ | |
572 | done | |
573 | echo "}" >> gccgosizes.go.tmp | |
574 | $(SHELL) $(srcdir)/mvifdiff.sh gccgosizes.go.tmp gccgosizes.go | |
575 | $(STAMP) $@ | |
576 | ||
9ac07c16 | 577 | runtime_sysinfo.go: s-runtime_sysinfo; @true |
0dad6de4 | 578 | s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go |
c536feb4 | 579 | GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh |
9ac07c16 | 580 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go |
581 | $(STAMP) $@ | |
582 | ||
87211034 | 583 | sigtab.go: s-sigtab; @true |
584 | s-sigtab: $(srcdir)/mksigtab.sh gen-sysinfo.go | |
585 | GOOS=$(GOOS) $(SHELL) $(srcdir)/mksigtab.sh > tmp-sigtab.go | |
586 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-sigtab.go sigtab.go | |
587 | $(STAMP) $@ | |
588 | ||
e104cab8 | 589 | GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)') |
590 | GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') | |
591 | GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)') | |
592 | ||
593 | zdefaultcc.go: s-zdefaultcc; @true | |
594 | s-zdefaultcc: Makefile | |
595 | echo 'package cfg' > zdefaultcc.go.tmp | |
596 | echo >> zdefaultcc.go.tmp | |
33d1d391 | 597 | echo 'func DefaultGCCGO(goos, goarch string) string { return "$(bindir)/$(GCCGO_INSTALL_NAME)" }' >> zdefaultcc.go.tmp |
598 | echo 'func DefaultCC(goos, goarch string) string { return "$(GCC_INSTALL_NAME)" }' >> zdefaultcc.go.tmp | |
599 | echo 'func DefaultCXX(goos, goarch string) string { return "$(GXX_INSTALL_NAME)" }' >> zdefaultcc.go.tmp | |
e104cab8 | 600 | echo 'const DefaultPkgConfig = "pkg-config"' >> zdefaultcc.go.tmp |
33d1d391 | 601 | echo 'var OSArchSupportsCgo = map[string]bool{}' >> zdefaultcc.go.tmp |
e104cab8 | 602 | $(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go |
603 | $(STAMP) $@ | |
604 | ||
497f3a64 | 605 | # Post-process runtime.inc.raw (raw output of -fgo-c-header option when |
606 | # compiling runtime) to prune out certain types that should not be | |
607 | # exported back to C. See comments in mkruntimeinc.sh for more details. | |
41fd2d10 | 608 | runtime.inc: s-runtime-inc; @true |
609 | s-runtime-inc: runtime.lo Makefile | |
497f3a64 | 610 | $(SHELL) $(srcdir)/mkruntimeinc.sh |
611 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime.inc runtime.inc | |
41fd2d10 | 612 | $(STAMP) $@ |
613 | ||
024464e5 | 614 | noinst_DATA += zdefaultcc.go |
39eba414 | 615 | |
616 | # Generate the list of go std packages that were included in libgo | |
617 | zstdpkglist.go: s-zstdpkglist; @true | |
618 | s-zstdpkglist: Makefile | |
619 | rm -f zstdpkglist.go.tmp | |
b0751b12 | 620 | echo 'package goroot' > zstdpkglist.go.tmp |
39eba414 | 621 | echo "" >> zstdpkglist.go.tmp |
622 | echo 'var stdpkg = map[string]bool{' >> zstdpkglist.go.tmp | |
03118c21 | 623 | echo $(libgo_go_objs) 'unsafe.lo' 'runtime/cgo.lo' | sed 's|[a-z0-9_/]*_c\.lo||g' | sed 's|\([a-z0-9_/]*\)\.lo|"\1": true,|g' >> zstdpkglist.go.tmp |
39eba414 | 624 | echo '}' >> zstdpkglist.go.tmp |
625 | $(SHELL) $(srcdir)/mvifdiff.sh zstdpkglist.go.tmp zstdpkglist.go | |
626 | $(STAMP) $@ | |
627 | ||
fb08d005 | 628 | if LIBGO_IS_LINUX |
1a5b255c | 629 | syscall_epoll_file = epoll.go |
be239ed2 | 630 | else |
1a5b255c | 631 | syscall_epoll_file = |
f11c2155 | 632 | endif |
4a3da3a8 | 633 | |
d477de41 | 634 | libcalls.go: s-libcalls; @true |
1a5b255c | 635 | s-libcalls: libcalls-list go/syscall/mksyscall.awk $(srcdir)/go/syscall/*.go |
d477de41 | 636 | rm -f libcalls.go.tmp |
1a5b255c | 637 | $(AWK) -f $(srcdir)/go/syscall/mksyscall.awk `cat libcalls-list` > libcalls.go.tmp |
e650f89d | 638 | $(SHELL) $(srcdir)/mvifdiff.sh libcalls.go.tmp libcalls.go |
d477de41 | 639 | $(STAMP) $@ |
640 | ||
c85c799d | 641 | libcalls-list: s-libcalls-list; @true |
1a5b255c | 642 | s-libcalls-list: Makefile $(srcdir)/go/syscall/*.go |
c85c799d | 643 | rm -f libcalls-list.tmp |
1a5b255c | 644 | $(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/syscall $(matchargs_syscall) > libcalls-list.tmp |
e650f89d | 645 | $(SHELL) $(srcdir)/mvifdiff.sh libcalls-list.tmp libcalls-list |
c85c799d | 646 | $(STAMP) $@ |
647 | ||
7731bf71 | 648 | syscall_arch.go: s-syscall_arch; @true |
649 | s-syscall_arch: Makefile | |
650 | rm -f syscall_arch.go.tmp | |
651 | echo "package syscall" > syscall_arch.go.tmp | |
652 | echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp | |
6b376419 | 653 | echo 'const OS = "'$(GOOS)'"' >> syscall_arch.go.tmp |
e650f89d | 654 | $(SHELL) $(srcdir)/mvifdiff.sh syscall_arch.go.tmp syscall_arch.go |
7731bf71 | 655 | $(STAMP) $@ |
656 | ||
bfac90c5 | 657 | SYSINFO_FLAGS = \ |
658 | $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | |
659 | $(CPPFLAGS) $(OSCFLAGS) -O | |
660 | ||
661 | gen-sysinfo.go: s-gen-sysinfo; @true | |
662 | s-gen-sysinfo: $(srcdir)/sysinfo.c config.h | |
663 | $(CC) $(SYSINFO_FLAGS) -fdump-go-spec=tmp-gen-sysinfo.go -std=gnu99 -S -o sysinfo.s $(srcdir)/sysinfo.c | |
664 | rm -f sysinfo.s | |
665 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-gen-sysinfo.go gen-sysinfo.go | |
666 | $(STAMP) $@ | |
667 | ||
668 | errno.i: s-errno; @true | |
669 | s-errno: | |
670 | echo '#include <errno.h>' | $(CC) $(SYSINFO_FLAGS) -x c - -E -dM > tmp-errno.i | |
671 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-errno.i errno.i | |
672 | $(STAMP) $@ | |
673 | ||
d477de41 | 674 | sysinfo.go: s-sysinfo; @true |
bfac90c5 | 675 | s-sysinfo: $(srcdir)/mksysinfo.sh gen-sysinfo.go errno.i |
0a76ba3c | 676 | GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mksysinfo.sh |
e650f89d | 677 | $(SHELL) $(srcdir)/mvifdiff.sh tmp-sysinfo.go sysinfo.go |
d477de41 | 678 | $(STAMP) $@ |
e440a328 | 679 | |
d772e63b | 680 | # The epoll struct has an embedded union and is packed on x86_64, |
681 | # which is too complicated for mksysinfo.sh. We find the offset of | |
682 | # the only field we care about in configure.ac, and generate the | |
683 | # struct here. | |
684 | epoll.go: s-epoll; @true | |
685 | s-epoll: Makefile | |
686 | rm -f epoll.go.tmp | |
687 | echo 'package syscall' > epoll.go.tmp | |
688 | echo 'type EpollEvent struct {' >> epoll.go.tmp | |
689 | echo ' Events uint32' >> epoll.go.tmp | |
690 | case "$(SIZEOF_STRUCT_EPOLL_EVENT),$(STRUCT_EPOLL_EVENT_FD_OFFSET)" in \ | |
691 | 0,0) echo 1>&2 "*** struct epoll_event data.fd offset unknown"; \ | |
692 | exit 1; ;; \ | |
693 | 8,4) echo ' Fd int32' >> epoll.go.tmp; ;; \ | |
694 | 12,4) echo ' Fd int32' >> epoll.go.tmp; \ | |
695 | echo ' Pad [4]byte' >> epoll.go.tmp; ;; \ | |
696 | 12,8) echo ' Pad [4]byte' >> epoll.go.tmp; \ | |
697 | echo ' Fd int32' >> epoll.go.tmp; ;; \ | |
698 | 16,8) echo ' Pad [4]byte' >> epoll.go.tmp; \ | |
699 | echo ' Fd int32' >> epoll.go.tmp; \ | |
700 | echo ' Pad2 [4]byte' >> epoll.go.tmp; ;; \ | |
701 | *) echo 1>&2 "*** struct epoll_event unsupported"; \ | |
702 | exit 1; ;; \ | |
703 | esac | |
704 | echo '}' >> epoll.go.tmp | |
e650f89d | 705 | $(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go |
d772e63b | 706 | $(STAMP) $@ |
707 | ||
0509fa0e | 708 | if LIBGO_IS_LINUX |
709 | syscall_lib_clone_lo = syscall/clone_linux.lo | |
710 | else | |
711 | syscall_lib_clone_lo = | |
712 | endif | |
713 | ||
497f3a64 | 714 | PACKAGES = $(shell cat $(srcdir)/libgo-packages.txt) |
41fd2d10 | 715 | |
e440a328 | 716 | libgo_go_objs = \ |
41fd2d10 | 717 | $(addsuffix .lo,$(PACKAGES)) \ |
cf92e749 | 718 | bytes/index.lo \ |
b0751b12 | 719 | internal/bytealg/bytealg.lo \ |
02d42640 | 720 | reflect/makefunc_ffi_c.lo \ |
0ce10ea1 | 721 | strings/index.lo \ |
0509fa0e | 722 | $(syscall_lib_clone_lo) \ |
af6c04d9 | 723 | syscall/errno.lo \ |
724 | syscall/signame.lo \ | |
725 | syscall/wait.lo \ | |
ccea2b36 | 726 | $(golang_org_x_net_lif_lo) \ |
be239ed2 | 727 | $(golang_org_x_net_route_lo) \ |
8388e3ab | 728 | log/syslog/syslog_c.lo \ |
cf92e749 | 729 | $(os_lib_inotify_lo) \ |
d7396829 | 730 | runtime/internal/atomic_c.lo \ |
b0751b12 | 731 | sync/atomic_c.lo \ |
732 | internal/cpu/cpu_gccgo.lo | |
e440a328 | 733 | |
b5f8bff0 | 734 | libgo_ldflags = \ |
747e4b8f | 735 | -version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS) |
69db433d | 736 | |
b5f8bff0 | 737 | libgo_libadd = \ |
e4fbfaf5 | 738 | $(libgo_go_objs) ../libbacktrace/libbacktrace.la \ |
7920387d | 739 | $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) |
e440a328 | 740 | |
b5f8bff0 | 741 | libgo_la_SOURCES = $(runtime_files) |
742 | libgo_la_LDFLAGS = $(libgo_ldflags) | |
743 | libgo_la_LIBADD = $(libgo_libadd) | |
744 | ||
745 | libgo_llgo_la_SOURCES = $(runtime_files) | |
746 | libgo_llgo_la_LDFLAGS = $(libgo_ldflags) | |
747 | libgo_llgo_la_LIBADD = $(libgo_libadd) | |
748 | ||
e440a328 | 749 | libgobegin_a_SOURCES = \ |
750 | runtime/go-main.c | |
751 | ||
b5f8bff0 | 752 | libgobegin_llgo_a_SOURCES = \ |
753 | runtime/go-main.c | |
754 | ||
c7054352 | 755 | # Use -fPIC for libgobegin so that it can be put in a PIE. |
756 | libgobegin_a_CFLAGS = $(AM_CFLAGS) -fPIC | |
757 | libgobegin_llgo_a_CFLAGS = $(AM_CFLAGS) -fPIC | |
758 | ||
87bb0884 | 759 | libgolibbegin_a_SOURCES = \ |
760 | runtime/go-libmain.c | |
761 | ||
762 | libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC | |
763 | ||
497f3a64 | 764 | GOTOOL_PACKAGES = $(shell cat $(srcdir)/gotool-packages.txt) |
e104cab8 | 765 | |
766 | libgotool_a_SOURCES = | |
767 | libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES)) | |
768 | libgotool_a_LIBADD = $(addsuffix .o,$(GOTOOL_PACKAGES)) | |
769 | ||
ba0f39c8 | 770 | define STATIC_template |
771 | $(subst -,_,$(subst .,_,$(subst /,_,$(1))))_GOCFLAGS = -static | |
772 | endef | |
773 | ||
774 | $(foreach package,$(GOTOOL_PACKAGES),$(eval $(call STATIC_template,$(package).lo))) | |
775 | ||
9ac07c16 | 776 | # Make sure runtime.inc is built before compiling any .c file. |
777 | $(libgo_la_OBJECTS): runtime.inc | |
778 | $(libgo_llgo_la_OBJECTS): runtime.inc | |
779 | $(libgobegin_a_OBJECTS): runtime.inc | |
780 | $(libgobegin_llgo_a_OBJECTS): runtime.inc | |
781 | $(libgolibbegin_a_OBJECTS): runtime.inc | |
782 | ||
e440a328 | 783 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) |
784 | ||
785 | GOCFLAGS = $(CFLAGS) | |
242418a3 | 786 | AM_GOCFLAGS = $(STRINGOPS_FLAG) $(GO_SPLIT_STACK) |
e440a328 | 787 | GOCOMPILE = $(GOC) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_GOCFLAGS) $(GOCFLAGS) |
788 | ||
789 | LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \ | |
790 | $(AM_GOCFLAGS) $(GOCFLAGS) | |
791 | ||
792 | GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \ | |
cea7ac49 | 793 | $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) -o $@ |
e440a328 | 794 | |
4180345a | 795 | # Build the dependencies for a Go package. |
796 | BUILDDEPS = \ | |
797 | $(MKDIR_P) $(@D); \ | |
41fd2d10 | 798 | dir=`echo $@ | sed -e 's/.lo.dep$$//'`; \ |
799 | files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$$dir --extrafiles="$(extra_go_files_$(subst /,_,$(subst .lo.dep,,$@)))" $(matchargs_$(subst /,_,$(subst .lo.dep,,$@)))`; \ | |
1a5b255c | 800 | $(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $$files > $@.tmp; \ |
b9fbd3ed | 801 | if ! cmp $@.tmp $@ >/dev/null 2>/dev/null; then \ |
802 | rm -f `echo $@ | sed -e 's/\.dep$$//'`; \ | |
803 | fi; \ | |
4180345a | 804 | mv -f $@.tmp $@ |
805 | ||
cf92e749 | 806 | # Build the .go files for a package, generating a .lo file. |
da37c8f8 | 807 | BUILDPACKAGE = \ |
cf92e749 | 808 | $(MKDIR_P) $(@D); \ |
1a5b255c | 809 | files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \ |
7bd7c2ef | 810 | $(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's|golang_org|vendor/golang_org|'` $($(subst -,_,$(subst .,_,$(subst /,_,$@)))_GOCFLAGS) -o $@ $$files |
e440a328 | 811 | |
41fd2d10 | 812 | # How to build a .gox file from a .lo file. |
03118c21 | 813 | # Matching .o file can either be in the same directory as the .lo (non-PIC |
814 | # object) or in the .libs directory (PIC object). | |
41fd2d10 | 815 | BUILDGOX = \ |
03118c21 | 816 | f="$(basename $<).o"; \ |
817 | if test ! -f $$f; then \ | |
818 | f="$(basename $(<D)/.libs/$(<F)).o"; \ | |
819 | fi; \ | |
6a192a8f | 820 | $(OBJCOPY) -j .go_export $$f $@.tmp; \ |
821 | $(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'` | |
547259ef | 822 | |
c64c4bba | 823 | GOTESTFLAGS = |
74e836ee | 824 | GOBENCH = |
c64c4bba | 825 | |
e440a328 | 826 | # Check a package. |
827 | CHECK = \ | |
421f9512 | 828 | GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \ |
e440a328 | 829 | export GC; \ |
e104cab8 | 830 | GOLIBS="$(extra_check_libs_$(subst /,_,$(@D))) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \ |
3329144e | 831 | export GOLIBS; \ |
e440a328 | 832 | RUNTESTFLAGS="$(RUNTESTFLAGS)"; \ |
833 | export RUNTESTFLAGS; \ | |
834 | MAKE="$(MAKE)"; \ | |
835 | export MAKE; \ | |
03118c21 | 836 | NM="$(NM)"; \ |
837 | export NM; \ | |
ef6ff05d | 838 | libgccdir=`${GOC} ${GOCFLAGS} -print-libgcc-file-name | sed -e 's|/[^/]*$$||'`; \ |
421f9512 | 839 | LD_LIBRARY_PATH="`${PWD_COMMAND}`/.libs:$${libgccdir}:${LD_LIBRARY_PATH}"; \ |
f3f32e34 | 840 | LD_LIBRARY_PATH=`echo $${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ |
841 | export LD_LIBRARY_PATH; \ | |
2802d6cb | 842 | $(MKDIR_P) $(@D); \ |
47211067 | 843 | rm -f $@-testsum $@-testlog; \ |
1a5b255c | 844 | files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \ |
6222f4a8 | 845 | if test "$(USE_DEJAGNU)" = "yes"; then \ |
1a5b255c | 846 | $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \ |
74e836ee | 847 | elif test "$(GOBENCH)" != ""; then \ |
1a5b255c | 848 | $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \ |
1e0bfd3f | 849 | else \ |
1a5b255c | 850 | if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \ |
d35fc6b0 | 851 | echo "PASS: $(@D)" >> $@-testlog; \ |
47211067 | 852 | echo "PASS: $(@D)"; \ |
853 | echo "PASS: $(@D)" > $@-testsum; \ | |
23b859f6 | 854 | else \ |
d35fc6b0 | 855 | echo "FAIL: $(@D)" >> $@-testlog; \ |
856 | cat $@-testlog; \ | |
47211067 | 857 | echo "FAIL: $(@D)" > $@-testsum; \ |
23b859f6 | 858 | exit 1; \ |
859 | fi; \ | |
1e0bfd3f | 860 | fi |
e440a328 | 861 | |
862 | # Build all packages before checking any. | |
b5f8bff0 | 863 | CHECK_DEPS = \ |
e440a328 | 864 | $(toolexeclibgo_DATA) \ |
d35fc6b0 | 865 | $(toolexeclibgoarchive_DATA) \ |
866 | $(toolexeclibgocompress_DATA) \ | |
867 | $(toolexeclibgocontainer_DATA) \ | |
868 | $(toolexeclibgocrypto_DATA) \ | |
d35fc6b0 | 869 | $(toolexeclibgodebug_DATA) \ |
870 | $(toolexeclibgoencoding_DATA) \ | |
d35fc6b0 | 871 | $(toolexeclibgogo_DATA) \ |
872 | $(toolexeclibgohash_DATA) \ | |
d35fc6b0 | 873 | $(toolexeclibgoimage_DATA) \ |
874 | $(toolexeclibgoindex_DATA) \ | |
875 | $(toolexeclibgoio_DATA) \ | |
8388e3ab | 876 | $(toolexeclibgolog_DATA) \ |
877 | $(toolexeclibgomath_DATA) \ | |
d35fc6b0 | 878 | $(toolexeclibgomime_DATA) \ |
879 | $(toolexeclibgonet_DATA) \ | |
8388e3ab | 880 | $(toolexeclibgonethttp_DATA) \ |
d35fc6b0 | 881 | $(toolexeclibgoos_DATA) \ |
882 | $(toolexeclibgopath_DATA) \ | |
883 | $(toolexeclibgorpc_DATA) \ | |
884 | $(toolexeclibgoruntime_DATA) \ | |
885 | $(toolexeclibgosync_DATA) \ | |
8388e3ab | 886 | $(toolexeclibgotesting_DATA) \ |
887 | $(toolexeclibgotext_DATA) \ | |
888 | $(toolexeclibgotexttemplate_DATA) \ | |
e104cab8 | 889 | $(toolexeclibgounicode_DATA) \ |
79bf8be0 | 890 | $(noinst_DATA) \ |
e104cab8 | 891 | $(noinst_LIBRARIES) |
e440a328 | 892 | |
b5f8bff0 | 893 | if GOC_IS_LLGO |
894 | CHECK_DEPS += libgo-llgo.la libgobegin-llgo.a | |
895 | else | |
896 | CHECK_DEPS += libgo.la libgobegin.a | |
897 | endif | |
898 | ||
41fd2d10 | 899 | # PACKAGE_template defines the rules for each package. |
900 | # For example, for the package bufio, it produces: | |
901 | # | |
902 | # @go_include@ bufio.lo.dep | |
903 | # bufio.lo.dep: $(srcdir)/go/bufio/*.go | |
904 | # $(BUILDDEPS) | |
905 | # bufio.lo: | |
906 | # $(BUILDPACKAGE) | |
907 | # bufio/check: $(CHECK_DEPS) | |
908 | # @$(CHECK) | |
909 | # .PHONY: bufio/check | |
910 | # | |
911 | # This is invoked with $(1) set to a package, which is a directory name, | |
912 | # such as "bufio" or "archive/tar". | |
913 | define PACKAGE_template | |
914 | @go_include@ $(1).lo.dep | |
915 | $(1).lo.dep: $(srcdir)/go/$(1)/*.go | |
916 | $$(BUILDDEPS) | |
917 | $(1).lo: | |
918 | $$(BUILDPACKAGE) | |
919 | $(1)/check: $$(CHECK_DEPS) | |
920 | @$$(CHECK) | |
921 | .PHONY: $(1)/check | |
6a192a8f | 922 | $(1).gox: $(1).s-gox; @true |
923 | $(1).s-gox: $(1).lo | |
41fd2d10 | 924 | $$(BUILDGOX) |
6a192a8f | 925 | $$(STAMP) $$@ |
41fd2d10 | 926 | endef |
927 | ||
928 | # This line expands PACKAGE_template once for each package name listed | |
929 | # in $(PACKAGES). | |
930 | $(foreach package,$(PACKAGES),$(eval $(call PACKAGE_template,$(package)))) | |
e104cab8 | 931 | $(foreach package,$(GOTOOL_PACKAGES),$(eval $(call PACKAGE_template,$(package)))) |
41fd2d10 | 932 | |
933 | # Pass -ffp-contract=off, or 386-specific options, when building the | |
934 | # math package. MATH_FLAG is defined in configure.ac. | |
935 | math_lo_GOCFLAGS = $(MATH_FLAG) | |
ff60d2b1 | 936 | math_check_GOCFLAGS = $(MATH_FLAG) |
41fd2d10 | 937 | |
938 | # Add the generated file runtime_sysinfo.go to the runtime package. | |
87211034 | 939 | extra_go_files_runtime = runtime_sysinfo.go sigtab.go |
41fd2d10 | 940 | runtime.lo.dep: $(extra_go_files_runtime) |
1a5b255c | 941 | |
41fd2d10 | 942 | # Add generated files to the syscall package. |
943 | extra_go_files_syscall = \ | |
944 | libcalls.go \ | |
945 | sysinfo.go \ | |
946 | syscall_arch.go \ | |
947 | $(syscall_epoll_file) | |
948 | syscall.lo.dep: $(extra_go_files_syscall) | |
949 | ||
950 | # Pass -fgo-compiling-runtime when compiling the runtime package. | |
497f3a64 | 951 | runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.raw -fgo-compiling-runtime |
e0722a99 | 952 | runtime_check_GOCFLAGS = -fgo-compiling-runtime |
41fd2d10 | 953 | runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime |
954 | runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime | |
955 | runtime_internal_sys_lo_GOCFLAGS = -fgo-compiling-runtime | |
956 | runtime_internal_sys_lo_check_GOCFLAGS = -fgo-compiling-runtime | |
be239ed2 | 957 | |
63e457ad | 958 | # If libffi is supported (the normal case) use the ffi build tag for |
959 | # the runtime package. | |
960 | if USE_LIBFFI | |
961 | matchargs_runtime = --tag=libffi | |
962 | else | |
963 | matchargs_runtime = | |
964 | endif | |
965 | ||
41fd2d10 | 966 | # At least for now, we need -static-libgo for this test, because |
967 | # otherwise we can't get the line numbers. | |
968 | # Also use -fno-inline to get better results from the memory profiler. | |
969 | runtime_pprof_check_GOCFLAGS = -static-libgo -fno-inline | |
1a5b255c | 970 | |
41fd2d10 | 971 | extra_go_files_runtime_internal_sys = version.go |
972 | runtime/internal/sys.lo.dep: $(extra_go_files_runtime_internal_sys) | |
1a5b255c | 973 | |
cb80685b | 974 | extra_go_files_internal_cpu = cpugen.go |
975 | internal/cpu.lo.dep: $(extra_go_files_internal_cpu) | |
976 | ||
b0751b12 | 977 | extra_go_files_internal_goroot = zstdpkglist.go |
978 | internal/goroot.lo.dep: $(extra_go_files_internal_goroot) | |
024464e5 | 979 | |
a3cba53d | 980 | extra_go_files_go_types = gccgosizes.go |
981 | go/types.lo.dep: $(extra_go_files_go_types) | |
982 | ||
33d1d391 | 983 | extra_go_files_cmd_internal_objabi = objabi.go |
984 | cmd/internal/objabi.lo.dep: $(extra_go_files_cmd_internal_objabi) | |
985 | ||
e104cab8 | 986 | extra_go_files_cmd_go_internal_cfg = zdefaultcc.go |
987 | cmd/go/internal/cfg.lo.dep: $(extra_go_files_cmd_go_internal_cfg) | |
988 | ||
33d1d391 | 989 | extra_check_libs_cmd_go_internal_cache = $(abs_builddir)/libgotool.a |
e104cab8 | 990 | extra_check_libs_cmd_go_internal_generate = $(abs_builddir)/libgotool.a |
991 | extra_check_libs_cmd_go_internal_get = $(abs_builddir)/libgotool.a | |
992 | extra_check_libs_cmd_go_internal_load = $(abs_builddir)/libgotool.a | |
b0751b12 | 993 | extra_check_libs_cmd_go_internal_imports = $(abs_builddir)/libgotool.a |
994 | extra_check_libs_cmd_go_internal_modconv = $(abs_builddir)/libgotool.a | |
995 | extra_check_libs_cmd_go_internal_modfetch = $(abs_builddir)/libgotool.a | |
996 | extra_check_libs_cmd_go_internal_modfetch_codehost = $(abs_builddir)/libgotool.a | |
997 | extra_check_libs_cmd_go_internal_modfile = $(abs_builddir)/libgotool.a | |
998 | extra_check_libs_cmd_go_internal_modload = $(abs_builddir)/libgotool.a | |
999 | extra_check_libs_cmd_go_internal_module = $(abs_builddir)/libgotool.a | |
1000 | extra_check_libs_cmd_go_internal_mvs = $(abs_builddir)/libgotool.a | |
1001 | extra_check_libs_cmd_go_internal_search = $(abs_builddir)/libgotool.a | |
1002 | extra_check_libs_cmd_go_internal_web2 = $(abs_builddir)/libgotool.a | |
e104cab8 | 1003 | extra_check_libs_cmd_go_internal_work = $(abs_builddir)/libgotool.a |
1004 | ||
33d1d391 | 1005 | extra_check_libs_cmd_vet_internal_cfg = $(abs_builddir)/libgotool.a |
1006 | ||
41fd2d10 | 1007 | # FIXME: The following C files may as well move to the runtime |
1008 | # directory and be treated like other C files. | |
1a5b255c | 1009 | |
41fd2d10 | 1010 | # Use C code to speed up {bytes,strings}.IndexByte and friends. |
1011 | bytes/index.lo: go/bytes/indexbyte.c runtime.inc | |
1012 | @$(MKDIR_P) bytes | |
1013 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/bytes/indexbyte.c | |
1014 | strings/index.lo: go/strings/indexbyte.c runtime.inc | |
1015 | @$(MKDIR_P) strings | |
1016 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/strings/indexbyte.c | |
b0751b12 | 1017 | internal/bytealg/bytealg.lo: go/internal/bytealg/bytealg.c runtime.inc |
1018 | @$(MKDIR_P) internal/bytealg | |
1019 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/internal/bytealg/bytealg.c | |
1a5b255c | 1020 | |
41fd2d10 | 1021 | # Use a C function with a fixed number of arguments to call a C |
1022 | # varargs function. | |
1023 | log/syslog/syslog_c.lo: go/log/syslog/syslog_c.c runtime.inc | |
f0099bf0 | 1024 | @$(MKDIR_P) log/syslog |
8388e3ab | 1025 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/log/syslog/syslog_c.c |
e440a328 | 1026 | |
41fd2d10 | 1027 | # The interface to libffi from the reflect package is written in C. |
1028 | reflect/makefunc_ffi_c.lo: go/reflect/makefunc_ffi_c.c runtime.inc | |
1029 | @$(MKDIR_P) reflect | |
1030 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/reflect/makefunc_ffi_c.c | |
91d733e1 | 1031 | |
41fd2d10 | 1032 | # The atomic functions are written in C. |
1033 | runtime/internal/atomic_c.lo: go/runtime/internal/atomic/atomic.c runtime.inc | |
1034 | @$(MKDIR_P) runtime/internal | |
1035 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/runtime/internal/atomic/atomic.c | |
1036 | sync/atomic_c.lo: go/sync/atomic/atomic.c runtime.inc | |
1037 | @$(MKDIR_P) sync | |
31c6ec42 | 1038 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/sync/atomic/atomic.c |
41fd2d10 | 1039 | |
1040 | # A few syscall functions are written in C. | |
0509fa0e | 1041 | syscall/clone_linux.lo: go/syscall/clone_linux.c runtime.inc |
1042 | @$(MKDIR_P) syscall | |
41fd2d10 | 1043 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/clone_linux.c |
9ac07c16 | 1044 | syscall/errno.lo: go/syscall/errno.c runtime.inc |
af6c04d9 | 1045 | @$(MKDIR_P) syscall |
41fd2d10 | 1046 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/errno.c |
9ac07c16 | 1047 | syscall/signame.lo: go/syscall/signame.c runtime.inc |
af6c04d9 | 1048 | @$(MKDIR_P) syscall |
41fd2d10 | 1049 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/signame.c |
9ac07c16 | 1050 | syscall/wait.lo: go/syscall/wait.c runtime.inc |
af6c04d9 | 1051 | @$(MKDIR_P) syscall |
41fd2d10 | 1052 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/wait.c |
e440a328 | 1053 | |
b0751b12 | 1054 | # internal/cpu needs some C code. |
1055 | internal/cpu/cpu_gccgo.lo: go/internal/cpu/cpu_gccgo.c runtime.inc | |
1056 | @$(MKDIR_P) internal/cpu | |
1057 | $(LTCOMPILE) -c -o $@ $(srcdir)/go/internal/cpu/cpu_gccgo.c | |
1058 | ||
bf1eb034 | 1059 | # Solaris 11.4 changed the type of fields in struct stat. |
41fd2d10 | 1060 | # Use a build tag, based on a configure check, to cope. |
1061 | if LIBGO_IS_SOLARIS | |
1062 | if HAVE_STAT_TIMESPEC | |
1063 | matchargs_os = --tag=solaristag | |
1064 | else | |
1065 | matchargs_os = | |
1066 | endif | |
1067 | else | |
1068 | matchargs_os = | |
1069 | endif | |
be239ed2 | 1070 | |
1071 | if LIBGO_IS_BSD | |
be239ed2 | 1072 | |
41fd2d10 | 1073 | # Build golang_org/x/net/route only on BSD systems. |
1074 | ||
ccea2b36 | 1075 | $(eval $(call PACKAGE_template,golang_org/x/net/route)) |
41fd2d10 | 1076 | |
1077 | golang_org_x_net_route_lo = \ | |
511f628b | 1078 | golang_org/x/net/route.lo |
41fd2d10 | 1079 | golang_org_x_net_route_check = \ |
1080 | golang_org/x/net/route/check | |
1081 | ||
1082 | endif | |
8388e3ab | 1083 | |
ccea2b36 | 1084 | if LIBGO_IS_SOLARIS |
1085 | ||
1086 | # Build golang_org/x/net/lif only on Solaris systems. | |
1087 | ||
1088 | $(eval $(call PACKAGE_template,golang_org/x/net/lif)) | |
1089 | ||
1090 | golang_org_x_net_lif_lo = \ | |
511f628b | 1091 | golang_org/x/net/lif.lo |
ccea2b36 | 1092 | golang_org_x_net_lif_check = \ |
1093 | golang_org/x/net/lif/check | |
1094 | ||
1095 | endif | |
1096 | ||
497f3a64 | 1097 | TPACKAGES = $(shell cat $(srcdir)/check-packages.txt) |
1098 | TEST_PACKAGES = $(addsuffix /check,$(TPACKAGES)) \ | |
ccea2b36 | 1099 | $(golang_org_x_net_lif_check) \ |
497f3a64 | 1100 | $(golang_org_x_net_route_check) |
e440a328 | 1101 | |
f3f32e34 | 1102 | check: check-tail |
1103 | check-recursive: check-head | |
1104 | ||
1105 | check-head: | |
1106 | @echo "Test Run By $${USER} on `date`" > libgo.head | |
1107 | @echo "Native configuration is $(host_triplet)" >> libgo.head | |
1108 | @echo >> libgo.head | |
1109 | @echo " === libgo tests ===" >> libgo.head | |
1110 | @echo >> libgo.head | |
1111 | ||
1112 | check-tail: check-recursive check-multi | |
447536dc | 1113 | @if test "$(USE_DEJAGNU)" = "yes"; then \ |
1114 | exit 0; \ | |
1115 | fi; \ | |
1116 | lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ | |
f3f32e34 | 1117 | for dir in . $(MULTIDIRS); do \ |
1118 | mv ../$${dir}/$${lib}/libgo.sum ../$${dir}/$${lib}/libgo.sum.sep; \ | |
1119 | mv ../$${dir}/$${lib}/libgo.log ../$${dir}/$${lib}/libgo.log.sep; \ | |
1120 | done; \ | |
1121 | mv libgo.head libgo.sum; \ | |
1122 | cp libgo.sum libgo.log; \ | |
1123 | echo "Schedule of variations:" >> libgo.sum; \ | |
1124 | for dir in . $(MULTIDIRS); do \ | |
1125 | multidir=../$${dir}/$${lib}; \ | |
1126 | multivar=`cat $${multidir}/libgo.var`; \ | |
1127 | echo " $${multivar}" >> libgo.sum; \ | |
1128 | done; \ | |
1129 | echo >> libgo.sum; \ | |
1130 | pass=0; fail=0; untested=0; \ | |
1131 | for dir in . $(MULTIDIRS); do \ | |
1132 | multidir=../$${dir}/$${lib}; \ | |
1133 | multivar=`cat $${multidir}/libgo.var`; \ | |
1134 | echo "Running target $${multivar}" >> libgo.sum; \ | |
1135 | echo "Running $(srcdir)/libgo.exp ..." >> libgo.sum; \ | |
1136 | cat $${multidir}/libgo.sum.sep >> libgo.sum; \ | |
1137 | cat $${multidir}/libgo.log.sep >> libgo.log; \ | |
1138 | if test -n "${MULTIDIRS}"; then \ | |
1139 | echo " === libgo Summary for $${multivar} ===" >> libgo.sum; \ | |
1140 | echo >> libgo.sum; \ | |
1141 | fi; \ | |
1142 | p=`grep -c PASS $${multidir}/libgo.sum.sep`; \ | |
1143 | pass=`expr $$pass + $$p`; \ | |
1144 | if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \ | |
1145 | echo "# of expected passes $$p" >> libgo.sum; \ | |
1146 | fi; \ | |
1147 | p=`grep -c FAIL $${multidir}/libgo.sum.sep`; \ | |
1148 | fail=`expr $$fail + $$p`; \ | |
1149 | if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \ | |
1150 | echo "# of unexpected failures $$p" >> libgo.sum; \ | |
1151 | fi; \ | |
1152 | p=`grep -c UNTESTED $${multidir}/libgo.sum.sep`; \ | |
1153 | untested=`expr $$untested + $$p`; \ | |
1154 | if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \ | |
1155 | echo "# of untested testcases $$p" >> libgo.sum; \ | |
1156 | fi; \ | |
1157 | done; \ | |
1158 | echo >> libgo.sum; \ | |
1159 | echo " === libgo Summary ===" >> libgo.sum; \ | |
1160 | echo >> libgo.sum; \ | |
1161 | if test "$$pass" -ne "0"; then \ | |
1162 | echo "# of expected passes $$pass" >> libgo.sum; \ | |
1163 | fi; \ | |
1164 | if test "$$fail" -ne "0"; then \ | |
1165 | echo "# of unexpected failures $$fail" >> libgo.sum; \ | |
1166 | fi; \ | |
1167 | if test "$$untested" -ne "0"; then \ | |
1168 | echo "# of untested testcases $$untested" >> libgo.sum; \ | |
1169 | fi; \ | |
1170 | echo `echo $(GOC) | sed -e 's/ .*//'` `$(GOC) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> libgo.sum; \ | |
1171 | echo >> libgo.log; \ | |
1172 | echo "runtest completed at `date`" >> libgo.log; \ | |
1173 | if test "$$fail" -ne "0"; then \ | |
1174 | status=1; \ | |
1175 | else \ | |
1176 | status=0; \ | |
1177 | fi; \ | |
1178 | exit $$status | |
1179 | ||
d35fc6b0 | 1180 | check-am: |
47211067 | 1181 | @rm -f libgo.sum libgo.log libgo.tail |
f3f32e34 | 1182 | @multivar="unix"; \ |
1183 | [ -z "$(MULTIFLAGS)" ] || multivar="$${multivar}/$(MULTIFLAGS)"; \ | |
1184 | echo "$${multivar}" > libgo.var | |
47211067 | 1185 | @for f in $(TEST_PACKAGES); do \ |
1186 | rm -f $$f-testsum $$f-testlog; \ | |
1187 | done | |
2da56ec4 | 1188 | -@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES) |
f3f32e34 | 1189 | @for f in $(TEST_PACKAGES); do \ |
47211067 | 1190 | if test -f $$f-testsum; then \ |
1191 | cat $$f-testsum >> libgo.sum; \ | |
1192 | fi; \ | |
1193 | if test -f $$f-testlog; then \ | |
1194 | cat $$f-testlog >> libgo.log; \ | |
1195 | fi; \ | |
f3f32e34 | 1196 | done |
1197 | ||
1198 | check-multi: | |
1199 | $(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE) | |
d35fc6b0 | 1200 | |
74e836ee | 1201 | bench: |
2da56ec4 | 1202 | -@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES) GOBENCH=. |
74e836ee | 1203 | |
03118c21 | 1204 | MOSTLYCLEANFILES = \ |
1205 | s-runtime_sysinfo s-sigtab s-runtime-inc s-zstdpkglist \ | |
1206 | s-libcalls s-libcalls-list s-syscall_arch s-gen-sysinfo s-sysinfo \ | |
1207 | s-errno s-epoll \ | |
1208 | libgo.head libgo.sum.sep libgo.log.sep libgo.var \ | |
1209 | libcalls-list runtime.inc runtime.inc.tmp2 runtime.inc.tmp3 | |
e440a328 | 1210 | |
1211 | mostlyclean-local: | |
1212 | find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f | |
1213 | find . -name '*.$(OBJEXT)' -print | xargs rm -f | |
47211067 | 1214 | find . -name '*-testsum' -print | xargs rm -f |
d35fc6b0 | 1215 | find . -name '*-testlog' -print | xargs rm -f |
1216 | ||
e104cab8 | 1217 | CLEANFILES = *.go *.c s-* libgo.sum libgo.log runtime.inc |
e440a328 | 1218 | |
1219 | clean-local: | |
1220 | find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f | |
1221 | find . -name '*.a' -print | xargs rm -f | |
03118c21 | 1222 | find . -name '*.gox' -print | xargs rm -f |
1223 | find . -name '*.s-gox' -print | xargs rm -f | |
1224 | ||
1225 | distclean-local: | |
1226 | find . -name '*.lo.dep' -print | xargs rm -f | |
ea2e69a4 | 1227 | |
1228 | include $(top_srcdir)/../multilib.am |