28f3c8143b
We were using special compilation flags for the math package, but we weren't using them when testing. That meant that our tests were not checking the real code we were providing. Fix that. Fixing that revealed that we were not using a good set of flags, or at least were not using flags that let the tests pass. Adjust the flags to stop using -funsafe-math-optimizations on x86. Instead always use -ffp-contract=off -fno-math-errno -fno-trapping-math for all targets. Fixes golang/go#23647 Reviewed-on: https://go-review.googlesource.com/91355 From-SVN: r257312
1572 lines
43 KiB
Makefile
1572 lines
43 KiB
Makefile
# Makefile.am -- Go library Makefile.
|
|
|
|
# Copyright 2009 The Go Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file.
|
|
|
|
# Process this file with autoreconf to produce Makefile.in.
|
|
|
|
# Go support.
|
|
SUFFIXES = .c .go .gox .o .obj .lo .a
|
|
|
|
if LIBGO_IS_RTEMS
|
|
subdirs = testsuite
|
|
endif
|
|
|
|
SUBDIRS = ${subdirs}
|
|
|
|
gcc_version := $(shell $(GOC) -dumpversion)
|
|
|
|
MAINT_CHARSET = latin1
|
|
|
|
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
|
PWD_COMMAND = $${PWDCMD-pwd}
|
|
STAMP = echo timestamp >
|
|
|
|
toolexecdir = $(glibgo_toolexecdir)
|
|
toolexeclibdir = $(glibgo_toolexeclibdir)
|
|
toolexeclibgodir = $(nover_glibgo_toolexeclibdir)/go/$(gcc_version)/$(target_alias)
|
|
libexecsubdir = $(libexecdir)/gcc/$(target_alias)/$(gcc_version)
|
|
|
|
LIBFFI = @LIBFFI@
|
|
LIBFFIINCS = @LIBFFIINCS@
|
|
|
|
LIBATOMIC = @LIBATOMIC@
|
|
|
|
WARN_CFLAGS = $(WARN_FLAGS) $(WERROR)
|
|
|
|
# -I/-D flags to pass when compiling.
|
|
AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS)
|
|
|
|
ACLOCAL_AMFLAGS = -I ./config -I ../config
|
|
|
|
AM_CFLAGS = -fexceptions -fnon-call-exceptions \
|
|
$(SPLIT_STACK) $(WARN_CFLAGS) \
|
|
$(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \
|
|
-I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \
|
|
-I $(MULTIBUILDTOP)../../gcc/include
|
|
|
|
AM_LDFLAGS =
|
|
|
|
if USING_SPLIT_STACK
|
|
AM_LDFLAGS += -XCClinker $(SPLIT_STACK)
|
|
endif
|
|
|
|
if LIBGO_IS_AIX
|
|
# Using an import file for libgo avoid requiring to use the -brtl flag
|
|
# when builing a go program
|
|
AM_LDFLAGS += -Wl,-bbigtoc -Wl,-bI:$(srcdir)/libgo.imp
|
|
EXTRA_libgo_la_DEPENDENCIES = libgo.imp
|
|
endif
|
|
|
|
# Multilib support.
|
|
MAKEOVERRIDES=
|
|
|
|
# Work around what appears to be a GNU make handling MAKEFLAGS
|
|
# values defined in terms of make variables, as is the case for CC and
|
|
# friends when we are called from the top level Makefile.
|
|
AM_MAKEFLAGS = \
|
|
"AR_FLAGS=$(AR_FLAGS)" \
|
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
|
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
|
|
"CFLAGS=$(CFLAGS)" \
|
|
"CXXFLAGS=$(CXXFLAGS)" \
|
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
|
"GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
|
|
"GOC=$(GOC)" \
|
|
"GOCFLAGS=$(GOCFLAGS)" \
|
|
"INSTALL=$(INSTALL)" \
|
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
|
"LDFLAGS=$(LDFLAGS)" \
|
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
|
"MAKE=$(MAKE)" \
|
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
|
"PICFLAG=$(PICFLAG)" \
|
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
|
"SHELL=$(SHELL)" \
|
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
|
"exec_prefix=$(exec_prefix)" \
|
|
"infodir=$(infodir)" \
|
|
"libdir=$(libdir)" \
|
|
"includedir=$(includedir)" \
|
|
"prefix=$(prefix)" \
|
|
"tooldir=$(tooldir)" \
|
|
"gxx_include_dir=$(gxx_include_dir)" \
|
|
"AR=$(AR)" \
|
|
"AS=$(AS)" \
|
|
"LD=$(LD)" \
|
|
"RANLIB=$(RANLIB)" \
|
|
"NM=$(NM)" \
|
|
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
|
|
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
|
|
"DESTDIR=$(DESTDIR)" \
|
|
"WERROR=$(WERROR)"
|
|
|
|
# Subdir rules rely on $(FLAGS_TO_PASS)
|
|
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
|
|
|
|
if GOC_IS_LLGO
|
|
toolexeclib_LTLIBRARIES = libgo-llgo.la
|
|
toolexeclib_LIBRARIES = libgobegin-llgo.a
|
|
else
|
|
toolexeclib_LTLIBRARIES = libgo.la
|
|
toolexeclib_LIBRARIES = libgobegin.a libgolibbegin.a
|
|
endif
|
|
|
|
noinst_LIBRARIES = libgotool.a
|
|
|
|
toolexeclibgo_DATA = \
|
|
bufio.gox \
|
|
bytes.gox \
|
|
context.gox \
|
|
crypto.gox \
|
|
encoding.gox \
|
|
errors.gox \
|
|
expvar.gox \
|
|
flag.gox \
|
|
fmt.gox \
|
|
hash.gox \
|
|
html.gox \
|
|
image.gox \
|
|
io.gox \
|
|
log.gox \
|
|
math.gox \
|
|
mime.gox \
|
|
net.gox \
|
|
os.gox \
|
|
path.gox \
|
|
reflect.gox \
|
|
regexp.gox \
|
|
runtime.gox \
|
|
sort.gox \
|
|
strconv.gox \
|
|
strings.gox \
|
|
sync.gox \
|
|
syscall.gox \
|
|
testing.gox \
|
|
time.gox \
|
|
unicode.gox
|
|
|
|
toolexeclibgoarchivedir = $(toolexeclibgodir)/archive
|
|
|
|
toolexeclibgoarchive_DATA = \
|
|
archive/tar.gox \
|
|
archive/zip.gox
|
|
|
|
toolexeclibgocompressdir = $(toolexeclibgodir)/compress
|
|
|
|
toolexeclibgocompress_DATA = \
|
|
compress/bzip2.gox \
|
|
compress/flate.gox \
|
|
compress/gzip.gox \
|
|
compress/lzw.gox \
|
|
compress/zlib.gox
|
|
|
|
toolexeclibgocontainerdir = $(toolexeclibgodir)/container
|
|
|
|
toolexeclibgocontainer_DATA = \
|
|
container/heap.gox \
|
|
container/list.gox \
|
|
container/ring.gox
|
|
|
|
toolexeclibgocryptodir = $(toolexeclibgodir)/crypto
|
|
|
|
toolexeclibgocrypto_DATA = \
|
|
crypto/aes.gox \
|
|
crypto/cipher.gox \
|
|
crypto/des.gox \
|
|
crypto/dsa.gox \
|
|
crypto/ecdsa.gox \
|
|
crypto/elliptic.gox \
|
|
crypto/hmac.gox \
|
|
crypto/md5.gox \
|
|
crypto/rand.gox \
|
|
crypto/rc4.gox \
|
|
crypto/rsa.gox \
|
|
crypto/sha1.gox \
|
|
crypto/sha256.gox \
|
|
crypto/sha512.gox \
|
|
crypto/subtle.gox \
|
|
crypto/tls.gox \
|
|
crypto/x509.gox
|
|
|
|
toolexeclibgocryptox509dir = $(toolexeclibgocryptodir)/x509
|
|
|
|
toolexeclibgocryptox509_DATA = \
|
|
crypto/x509/pkix.gox
|
|
|
|
toolexeclibgodatabasedir = $(toolexeclibgodir)/database
|
|
|
|
toolexeclibgodatabase_DATA = \
|
|
database/sql.gox
|
|
|
|
toolexeclibgodatabasesqldir = $(toolexeclibgodatabasedir)/sql
|
|
|
|
toolexeclibgodatabasesql_DATA = \
|
|
database/sql/driver.gox
|
|
|
|
toolexeclibgodebugdir = $(toolexeclibgodir)/debug
|
|
|
|
toolexeclibgodebug_DATA = \
|
|
debug/dwarf.gox \
|
|
debug/elf.gox \
|
|
debug/gosym.gox \
|
|
debug/macho.gox \
|
|
debug/pe.gox \
|
|
debug/plan9obj.gox \
|
|
debug/xcoff.gox
|
|
|
|
toolexeclibgoencodingdir = $(toolexeclibgodir)/encoding
|
|
|
|
toolexeclibgoencoding_DATA = \
|
|
encoding/ascii85.gox \
|
|
encoding/asn1.gox \
|
|
encoding/base32.gox \
|
|
encoding/base64.gox \
|
|
encoding/binary.gox \
|
|
encoding/csv.gox \
|
|
encoding/gob.gox \
|
|
encoding/hex.gox \
|
|
encoding/json.gox \
|
|
encoding/pem.gox \
|
|
encoding/xml.gox
|
|
|
|
toolexeclibgogodir = $(toolexeclibgodir)/go
|
|
|
|
toolexeclibgogo_DATA = \
|
|
go/ast.gox \
|
|
go/build.gox \
|
|
go/constant.gox \
|
|
go/doc.gox \
|
|
go/format.gox \
|
|
go/importer.gox \
|
|
go/parser.gox \
|
|
go/printer.gox \
|
|
go/scanner.gox \
|
|
go/token.gox \
|
|
go/types.gox
|
|
|
|
toolexeclibgohashdir = $(toolexeclibgodir)/hash
|
|
|
|
toolexeclibgohash_DATA = \
|
|
hash/adler32.gox \
|
|
hash/crc32.gox \
|
|
hash/crc64.gox \
|
|
hash/fnv.gox
|
|
|
|
toolexeclibgohtmldir = $(toolexeclibgodir)/html
|
|
|
|
toolexeclibgohtml_DATA = \
|
|
html/template.gox
|
|
|
|
toolexeclibgoimagedir = $(toolexeclibgodir)/image
|
|
|
|
toolexeclibgoimage_DATA = \
|
|
image/color.gox \
|
|
image/draw.gox \
|
|
image/gif.gox \
|
|
image/jpeg.gox \
|
|
image/png.gox
|
|
|
|
toolexeclibgoimagecolordir = $(toolexeclibgoimagedir)/color
|
|
|
|
toolexeclibgoimagecolor_DATA = \
|
|
image/color/palette.gox
|
|
|
|
toolexeclibgoindexdir = $(toolexeclibgodir)/index
|
|
|
|
toolexeclibgoindex_DATA = \
|
|
index/suffixarray.gox
|
|
|
|
toolexeclibgoiodir = $(toolexeclibgodir)/io
|
|
|
|
toolexeclibgoio_DATA = \
|
|
io/ioutil.gox
|
|
|
|
toolexeclibgologdir = $(toolexeclibgodir)/log
|
|
|
|
toolexeclibgolog_DATA = \
|
|
log/syslog.gox
|
|
|
|
toolexeclibgomathdir = $(toolexeclibgodir)/math
|
|
|
|
toolexeclibgomath_DATA = \
|
|
math/big.gox \
|
|
math/bits.gox \
|
|
math/cmplx.gox \
|
|
math/rand.gox
|
|
|
|
toolexeclibgomimedir = $(toolexeclibgodir)/mime
|
|
|
|
toolexeclibgomime_DATA = \
|
|
mime/multipart.gox \
|
|
mime/quotedprintable.gox
|
|
|
|
toolexeclibgonetdir = $(toolexeclibgodir)/net
|
|
|
|
toolexeclibgonet_DATA = \
|
|
net/http.gox \
|
|
net/mail.gox \
|
|
net/rpc.gox \
|
|
net/smtp.gox \
|
|
net/textproto.gox \
|
|
net/url.gox
|
|
|
|
toolexeclibgonethttpdir = $(toolexeclibgonetdir)/http
|
|
|
|
toolexeclibgonethttp_DATA = \
|
|
net/http/cgi.gox \
|
|
net/http/cookiejar.gox \
|
|
net/http/fcgi.gox \
|
|
net/http/httptest.gox \
|
|
net/http/httptrace.gox \
|
|
net/http/httputil.gox \
|
|
net/http/pprof.gox
|
|
|
|
toolexeclibgonetrpcdir = $(toolexeclibgonetdir)/rpc
|
|
|
|
toolexeclibgonetrpc_DATA = \
|
|
net/rpc/jsonrpc.gox
|
|
|
|
toolexeclibgoosdir = $(toolexeclibgodir)/os
|
|
|
|
toolexeclibgoos_DATA = \
|
|
os/exec.gox \
|
|
os/signal.gox \
|
|
os/user.gox
|
|
|
|
toolexeclibgopathdir = $(toolexeclibgodir)/path
|
|
|
|
toolexeclibgopath_DATA = \
|
|
path/filepath.gox
|
|
|
|
toolexeclibgoregexpdir = $(toolexeclibgodir)/regexp
|
|
|
|
toolexeclibgoregexp_DATA = \
|
|
regexp/syntax.gox
|
|
|
|
toolexeclibgoruntimedir = $(toolexeclibgodir)/runtime
|
|
|
|
toolexeclibgoruntime_DATA = \
|
|
runtime/debug.gox \
|
|
runtime/pprof.gox \
|
|
runtime/trace.gox
|
|
|
|
toolexeclibgosyncdir = $(toolexeclibgodir)/sync
|
|
|
|
toolexeclibgosync_DATA = \
|
|
sync/atomic.gox
|
|
|
|
toolexeclibgotestingdir = $(toolexeclibgodir)/testing
|
|
|
|
toolexeclibgotesting_DATA = \
|
|
testing/iotest.gox \
|
|
testing/quick.gox
|
|
|
|
toolexeclibgotestinginternaldir = $(toolexeclibgotestingdir)/internal
|
|
|
|
toolexeclibgotestinginternal_DATA = \
|
|
testing/internal/testdeps.gox
|
|
|
|
toolexeclibgotextdir = $(toolexeclibgodir)/text
|
|
|
|
toolexeclibgotext_DATA = \
|
|
text/scanner.gox \
|
|
text/tabwriter.gox \
|
|
text/template.gox
|
|
|
|
toolexeclibgotexttemplatedir = $(toolexeclibgotextdir)/template
|
|
|
|
toolexeclibgotexttemplate_DATA = \
|
|
text/template/parse.gox
|
|
|
|
toolexeclibgounicodedir = $(toolexeclibgodir)/unicode
|
|
|
|
toolexeclibgounicode_DATA = \
|
|
unicode/utf16.gox \
|
|
unicode/utf8.gox
|
|
|
|
# Some packages are only needed for tests, so unlike the other
|
|
# internal packages nothing will explicitly depend on them.
|
|
# Force them to be built.
|
|
noinst_DATA = \
|
|
golang_org/x/net/internal/nettest.gox \
|
|
golang_org/x/net/nettest.gox \
|
|
internal/testenv.gox \
|
|
net/internal/socktest.gox \
|
|
os/signal/internal/pty.gox
|
|
|
|
if LIBGO_IS_RTEMS
|
|
rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
|
|
else
|
|
rtems_task_variable_add_file =
|
|
endif
|
|
|
|
if LIBGO_IS_LINUX
|
|
runtime_getncpu_file = runtime/getncpu-linux.c
|
|
else
|
|
if LIBGO_IS_DARWIN
|
|
runtime_getncpu_file = runtime/getncpu-bsd.c
|
|
else
|
|
if LIBGO_IS_IRIX
|
|
runtime_getncpu_file = runtime/getncpu-irix.c
|
|
else
|
|
if LIBGO_IS_SOLARIS
|
|
runtime_getncpu_file = runtime/getncpu-solaris.c
|
|
else
|
|
if LIBGO_IS_FREEBSD
|
|
runtime_getncpu_file = runtime/getncpu-bsd.c
|
|
else
|
|
if LIBGO_IS_NETBSD
|
|
runtime_getncpu_file = runtime/getncpu-bsd.c
|
|
else
|
|
if LIBGO_IS_AIX
|
|
runtime_getncpu_file = runtime/getncpu-aix.c
|
|
else
|
|
runtime_getncpu_file = runtime/getncpu-none.c
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
runtime_files = \
|
|
runtime/aeshash.c \
|
|
runtime/go-assert.c \
|
|
runtime/go-caller.c \
|
|
runtime/go-callers.c \
|
|
runtime/go-cdiv.c \
|
|
runtime/go-cgo.c \
|
|
runtime/go-construct-map.c \
|
|
runtime/go-ffi.c \
|
|
runtime/go-fieldtrack.c \
|
|
runtime/go-matherr.c \
|
|
runtime/go-memclr.c \
|
|
runtime/go-memcmp.c \
|
|
runtime/go-memequal.c \
|
|
runtime/go-memmove.c \
|
|
runtime/go-nanotime.c \
|
|
runtime/go-now.c \
|
|
runtime/go-nosys.c \
|
|
runtime/go-reflect-call.c \
|
|
runtime/go-runtime-error.c \
|
|
runtime/go-setenv.c \
|
|
runtime/go-signal.c \
|
|
runtime/go-strslice.c \
|
|
runtime/go-typedesc-equal.c \
|
|
runtime/go-unsafe-pointer.c \
|
|
runtime/go-unsetenv.c \
|
|
runtime/go-unwind.c \
|
|
runtime/go-varargs.c \
|
|
runtime/env_posix.c \
|
|
runtime/panic.c \
|
|
runtime/print.c \
|
|
runtime/proc.c \
|
|
runtime/runtime_c.c \
|
|
runtime/stack.c \
|
|
runtime/thread.c \
|
|
runtime/yield.c \
|
|
$(rtems_task_variable_add_file) \
|
|
$(runtime_getncpu_file)
|
|
|
|
version.go: s-version; @true
|
|
s-version: Makefile
|
|
rm -f version.go.tmp
|
|
echo "package sys" > version.go.tmp
|
|
echo 'func init() { DefaultGoroot = "$(prefix)" }' >> version.go.tmp
|
|
echo 'const TheVersion = "'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'"' >> version.go.tmp
|
|
echo 'const Goexperiment = ``' >> version.go.tmp
|
|
echo 'const GOARCH = "'$(GOARCH)'"' >> version.go.tmp
|
|
echo 'const GOOS = "'$(GOOS)'"' >> version.go.tmp
|
|
echo 'const GccgoToolDir = "$(libexecsubdir)"' >> version.go.tmp
|
|
echo >> version.go.tmp
|
|
echo "type ArchFamilyType int" >> version.go.tmp
|
|
echo >> version.go.tmp
|
|
echo "const (" >> version.go.tmp
|
|
echo " UNKNOWN ArchFamilyType = iota" >> version.go.tmp
|
|
for a in $(ALLGOARCHFAMILY); do \
|
|
echo " $${a}" >> version.go.tmp; \
|
|
done
|
|
echo ")" >> version.go.tmp
|
|
echo >> version.go.tmp
|
|
for a in $(ALLGOARCH); do \
|
|
f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \
|
|
n="$${f}`echo $${a} | sed -e 's/.//'`"; \
|
|
if test "$${a}" = "$(GOARCH)"; then \
|
|
echo "const Goarch$${n} = 1" >> version.go.tmp; \
|
|
else \
|
|
echo "const Goarch$${n} = 0" >> version.go.tmp; \
|
|
fi; \
|
|
done
|
|
echo >> version.go.tmp
|
|
echo "const (" >> version.go.tmp
|
|
echo " ArchFamily = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) family`" >> version.go.tmp
|
|
echo " BigEndian = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) bigendian`" >> version.go.tmp
|
|
echo " CacheLineSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> version.go.tmp
|
|
echo " DefaultPhysPageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) defaultphyspagesize`" >> version.go.tmp
|
|
echo " HugePageSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) hugepagesize`" >> version.go.tmp
|
|
echo " Int64Align = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) int64align`" >> version.go.tmp
|
|
echo " MinFrameSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) minframesize`" >> version.go.tmp
|
|
echo " PCQuantum = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) pcquantum`" >> version.go.tmp
|
|
echo ")" >> version.go.tmp
|
|
echo >> version.go.tmp
|
|
for a in $(ALLGOOS); do \
|
|
f=`echo $${a} | sed -e 's/\(.\).*/\1/' -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`; \
|
|
n="$${f}`echo $${a} | sed -e 's/.//'`"; \
|
|
if test "$${a}" = "$(GOOS)"; then \
|
|
echo "const Goos$${n} = 1" >> version.go.tmp; \
|
|
else \
|
|
echo "const Goos$${n} = 0" >> version.go.tmp; \
|
|
fi; \
|
|
done
|
|
echo >> version.go.tmp
|
|
echo "type Uintreg uintptr" >> version.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh version.go.tmp version.go
|
|
$(STAMP) $@
|
|
|
|
objabi.go: s-objabi; @true
|
|
s-objabi: Makefile
|
|
rm -f objabi.go.tmp
|
|
echo "package objabi" > objabi.go.tmp
|
|
echo "import \"runtime\"" >> objabi.go.tmp
|
|
echo 'func init() { defaultGOROOT = `$(prefix)` }' >> objabi.go.tmp
|
|
echo 'const defaultGO386 = `sse2`' >> objabi.go.tmp
|
|
echo 'const defaultGOARM = `5`' >> objabi.go.tmp
|
|
echo 'const defaultGOMIPS = `hardfloat`' >> objabi.go.tmp
|
|
echo 'const defaultGOOS = runtime.GOOS' >> objabi.go.tmp
|
|
echo 'const defaultGOARCH = runtime.GOARCH' >> objabi.go.tmp
|
|
echo 'const defaultGO_EXTLINK_ENABLED = ``' >> objabi.go.tmp
|
|
echo 'const version = `'`cat $(srcdir)/VERSION | sed 1q`' '`$(GOC) --version | sed 1q`'`' >> objabi.go.tmp
|
|
echo 'const stackGuardMultiplier = 1' >> objabi.go.tmp
|
|
echo 'const goexperiment = ``' >> objabi.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh objabi.go.tmp objabi.go
|
|
$(STAMP) $@
|
|
|
|
gccgosizes.go: s-gccgosizes; @true
|
|
s-gccgosizes: Makefile goarch.sh
|
|
rm -f gccgosizes.go.tmp
|
|
echo "package types" > gccgosizes.go.tmp
|
|
echo >> gccgosizes.go.tmp
|
|
echo "var gccgoArchSizes = map[string]*StdSizes{" >> gccgosizes.go.tmp
|
|
for a in $(ALLGOARCH); do \
|
|
ptrsize=`$(SHELL) $(srcdir)/goarch.sh $$a ptrsize`; \
|
|
maxalign=`$(SHELL) $(srcdir)/goarch.sh $$a maxalign`; \
|
|
echo " \"$$a\": {$${ptrsize}, $${maxalign}}," >> gccgosizes.go.tmp; \
|
|
done
|
|
echo "}" >> gccgosizes.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh gccgosizes.go.tmp gccgosizes.go
|
|
$(STAMP) $@
|
|
|
|
runtime_sysinfo.go: s-runtime_sysinfo; @true
|
|
s-runtime_sysinfo: $(srcdir)/mkrsysinfo.sh gen-sysinfo.go
|
|
GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mkrsysinfo.sh
|
|
$(SHELL) $(srcdir)/mvifdiff.sh tmp-runtime_sysinfo.go runtime_sysinfo.go
|
|
$(STAMP) $@
|
|
|
|
sigtab.go: s-sigtab; @true
|
|
s-sigtab: $(srcdir)/mksigtab.sh gen-sysinfo.go
|
|
GOOS=$(GOOS) $(SHELL) $(srcdir)/mksigtab.sh > tmp-sigtab.go
|
|
$(SHELL) $(srcdir)/mvifdiff.sh tmp-sigtab.go sigtab.go
|
|
$(STAMP) $@
|
|
|
|
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 cfg' > zdefaultcc.go.tmp
|
|
echo >> zdefaultcc.go.tmp
|
|
echo 'func DefaultGCCGO(goos, goarch string) string { return "$(bindir)/$(GCCGO_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
|
|
echo 'func DefaultCC(goos, goarch string) string { return "$(GCC_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
|
|
echo 'func DefaultCXX(goos, goarch string) string { return "$(GXX_INSTALL_NAME)" }' >> zdefaultcc.go.tmp
|
|
echo 'const DefaultPkgConfig = "pkg-config"' >> zdefaultcc.go.tmp
|
|
echo 'var OSArchSupportsCgo = map[string]bool{}' >> zdefaultcc.go.tmp
|
|
$(SHELL) $(srcdir)/../move-if-change zdefaultcc.go.tmp zdefaultcc.go
|
|
$(STAMP) $@
|
|
|
|
# _Complex_lock and _Reader_lock are Go translations of some AIX system
|
|
# types and should not be exported back to C
|
|
# semt is a Go translation of the C type sem_t; it fails to convert on
|
|
# some systems and need not be exported back to C.
|
|
# sigset conflicts with system type sigset on AIX, so we need to rename it
|
|
runtime.inc: s-runtime-inc; @true
|
|
s-runtime-inc: runtime.lo Makefile
|
|
rm -f runtime.inc.tmp2 runtime.inc.tmp3
|
|
grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " | grep -v "#define empty " > runtime.inc.tmp2
|
|
for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \
|
|
grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \
|
|
done
|
|
for TYPE in _Complex_lock _Reader_lock semt; do \
|
|
sed -e '/struct '$${TYPE}' {/,/^}/s/^.*$$//' runtime.inc.tmp2 > runtime.inc.tmp3; \
|
|
mv runtime.inc.tmp3 runtime.inc.tmp2; \
|
|
done
|
|
sed -e 's/sigset/sigset_go/' runtime.inc.tmp2 > runtime.inc.tmp3
|
|
$(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp3 runtime.inc
|
|
rm -f runtime.inc.tmp2 runtime.inc.tmp3
|
|
$(STAMP) $@
|
|
|
|
noinst_DATA += zstdpkglist.go zdefaultcc.go
|
|
|
|
# Generate the list of go std packages that were included in libgo
|
|
zstdpkglist.go: s-zstdpkglist; @true
|
|
s-zstdpkglist: Makefile
|
|
rm -f zstdpkglist.go.tmp
|
|
echo 'package load' > zstdpkglist.go.tmp
|
|
echo "" >> zstdpkglist.go.tmp
|
|
echo 'var stdpkg = map[string]bool{' >> zstdpkglist.go.tmp
|
|
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
|
|
echo '}' >> zstdpkglist.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh zstdpkglist.go.tmp zstdpkglist.go
|
|
$(STAMP) $@
|
|
|
|
if LIBGO_IS_LINUX
|
|
syscall_epoll_file = epoll.go
|
|
else
|
|
syscall_epoll_file =
|
|
endif
|
|
|
|
libcalls.go: s-libcalls; @true
|
|
s-libcalls: libcalls-list go/syscall/mksyscall.awk $(srcdir)/go/syscall/*.go
|
|
rm -f libcalls.go.tmp
|
|
$(AWK) -f $(srcdir)/go/syscall/mksyscall.awk `cat libcalls-list` > libcalls.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh libcalls.go.tmp libcalls.go
|
|
$(STAMP) $@
|
|
|
|
libcalls-list: s-libcalls-list; @true
|
|
s-libcalls-list: Makefile $(srcdir)/go/syscall/*.go
|
|
rm -f libcalls-list.tmp
|
|
$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/syscall $(matchargs_syscall) > libcalls-list.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh libcalls-list.tmp libcalls-list
|
|
$(STAMP) $@
|
|
|
|
syscall_arch.go: s-syscall_arch; @true
|
|
s-syscall_arch: Makefile
|
|
rm -f syscall_arch.go.tmp
|
|
echo "package syscall" > syscall_arch.go.tmp
|
|
echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp
|
|
echo 'const OS = "'$(GOOS)'"' >> syscall_arch.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh syscall_arch.go.tmp syscall_arch.go
|
|
$(STAMP) $@
|
|
|
|
SYSINFO_FLAGS = \
|
|
$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
$(CPPFLAGS) $(OSCFLAGS) -O
|
|
|
|
gen-sysinfo.go: s-gen-sysinfo; @true
|
|
s-gen-sysinfo: $(srcdir)/sysinfo.c config.h
|
|
$(CC) $(SYSINFO_FLAGS) -fdump-go-spec=tmp-gen-sysinfo.go -std=gnu99 -S -o sysinfo.s $(srcdir)/sysinfo.c
|
|
rm -f sysinfo.s
|
|
$(SHELL) $(srcdir)/mvifdiff.sh tmp-gen-sysinfo.go gen-sysinfo.go
|
|
$(STAMP) $@
|
|
|
|
errno.i: s-errno; @true
|
|
s-errno:
|
|
echo '#include <errno.h>' | $(CC) $(SYSINFO_FLAGS) -x c - -E -dM > tmp-errno.i
|
|
$(SHELL) $(srcdir)/mvifdiff.sh tmp-errno.i errno.i
|
|
$(STAMP) $@
|
|
|
|
sysinfo.go: s-sysinfo; @true
|
|
s-sysinfo: $(srcdir)/mksysinfo.sh gen-sysinfo.go errno.i
|
|
GOARCH=$(GOARCH) GOOS=$(GOOS) $(SHELL) $(srcdir)/mksysinfo.sh
|
|
$(SHELL) $(srcdir)/mvifdiff.sh tmp-sysinfo.go sysinfo.go
|
|
$(STAMP) $@
|
|
|
|
# The epoll struct has an embedded union and is packed on x86_64,
|
|
# which is too complicated for mksysinfo.sh. We find the offset of
|
|
# the only field we care about in configure.ac, and generate the
|
|
# struct here.
|
|
epoll.go: s-epoll; @true
|
|
s-epoll: Makefile
|
|
rm -f epoll.go.tmp
|
|
echo 'package syscall' > epoll.go.tmp
|
|
echo 'type EpollEvent struct {' >> epoll.go.tmp
|
|
echo ' Events uint32' >> epoll.go.tmp
|
|
case "$(SIZEOF_STRUCT_EPOLL_EVENT),$(STRUCT_EPOLL_EVENT_FD_OFFSET)" in \
|
|
0,0) echo 1>&2 "*** struct epoll_event data.fd offset unknown"; \
|
|
exit 1; ;; \
|
|
8,4) echo ' Fd int32' >> epoll.go.tmp; ;; \
|
|
12,4) echo ' Fd int32' >> epoll.go.tmp; \
|
|
echo ' Pad [4]byte' >> epoll.go.tmp; ;; \
|
|
12,8) echo ' Pad [4]byte' >> epoll.go.tmp; \
|
|
echo ' Fd int32' >> epoll.go.tmp; ;; \
|
|
16,8) echo ' Pad [4]byte' >> epoll.go.tmp; \
|
|
echo ' Fd int32' >> epoll.go.tmp; \
|
|
echo ' Pad2 [4]byte' >> epoll.go.tmp; ;; \
|
|
*) echo 1>&2 "*** struct epoll_event unsupported"; \
|
|
exit 1; ;; \
|
|
esac
|
|
echo '}' >> epoll.go.tmp
|
|
$(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go
|
|
$(STAMP) $@
|
|
|
|
if LIBGO_IS_LINUX
|
|
syscall_lib_clone_lo = syscall/clone_linux.lo
|
|
else
|
|
syscall_lib_clone_lo =
|
|
endif
|
|
|
|
PACKAGES = \
|
|
archive/tar \
|
|
archive/zip \
|
|
bufio \
|
|
bytes \
|
|
compress/bzip2 \
|
|
compress/flate \
|
|
compress/gzip \
|
|
compress/lzw \
|
|
compress/zlib \
|
|
container/heap \
|
|
container/list \
|
|
container/ring \
|
|
context \
|
|
crypto \
|
|
crypto/aes \
|
|
crypto/cipher \
|
|
crypto/des \
|
|
crypto/dsa \
|
|
crypto/ecdsa \
|
|
crypto/elliptic \
|
|
crypto/hmac \
|
|
crypto/internal/cipherhw \
|
|
crypto/md5 \
|
|
crypto/rand \
|
|
crypto/rc4 \
|
|
crypto/rsa \
|
|
crypto/sha1 \
|
|
crypto/sha256 \
|
|
crypto/sha512 \
|
|
crypto/subtle \
|
|
crypto/tls \
|
|
crypto/x509 \
|
|
crypto/x509/pkix \
|
|
database/sql \
|
|
database/sql/driver \
|
|
debug/dwarf \
|
|
debug/elf \
|
|
debug/gosym \
|
|
debug/macho \
|
|
debug/pe \
|
|
debug/plan9obj \
|
|
debug/xcoff \
|
|
encoding \
|
|
encoding/ascii85 \
|
|
encoding/asn1 \
|
|
encoding/base32 \
|
|
encoding/base64 \
|
|
encoding/binary \
|
|
encoding/csv \
|
|
encoding/gob \
|
|
encoding/hex \
|
|
encoding/json \
|
|
encoding/pem \
|
|
encoding/xml \
|
|
errors \
|
|
expvar \
|
|
flag \
|
|
fmt \
|
|
go/ast \
|
|
go/build \
|
|
go/constant \
|
|
go/doc \
|
|
go/format \
|
|
go/importer \
|
|
go/internal/gccgoimporter \
|
|
go/internal/gcimporter \
|
|
go/internal/srcimporter \
|
|
go/parser \
|
|
go/printer \
|
|
go/scanner \
|
|
go/token \
|
|
go/types \
|
|
golang_org/x/crypto/chacha20poly1305 \
|
|
golang_org/x/crypto/chacha20poly1305/internal/chacha20 \
|
|
golang_org/x/crypto/cryptobyte \
|
|
golang_org/x/crypto/cryptobyte/asn1 \
|
|
golang_org/x/crypto/curve25519 \
|
|
golang_org/x/crypto/poly1305 \
|
|
golang_org/x/net/http2/hpack \
|
|
golang_org/x/net/idna \
|
|
golang_org/x/net/internal/nettest \
|
|
golang_org/x/net/lex/httplex \
|
|
golang_org/x/net/nettest \
|
|
golang_org/x/net/proxy \
|
|
golang_org/x/text/secure/bidirule \
|
|
golang_org/x/text/transform \
|
|
golang_org/x/text/unicode/bidi \
|
|
golang_org/x/text/unicode/norm \
|
|
golang_org/x/text/width \
|
|
hash \
|
|
hash/adler32 \
|
|
hash/crc32 \
|
|
hash/crc64 \
|
|
hash/fnv \
|
|
html \
|
|
html/template \
|
|
image \
|
|
image/color \
|
|
image/color/palette \
|
|
image/draw \
|
|
image/gif \
|
|
image/internal/imageutil \
|
|
image/jpeg \
|
|
image/png \
|
|
index/suffixarray \
|
|
internal/nettrace \
|
|
internal/poll \
|
|
internal/race \
|
|
internal/singleflight \
|
|
internal/syscall/unix \
|
|
internal/testenv \
|
|
internal/testlog \
|
|
internal/trace \
|
|
io \
|
|
io/ioutil \
|
|
log \
|
|
log/syslog \
|
|
math \
|
|
math/big \
|
|
math/bits \
|
|
math/cmplx \
|
|
math/rand \
|
|
mime \
|
|
mime/multipart \
|
|
mime/quotedprintable \
|
|
net \
|
|
net/http \
|
|
net/http/cgi \
|
|
net/http/cookiejar \
|
|
net/http/fcgi \
|
|
net/http/httptest \
|
|
net/http/httptrace \
|
|
net/http/httputil \
|
|
net/http/internal \
|
|
net/http/pprof \
|
|
net/internal/socktest \
|
|
net/mail \
|
|
net/rpc \
|
|
net/rpc/jsonrpc \
|
|
net/smtp \
|
|
net/textproto \
|
|
net/url \
|
|
os \
|
|
os/exec \
|
|
os/signal \
|
|
os/signal/internal/pty \
|
|
os/user \
|
|
path \
|
|
path/filepath \
|
|
reflect \
|
|
regexp \
|
|
regexp/syntax \
|
|
runtime \
|
|
runtime/debug \
|
|
runtime/internal/atomic \
|
|
runtime/internal/sys \
|
|
runtime/pprof \
|
|
runtime/pprof/internal/profile \
|
|
runtime/trace \
|
|
sort \
|
|
strconv \
|
|
strings \
|
|
sync \
|
|
sync/atomic \
|
|
syscall \
|
|
testing \
|
|
testing/internal/testdeps \
|
|
testing/iotest \
|
|
testing/quick \
|
|
text/scanner \
|
|
text/tabwriter \
|
|
text/template \
|
|
text/template/parse \
|
|
time \
|
|
unicode \
|
|
unicode/utf16 \
|
|
unicode/utf8
|
|
|
|
libgo_go_objs = \
|
|
$(addsuffix .lo,$(PACKAGES)) \
|
|
bytes/index.lo \
|
|
reflect/makefunc_ffi_c.lo \
|
|
strings/index.lo \
|
|
$(syscall_lib_clone_lo) \
|
|
syscall/errno.lo \
|
|
syscall/signame.lo \
|
|
syscall/wait.lo \
|
|
$(golang_org_x_net_lif_lo) \
|
|
$(golang_org_x_net_route_lo) \
|
|
log/syslog/syslog_c.lo \
|
|
$(os_lib_inotify_lo) \
|
|
runtime/internal/atomic_c.lo \
|
|
sync/atomic_c.lo
|
|
|
|
libgo_ldflags = \
|
|
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
|
|
|
|
libgo_libadd = \
|
|
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
|
|
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
|
|
|
|
libgo_la_SOURCES = $(runtime_files)
|
|
libgo_la_LDFLAGS = $(libgo_ldflags)
|
|
libgo_la_LIBADD = $(libgo_libadd)
|
|
|
|
libgo_llgo_la_SOURCES = $(runtime_files)
|
|
libgo_llgo_la_LDFLAGS = $(libgo_ldflags)
|
|
libgo_llgo_la_LIBADD = $(libgo_libadd)
|
|
|
|
libgobegin_a_SOURCES = \
|
|
runtime/go-main.c
|
|
|
|
libgobegin_llgo_a_SOURCES = \
|
|
runtime/go-main.c
|
|
|
|
# Use -fPIC for libgobegin so that it can be put in a PIE.
|
|
libgobegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
|
|
libgobegin_llgo_a_CFLAGS = $(AM_CFLAGS) -fPIC
|
|
|
|
libgolibbegin_a_SOURCES = \
|
|
runtime/go-libmain.c
|
|
|
|
libgolibbegin_a_CFLAGS = $(AM_CFLAGS) -fPIC
|
|
|
|
GOTOOL_PACKAGES = \
|
|
cmd/go/internal/base \
|
|
cmd/go/internal/bug \
|
|
cmd/go/internal/cache \
|
|
cmd/go/internal/cfg \
|
|
cmd/go/internal/clean \
|
|
cmd/go/internal/cmdflag \
|
|
cmd/go/internal/doc \
|
|
cmd/go/internal/envcmd \
|
|
cmd/go/internal/fix \
|
|
cmd/go/internal/fmtcmd \
|
|
cmd/go/internal/generate \
|
|
cmd/go/internal/get \
|
|
cmd/go/internal/help \
|
|
cmd/go/internal/list \
|
|
cmd/go/internal/load \
|
|
cmd/go/internal/run \
|
|
cmd/go/internal/str \
|
|
cmd/go/internal/test \
|
|
cmd/go/internal/tool \
|
|
cmd/go/internal/version \
|
|
cmd/go/internal/vet \
|
|
cmd/go/internal/web \
|
|
cmd/go/internal/work \
|
|
cmd/internal/browser \
|
|
cmd/internal/buildid \
|
|
cmd/internal/edit \
|
|
cmd/internal/objabi \
|
|
cmd/internal/test2json \
|
|
cmd/vet/internal/cfg \
|
|
cmd/vet/internal/whitelist
|
|
|
|
libgotool_a_SOURCES =
|
|
libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
|
|
libgotool_a_LIBADD = $(addsuffix .o,$(GOTOOL_PACKAGES))
|
|
|
|
define STATIC_template
|
|
$(subst -,_,$(subst .,_,$(subst /,_,$(1))))_GOCFLAGS = -static
|
|
endef
|
|
|
|
$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call STATIC_template,$(package).lo)))
|
|
|
|
# Make sure runtime.inc is built before compiling any .c file.
|
|
$(libgo_la_OBJECTS): runtime.inc
|
|
$(libgo_llgo_la_OBJECTS): runtime.inc
|
|
$(libgobegin_a_OBJECTS): runtime.inc
|
|
$(libgobegin_llgo_a_OBJECTS): runtime.inc
|
|
$(libgolibbegin_a_OBJECTS): runtime.inc
|
|
|
|
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
|
|
|
|
GOCFLAGS = $(CFLAGS)
|
|
AM_GOCFLAGS = $(STRINGOPS_FLAG) $(GO_SPLIT_STACK)
|
|
GOCOMPILE = $(GOC) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_GOCFLAGS) $(GOCFLAGS)
|
|
|
|
LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
|
|
$(AM_GOCFLAGS) $(GOCFLAGS)
|
|
|
|
GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
|
|
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) -o $@
|
|
|
|
# Build the dependencies for a Go package.
|
|
BUILDDEPS = \
|
|
$(MKDIR_P) $(@D); \
|
|
dir=`echo $@ | sed -e 's/.lo.dep$$//'`; \
|
|
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,,$@)))`; \
|
|
$(SHELL) $(srcdir)/godeps.sh `echo $@ | sed -e 's/.dep$$//'` $$files > $@.tmp; \
|
|
if ! cmp $@.tmp $@ >/dev/null 2>/dev/null; then \
|
|
rm -f `echo $@ | sed -e 's/\.dep$$//'`; \
|
|
fi; \
|
|
mv -f $@.tmp $@
|
|
|
|
# Build the .go files for a package, generating a .lo file.
|
|
BUILDPACKAGE = \
|
|
$(MKDIR_P) $(@D); \
|
|
files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; \
|
|
$(LTGOCOMPILE) -I . -c -fgo-pkgpath=`echo $@ | sed -e 's/.lo$$//' -e 's|golang_org|vendor/golang_org|'` $($(subst -,_,$(subst .,_,$(subst /,_,$@)))_GOCFLAGS) -o $@ $$files
|
|
|
|
# How to build a .gox file from a .lo file.
|
|
# Matching .o file can either be in the same directory as the .lo (non-PIC
|
|
# object) or in the .libs directory (PIC object).
|
|
BUILDGOX = \
|
|
f="$(basename $<).o"; \
|
|
if test ! -f $$f; then \
|
|
f="$(basename $(<D)/.libs/$(<F)).o"; \
|
|
fi; \
|
|
$(OBJCOPY) -j .go_export $$f $@.tmp; \
|
|
$(SHELL) $(srcdir)/mvifdiff.sh $@.tmp `echo $@ | sed -e 's/s-gox/gox/'`
|
|
|
|
GOTESTFLAGS =
|
|
GOBENCH =
|
|
|
|
# Check a package.
|
|
CHECK = \
|
|
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
|
|
export GC; \
|
|
GOLIBS="$(extra_check_libs_$(subst /,_,$(@D))) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
|
|
export GOLIBS; \
|
|
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
|
|
export RUNTESTFLAGS; \
|
|
MAKE="$(MAKE)"; \
|
|
export MAKE; \
|
|
NM="$(NM)"; \
|
|
export NM; \
|
|
libgccdir=`${GOC} ${GOCFLAGS} -print-libgcc-file-name | sed -e 's|/[^/]*$$||'`; \
|
|
LD_LIBRARY_PATH="`${PWD_COMMAND}`/.libs:$${libgccdir}:${LD_LIBRARY_PATH}"; \
|
|
LD_LIBRARY_PATH=`echo $${LD_LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \
|
|
export LD_LIBRARY_PATH; \
|
|
$(MKDIR_P) $(@D); \
|
|
rm -f $@-testsum $@-testlog; \
|
|
files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \
|
|
if test "$(USE_DEJAGNU)" = "yes"; then \
|
|
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \
|
|
elif test "$(GOBENCH)" != ""; then \
|
|
$(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \
|
|
else \
|
|
if $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
|
|
echo "PASS: $(@D)" >> $@-testlog; \
|
|
echo "PASS: $(@D)"; \
|
|
echo "PASS: $(@D)" > $@-testsum; \
|
|
else \
|
|
echo "FAIL: $(@D)" >> $@-testlog; \
|
|
cat $@-testlog; \
|
|
echo "FAIL: $(@D)" > $@-testsum; \
|
|
exit 1; \
|
|
fi; \
|
|
fi
|
|
|
|
# Build all packages before checking any.
|
|
CHECK_DEPS = \
|
|
$(toolexeclibgo_DATA) \
|
|
$(toolexeclibgoarchive_DATA) \
|
|
$(toolexeclibgocompress_DATA) \
|
|
$(toolexeclibgocontainer_DATA) \
|
|
$(toolexeclibgocrypto_DATA) \
|
|
$(toolexeclibgodebug_DATA) \
|
|
$(toolexeclibgoencoding_DATA) \
|
|
$(toolexeclibgogo_DATA) \
|
|
$(toolexeclibgohash_DATA) \
|
|
$(toolexeclibgoimage_DATA) \
|
|
$(toolexeclibgoindex_DATA) \
|
|
$(toolexeclibgoio_DATA) \
|
|
$(toolexeclibgolog_DATA) \
|
|
$(toolexeclibgomath_DATA) \
|
|
$(toolexeclibgomime_DATA) \
|
|
$(toolexeclibgonet_DATA) \
|
|
$(toolexeclibgonethttp_DATA) \
|
|
$(toolexeclibgoos_DATA) \
|
|
$(toolexeclibgopath_DATA) \
|
|
$(toolexeclibgorpc_DATA) \
|
|
$(toolexeclibgoruntime_DATA) \
|
|
$(toolexeclibgosync_DATA) \
|
|
$(toolexeclibgotesting_DATA) \
|
|
$(toolexeclibgotext_DATA) \
|
|
$(toolexeclibgotexttemplate_DATA) \
|
|
$(toolexeclibgounicode_DATA) \
|
|
$(noinst_LIBRARIES)
|
|
|
|
if GOC_IS_LLGO
|
|
CHECK_DEPS += libgo-llgo.la libgobegin-llgo.a
|
|
else
|
|
CHECK_DEPS += libgo.la libgobegin.a
|
|
endif
|
|
|
|
# PACKAGE_template defines the rules for each package.
|
|
# For example, for the package bufio, it produces:
|
|
#
|
|
# @go_include@ bufio.lo.dep
|
|
# bufio.lo.dep: $(srcdir)/go/bufio/*.go
|
|
# $(BUILDDEPS)
|
|
# bufio.lo:
|
|
# $(BUILDPACKAGE)
|
|
# bufio/check: $(CHECK_DEPS)
|
|
# @$(CHECK)
|
|
# .PHONY: bufio/check
|
|
#
|
|
# This is invoked with $(1) set to a package, which is a directory name,
|
|
# such as "bufio" or "archive/tar".
|
|
define PACKAGE_template
|
|
@go_include@ $(1).lo.dep
|
|
$(1).lo.dep: $(srcdir)/go/$(1)/*.go
|
|
$$(BUILDDEPS)
|
|
$(1).lo:
|
|
$$(BUILDPACKAGE)
|
|
$(1)/check: $$(CHECK_DEPS)
|
|
@$$(CHECK)
|
|
.PHONY: $(1)/check
|
|
$(1).gox: $(1).s-gox; @true
|
|
$(1).s-gox: $(1).lo
|
|
$$(BUILDGOX)
|
|
$$(STAMP) $$@
|
|
endef
|
|
|
|
# This line expands PACKAGE_template once for each package name listed
|
|
# in $(PACKAGES).
|
|
$(foreach package,$(PACKAGES),$(eval $(call PACKAGE_template,$(package))))
|
|
$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call PACKAGE_template,$(package))))
|
|
|
|
# Pass -ffp-contract=off, or 386-specific options, when building the
|
|
# math package. MATH_FLAG is defined in configure.ac.
|
|
math_lo_GOCFLAGS = $(MATH_FLAG)
|
|
math_check_GOCFLAGS = $(MATH_FLAG)
|
|
|
|
# Add the generated file runtime_sysinfo.go to the runtime package.
|
|
extra_go_files_runtime = runtime_sysinfo.go sigtab.go
|
|
runtime.lo.dep: $(extra_go_files_runtime)
|
|
|
|
# Add generated files to the syscall package.
|
|
extra_go_files_syscall = \
|
|
libcalls.go \
|
|
sysinfo.go \
|
|
syscall_arch.go \
|
|
$(syscall_epoll_file)
|
|
syscall.lo.dep: $(extra_go_files_syscall)
|
|
|
|
# Pass -fgo-compiling-runtime when compiling the runtime package.
|
|
runtime_lo_GOCFLAGS = -fgo-c-header=runtime.inc.tmp -fgo-compiling-runtime
|
|
runtime_check_GOCFLAGS = -fgo-compiling-runtime
|
|
runtime_internal_atomic_lo_GOCFLAGS = -fgo-compiling-runtime
|
|
runtime_internal_atomic_lo_check_GOCFLAGS = -fgo-compiling-runtime
|
|
runtime_internal_sys_lo_GOCFLAGS = -fgo-compiling-runtime
|
|
runtime_internal_sys_lo_check_GOCFLAGS = -fgo-compiling-runtime
|
|
|
|
# If libffi is supported (the normal case) use the ffi build tag for
|
|
# the runtime package.
|
|
if USE_LIBFFI
|
|
matchargs_runtime = --tag=libffi
|
|
else
|
|
matchargs_runtime =
|
|
endif
|
|
|
|
# At least for now, we need -static-libgo for this test, because
|
|
# otherwise we can't get the line numbers.
|
|
# Also use -fno-inline to get better results from the memory profiler.
|
|
runtime_pprof_check_GOCFLAGS = -static-libgo -fno-inline
|
|
|
|
extra_go_files_runtime_internal_sys = version.go
|
|
runtime/internal/sys.lo.dep: $(extra_go_files_runtime_internal_sys)
|
|
|
|
extra_go_files_go_types = gccgosizes.go
|
|
go/types.lo.dep: $(extra_go_files_go_types)
|
|
|
|
extra_go_files_cmd_internal_objabi = objabi.go
|
|
cmd/internal/objabi.lo.dep: $(extra_go_files_cmd_internal_objabi)
|
|
|
|
extra_go_files_cmd_go_internal_cfg = zdefaultcc.go
|
|
cmd/go/internal/cfg.lo.dep: $(extra_go_files_cmd_go_internal_cfg)
|
|
|
|
extra_go_files_cmd_go_internal_load = zstdpkglist.go
|
|
cmd/go/internal/load.lo.dep: $(extra_go_files_cmd_go_internal_load)
|
|
|
|
extra_check_libs_cmd_go_internal_cache = $(abs_builddir)/libgotool.a
|
|
extra_check_libs_cmd_go_internal_generate = $(abs_builddir)/libgotool.a
|
|
extra_check_libs_cmd_go_internal_get = $(abs_builddir)/libgotool.a
|
|
extra_check_libs_cmd_go_internal_load = $(abs_builddir)/libgotool.a
|
|
extra_check_libs_cmd_go_internal_work = $(abs_builddir)/libgotool.a
|
|
|
|
extra_check_libs_cmd_vet_internal_cfg = $(abs_builddir)/libgotool.a
|
|
|
|
# FIXME: The following C files may as well move to the runtime
|
|
# directory and be treated like other C files.
|
|
|
|
# Use C code to speed up {bytes,strings}.IndexByte and friends.
|
|
bytes/index.lo: go/bytes/indexbyte.c runtime.inc
|
|
@$(MKDIR_P) bytes
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/bytes/indexbyte.c
|
|
strings/index.lo: go/strings/indexbyte.c runtime.inc
|
|
@$(MKDIR_P) strings
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/strings/indexbyte.c
|
|
|
|
# Use a C function with a fixed number of arguments to call a C
|
|
# varargs function.
|
|
log/syslog/syslog_c.lo: go/log/syslog/syslog_c.c runtime.inc
|
|
@$(MKDIR_P) log/syslog
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/log/syslog/syslog_c.c
|
|
|
|
# The interface to libffi from the reflect package is written in C.
|
|
reflect/makefunc_ffi_c.lo: go/reflect/makefunc_ffi_c.c runtime.inc
|
|
@$(MKDIR_P) reflect
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/reflect/makefunc_ffi_c.c
|
|
|
|
# The atomic functions are written in C.
|
|
runtime/internal/atomic_c.lo: go/runtime/internal/atomic/atomic.c runtime.inc
|
|
@$(MKDIR_P) runtime/internal
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/runtime/internal/atomic/atomic.c
|
|
sync/atomic_c.lo: go/sync/atomic/atomic.c runtime.inc
|
|
@$(MKDIR_P) sync
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/sync/atomic/atomic.c
|
|
|
|
# A few syscall functions are written in C.
|
|
syscall/clone_linux.lo: go/syscall/clone_linux.c runtime.inc
|
|
@$(MKDIR_P) syscall
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/clone_linux.c
|
|
syscall/errno.lo: go/syscall/errno.c runtime.inc
|
|
@$(MKDIR_P) syscall
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/errno.c
|
|
syscall/signame.lo: go/syscall/signame.c runtime.inc
|
|
@$(MKDIR_P) syscall
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/signame.c
|
|
syscall/wait.lo: go/syscall/wait.c runtime.inc
|
|
@$(MKDIR_P) syscall
|
|
$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/wait.c
|
|
|
|
# Solaris 11.4 changed the type of fields in struct stat.
|
|
# Use a build tag, based on a configure check, to cope.
|
|
if LIBGO_IS_SOLARIS
|
|
if HAVE_STAT_TIMESPEC
|
|
matchargs_os = --tag=solaristag
|
|
else
|
|
matchargs_os =
|
|
endif
|
|
else
|
|
matchargs_os =
|
|
endif
|
|
|
|
if LIBGO_IS_BSD
|
|
|
|
# Build golang_org/x/net/route only on BSD systems.
|
|
|
|
$(eval $(call PACKAGE_template,golang_org/x/net/route))
|
|
|
|
golang_org_x_net_route_lo = \
|
|
golang_org/x/net/route.lo
|
|
golang_org_x_net_route_check = \
|
|
golang_org/x/net/route/check
|
|
|
|
endif
|
|
|
|
if LIBGO_IS_SOLARIS
|
|
|
|
# Build golang_org/x/net/lif only on Solaris systems.
|
|
|
|
$(eval $(call PACKAGE_template,golang_org/x/net/lif))
|
|
|
|
golang_org_x_net_lif_lo = \
|
|
golang_org/x/net/lif.lo
|
|
golang_org_x_net_lif_check = \
|
|
golang_org/x/net/lif/check
|
|
|
|
endif
|
|
|
|
TEST_PACKAGES = \
|
|
bufio/check \
|
|
bytes/check \
|
|
context/check \
|
|
crypto/check \
|
|
errors/check \
|
|
expvar/check \
|
|
flag/check \
|
|
fmt/check \
|
|
hash/check \
|
|
html/check \
|
|
image/check \
|
|
io/check \
|
|
log/check \
|
|
math/check \
|
|
mime/check \
|
|
net/check \
|
|
os/check \
|
|
path/check \
|
|
reflect/check \
|
|
regexp/check \
|
|
runtime/check \
|
|
sort/check \
|
|
strconv/check \
|
|
strings/check \
|
|
sync/check \
|
|
syscall/check \
|
|
time/check \
|
|
unicode/check \
|
|
archive/tar/check \
|
|
archive/zip/check \
|
|
cmd/go/internal/cache/check \
|
|
cmd/go/internal/generate/check \
|
|
cmd/go/internal/get/check \
|
|
cmd/go/internal/load/check \
|
|
cmd/go/internal/work/check \
|
|
cmd/internal/buildid/check \
|
|
cmd/internal/edit/check \
|
|
cmd/internal/objabi/check \
|
|
cmd/internal/test2json/check \
|
|
cmd/vet/internal/cfg/check \
|
|
compress/bzip2/check \
|
|
compress/flate/check \
|
|
compress/gzip/check \
|
|
compress/lzw/check \
|
|
compress/zlib/check \
|
|
container/heap/check \
|
|
container/list/check \
|
|
container/ring/check \
|
|
crypto/aes/check \
|
|
crypto/cipher/check \
|
|
crypto/des/check \
|
|
crypto/dsa/check \
|
|
crypto/ecdsa/check \
|
|
crypto/elliptic/check \
|
|
crypto/hmac/check \
|
|
crypto/md5/check \
|
|
crypto/rand/check \
|
|
crypto/rc4/check \
|
|
crypto/rsa/check \
|
|
crypto/sha1/check \
|
|
crypto/sha256/check \
|
|
crypto/sha512/check \
|
|
crypto/subtle/check \
|
|
crypto/tls/check \
|
|
crypto/x509/check \
|
|
database/sql/check \
|
|
database/sql/driver/check \
|
|
debug/dwarf/check \
|
|
debug/elf/check \
|
|
debug/macho/check \
|
|
debug/pe/check \
|
|
debug/plan9obj/check \
|
|
debug/xcoff/check \
|
|
encoding/ascii85/check \
|
|
encoding/asn1/check \
|
|
encoding/base32/check \
|
|
encoding/base64/check \
|
|
encoding/binary/check \
|
|
encoding/csv/check \
|
|
encoding/gob/check \
|
|
encoding/hex/check \
|
|
encoding/json/check \
|
|
encoding/pem/check \
|
|
encoding/xml/check \
|
|
html/template/check \
|
|
go/ast/check \
|
|
go/build/check \
|
|
go/constant/check \
|
|
go/doc/check \
|
|
go/format/check \
|
|
go/importer/check \
|
|
go/internal/gcimporter/check \
|
|
go/internal/gccgoimporter/check \
|
|
go/internal/srcimporter/check \
|
|
go/parser/check \
|
|
go/printer/check \
|
|
go/scanner/check \
|
|
go/token/check \
|
|
go/types/check \
|
|
golang_org/x/crypto/chacha20poly1305/check \
|
|
golang_org/x/crypto/chacha20poly1305/internal/chacha20/check \
|
|
golang_org/x/crypto/cryptobyte/check \
|
|
golang_org/x/crypto/curve25519/check \
|
|
golang_org/x/crypto/poly1305/check \
|
|
golang_org/x/net/http2/hpack/check \
|
|
golang_org/x/net/idna/check \
|
|
golang_org/x/net/lex/httplex/check \
|
|
$(golang_org_x_net_lif_check) \
|
|
golang_org/x/net/proxy/check \
|
|
$(golang_org_x_net_route_check) \
|
|
hash/adler32/check \
|
|
hash/crc32/check \
|
|
hash/crc64/check \
|
|
hash/fnv/check \
|
|
image/color/check \
|
|
image/draw/check \
|
|
image/jpeg/check \
|
|
image/png/check \
|
|
index/suffixarray/check \
|
|
internal/poll/check \
|
|
internal/singleflight/check \
|
|
internal/trace/check \
|
|
io/ioutil/check \
|
|
log/syslog/check \
|
|
math/big/check \
|
|
math/bits/check \
|
|
math/cmplx/check \
|
|
math/rand/check \
|
|
mime/multipart/check \
|
|
mime/quotedprintable/check \
|
|
net/http/check \
|
|
net/http/cgi/check \
|
|
net/http/cookiejar/check \
|
|
net/http/fcgi/check \
|
|
net/http/httptest/check \
|
|
net/http/httptrace/check \
|
|
net/http/httputil/check \
|
|
net/http/internal/check \
|
|
net/internal/socktest/check \
|
|
net/mail/check \
|
|
net/rpc/check \
|
|
net/smtp/check \
|
|
net/textproto/check \
|
|
net/url/check \
|
|
net/rpc/jsonrpc/check \
|
|
os/exec/check \
|
|
os/signal/check \
|
|
os/user/check \
|
|
path/filepath/check \
|
|
regexp/syntax/check \
|
|
runtime/debug/check \
|
|
runtime/internal/atomic/check \
|
|
runtime/internal/sys/check \
|
|
runtime/pprof/check \
|
|
runtime/pprof/internal/profile/check \
|
|
runtime/trace/check \
|
|
sync/atomic/check \
|
|
text/scanner/check \
|
|
text/tabwriter/check \
|
|
text/template/check \
|
|
text/template/parse/check \
|
|
testing/quick/check \
|
|
unicode/utf16/check \
|
|
unicode/utf8/check
|
|
|
|
check: check-tail
|
|
check-recursive: check-head
|
|
|
|
check-head:
|
|
@echo "Test Run By $${USER} on `date`" > libgo.head
|
|
@echo "Native configuration is $(host_triplet)" >> libgo.head
|
|
@echo >> libgo.head
|
|
@echo " === libgo tests ===" >> libgo.head
|
|
@echo >> libgo.head
|
|
|
|
check-tail: check-recursive check-multi
|
|
@if test "$(USE_DEJAGNU)" = "yes"; then \
|
|
exit 0; \
|
|
fi; \
|
|
lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
|
|
for dir in . $(MULTIDIRS); do \
|
|
mv ../$${dir}/$${lib}/libgo.sum ../$${dir}/$${lib}/libgo.sum.sep; \
|
|
mv ../$${dir}/$${lib}/libgo.log ../$${dir}/$${lib}/libgo.log.sep; \
|
|
done; \
|
|
mv libgo.head libgo.sum; \
|
|
cp libgo.sum libgo.log; \
|
|
echo "Schedule of variations:" >> libgo.sum; \
|
|
for dir in . $(MULTIDIRS); do \
|
|
multidir=../$${dir}/$${lib}; \
|
|
multivar=`cat $${multidir}/libgo.var`; \
|
|
echo " $${multivar}" >> libgo.sum; \
|
|
done; \
|
|
echo >> libgo.sum; \
|
|
pass=0; fail=0; untested=0; \
|
|
for dir in . $(MULTIDIRS); do \
|
|
multidir=../$${dir}/$${lib}; \
|
|
multivar=`cat $${multidir}/libgo.var`; \
|
|
echo "Running target $${multivar}" >> libgo.sum; \
|
|
echo "Running $(srcdir)/libgo.exp ..." >> libgo.sum; \
|
|
cat $${multidir}/libgo.sum.sep >> libgo.sum; \
|
|
cat $${multidir}/libgo.log.sep >> libgo.log; \
|
|
if test -n "${MULTIDIRS}"; then \
|
|
echo " === libgo Summary for $${multivar} ===" >> libgo.sum; \
|
|
echo >> libgo.sum; \
|
|
fi; \
|
|
p=`grep -c PASS $${multidir}/libgo.sum.sep`; \
|
|
pass=`expr $$pass + $$p`; \
|
|
if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \
|
|
echo "# of expected passes $$p" >> libgo.sum; \
|
|
fi; \
|
|
p=`grep -c FAIL $${multidir}/libgo.sum.sep`; \
|
|
fail=`expr $$fail + $$p`; \
|
|
if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \
|
|
echo "# of unexpected failures $$p" >> libgo.sum; \
|
|
fi; \
|
|
p=`grep -c UNTESTED $${multidir}/libgo.sum.sep`; \
|
|
untested=`expr $$untested + $$p`; \
|
|
if test "$$p" -ne "0" && test -n "${MULTIDIRS}"; then \
|
|
echo "# of untested testcases $$p" >> libgo.sum; \
|
|
fi; \
|
|
done; \
|
|
echo >> libgo.sum; \
|
|
echo " === libgo Summary ===" >> libgo.sum; \
|
|
echo >> libgo.sum; \
|
|
if test "$$pass" -ne "0"; then \
|
|
echo "# of expected passes $$pass" >> libgo.sum; \
|
|
fi; \
|
|
if test "$$fail" -ne "0"; then \
|
|
echo "# of unexpected failures $$fail" >> libgo.sum; \
|
|
fi; \
|
|
if test "$$untested" -ne "0"; then \
|
|
echo "# of untested testcases $$untested" >> libgo.sum; \
|
|
fi; \
|
|
echo `echo $(GOC) | sed -e 's/ .*//'` `$(GOC) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> libgo.sum; \
|
|
echo >> libgo.log; \
|
|
echo "runtest completed at `date`" >> libgo.log; \
|
|
if test "$$fail" -ne "0"; then \
|
|
status=1; \
|
|
else \
|
|
status=0; \
|
|
fi; \
|
|
exit $$status
|
|
|
|
check-am:
|
|
@rm -f libgo.sum libgo.log libgo.tail
|
|
@multivar="unix"; \
|
|
[ -z "$(MULTIFLAGS)" ] || multivar="$${multivar}/$(MULTIFLAGS)"; \
|
|
echo "$${multivar}" > libgo.var
|
|
@for f in $(TEST_PACKAGES); do \
|
|
rm -f $$f-testsum $$f-testlog; \
|
|
done
|
|
-@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES)
|
|
@for f in $(TEST_PACKAGES); do \
|
|
if test -f $$f-testsum; then \
|
|
cat $$f-testsum >> libgo.sum; \
|
|
fi; \
|
|
if test -f $$f-testlog; then \
|
|
cat $$f-testlog >> libgo.log; \
|
|
fi; \
|
|
done
|
|
|
|
check-multi:
|
|
$(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE)
|
|
|
|
bench:
|
|
-@$(MAKE) $(AM_MAKEFLAGS) -k $(TEST_PACKAGES) GOBENCH=.
|
|
|
|
MOSTLYCLEANFILES = \
|
|
s-runtime_sysinfo s-sigtab s-runtime-inc s-zstdpkglist \
|
|
s-libcalls s-libcalls-list s-syscall_arch s-gen-sysinfo s-sysinfo \
|
|
s-errno s-epoll \
|
|
libgo.head libgo.sum.sep libgo.log.sep libgo.var \
|
|
libcalls-list runtime.inc runtime.inc.tmp2 runtime.inc.tmp3
|
|
|
|
mostlyclean-local:
|
|
find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
|
|
find . -name '*.$(OBJEXT)' -print | xargs rm -f
|
|
find . -name '*-testsum' -print | xargs rm -f
|
|
find . -name '*-testlog' -print | xargs rm -f
|
|
|
|
CLEANFILES = *.go *.c s-* libgo.sum libgo.log runtime.inc
|
|
|
|
clean-local:
|
|
find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f
|
|
find . -name '*.a' -print | xargs rm -f
|
|
find . -name '*.gox' -print | xargs rm -f
|
|
find . -name '*.s-gox' -print | xargs rm -f
|
|
|
|
distclean-local:
|
|
find . -name '*.lo.dep' -print | xargs rm -f
|