OSDN Git Service

libgo: Support multilib testing.
[pf3gnuchains/gcc-fork.git] / libgo / Makefile.in
index 2b62587..1d6f62c 100644 (file)
@@ -140,31 +140,30 @@ am__DEPENDENCIES_2 = asn1/asn1.lo big/big.lo bufio/bufio.lo \
        archive/zip.lo compress/bzip2.lo compress/flate.lo \
        compress/gzip.lo compress/lzw.lo compress/zlib.lo \
        container/heap.lo container/list.lo container/ring.lo \
-       container/vector.lo crypto/aes.lo crypto/block.lo \
-       crypto/blowfish.lo crypto/cast5.lo crypto/cipher.lo \
-       crypto/dsa.lo crypto/ecdsa.lo crypto/elliptic.lo \
-       crypto/hmac.lo crypto/md4.lo crypto/md5.lo crypto/ocsp.lo \
-       crypto/openpgp.lo crypto/rand.lo crypto/rc4.lo \
-       crypto/ripemd160.lo crypto/rsa.lo crypto/sha1.lo \
-       crypto/sha256.lo crypto/sha512.lo crypto/subtle.lo \
-       crypto/tls.lo crypto/twofish.lo crypto/x509.lo crypto/xtea.lo \
-       crypto/openpgp/armor.lo crypto/openpgp/error.lo \
-       crypto/openpgp/packet.lo crypto/openpgp/s2k.lo debug/dwarf.lo \
-       debug/elf.lo debug/gosym.lo debug/macho.lo debug/pe.lo \
-       debug/proc.lo encoding/ascii85.lo encoding/base32.lo \
-       encoding/base64.lo encoding/binary.lo encoding/git85.lo \
-       encoding/hex.lo encoding/line.lo encoding/pem.lo \
-       exp/datafmt.lo exp/draw.lo exp/eval.lo go/ast.lo go/doc.lo \
-       go/parser.lo go/printer.lo go/scanner.lo go/token.lo \
-       go/typechecker.lo hash/adler32.lo hash/crc32.lo hash/crc64.lo \
-       hash/fnv.lo http/cgi.lo http/httptest.lo http/pprof.lo \
-       image/jpeg.lo image/png.lo index/suffixarray.lo io/ioutil.lo \
-       mime/multipart.lo net/dict.lo net/textproto.lo \
-       $(am__DEPENDENCIES_1) os/signal.lo path/filepath.lo \
-       rpc/jsonrpc.lo runtime/debug.lo runtime/pprof.lo \
-       sync/atomic.lo sync/atomic_c.lo syscalls/syscall.lo \
-       syscalls/errno.lo testing/testing.lo testing/iotest.lo \
-       testing/quick.lo testing/script.lo
+       container/vector.lo crypto/aes.lo crypto/blowfish.lo \
+       crypto/cast5.lo crypto/cipher.lo crypto/des.lo crypto/dsa.lo \
+       crypto/ecdsa.lo crypto/elliptic.lo crypto/hmac.lo \
+       crypto/md4.lo crypto/md5.lo crypto/ocsp.lo crypto/openpgp.lo \
+       crypto/rand.lo crypto/rc4.lo crypto/ripemd160.lo crypto/rsa.lo \
+       crypto/sha1.lo crypto/sha256.lo crypto/sha512.lo \
+       crypto/subtle.lo crypto/tls.lo crypto/twofish.lo \
+       crypto/x509.lo crypto/xtea.lo crypto/openpgp/armor.lo \
+       crypto/openpgp/error.lo crypto/openpgp/packet.lo \
+       crypto/openpgp/s2k.lo debug/dwarf.lo debug/elf.lo \
+       debug/gosym.lo debug/macho.lo debug/pe.lo debug/proc.lo \
+       encoding/ascii85.lo encoding/base32.lo encoding/base64.lo \
+       encoding/binary.lo encoding/git85.lo encoding/hex.lo \
+       encoding/line.lo encoding/pem.lo exp/datafmt.lo exp/draw.lo \
+       exp/eval.lo go/ast.lo go/doc.lo go/parser.lo go/printer.lo \
+       go/scanner.lo go/token.lo go/typechecker.lo hash/adler32.lo \
+       hash/crc32.lo hash/crc64.lo hash/fnv.lo http/cgi.lo \
+       http/httptest.lo http/pprof.lo image/jpeg.lo image/png.lo \
+       index/suffixarray.lo io/ioutil.lo mime/multipart.lo \
+       net/dict.lo net/textproto.lo $(am__DEPENDENCIES_1) \
+       os/signal.lo path/filepath.lo rpc/jsonrpc.lo runtime/debug.lo \
+       runtime/pprof.lo sync/atomic.lo sync/atomic_c.lo \
+       syscalls/syscall.lo syscalls/errno.lo testing/testing.lo \
+       testing/iotest.lo testing/quick.lo testing/script.lo
 libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
@@ -247,6 +246,9 @@ am__objects_3 = go-append.lo go-assert.lo go-assert-interface.lo \
        string.lo
 am_libgo_la_OBJECTS = $(am__objects_3)
 libgo_la_OBJECTS = $(am_libgo_la_OBJECTS)
+libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgo_la_LDFLAGS) \
+       $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/../depcomp
 am__depfiles_maybe = depfiles
@@ -386,6 +388,7 @@ NMEDIT = @NMEDIT@
 OBJCOPY = @OBJCOPY@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
+OSCFLAGS = @OSCFLAGS@
 OTOOL = @OTOOL@
 OTOOL64 = @OTOOL64@
 PACKAGE = @PACKAGE@
@@ -620,10 +623,10 @@ toolexeclibgocontainer_DATA = \
 toolexeclibgocryptodir = $(toolexeclibgodir)/crypto
 toolexeclibgocrypto_DATA = \
        crypto/aes.gox \
-       crypto/block.gox \
        crypto/blowfish.gox \
        crypto/cast5.gox \
        crypto/cipher.gox \
+       crypto/des.gox \
        crypto/dsa.gox \
        crypto/ecdsa.gox \
        crypto/elliptic.gox \
@@ -1067,12 +1070,14 @@ go_netchan_files = \
        go/netchan/export.go \
        go/netchan/import.go
 
-@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@go_os_dir_file = go/os/dir_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@go_os_dir_file = go/os/dir_largefile.go
 @LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@go_os_dir_file = go/os/dir_largefile.go
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_regfile.go
 @LIBGO_IS_LINUX_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_dir_file = go/os/dir_largefile.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_bsd.go
-@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
+@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_bsd.go
+@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_TRUE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
+@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@go_os_sys_file = go/os/sys_uname.go
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@go_os_sys_file = go/os/sys_uname.go
 @LIBGO_IS_LINUX_TRUE@go_os_sys_file = go/os/sys_linux.go
 go_os_files = \
@@ -1081,9 +1086,12 @@ go_os_files = \
        go/os/env.go \
        go/os/env_unix.go \
        go/os/error.go \
+       go/os/error_posix.go \
        go/os/exec.go \
+       go/os/exec_posix.go \
        go/os/exec_unix.go \
        go/os/file.go \
+       go/os/file_posix.go \
        go/os/file_unix.go \
        go/os/getwd.go \
        go/os/path.go \
@@ -1273,17 +1281,6 @@ go_crypto_aes_files = \
        go/crypto/aes/cipher.go \
        go/crypto/aes/const.go
 
-go_crypto_block_files = \
-       go/crypto/block/cbc.go \
-       go/crypto/block/cfb.go \
-       go/crypto/block/cmac.go \
-       go/crypto/block/cipher.go \
-       go/crypto/block/ctr.go \
-       go/crypto/block/eax.go \
-       go/crypto/block/ecb.go \
-       go/crypto/block/ofb.go \
-       go/crypto/block/xor.go
-
 go_crypto_blowfish_files = \
        go/crypto/blowfish/block.go \
        go/crypto/blowfish/const.go \
@@ -1301,6 +1298,11 @@ go_crypto_cipher_files = \
        go/crypto/cipher/ocfb.go \
        go/crypto/cipher/ofb.go
 
+go_crypto_des_files = \
+       go/crypto/des/block.go \
+       go/crypto/des/cipher.go \
+       go/crypto/des/const.go
+
 go_crypto_dsa_files = \
        go/crypto/dsa/dsa.go
 
@@ -1612,10 +1614,11 @@ go_testing_script_files = \
 
 # Define Syscall and Syscall6.
 @LIBGO_IS_RTEMS_TRUE@syscall_syscall_file = syscalls/syscall_stubs.go
-# Use lseek on amd64 Solaris.
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_file = syscalls/sysfile_regfile.go
-# FIXME: Same for sparc vs. sparc64.  Introduce new/additional conditional?
-# Use lseek64 on 386 Solaris.
+# Use lseek on 64-bit Solaris.
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@syscall_filesize_file = syscalls/sysfile_regfile.go
+# Use lseek64 on 32-bit Solaris/SPARC.
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
+# Use lseek64 on 32-bit Solaris/x86.
 @LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
 # Use lseek by default.
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_filesize_file = syscalls/sysfile_regfile.go
@@ -1623,25 +1626,31 @@ go_testing_script_files = \
 # Declare libc functions that vary for largefile systems.
 # Always use lseek64 on GNU/Linux.
 @LIBGO_IS_LINUX_TRUE@syscall_filesize_file = syscalls/sysfile_largefile.go
-@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_FALSE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
+@LIBGO_IS_386_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@@LIBGO_IS_SPARC_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
 @LIBGO_IS_386_TRUE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@syscall_stat_file = syscalls/sysfile_stat_regfile.go
 @LIBGO_IS_LINUX_TRUE@syscall_stat_file = syscalls/sysfile_stat_largefile.go
 @LIBGO_IS_RTEMS_FALSE@syscall_exec_os_file = syscalls/exec.go
 
-# Define ForkExec, PtraceForkExec, Exec, and Wait4.
+# Define ForkExec, PtraceForkExec, and Exec.
 @LIBGO_IS_RTEMS_TRUE@syscall_exec_os_file = syscalls/exec_stubs.go
+@HAVE_WAIT4_FALSE@syscall_wait_file = syscalls/waitpid.go
+
+# Define Wait4.
+@HAVE_WAIT4_TRUE@syscall_wait_file = syscalls/wait4.go
 @LIBGO_IS_RTEMS_FALSE@syscall_sleep_file = syscalls/sleep_select.go
 
 # Define Sleep.
 @LIBGO_IS_RTEMS_TRUE@syscall_sleep_file = syscalls/sleep_rtems.go
-@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr.go
+@HAVE_STRERROR_R_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr_nor.go
+@HAVE_STRERROR_R_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_file = syscalls/errstr.go
 
 # Define Errstr.
 @LIBGO_IS_RTEMS_TRUE@syscall_errstr_file = syscalls/errstr_rtems.go
 # On other systems we hope strerror_r is just strerror_r.
 @LIBGO_IS_LINUX_FALSE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl.go
-# In Linux the POSIX strerror_r is called __xpg_strerror_r.
+# On GNU/Linux the POSIX strerror_r is called __xpg_strerror_r.
 @LIBGO_IS_LINUX_TRUE@@LIBGO_IS_RTEMS_FALSE@syscall_errstr_decl_file = syscalls/errstr_decl_linux.go
 
 # Declare libc_strerror_r which is the Go name for strerror_r.
@@ -1667,6 +1676,7 @@ go_syscall_files = \
        $(syscall_errstr_decl_file) \
        syscalls/exec_helpers.go \
        $(syscall_exec_os_file) \
+       $(syscall_wait_file) \
        $(syscall_filesize_file) \
        $(syscall_stat_file) \
        $(syscall_sleep_file) \
@@ -1752,10 +1762,10 @@ libgo_go_objs = \
        container/ring.lo \
        container/vector.lo \
        crypto/aes.lo \
-       crypto/block.lo \
        crypto/blowfish.lo \
        crypto/cast5.lo \
        crypto/cipher.lo \
+       crypto/des.lo \
        crypto/dsa.lo \
        crypto/ecdsa.lo \
        crypto/elliptic.lo \
@@ -1834,6 +1844,7 @@ libgo_go_objs = \
        testing/script.lo
 
 libgo_la_SOURCES = $(runtime_files)
+libgo_la_LDFLAGS = $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
 libgo_la_LIBADD = \
        $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
 
@@ -1862,47 +1873,73 @@ GOTESTFLAGS =
 
 # Check a package.
 CHECK = \
-       @GC="$(GOC) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs -Wl,-R,`${PWD_COMMAND}`/.libs"; \
+       GC="$(GOC) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
        export GC; \
        RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
        export RUNTESTFLAGS; \
        MAKE="$(MAKE)"; \
        export MAKE; \
-       rm -f $@-log; \
+       libgccdir=`${GOC} -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; \
+       rm -f $@-testsum $@-testlog; \
        prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
        test "$${prefix}" != "." || prefix="$(@D)"; \
        if test "$(use_dejagnu)" = "yes"; then \
-         $(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS); \
+         $(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" --testname="$(@D)" $(GOTESTFLAGS); \
        else \
-         if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-log 2>&1; then \
+         if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
+           echo "PASS: $(@D)" >> $@-testlog; \
            echo "PASS: $(@D)"; \
+           echo "PASS: $(@D)" > $@-testsum; \
          else \
-           echo "FAIL: $(@D)"; \
-           cat $@-log; \
+           echo "FAIL: $(@D)" >> $@-testlog; \
+           cat $@-testlog; \
+           echo "FAIL: $(@D)" > $@-testsum; \
            exit 1; \
          fi; \
        fi
 
 
+# Check a package that is only tested if GCCGO_RUN_ALL_TESTS is set.
+CHECK_ON_REQUEST = \
+       if test "$$GCCGO_RUN_ALL_TESTS" != ""; then \
+         $(CHECK); \
+       else \
+         rm -f $@-testsum $@-testlog; \
+         echo "Set GCCGO_RUN_ALL_TESTS in environment to run $(@D) test" > $@-testlog; \
+         echo "UNTESTED: $(@D)" >> $@-testlog; \
+         echo "UNTESTED: $(@D)"; \
+         echo "UNTESTED: $(@D)" > $@-testsum; \
+       fi
+
+
 # Build all packages before checking any.
 CHECK_DEPS = libgo.la libgobegin.a \
-       $(toolexeclib_DATA) \
-       $(toolexeclibarchive_DATA) \
-       $(toolexeclibcompress_DATA) \
-       $(toolexeclibcontainer_DATA) \
-       $(toolexeclibcrypto_DATA) \
-       $(toolexeclibdebug_DATA) \
-       $(toolexeclibencoding_DATA) \
-       $(toolexeclibexp_DATA) \
        $(toolexeclibgo_DATA) \
-       $(toolexeclibhash_DATA) \
-       $(toolexeclibhttp_DATA) \
-       $(toolexeclibimage_DATA) \
-       $(toolexeclibio_DATA) \
-       $(toolexeclibos_DATA) \
-       $(toolexeclibrpc_DATA) \
-       $(toolexeclibruntime_DATA) \
-       $(toolexeclibtesting_DATA)
+       $(toolexeclibgoarchive_DATA) \
+       $(toolexeclibgocompress_DATA) \
+       $(toolexeclibgocontainer_DATA) \
+       $(toolexeclibgocrypto_DATA) \
+       $(toolexeclibgocryptoopenpgp_DATA) \
+       $(toolexeclibgodebug_DATA) \
+       $(toolexeclibgoencoding_DATA) \
+       $(toolexeclibgoexp_DATA) \
+       $(toolexeclibgogo_DATA) \
+       $(toolexeclibgohash_DATA) \
+       $(toolexeclibgohttp_DATA) \
+       $(toolexeclibgoimage_DATA) \
+       $(toolexeclibgoindex_DATA) \
+       $(toolexeclibgoio_DATA) \
+       $(toolexeclibgomime_DATA) \
+       $(toolexeclibgonet_DATA) \
+       $(toolexeclibgoos_DATA) \
+       $(toolexeclibgopath_DATA) \
+       $(toolexeclibgorpc_DATA) \
+       $(toolexeclibgoruntime_DATA) \
+       $(toolexeclibgosync_DATA) \
+       $(toolexeclibgotesting_DATA)
 
 
 # How to build a .gox file from a .lo file.
@@ -1933,7 +1970,7 @@ TEST_PACKAGES = \
        log/check \
        math/check \
        mime/check \
-       $(if $(GCCGO_RUN_ALL_TESTS),net/check) \
+       net/check \
        netchan/check \
        os/check \
        patch/check \
@@ -1949,7 +1986,7 @@ TEST_PACKAGES = \
        strconv/check \
        strings/check \
        sync/check \
-       $(if $(GCCGO_RUN_ALL_TESTS),syslog/check) \
+       syslog/check \
        tabwriter/check \
        template/check \
        time/check \
@@ -1971,10 +2008,10 @@ TEST_PACKAGES = \
        container/ring/check \
        container/vector/check \
        crypto/aes/check \
-       crypto/block/check \
        crypto/blowfish/check \
        crypto/cast5/check \
        crypto/cipher/check \
+       crypto/des/check \
        crypto/dsa/check \
        crypto/ecdsa/check \
        crypto/elliptic/check \
@@ -2036,7 +2073,8 @@ TEST_PACKAGES = \
        testing/quick/check \
        testing/script/check
 
-CLEANFILES = *.go *.gox goc2c *.c s-version
+MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep
+CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -2161,7 +2199,7 @@ clean-toolexeclibLTLIBRARIES:
          rm -f "$${dir}/so_locations"; \
        done
 libgo.la: $(libgo_la_OBJECTS) $(libgo_la_DEPENDENCIES) 
-       $(LINK) -rpath $(toolexeclibdir) $(libgo_la_OBJECTS) $(libgo_la_LIBADD) $(LIBS)
+       $(libgo_la_LINK) -rpath $(toolexeclibdir) $(libgo_la_OBJECTS) $(libgo_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -3985,19 +4023,19 @@ asn1/asn1.lo: $(go_asn1_files) bytes.gox fmt.gox io.gox os.gox reflect.gox \
                strconv.gox strings.gox time.gox
        $(BUILDPACKAGE)
 asn1/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: asn1/check
 
 big/big.lo: $(go_big_files) fmt.gox rand.gox strings.gox os.gox
        $(BUILDPACKAGE)
 big/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: big/check
 
 bufio/bufio.lo: $(go_bufio_files) bytes.gox io.gox os.gox strconv.gox utf8.gox
        $(BUILDPACKAGE)
 bufio/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: bufio/check
 
 bytes/bytes.lo: $(go_bytes_files) io.gox os.gox unicode.gox utf8.gox
@@ -4005,52 +4043,52 @@ bytes/bytes.lo: $(go_bytes_files) io.gox os.gox unicode.gox utf8.gox
 bytes/index.lo: $(go_bytes_c_files) bytes/bytes.lo
        $(LTCOMPILE) -c -o bytes/index.lo $(srcdir)/go/bytes/indexbyte.c
 bytes/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: bytes/check
 
 cmath/cmath.lo: $(go_cmath_files) math.gox
        $(BUILDPACKAGE)
 cmath/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: cmath/check
 
 crypto/crypto.lo: $(go_crypto_files) hash.gox
        $(BUILDPACKAGE)
 crypto/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/check
 
 ebnf/ebnf.lo: $(go_ebnf_files) container/vector.gox go/scanner.gox \
                go/token.gox os.gox strconv.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 ebnf/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: ebnf/check
 
 exec/exec.lo: $(go_exec_files) os.gox strconv.gox strings.gox
        $(BUILDPACKAGE)
 exec/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: exec/check
 
 expvar/expvar.lo: $(go_expvar_files) bytes.gox fmt.gox http.gox json.gox \
                log.gox os.gox runtime.gox strconv.gox sync.gox
        $(BUILDPACKAGE)
 expvar/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: expvar/check
 
 flag/flag.lo: $(go_flag_files) fmt.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 flag/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: flag/check
 
 fmt/fmt.lo: $(go_fmt_files) bytes.gox io.gox math.gox os.gox reflect.gox \
                strconv.gox strings.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 fmt/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: fmt/check
 
 gob/gob.lo: $(go_gob_files) bufio.gox bytes.gox fmt.gox io.gox math.gox \
@@ -4058,20 +4096,20 @@ gob/gob.lo: $(go_gob_files) bufio.gox bytes.gox fmt.gox io.gox math.gox \
                unicode.gox utf8.gox
        $(BUILDPACKAGE)
 gob/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: gob/check
 
 hash/hash.lo: $(go_hash_files) io.gox
        $(BUILDPACKAGE)
 hash/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: hash/check
 
 html/html.lo: $(go_html_files) bytes.gox io.gox os.gox strconv.gox strings.gox \
                utf8.gox
        $(BUILDPACKAGE)
 html/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: html/check
 
 http/http.lo: $(go_http_files) bufio.gox bytes.gox container/vector.gox \
@@ -4081,19 +4119,19 @@ http/http.lo: $(go_http_files) bufio.gox bytes.gox container/vector.gox \
                sort.gox strconv.gox strings.gox sync.gox time.gox utf8.gox
        $(BUILDPACKAGE)
 http/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: http/check
 
 image/image.lo: $(go_image_files) bufio.gox io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 image/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: image/check
 
 io/io.lo: $(go_io_files) os.gox sync.gox
        $(BUILDPACKAGE)
 io/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: io/check
 
 json/json.lo: $(go_json_files) bytes.gox container/vector.gox \
@@ -4102,27 +4140,27 @@ json/json.lo: $(go_json_files) bytes.gox container/vector.gox \
                utf16.gox utf8.gox
        $(BUILDPACKAGE)
 json/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: json/check
 
 log/log.lo: $(go_log_files) bytes.gox fmt.gox io.gox runtime.gox os.gox \
                sync.gox time.gox
        $(BUILDPACKAGE)
 log/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: log/check
 
 math/math.lo: $(go_math_files)
        $(BUILDPACKAGE)
 math/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: math/check
 
 mime/mime.lo: $(go_mime_files) bufio.gox bytes.gox os.gox strings.gox \
                sync.gox unicode.gox
        $(BUILDPACKAGE)
 mime/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: mime/check
 
 net/net.lo: $(go_net_files) bytes.gox fmt.gox io.gox os.gox rand.gox \
@@ -4130,20 +4168,20 @@ net/net.lo: $(go_net_files) bytes.gox fmt.gox io.gox os.gox rand.gox \
                time.gox
        $(BUILDPACKAGE)
 net/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK_ON_REQUEST)
 .PHONY: net/check
 
 netchan/netchan.lo: $(go_netchan_files) gob.gox io.gox log.gox net.gox os.gox \
                reflect.gox strconv.gox sync.gox time.gox
        $(BUILDPACKAGE)
 netchan/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: netchan/check
 
 os/os.lo: $(go_os_files) runtime.gox sync.gox syscall.gox
        $(BUILDPACKAGE)
 os/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: os/check
 
 patch/patch.lo: $(go_patch_files) bytes.gox compress/zlib.gox \
@@ -4151,33 +4189,33 @@ patch/patch.lo: $(go_patch_files) bytes.gox compress/zlib.gox \
                path.gox strings.gox
        $(BUILDPACKAGE)
 patch/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: patch/check
 
 path/path.lo: $(go_path_files) os.gox strings.gox utf8.gox
        $(BUILDPACKAGE)
 path/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: path/check
 
 rand/rand.lo: $(go_rand_files) math.gox sync.gox
        $(BUILDPACKAGE)
 rand/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: rand/check
 
 reflect/reflect.lo: $(go_reflect_files) math.gox runtime.gox strconv.gox \
                sync.gox
        $(BUILDPACKAGE)
 reflect/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: reflect/check
 
 regexp/regexp.lo: $(go_regexp_files) bytes.gox io.gox os.gox strings.gox \
                utf8.gox
        $(BUILDPACKAGE)
 regexp/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: regexp/check
 
 rpc/rpc.lo: $(go_rpc_files) bufio.gox fmt.gox gob.gox http.gox io.gox log.gox \
@@ -4185,52 +4223,52 @@ rpc/rpc.lo: $(go_rpc_files) bufio.gox fmt.gox gob.gox http.gox io.gox log.gox \
                sync.gox template.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 rpc/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: rpc/check
 
 runtime/runtime.lo: $(go_runtime_files)
        $(BUILDPACKAGE)
 runtime/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: runtime/check
 
 scanner/scanner.lo: $(go_scanner_files) bytes.gox fmt.gox io.gox os.gox \
                unicode.gox utf8.gox
        $(BUILDPACKAGE)
 scanner/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: scanner/check
 
 smtp/smtp.lo: $(go_smtp_files) crypto/tls.gox encoding/base64.gox io.gox \
                net.gox net/textproto.gox os.gox strings.gox
        $(BUILDPACKAGE)
 smtp/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: smtp/check
 
 sort/sort.lo: $(go_sort_files)
        $(BUILDPACKAGE)
 sort/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: sort/check
 
 strconv/strconv.lo: $(go_strconv_files) bytes.gox math.gox os.gox strings.gox \
                unicode.gox utf8.gox
        $(BUILDPACKAGE)
 strconv/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: strconv/check
 
 strings/strings.lo: $(go_strings_files) os.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 strings/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: strings/check
 
 sync/sync.lo: $(go_sync_files) runtime.gox sync/atomic.gox
        $(BUILDPACKAGE)
 sync/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: sync/check
 
 syslog/syslog.lo: $(go_syslog_files) fmt.gox log.gox net.gox os.gox syscall.gox
@@ -4238,58 +4276,58 @@ syslog/syslog.lo: $(go_syslog_files) fmt.gox log.gox net.gox os.gox syscall.gox
 syslog/syslog_c.lo: $(go_syslog_c_files) syslog/syslog.lo
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/syslog/syslog_c.c
 syslog/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK_ON_REQUEST)
 .PHONY: syslog/check
 
 tabwriter/tabwriter.lo: $(go_tabwriter_files) bytes.gox io.gox os.gox utf8.gox
        $(BUILDPACKAGE)
 tabwriter/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: tabwriter/check
 
 template/template.lo: $(go_template_files) bytes.gox fmt.gox io.gox os.gox \
                reflect.gox runtime.gox strings.gox container/vector.gox
        $(BUILDPACKAGE)
 template/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: template/check
 
 testing/testing.lo: $(go_testing_files) flag.gox fmt.gox os.gox regexp.gox \
                runtime.gox runtime/pprof.gox time.gox
        $(BUILDPACKAGE)
 testing/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: testing/check
 
 time/time.lo: $(go_time_files) bytes.gox container/heap.gox io/ioutil.gox \
                os.gox strconv.gox sync.gox syscall.gox
        $(BUILDPACKAGE)
 time/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: time/check
 
 try/try.lo: $(go_try_files) fmt.gox io.gox os.gox reflect.gox unicode.gox
        $(BUILDPACKAGE)
 try/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: try/check
 
 unicode/unicode.lo: $(go_unicode_files)
        $(BUILDPACKAGE)
 unicode/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: unicode/check
 
 utf16/utf16.lo: $(go_utf16_files) unicode.gox
        $(BUILDPACKAGE)
 utf16/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: utf16/check
 
 utf8/utf8.lo: $(go_utf8_files) unicode.gox
        $(BUILDPACKAGE)
 utf8/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: utf8/check
 
 websocket/websocket.lo: $(go_websocket_files) bufio.gox bytes.gox \
@@ -4298,14 +4336,14 @@ websocket/websocket.lo: $(go_websocket_files) bufio.gox bytes.gox \
                rand.gox strings.gox
        $(BUILDPACKAGE)
 websocket/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: websocket/check
 
 xml/xml.lo: $(go_xml_files) bufio.gox bytes.gox fmt.gox io.gox os.gox \
                reflect.gox strconv.gox strings.gox unicode.gox utf8.gox
        $(BUILDPACKAGE)
 xml/check: $(CHECK_DEPS)
-       $(CHECK)
+       @$(CHECK)
 .PHONY: xml/check
 
 archive/tar.lo: $(go_archive_tar_files) bytes.gox io.gox os.gox strconv.gox \
@@ -4313,7 +4351,7 @@ archive/tar.lo: $(go_archive_tar_files) bytes.gox io.gox os.gox strconv.gox \
        $(BUILDPACKAGE)
 archive/tar/check: $(CHECK_DEPS)
        @$(MKDIR_P) archive/tar
-       $(CHECK)
+       @$(CHECK)
 .PHONY: archive/tar/check
 
 archive/zip.lo: $(go_archive_zip_files) bufio.gox bytes.gox \
@@ -4322,14 +4360,14 @@ archive/zip.lo: $(go_archive_zip_files) bufio.gox bytes.gox \
        $(BUILDPACKAGE)
 archive/zip/check: $(CHECK_DEPS)
        @$(MKDIR_P) archive/zip
-       $(CHECK)
+       @$(CHECK)
 .PHONY: archive/zip/check
 
 compress/bzip2.lo: $(go_compress_bzip2_files) bufio.gox io.gox os.gox sort.gox
        $(BUILDPACKAGE)
 compress/bzip2/check: $(CHECK_DEPS)
        @$(MKDIR_P) compress/bzip2
-       $(CHECK)
+       @$(CHECK)
 .PHONY: compress/bzip2/check
 
 compress/flate.lo: $(go_compress_flate_files) bufio.gox io.gox math.gox \
@@ -4337,7 +4375,7 @@ compress/flate.lo: $(go_compress_flate_files) bufio.gox io.gox math.gox \
        $(BUILDPACKAGE)
 compress/flate/check: $(CHECK_DEPS)
        @$(MKDIR_P) compress/flate
-       $(CHECK)
+       @$(CHECK)
 .PHONY: compress/flate/check
 
 compress/gzip.lo: $(go_compress_gzip_files) bufio.gox compress/flate.gox \
@@ -4345,14 +4383,14 @@ compress/gzip.lo: $(go_compress_gzip_files) bufio.gox compress/flate.gox \
        $(BUILDPACKAGE)
 compress/gzip/check: $(CHECK_DEPS)
        @$(MKDIR_P) compress/gzip
-       $(CHECK)
+       @$(CHECK)
 .PHONY: compress/gzip/check
 
 compress/lzw.lo: $(go_compress_lzw_files) bufio.gox fmt.gox io.gox os.gox
        $(BUILDPACKAGE)
 compress/lzw/check: $(CHECK_DEPS)
        @$(MKDIR_P) compress/lzw
-       $(CHECK)
+       @$(CHECK)
 .PHONY: compress/lzw/check
 
 compress/zlib.lo: $(go_compress_zlib_files) bufio.gox compress/flate.gox \
@@ -4360,77 +4398,77 @@ compress/zlib.lo: $(go_compress_zlib_files) bufio.gox compress/flate.gox \
        $(BUILDPACKAGE)
 compress/zlib/check: $(CHECK_DEPS)
        @$(MKDIR_P) compress/zlib
-       $(CHECK)
+       @$(CHECK)
 .PHONY: compress/zlib/check
 
 container/heap.lo: $(go_container_heap_files) sort.gox
        $(BUILDPACKAGE)
 container/heap/check: $(CHECK_DEPS)
        @$(MKDIR_P) container/heap
-       $(CHECK)
+       @$(CHECK)
 .PHONY: container/heap/check
 
 container/list.lo: $(go_container_list_files)
        $(BUILDPACKAGE)
 container/list/check: $(CHECK_DEPS)
        @$(MKDIR_P) container/list
-       $(CHECK)
+       @$(CHECK)
 .PHONY: container/list/check
 
 container/ring.lo: $(go_container_ring_files)
        $(BUILDPACKAGE)
 container/ring/check: $(CHECK_DEPS)
        @$(MKDIR_P) container/ring
-       $(CHECK)
+       @$(CHECK)
 .PHONY: container/ring/check
 
 container/vector.lo: $(go_container_vector_files)
        $(BUILDPACKAGE)
 container/vector/check: $(CHECK_DEPS)
        @$(MKDIR_P) container/vector
-       $(CHECK)
+       @$(CHECK)
 .PHONY: container/vector/check
 
 crypto/aes.lo: $(go_crypto_aes_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/aes/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/aes
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/aes/check
 
-crypto/block.lo: $(go_crypto_block_files) fmt.gox io.gox os.gox strconv.gox
-       $(BUILDPACKAGE)
-crypto/block/check: $(CHECK_DEPS)
-       @$(MKDIR_P) crypto/block
-       $(CHECK)
-.PHONY: crypto/block/check
-
 crypto/blowfish.lo: $(go_crypto_blowfish_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/blowfish/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/blowfish
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/blowfish/check
 
 crypto/cast5.lo: $(go_crypto_cast5_files) os.gox
        $(BUILDPACKAGE)
-crypt/cast5/check: $(CHECK_DEPS)
+crypto/cast5/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/cast5
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/cast5/check
 
 crypto/cipher.lo: $(go_crypto_cipher_files) io.gox os.gox
        $(BUILDPACKAGE)
 crypto/cipher/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/cipher
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/cipher/check
 
+crypto/des.lo: $(go_crypto_des_files) encoding/binary.gox os.gox strconv.gox
+       $(BUILDPACKAGE)
+crypto/des/check: $(CHECK_DEPS)
+       @$(MKDIR_P) crypto/des
+       @$(CHECK)
+.PHONY: crypto/des/check
+
 crypto/dsa.lo: $(go_crypto_dsa_files) big.gox io.gox os.gox
        $(BUILDPACKAGE)
 crypto/dsa/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/dsa
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/dsa/check
 
 crypto/ecdsa.lo: $(go_crypto_ecdsa_files) big.gox crypto/elliptic.gox io.gox \
@@ -4438,14 +4476,14 @@ crypto/ecdsa.lo: $(go_crypto_ecdsa_files) big.gox crypto/elliptic.gox io.gox \
        $(BUILDPACKAGE)
 crypto/ecdsa/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/ecdsa
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/ecdsa/check
 
 crypto/elliptic.lo: $(go_crypto_elliptic_files) big.gox io.gox os.gox sync.gox
        $(BUILDPACKAGE)
 crypto/elliptic/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/elliptic
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/elliptic/check
 
 crypto/hmac.lo: $(go_crypto_hmac_files) crypto/md5.gox crypto/sha1.gox \
@@ -4453,21 +4491,21 @@ crypto/hmac.lo: $(go_crypto_hmac_files) crypto/md5.gox crypto/sha1.gox \
        $(BUILDPACKAGE)
 crypto/hmac/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/hmac
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/hmac/check
 
 crypto/md4.lo: $(go_crypto_md4_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/md4/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/md4
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/md4/check
 
 crypto/md5.lo: $(go_crypto_md5_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/md5/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/md5
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/md5/check
 
 crypto/ocsp.lo: $(go_crypto_ocsp_files) asn1.gox crypto.gox crypto/rsa.gox \
@@ -4475,7 +4513,7 @@ crypto/ocsp.lo: $(go_crypto_ocsp_files) asn1.gox crypto.gox crypto/rsa.gox \
        $(BUILDPACKAGE)
 crypto/ocsp/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/ocsp
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/ocsp/check
 
 crypto/openpgp.lo: $(go_crypto_openpgp_files) crypto.gox crypto/dsa.gox \
@@ -4485,7 +4523,7 @@ crypto/openpgp.lo: $(go_crypto_openpgp_files) crypto.gox crypto/dsa.gox \
        $(BUILDPACKAGE)
 crypto/openpgp/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/openpgp
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/openpgp/check
 
 crypto/rand.lo: $(go_crypto_rand_files) bufio.gox crypto/aes.gox io.gox \
@@ -4493,57 +4531,58 @@ crypto/rand.lo: $(go_crypto_rand_files) bufio.gox crypto/aes.gox io.gox \
        $(BUILDPACKAGE)
 crypto/rand/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/rand
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/rand/check
 
 crypto/rc4.lo: $(go_crypto_rc4_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/rc4/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/rc4
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/rc4/check
 
 crypto/ripemd160.lo: $(go_crypto_ripemd160_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/ripemd160/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/ripemd160
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/ripemd160/check
 
 crypto/rsa.lo: $(go_crypto_rsa_files) big.gox crypto.gox crypto/sha1.gox \
-               crypto/subtle.gox encoding/hex.gox hash.gox io.gox os.gox
+               crypto/subtle.gox encoding/hex.gox hash.gox io.gox os.gox \
+               sync.gox
        $(BUILDPACKAGE)
 crypto/rsa/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/rsa
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/rsa/check
 
 crypto/sha1.lo: $(go_crypto_sha1_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/sha1/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/sha1
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/sha1/check
 
 crypto/sha256.lo: $(go_crypto_sha256_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/sha256/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/sha256
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/sha256/check
 
 crypto/sha512.lo: $(go_crypto_sha512_files) crypto.gox hash.gox os.gox
        $(BUILDPACKAGE)
 crypto/sha512/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/sha512
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/sha512/check
 
 crypto/subtle.lo: $(go_crypto_subtle_files)
        $(BUILDPACKAGE)
 crypto/subtle/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/subtle
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/subtle/check
 
 crypto/tls.lo: $(go_crypto_tls_files) big.gox bufio.gox bytes.gox \
@@ -4556,14 +4595,14 @@ crypto/tls.lo: $(go_crypto_tls_files) big.gox bufio.gox bytes.gox \
        $(BUILDPACKAGE)
 crypto/tls/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/tls
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/tls/check
 
 crypto/twofish.lo: $(go_crypto_twofish_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/twofish/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/twofish
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/twofish/check
 
 crypto/x509.lo: $(go_crypto_x509_files) asn1.gox big.gox container/vector.gox \
@@ -4572,14 +4611,14 @@ crypto/x509.lo: $(go_crypto_x509_files) asn1.gox big.gox container/vector.gox \
        $(BUILDPACKAGE)
 crypto/x509/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/x509
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/x509/check
 
 crypto/xtea.lo: $(go_crypto_xtea_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 crypto/xtea/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/xtea
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/xtea/check
 
 crypto/openpgp/armor.lo: $(go_crypto_openpgp_armor_files) bytes.gox \
@@ -4588,14 +4627,14 @@ crypto/openpgp/armor.lo: $(go_crypto_openpgp_armor_files) bytes.gox \
        $(BUILDPACKAGE)
 crypto/openpgp/armor/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/openpgp/armor
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/openpgp/armor/check
 
 crypto/openpgp/error.lo: $(go_crypto_openpgp_error_files) strconv.gox
        $(BUILDPACKAGE)
 crypto/openpgp/error/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/openpgp/error
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/openpgp/error/check
 
 crypto/openpgp/packet.lo: $(go_crypto_openpgp_packet_files) big.gox bytes.gox \
@@ -4608,7 +4647,7 @@ crypto/openpgp/packet.lo: $(go_crypto_openpgp_packet_files) big.gox bytes.gox \
        $(BUILDPACKAGE)
 crypto/openpgp/packet/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/openpgp/packet
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/openpgp/packet/check
 
 crypto/openpgp/s2k.lo: $(go_crypto_openpgp_s2k_files) crypto.gox \
@@ -4618,14 +4657,14 @@ crypto/openpgp/s2k.lo: $(go_crypto_openpgp_s2k_files) crypto.gox \
        $(BUILDPACKAGE)
 crypto/openpgp/s2k/check: $(CHECK_DEPS)
        @$(MKDIR_P) crypto/openpgp/s2k
-       $(CHECK)
+       @$(CHECK)
 .PHONY: crypto/openpgp/s2k/check
 
 debug/dwarf.lo: $(go_debug_dwarf_files) encoding/binary.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 debug/dwarf/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/dwarf
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/dwarf/check
 
 debug/elf.lo: $(go_debug_elf_files) bytes.gox debug/dwarf.gox \
@@ -4633,7 +4672,7 @@ debug/elf.lo: $(go_debug_elf_files) bytes.gox debug/dwarf.gox \
        $(BUILDPACKAGE)
 debug/elf/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/elf
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/elf/check
 
 debug/gosym.lo: $(go_debug_gosym_files) encoding/binary.gox fmt.gox os.gox \
@@ -4641,7 +4680,7 @@ debug/gosym.lo: $(go_debug_gosym_files) encoding/binary.gox fmt.gox os.gox \
        $(BUILDPACKAGE)
 debug/gosym/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/gosym
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/gosym/check
 
 debug/macho.lo: $(go_debug_macho_files) bytes.gox debug/dwarf.gox \
@@ -4649,7 +4688,7 @@ debug/macho.lo: $(go_debug_macho_files) bytes.gox debug/dwarf.gox \
        $(BUILDPACKAGE)
 debug/macho/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/macho
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/macho/check
 
 debug/pe.lo: $(go_debug_pe_files) debug/dwarf.gox \
@@ -4657,7 +4696,7 @@ debug/pe.lo: $(go_debug_pe_files) debug/dwarf.gox \
        $(BUILDPACKAGE)
 debug/pe/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/pe
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/pe/check
 
 debug/proc.lo: $(go_debug_proc_files) container/vector.gox fmt.gox \
@@ -4666,28 +4705,28 @@ debug/proc.lo: $(go_debug_proc_files) container/vector.gox fmt.gox \
        $(BUILDPACKAGE)
 debug/proc/check: $(CHECK_DEPS)
        @$(MKDIR_P) debug/proc
-       $(CHECK)
+       @$(CHECK)
 .PHONY: debug/proc/check
 
 encoding/ascii85.lo: $(go_encoding_ascii85_files) io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 encoding/ascii85/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/ascii85
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/ascii85/check
 
 encoding/base32.lo: $(go_encoding_base32_files) io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 encoding/base32/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/base32
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/base32/check
 
 encoding/base64.lo: $(go_encoding_base64_files) io.gox os.gox strconv.gox
        $(BUILDPACKAGE)
 encoding/base64/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/base64
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/base64/check
 
 encoding/binary.lo: $(go_encoding_binary_files) io.gox math.gox os.gox \
@@ -4695,7 +4734,7 @@ encoding/binary.lo: $(go_encoding_binary_files) io.gox math.gox os.gox \
        $(BUILDPACKAGE)
 encoding/binary/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/binary
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/binary/check
 
 encoding/git85.lo: $(go_encoding_git85_files) bytes.gox io.gox os.gox \
@@ -4703,28 +4742,28 @@ encoding/git85.lo: $(go_encoding_git85_files) bytes.gox io.gox os.gox \
        $(BUILDPACKAGE)
 encoding/git85/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/git85
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/git85/check
 
 encoding/hex.lo: $(go_encoding_hex_files) os.gox strconv.gox
        $(BUILDPACKAGE)
 encoding/hex/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/hex
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/hex/check
 
 encoding/line.lo: $(go_encoding_line_files) io.gox os.gox
        $(BUILDPACKAGE)
 encoding/line/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/line
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/line/check
 
 encoding/pem.lo: $(go_encoding_pem_files) bytes.gox encoding/base64.gox
        $(BUILDPACKAGE)
 encoding/pem/check: $(CHECK_DEPS)
        @$(MKDIR_P) encoding/pem
-       $(CHECK)
+       @$(CHECK)
 .PHONY: encoding/pem/check
 
 exp/datafmt.lo: $(go_exp_datafmt_files) bytes.gox container/vector.gox \
@@ -4733,14 +4772,14 @@ exp/datafmt.lo: $(go_exp_datafmt_files) bytes.gox container/vector.gox \
        $(BUILDPACKAGE)
 exp/datafmt/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/datafmt
-       $(CHECK)
+       @$(CHECK)
 .PHONY: exp/datafmt/check
 
 exp/draw.lo: $(go_exp_draw_files) image.gox os.gox
        $(BUILDPACKAGE)
 exp/draw/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/draw
-       $(CHECK)
+       @$(CHECK)
 .PHONY: exp/draw/check
 
 exp/eval.lo: $(go_exp_eval_files) big.gox go/ast.gox go/parser.gox \
@@ -4749,7 +4788,7 @@ exp/eval.lo: $(go_exp_eval_files) big.gox go/ast.gox go/parser.gox \
        $(BUILDPACKAGE)
 exp/eval/check: $(CHECK_DEPS)
        @$(MKDIR_P) exp/eval
-       $(CHECK)
+       @$(CHECK)
 .PHONY: exp/eval/check
 
 go/ast.lo: $(go_go_ast_files) bytes.gox fmt.gox go/scanner.gox go/token.gox \
@@ -4757,7 +4796,7 @@ go/ast.lo: $(go_go_ast_files) bytes.gox fmt.gox go/scanner.gox go/token.gox \
        $(BUILDPACKAGE)
 go/ast/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/ast
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/ast/check
 
 go/doc.lo: $(go_go_doc_files) go/ast.gox go/token.gox io.gox regexp.gox \
@@ -4765,7 +4804,7 @@ go/doc.lo: $(go_go_doc_files) go/ast.gox go/token.gox io.gox regexp.gox \
        $(BUILDPACKAGE)
 go/doc/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/doc
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/doc/check
 
 go/parser.lo: $(go_go_parser_files) bytes.gox fmt.gox go/ast.gox \
@@ -4774,7 +4813,7 @@ go/parser.lo: $(go_go_parser_files) bytes.gox fmt.gox go/ast.gox \
        $(BUILDPACKAGE)
 go/parser/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/parser
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/parser/check
 
 go/printer.lo: $(go_go_printer_files) bytes.gox fmt.gox go/ast.gox \
@@ -4783,7 +4822,7 @@ go/printer.lo: $(go_go_printer_files) bytes.gox fmt.gox go/ast.gox \
        $(BUILDPACKAGE)
 go/printer/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/printer
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/printer/check
 
 go/scanner.lo: $(go_go_scanner_files) bytes.gox container/vector.gox fmt.gox \
@@ -4792,14 +4831,14 @@ go/scanner.lo: $(go_go_scanner_files) bytes.gox container/vector.gox fmt.gox \
        $(BUILDPACKAGE)
 go/scanner/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/scanner
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/scanner/check
 
 go/token.lo: $(go_go_token_files) fmt.gox strconv.gox
        $(BUILDPACKAGE)
 go/token/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/token
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/token/check
 
 go/typechecker.lo: $(go_go_typechecker_files) fmt.gox go/ast.gox go/token.gox \
@@ -4807,35 +4846,35 @@ go/typechecker.lo: $(go_go_typechecker_files) fmt.gox go/ast.gox go/token.gox \
        $(BUILDPACKAGE)
 go/typechecker/check: $(CHECK_DEPS)
        @$(MKDIR_P) go/typechecker
-       $(CHECK)
+       @$(CHECK)
 .PHONY: go/typechecker/check
 
 hash/adler32.lo: $(go_hash_adler32_files) hash.gox os.gox
        $(BUILDPACKAGE)
 hash/adler32/check: $(CHECK_DEPS)
        @$(MKDIR_P) hash/adler32
-       $(CHECK)
+       @$(CHECK)
 .PHONY: hash/adler32/check
 
 hash/crc32.lo: $(go_hash_crc32_files) hash.gox os.gox
        $(BUILDPACKAGE)
 hash/crc32/check: $(CHECK_DEPS)
        @$(MKDIR_P) hash/crc32
-       $(CHECK)
+       @$(CHECK)
 .PHONY: hash/crc32/check
 
 hash/crc64.lo: $(go_hash_crc64_files) hash.gox os.gox
        $(BUILDPACKAGE)
 hash/crc64/check: $(CHECK_DEPS)
        @$(MKDIR_P) hash/crc64
-       $(CHECK)
+       @$(CHECK)
 .PHONY: hash/crc64/check
 
 hash/fnv.lo: $(go_hash_fnv_files) encoding/binary.gox hash.gox os.gox
        $(BUILDPACKAGE)
 hash/fnv/check: $(CHECK_DEPS)
        @$(MKDIR_P) hash/fnv
-       $(CHECK)
+       @$(CHECK)
 .PHONY: hash/fnv/check
 
 http/cgi.lo: $(go_http_cgi_files) bufio.gox bytes.gox encoding/line.gox \
@@ -4844,15 +4883,15 @@ http/cgi.lo: $(go_http_cgi_files) bufio.gox bytes.gox encoding/line.gox \
        $(BUILDPACKAGE)
 http/cgi/check: $(CHECK_DEPS)
        @$(MKDIR_P) http/cgi
-       $(CHECK)
+       @$(CHECK)
 .PHONY: http/cgi/check
 
-http/httptest.lo: $(go_http_httptest_files) bytes.gox fmt.gox http.gox \
-               net.gox os.gox
+http/httptest.lo: $(go_http_httptest_files) bytes.gox crypto/rand.gox \
+               crypto/tls.gox fmt.gox http.gox net.gox os.gox time.gox
        $(BUILDPACKAGE)
 http/httptest/check: $(CHECK_DEPS)
        @$(MKDIR_P) http/httptest
-       $(CHECK)
+       @$(CHECK)
 .PHONY: http/httptest/check
 
 http/pprof.lo: $(go_http_pprof_files) bufio.gox fmt.gox http.gox os.gox \
@@ -4860,14 +4899,14 @@ http/pprof.lo: $(go_http_pprof_files) bufio.gox fmt.gox http.gox os.gox \
        $(BUILDPACKAGE)
 http/pprof/check: $(CHECK_DEPS)
        @$(MKDIR_P) http/pprof
-       $(CHECK)
+       @$(CHECK)
 .PHONY: http/pprof/check
 
 image/jpeg.lo: $(go_image_jpeg_files) bufio.gox image.gox io.gox os.gox
        $(BUILDPACKAGE)
 image/jpeg/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/jpeg
-       $(CHECK)
+       @$(CHECK)
 .PHONY: image/jpeg/check
 
 image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox fmt.gox \
@@ -4875,7 +4914,7 @@ image/png.lo: $(go_image_png_files) bufio.gox compress/zlib.gox fmt.gox \
        $(BUILDPACKAGE)
 image/png/check: $(CHECK_DEPS)
        @$(MKDIR_P) image/png
-       $(CHECK)
+       @$(CHECK)
 .PHONY: image/png/check
 
 index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox regexp.gox \
@@ -4883,7 +4922,7 @@ index/suffixarray.lo: $(go_index_suffixarray_files) bytes.gox regexp.gox \
        $(BUILDPACKAGE)
 index/suffixarray/check: $(CHECK_DEPS)
        @$(MKDIR_P) index/suffixarray
-       $(CHECK)
+       @$(CHECK)
 .PHONY: index/suffixarray/check
 
 io/ioutil.lo: $(go_io_ioutil_files) bytes.gox io.gox os.gox path/filepath.gox \
@@ -4891,7 +4930,7 @@ io/ioutil.lo: $(go_io_ioutil_files) bytes.gox io.gox os.gox path/filepath.gox \
        $(BUILDPACKAGE)
 io/ioutil/check: $(CHECK_DEPS)
        @$(MKDIR_P) io/ioutil
-       $(CHECK)
+       @$(CHECK)
 .PHONY: io/ioutil/check
 
 mime/multipart.lo: $(go_mime_multipart_files) bufio.gox bytes.gox io.gox \
@@ -4899,7 +4938,7 @@ mime/multipart.lo: $(go_mime_multipart_files) bufio.gox bytes.gox io.gox \
        $(BUILDPACKAGE)
 mime/multipart/check: $(CHECK_DEPS)
        @$(MKDIR_P) mime/multipart
-       $(CHECK)
+       @$(CHECK)
 .PHONY: mime/multipart/check
 
 net/dict.lo: $(go_net_dict_files) container/vector.gox net/textproto.gox \
@@ -4912,21 +4951,21 @@ net/textproto.lo: $(go_net_textproto_files) bufio.gox bytes.gox \
        $(BUILDPACKAGE)
 net/textproto/check: $(CHECK_DEPS)
        @$(MKDIR_P) net/textproto
-       $(CHECK)
+       @$(CHECK)
 .PHONY: net/textproto/check
 
 os/inotify.lo: $(go_os_inotify_files) fmt.gox os.gox strings.gox syscall.gox
        $(BUILDPACKAGE)
 os/inotify/check: $(CHECK_DEPS)
        @$(MKDIR_P) os/inotify
-       $(CHECK)
+       @$(CHECK)
 .PHONY: os/inotify/check
 
 os/signal.lo: $(go_os_signal_files) runtime.gox strconv.gox
        $(BUILDPACKAGE)
 os/signal/check: $(CHECK_DEPS)
        @$(MKDIR_P) os/signal
-       $(CHECK)
+       @$(CHECK)
 .PHONY: os/signal/check
 
 unix.go: $(srcdir)/go/os/signal/mkunix.sh sysinfo.go
@@ -4938,7 +4977,7 @@ path/filepath.lo: $(go_path_filepath_files) bytes.gox os.gox sort.gox \
        $(BUILDPACKAGE)
 path/filepath/check: $(CHECK_DEPS)
        @$(MKDIR_P) path/filepath
-       $(CHECK)
+       @$(CHECK)
 .PHONY: path/filepath/check
 
 rpc/jsonrpc.lo: $(go_rpc_jsonrpc_files) fmt.gox io.gox json.gox net.gox \
@@ -4946,7 +4985,7 @@ rpc/jsonrpc.lo: $(go_rpc_jsonrpc_files) fmt.gox io.gox json.gox net.gox \
        $(BUILDPACKAGE)
 rpc/jsonrpc/check: $(CHECK_DEPS)
        @$(MKDIR_P) rpc/jsonrpc
-       $(CHECK)
+       @$(CHECK)
 .PHONY: rpc/jsonrpc/check
 
 runtime/debug.lo: $(go_runtime_debug_files) bytes.gox fmt.gox io/ioutil.gox \
@@ -4954,7 +4993,7 @@ runtime/debug.lo: $(go_runtime_debug_files) bytes.gox fmt.gox io/ioutil.gox \
        $(BUILDPACKAGE)
 runtime/debug/check: $(CHECK_DEPS)
        @$(MKDIR_P) runtime/debug
-       $(CHECK)
+       @$(CHECK)
 .PHONY: runtime/debug/check
 
 runtime/pprof.lo: $(go_runtime_pprof_files) bufio.gox fmt.gox io.gox os.gox \
@@ -4962,7 +5001,7 @@ runtime/pprof.lo: $(go_runtime_pprof_files) bufio.gox fmt.gox io.gox os.gox \
        $(BUILDPACKAGE)
 runtime/pprof/check: $(CHECK_DEPS)
        @$(MKDIR_P) runtime/pprof
-       $(CHECK)
+       @$(CHECK)
 .PHONY: runtime/pprof/check
 
 sync/atomic.lo: $(go_sync_atomic_files)
@@ -4971,14 +5010,14 @@ sync/atomic_c.lo: $(go_sync_atomic_c_files) sync/atomic.lo
        $(LTCOMPILE) -c -o $@ $(srcdir)/go/sync/atomic/atomic.c
 sync/atomic/check: $(CHECK_DEPS)
        @$(MKDIR_P) sync/atomic
-       $(CHECK)
+       @$(CHECK)
 .PHONY: sync/atomic/check
 
 testing/iotest.lo: $(go_testing_iotest_files) io.gox log.gox os.gox
        $(BUILDPACKAGE)
 testing/iotest/check: $(CHECK_DEPS)
        @$(MKDIR_P) testing/iotest
-       $(CHECK)
+       @$(CHECK)
 .PHONY: testing/iotest/check
 
 testing/quick.lo: $(go_testing_quick_files) flag.gox fmt.gox math.gox os.gox \
@@ -4986,7 +5025,7 @@ testing/quick.lo: $(go_testing_quick_files) flag.gox fmt.gox math.gox os.gox \
        $(BUILDPACKAGE)
 testing/quick/check: $(CHECK_DEPS)
        @$(MKDIR_P) testing/quick
-       $(CHECK)
+       @$(CHECK)
 .PHONY: testing/quick/check
 
 testing/script.lo: $(go_testing_script_files) fmt.gox os.gox rand.gox \
@@ -4994,12 +5033,12 @@ testing/script.lo: $(go_testing_script_files) fmt.gox os.gox rand.gox \
        $(BUILDPACKAGE)
 testing/script/check: $(CHECK_DEPS)
        @$(MKDIR_P) testing/script
-       $(CHECK)
+       @$(CHECK)
 .PHONY: testing/script/check
 
 sysinfo.go: s-sysinfo; @true
 s-sysinfo: $(srcdir)/mksysinfo.sh config.h
-       CC="$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)" $(SHELL) $(srcdir)/mksysinfo.sh
+       CC="$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(OSCFLAGS)" $(SHELL) $(srcdir)/mksysinfo.sh
        $(SHELL) $(srcdir)/../move-if-change tmp-sysinfo.go sysinfo.go
        $(STAMP) $@
 
@@ -5134,14 +5173,14 @@ container/vector.gox: container/vector.lo
 
 crypto/aes.gox: crypto/aes.lo
        $(BUILDGOX)
-crypto/block.gox: crypto/block.lo
-       $(BUILDGOX)
 crypto/blowfish.gox: crypto/blowfish.lo
        $(BUILDGOX)
 crypto/cast5.gox: crypto/cast5.lo
        $(BUILDGOX)
 crypto/cipher.gox: crypto/cipher.lo
        $(BUILDGOX)
+crypto/des.gox: crypto/des.lo
+       $(BUILDGOX)
 crypto/dsa.gox: crypto/dsa.lo
        $(BUILDGOX)
 crypto/ecdsa.gox: crypto/ecdsa.lo      
@@ -5305,11 +5344,107 @@ testing/quick.gox: testing/quick.lo
 testing/script.gox: testing/script.lo
        $(BUILDGOX)
 
-check-recursive: $(TEST_PACKAGES)
+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
+       @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) -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)
 
 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
 
 clean-local:
        find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f