2faabfc41beffc0a9cf5a51bad1b9914f5fbac55
[platform/upstream/gcc.git] / libgo / Makefile.am
1 # Makefile.am -- Go library Makefile.
2
3 # Copyright 2009 The Go Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style
5 # license that can be found in the LICENSE file.
6
7 # Process this file with autoreconf to produce Makefile.in.
8
9 # Go support.
10 SUFFIXES = .c .go .gox .o .obj .lo .a
11
12 if LIBGO_IS_RTEMS
13 subdirs = testsuite
14 endif
15
16 SUBDIRS = ${subdirs}
17
18 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
19
20 MAINT_CHARSET = latin1
21
22 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
23 PWD_COMMAND = $${PWDCMD-pwd}
24 STAMP = echo timestamp >
25
26 toolexecdir = $(glibgo_toolexecdir)
27 toolexeclibdir = $(glibgo_toolexeclibdir)
28
29 LIBFFI = @LIBFFI@
30 LIBFFIINCS = @LIBFFIINCS@
31
32 WARN_CFLAGS = $(WARN_FLAGS) $(WERROR)
33
34 # -I/-D flags to pass when compiling.
35 AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS)
36
37 ACLOCAL_AMFLAGS = -I ./config -I ../config
38
39 AM_CFLAGS = -fexceptions -fplan9-extensions $(SPLIT_STACK) $(WARN_CFLAGS) \
40         $(STRINGOPS_FLAG) \
41         -I $(srcdir)/../gcc -I $(MULTIBUILDTOP)../../gcc/include
42
43 if USING_SPLIT_STACK
44 AM_LDFLAGS = -XCClinker $(SPLIT_STACK)
45 endif
46
47 # Multilib support.
48 MAKEOVERRIDES=
49
50 # Work around what appears to be a GNU make  handling MAKEFLAGS
51 # values defined in terms of make variables, as is the case for CC and
52 # friends when we are called from the top level Makefile.
53 AM_MAKEFLAGS = \
54         "AR_FLAGS=$(AR_FLAGS)" \
55         "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
56         "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
57         "CFLAGS=$(CFLAGS)" \
58         "CXXFLAGS=$(CXXFLAGS)" \
59         "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
60         "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
61         "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
62         "GOC=$(GOC)" \
63         "GOCFLAGS=$(GOCFLAGS)" \
64         "INSTALL=$(INSTALL)" \
65         "INSTALL_DATA=$(INSTALL_DATA)" \
66         "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
67         "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
68         "LDFLAGS=$(LDFLAGS)" \
69         "LIBCFLAGS=$(LIBCFLAGS)" \
70         "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
71         "MAKE=$(MAKE)" \
72         "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
73         "PICFLAG=$(PICFLAG)" \
74         "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
75         "SHELL=$(SHELL)" \
76         "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
77         "exec_prefix=$(exec_prefix)" \
78         "infodir=$(infodir)" \
79         "libdir=$(libdir)" \
80         "includedir=$(includedir)" \
81         "prefix=$(prefix)" \
82         "tooldir=$(tooldir)" \
83         "gxx_include_dir=$(gxx_include_dir)" \
84         "AR=$(AR)" \
85         "AS=$(AS)" \
86         "LD=$(LD)" \
87         "RANLIB=$(RANLIB)" \
88         "NM=$(NM)" \
89         "NM_FOR_BUILD=$(NM_FOR_BUILD)" \
90         "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
91         "DESTDIR=$(DESTDIR)" \
92         "WERROR=$(WERROR)"
93
94 # Subdir rules rely on $(FLAGS_TO_PASS)
95 FLAGS_TO_PASS = $(AM_MAKEFLAGS)
96
97 toolexeclib_LTLIBRARIES = libgo.la
98 toolexeclib_LIBRARIES = libgobegin.a
99
100 toolexeclibgodir = $(toolexeclibdir)/go/$(gcc_version)/$(target_alias)
101
102 toolexeclibgo_DATA = \
103         asn1.gox \
104         big.gox \
105         bufio.gox \
106         bytes.gox \
107         cmath.gox \
108         ebnf.gox \
109         exec.gox \
110         expvar.gox \
111         flag.gox \
112         fmt.gox \
113         gob.gox \
114         hash.gox \
115         html.gox \
116         http.gox \
117         image.gox \
118         io.gox \
119         json.gox \
120         log.gox \
121         math.gox \
122         mime.gox \
123         net.gox \
124         netchan.gox \
125         os.gox \
126         patch.gox \
127         path.gox \
128         rand.gox \
129         reflect.gox \
130         regexp.gox \
131         rpc.gox \
132         runtime.gox \
133         scanner.gox \
134         smtp.gox \
135         sort.gox \
136         strconv.gox \
137         strings.gox \
138         sync.gox \
139         syscall.gox \
140         syslog.gox \
141         tabwriter.gox \
142         template.gox \
143         testing.gox \
144         time.gox \
145         try.gox \
146         unicode.gox \
147         utf16.gox \
148         utf8.gox \
149         websocket.gox \
150         xml.gox
151
152 toolexeclibgoarchivedir = $(toolexeclibgodir)/archive
153
154 toolexeclibgoarchive_DATA = \
155         archive/tar.gox \
156         archive/zip.gox
157
158 toolexeclibgocompressdir = $(toolexeclibgodir)/compress
159
160 toolexeclibgocompress_DATA = \
161         compress/flate.gox \
162         compress/gzip.gox \
163         compress/zlib.gox
164
165 toolexeclibgocontainerdir = $(toolexeclibgodir)/container
166
167 toolexeclibgocontainer_DATA = \
168         container/heap.gox \
169         container/list.gox \
170         container/ring.gox \
171         container/vector.gox
172
173 toolexeclibgocryptodir = $(toolexeclibgodir)/crypto
174
175 toolexeclibgocrypto_DATA = \
176         crypto/aes.gox \
177         crypto/block.gox \
178         crypto/blowfish.gox \
179         crypto/cast5.gox \
180         crypto/cipher.gox \
181         crypto/elliptic.gox \
182         crypto/hmac.gox \
183         crypto/md4.gox \
184         crypto/md5.gox \
185         crypto/ocsp.gox \
186         crypto/rand.gox \
187         crypto/rc4.gox \
188         crypto/ripemd160.gox \
189         crypto/rsa.gox \
190         crypto/sha1.gox \
191         crypto/sha256.gox \
192         crypto/sha512.gox \
193         crypto/subtle.gox \
194         crypto/tls.gox \
195         crypto/twofish.gox \
196         crypto/x509.gox \
197         crypto/xtea.gox
198
199 toolexeclibgocryptoopenpgpdir = $(toolexeclibgocryptodir)/openpgp
200
201 toolexeclibgocryptoopenpgp_DATA = \
202         crypto/openpgp/armor.gox \
203         crypto/openpgp/error.gox \
204         crypto/openpgp/s2k.gox
205
206 toolexeclibgodebugdir = $(toolexeclibgodir)/debug
207
208 toolexeclibgodebug_DATA = \
209         debug/dwarf.gox \
210         debug/elf.gox \
211         debug/gosym.gox \
212         debug/macho.gox \
213         debug/pe.gox \
214         debug/proc.gox
215
216 toolexeclibgoencodingdir = $(toolexeclibgodir)/encoding
217
218 toolexeclibgoencoding_DATA = \
219         encoding/ascii85.gox \
220         encoding/base32.gox \
221         encoding/base64.gox \
222         encoding/binary.gox \
223         encoding/line.gox \
224         encoding/git85.gox \
225         encoding/hex.gox \
226         encoding/pem.gox
227
228 toolexeclibgoexpdir = $(toolexeclibgodir)/exp
229
230 toolexeclibgoexp_DATA = \
231         exp/datafmt.gox \
232         exp/draw.gox \
233         exp/eval.gox
234
235 toolexeclibgogodir = $(toolexeclibgodir)/go
236
237 toolexeclibgogo_DATA = \
238         go/ast.gox \
239         go/doc.gox \
240         go/parser.gox \
241         go/printer.gox \
242         go/scanner.gox \
243         go/token.gox \
244         go/typechecker.gox
245
246 toolexeclibgohashdir = $(toolexeclibgodir)/hash
247
248 toolexeclibgohash_DATA = \
249         hash/adler32.gox \
250         hash/crc32.gox \
251         hash/crc64.gox
252
253 toolexeclibgohttpdir = $(toolexeclibgodir)/http
254
255 toolexeclibgohttp_DATA = \
256         http/pprof.gox
257
258 toolexeclibgoimagedir = $(toolexeclibgodir)/image
259
260 toolexeclibgoimage_DATA = \
261         image/jpeg.gox \
262         image/png.gox
263
264 toolexeclibgoindexdir = $(toolexeclibgodir)/index
265
266 toolexeclibgoindex_DATA = \
267         index/suffixarray.gox
268
269 toolexeclibgoiodir = $(toolexeclibgodir)/io
270
271 toolexeclibgoio_DATA = \
272         io/ioutil.gox
273
274 toolexeclibgomimedir = $(toolexeclibgodir)/mime
275
276 toolexeclibgomime_DATA = \
277         mime/multipart.gox
278
279 toolexeclibgonetdir = $(toolexeclibgodir)/net
280
281 toolexeclibgonet_DATA = \
282         net/dict.gox \
283         net/textproto.gox
284
285 toolexeclibgoosdir = $(toolexeclibgodir)/os
286
287 if LIBGO_IS_LINUX
288 # os_inotify_gox = os/inotify.gox
289 os_inotify_gox =
290 else
291 os_inotify_gox =
292 endif
293
294 toolexeclibgoos_DATA = \
295         $(os_inotify_gox) \
296         os/signal.gox
297
298 toolexeclibgorpcdir = $(toolexeclibgodir)/rpc
299
300 toolexeclibgorpc_DATA = \
301         rpc/jsonrpc.gox
302
303 toolexeclibgoruntimedir = $(toolexeclibgodir)/runtime
304
305 toolexeclibgoruntime_DATA = \
306         runtime/debug.gox \
307         runtime/pprof.gox
308
309 toolexeclibgotestingdir = $(toolexeclibgodir)/testing
310
311 toolexeclibgotesting_DATA = \
312         testing/iotest.gox \
313         testing/quick.gox \
314         testing/script.gox
315
316 if HAVE_SYS_MMAN_H
317 runtime_mem_file = runtime/mem.c
318 else
319 runtime_mem_file = runtime/mem_posix_memalign.c
320 endif
321
322 if LIBGO_IS_RTEMS
323 rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
324 else
325 rtems_task_variable_add_file =
326 endif
327
328 runtime_files = \
329         runtime/go-append.c \
330         runtime/go-assert.c \
331         runtime/go-assert-interface.c \
332         runtime/go-byte-array-to-string.c \
333         runtime/go-breakpoint.c \
334         runtime/go-caller.c \
335         runtime/go-can-convert-interface.c \
336         runtime/go-cgo.c \
337         runtime/go-chan-cap.c \
338         runtime/go-chan-len.c \
339         runtime/go-check-interface.c \
340         runtime/go-close.c \
341         runtime/go-closed.c \
342         runtime/go-construct-map.c \
343         runtime/go-convert-interface.c \
344         runtime/go-copy.c \
345         runtime/go-defer.c \
346         runtime/go-deferred-recover.c \
347         runtime/go-eface-compare.c \
348         runtime/go-eface-val-compare.c \
349         runtime/go-getgoroot.c \
350         runtime/go-go.c \
351         runtime/go-gomaxprocs.c \
352         runtime/go-int-array-to-string.c \
353         runtime/go-int-to-string.c \
354         runtime/go-interface-compare.c \
355         runtime/go-interface-val-compare.c \
356         runtime/go-lock-os-thread.c \
357         runtime/go-map-delete.c \
358         runtime/go-map-index.c \
359         runtime/go-map-len.c \
360         runtime/go-map-range.c \
361         runtime/go-nanotime.c \
362         runtime/go-new-channel.c \
363         runtime/go-new-map.c \
364         runtime/go-new.c \
365         runtime/go-note.c \
366         runtime/go-panic.c \
367         runtime/go-panic-defer.c \
368         runtime/go-print.c \
369         runtime/go-rec-big.c \
370         runtime/go-rec-nb-big.c \
371         runtime/go-rec-nb-small.c \
372         runtime/go-rec-small.c \
373         runtime/go-recover.c \
374         runtime/go-reflect.c \
375         runtime/go-reflect-call.c \
376         runtime/go-reflect-chan.c \
377         runtime/go-reflect-map.c \
378         runtime/go-rune.c \
379         runtime/go-runtime-error.c \
380         runtime/go-sched.c \
381         runtime/go-select.c \
382         runtime/go-semacquire.c \
383         runtime/go-send-big.c \
384         runtime/go-send-nb-big.c \
385         runtime/go-send-nb-small.c \
386         runtime/go-send-small.c \
387         runtime/go-signal.c \
388         runtime/go-strcmp.c \
389         runtime/go-string-to-byte-array.c \
390         runtime/go-string-to-int-array.c \
391         runtime/go-strplus.c \
392         runtime/go-strslice.c \
393         runtime/go-trampoline.c \
394         runtime/go-type-eface.c \
395         runtime/go-type-error.c \
396         runtime/go-type-identity.c \
397         runtime/go-type-interface.c \
398         runtime/go-type-string.c \
399         runtime/go-typedesc-equal.c \
400         runtime/go-typestring.c \
401         runtime/go-unreflect.c \
402         runtime/go-unsafe-new.c \
403         runtime/go-unsafe-newarray.c \
404         runtime/go-unsafe-pointer.c \
405         runtime/go-unwind.c \
406         runtime/mcache.c \
407         runtime/mcentral.c \
408         $(runtime_mem_file) \
409         runtime/mfinal.c \
410         runtime/mfixalloc.c \
411         runtime/mgc0.c \
412         runtime/mheap.c \
413         runtime/mheapmap32.c \
414         runtime/mheapmap64.c \
415         runtime/msize.c \
416         runtime/proc.c \
417         runtime/thread.c \
418         $(rtems_task_variable_add_file) \
419         chan.c \
420         iface.c \
421         malloc.c \
422         map.c \
423         mprof.c \
424         reflect.c \
425         sigqueue.c \
426         string.c
427
428 goc2c.$(OBJEXT): runtime/goc2c.c
429         $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) $<
430
431 goc2c: goc2c.$(OBJEXT)
432         $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $<
433
434 malloc.c: $(srcdir)/runtime/malloc.goc goc2c
435         ./goc2c --gcc --go-prefix libgo_runtime $< > $@.tmp
436         mv -f $@.tmp $@
437
438 mprof.c: $(srcdir)/runtime/mprof.goc goc2c
439         ./goc2c --gcc --go-prefix libgo_runtime $< > $@.tmp
440         mv -f $@.tmp $@
441
442 reflect.c: $(srcdir)/runtime/reflect.goc goc2c
443         ./goc2c --gcc --go-prefix libgo_reflect $< > $@.tmp
444         mv -f $@.tmp $@
445
446 sigqueue.c: $(srcdir)/runtime/sigqueue.goc goc2c
447         ./goc2c --gcc --go-prefix libgo_runtime $< > $@.tmp
448         mv -f $@.tmp $@
449
450 %.c: $(srcdir)/runtime/%.goc goc2c
451         ./goc2c --gcc $< > $@.tmp
452         mv -f $@.tmp $@
453
454 go_asn1_files = \
455         go/asn1/asn1.go \
456         go/asn1/common.go \
457         go/asn1/marshal.go
458
459 go_big_files = \
460         go/big/arith.go \
461         go/big/int.go \
462         go/big/nat.go \
463         go/big/rat.go
464
465 go_bufio_files = \
466         go/bufio/bufio.go
467
468 go_bytes_files = \
469         go/bytes/buffer.go \
470         go/bytes/bytes.go \
471         go/bytes/bytes_decl.go
472 go_bytes_c_files = \
473         go/bytes/indexbyte.c
474
475 go_cmath_files = \
476         go/cmath/abs.go \
477         go/cmath/asin.go \
478         go/cmath/conj.go \
479         go/cmath/exp.go \
480         go/cmath/isinf.go \
481         go/cmath/isnan.go \
482         go/cmath/log.go \
483         go/cmath/phase.go \
484         go/cmath/polar.go \
485         go/cmath/pow.go \
486         go/cmath/rect.go \
487         go/cmath/sin.go \
488         go/cmath/sqrt.go \
489         go/cmath/tan.go
490
491 go_ebnf_files = \
492         go/ebnf/ebnf.go \
493         go/ebnf/parser.go
494
495 go_exec_files = \
496         go/exec/exec.go \
497         go/exec/lp_unix.go
498
499 go_expvar_files = \
500         go/expvar/expvar.go
501
502 go_flag_files = \
503         go/flag/flag.go
504
505 go_fmt_files = \
506         go/fmt/doc.go \
507         go/fmt/format.go \
508         go/fmt/print.go \
509         go/fmt/scan.go
510
511 go_gob_files = \
512         go/gob/decode.go \
513         go/gob/decoder.go \
514         go/gob/doc.go \
515         go/gob/encode.go \
516         go/gob/encoder.go \
517         go/gob/error.go \
518         go/gob/type.go
519
520 go_hash_files = \
521         go/hash/hash.go
522
523 go_html_files = \
524         go/html/doc.go \
525         go/html/entity.go \
526         go/html/escape.go \
527         go/html/parse.go \
528         go/html/token.go
529
530 go_http_files = \
531         go/http/chunked.go \
532         go/http/client.go \
533         go/http/dump.go \
534         go/http/fs.go \
535         go/http/lex.go \
536         go/http/persist.go \
537         go/http/request.go \
538         go/http/response.go \
539         go/http/server.go \
540         go/http/status.go \
541         go/http/transfer.go \
542         go/http/url.go
543
544 go_image_files = \
545         go/image/color.go \
546         go/image/format.go \
547         go/image/geom.go \
548         go/image/image.go \
549         go/image/names.go
550
551 go_io_files = \
552         go/io/multi.go \
553         go/io/io.go \
554         go/io/pipe.go
555
556 go_json_files = \
557         go/json/decode.go \
558         go/json/encode.go \
559         go/json/indent.go \
560         go/json/scanner.go \
561         go/json/stream.go
562
563 go_log_files = \
564         go/log/log.go
565
566 go_math_files = \
567         go/math/acosh.go \
568         go/math/asin.go \
569         go/math/asinh.go \
570         go/math/atan.go \
571         go/math/atanh.go \
572         go/math/atan2.go \
573         go/math/bits.go \
574         go/math/cbrt.go \
575         go/math/const.go \
576         go/math/copysign.go \
577         go/math/erf.go \
578         go/math/exp.go \
579         go/math/exp_port.go \
580         go/math/exp2.go \
581         go/math/expm1.go \
582         go/math/fabs.go \
583         go/math/fdim.go \
584         go/math/floor.go \
585         go/math/fmod.go \
586         go/math/frexp.go \
587         go/math/gamma.go \
588         go/math/hypot.go \
589         go/math/hypot_port.go \
590         go/math/j0.go \
591         go/math/j1.go \
592         go/math/jn.go \
593         go/math/ldexp.go \
594         go/math/lgamma.go \
595         go/math/log.go \
596         go/math/log1p.go \
597         go/math/log10.go \
598         go/math/logb.go \
599         go/math/modf.go \
600         go/math/nextafter.go \
601         go/math/pow.go \
602         go/math/pow10.go \
603         go/math/remainder.go \
604         go/math/signbit.go \
605         go/math/sin.go \
606         go/math/sincos.go \
607         go/math/sinh.go \
608         go/math/sqrt.go \
609         go/math/sqrt_port.go \
610         go/math/tan.go \
611         go/math/tanh.go \
612         go/math/unsafe.go
613
614 go_mime_files = \
615         go/mime/grammar.go \
616         go/mime/mediatype.go \
617         go/mime/type.go
618
619 if LIBGO_IS_RTEMS
620 go_net_fd_os_file = go/net/fd_rtems.go
621 go_net_newpollserver_file = go/net/newpollserver_rtems.go
622 else # !LIBGO_IS_RTEMS
623 if LIBGO_IS_LINUX
624 go_net_fd_os_file = go/net/fd_linux.go
625 go_net_newpollserver_file = go/net/newpollserver.go
626 else # !LIBGO_IS_LINUX && !LIBGO_IS_RTEMS
627 # By default use select with pipes.  Most systems should have
628 # something better.
629 go_net_fd_os_file = go/net/fd_rtems.go
630 go_net_newpollserver_file = go/net/newpollserver.go
631 endif # !LIBGO_IS_LINUX
632 endif # !LIBGO_IS_RTEMS
633
634 go_net_files = \
635         go/net/dial.go \
636         go/net/dnsclient.go \
637         go/net/dnsconfig.go \
638         go/net/dnsmsg.go \
639         $(go_net_newpollserver_file) \
640         go/net/fd.go \
641         $(go_net_fd_os_file) \
642         go/net/hosts.go \
643         go/net/ip.go \
644         go/net/iprawsock.go \
645         go/net/ipsock.go \
646         go/net/net.go \
647         go/net/parse.go \
648         go/net/pipe.go \
649         go/net/port.go \
650         go/net/sock.go \
651         go/net/tcpsock.go \
652         go/net/udpsock.go \
653         go/net/unixsock.go
654
655 go_netchan_files = \
656         go/netchan/common.go \
657         go/netchan/export.go \
658         go/netchan/import.go
659
660 if LIBGO_IS_LINUX
661 go_os_sys_file = go/os/sys_linux.go
662 else
663 if LIBGO_IS_SOLARIS
664 go_os_sys_file = go/os/sys_uname.go
665 else
666 if LIBGO_IS_RTEMS
667 go_os_sys_file = go/os/sys_uname.go
668 else
669 go_os_sys_file = go/os/sys_bsd.go
670 endif
671 endif
672 endif
673
674 go_os_files = \
675         go/os/dir.go \
676         go/os/env.go \
677         go/os/env_unix.go \
678         go/os/error.go \
679         go/os/exec.go \
680         go/os/file.go \
681         go/os/file_unix.go \
682         go/os/getwd.go \
683         go/os/path.go \
684         go/os/proc.go \
685         go/os/stat.go \
686         $(go_os_sys_file) \
687         go/os/time.go \
688         go/os/types.go
689
690 go_patch_files = \
691         go/patch/apply.go \
692         go/patch/git.go \
693         go/patch/patch.go \
694         go/patch/textdiff.go
695
696 go_path_files = \
697         go/path/match.go \
698         go/path/path.go \
699         go/path/path_unix.go
700
701 go_rand_files = \
702         go/rand/exp.go \
703         go/rand/normal.go \
704         go/rand/rand.go \
705         go/rand/rng.go \
706         go/rand/zipf.go
707
708 go_reflect_files = \
709         go/reflect/deepequal.go \
710         go/reflect/type.go \
711         go/reflect/value.go
712
713 go_regexp_files = \
714         go/regexp/regexp.go
715
716 go_rpc_files = \
717         go/rpc/client.go \
718         go/rpc/debug.go \
719         go/rpc/server.go
720
721 go_runtime_files = \
722         go/runtime/debug.go \
723         go/runtime/error.go \
724         go/runtime/extern.go \
725         go/runtime/malloc_defs.go \
726         go/runtime/runtime_defs.go \
727         go/runtime/sig.go \
728         go/runtime/softfloat64.go \
729         go/runtime/type.go \
730         version.go
731
732 version.go: s-version; @true
733 s-version: Makefile
734         rm -f version.go.tmp
735         echo "package runtime" > version.go.tmp
736         echo 'const defaultGoroot = "$(prefix)"' >> version.go.tmp
737         echo 'const theVersion = "'`$(CC) --version | sed 1q`'"' >> version.go.tmp
738         echo 'const theGoarch = "'$(GOARCH)'"' >> version.go.tmp
739         echo 'const theGoos = "'$(GOOS)'"' >> version.go.tmp
740         $(SHELL) $(srcdir)/../move-if-change version.go.tmp version.go
741         $(STAMP) $@
742
743 go_scanner_files = \
744         go/scanner/scanner.go
745
746 go_smtp_files = \
747         go/smtp/auth.go \
748         go/smtp/smtp.go
749
750 go_sort_files = \
751         go/sort/search.go \
752         go/sort/sort.go
753
754 go_strconv_files = \
755         go/strconv/atob.go \
756         go/strconv/atof.go \
757         go/strconv/atoi.go \
758         go/strconv/decimal.go \
759         go/strconv/ftoa.go \
760         go/strconv/itoa.go \
761         go/strconv/quote.go
762
763 go_strings_files = \
764         go/strings/reader.go \
765         go/strings/strings.go
766
767 go_sync_files = \
768         go/sync/mutex.go \
769         go/sync/once.go \
770         go/sync/rwmutex.go
771 go_sync_c_files = \
772         go/sync/cas.c
773
774 go_syslog_files = \
775         go/syslog/syslog.go
776
777 go_tabwriter_files = \
778         go/tabwriter/tabwriter.go
779
780 go_template_files = \
781         go/template/format.go \
782         go/template/template.go
783
784 go_testing_files = \
785         go/testing/benchmark.go \
786         go/testing/testing.go
787
788 go_time_files = \
789         go/time/format.go \
790         go/time/sleep.go \
791         go/time/tick.go \
792         go/time/time.go \
793         go/time/zoneinfo_unix.go
794
795 go_try_files = \
796         go/try/try.go
797
798 go_unicode_files = \
799         go/unicode/casetables.go \
800         go/unicode/digit.go \
801         go/unicode/letter.go \
802         go/unicode/tables.go
803
804 go_utf16_files = \
805         go/utf16/utf16.go
806
807 go_utf8_files = \
808         go/utf8/string.go \
809         go/utf8/utf8.go
810
811 go_websocket_files = \
812         go/websocket/client.go \
813         go/websocket/server.go \
814         go/websocket/websocket.go
815
816 go_xml_files = \
817         go/xml/read.go \
818         go/xml/xml.go
819
820 go_archive_tar_files = \
821         go/archive/tar/common.go \
822         go/archive/tar/reader.go \
823         go/archive/tar/writer.go
824
825 go_archive_zip_files = \
826         go/archive/zip/reader.go \
827         go/archive/zip/struct.go
828
829 go_compress_flate_files = \
830         go/compress/flate/deflate.go \
831         go/compress/flate/huffman_bit_writer.go \
832         go/compress/flate/huffman_code.go \
833         go/compress/flate/inflate.go \
834         go/compress/flate/reverse_bits.go \
835         go/compress/flate/token.go \
836         go/compress/flate/util.go
837
838 go_compress_gzip_files = \
839         go/compress/gzip/gzip.go \
840         go/compress/gzip/gunzip.go
841
842 go_compress_zlib_files = \
843         go/compress/zlib/reader.go \
844         go/compress/zlib/writer.go
845
846 go_container_heap_files = \
847         go/container/heap/heap.go
848
849 go_container_list_files = \
850         go/container/list/list.go
851
852 go_container_ring_files = \
853         go/container/ring/ring.go
854
855 go_container_vector_files = \
856         go/container/vector/defs.go \
857         go/container/vector/intvector.go \
858         go/container/vector/stringvector.go \
859         go/container/vector/vector.go
860
861 go_crypto_aes_files = \
862         go/crypto/aes/block.go \
863         go/crypto/aes/cipher.go \
864         go/crypto/aes/const.go
865 go_crypto_block_files = \
866         go/crypto/block/cbc.go \
867         go/crypto/block/cfb.go \
868         go/crypto/block/cmac.go \
869         go/crypto/block/cipher.go \
870         go/crypto/block/ctr.go \
871         go/crypto/block/eax.go \
872         go/crypto/block/ecb.go \
873         go/crypto/block/ofb.go \
874         go/crypto/block/xor.go
875 go_crypto_blowfish_files = \
876         go/crypto/blowfish/block.go \
877         go/crypto/blowfish/const.go \
878         go/crypto/blowfish/cipher.go
879 go_crypto_cast5_files = \
880         go/crypto/cast5/cast5.go
881 go_crypto_cipher_files = \
882         go/crypto/cipher/cbc.go \
883         go/crypto/cipher/cfb.go \
884         go/crypto/cipher/cipher.go \
885         go/crypto/cipher/ctr.go \
886         go/crypto/cipher/io.go \
887         go/crypto/cipher/ocfb.go \
888         go/crypto/cipher/ofb.go
889 go_crypto_elliptic_files = \
890         go/crypto/elliptic/elliptic.go
891 go_crypto_hmac_files = \
892         go/crypto/hmac/hmac.go
893 go_crypto_md4_files = \
894         go/crypto/md4/md4.go \
895         go/crypto/md4/md4block.go
896 go_crypto_md5_files = \
897         go/crypto/md5/md5.go \
898         go/crypto/md5/md5block.go
899 go_crypto_ocsp_files = \
900         go/crypto/ocsp/ocsp.go
901 go_crypto_rand_files = \
902         go/crypto/rand/rand.go \
903         go/crypto/rand/rand_unix.go
904 go_crypto_rc4_files = \
905         go/crypto/rc4/rc4.go
906 go_crypto_ripemd160_files = \
907         go/crypto/ripemd160/ripemd160.go \
908         go/crypto/ripemd160/ripemd160block.go
909 go_crypto_rsa_files = \
910         go/crypto/rsa/pkcs1v15.go \
911         go/crypto/rsa/rsa.go
912 go_crypto_sha1_files = \
913         go/crypto/sha1/sha1.go \
914         go/crypto/sha1/sha1block.go
915 go_crypto_sha256_files = \
916         go/crypto/sha256/sha256.go \
917         go/crypto/sha256/sha256block.go
918 go_crypto_sha512_files = \
919         go/crypto/sha512/sha512.go \
920         go/crypto/sha512/sha512block.go
921 go_crypto_subtle_files = \
922         go/crypto/subtle/constant_time.go
923 go_crypto_tls_files = \
924         go/crypto/tls/alert.go \
925         go/crypto/tls/ca_set.go \
926         go/crypto/tls/cipher_suites.go \
927         go/crypto/tls/common.go \
928         go/crypto/tls/conn.go \
929         go/crypto/tls/handshake_client.go \
930         go/crypto/tls/handshake_messages.go \
931         go/crypto/tls/handshake_server.go \
932         go/crypto/tls/key_agreement.go \
933         go/crypto/tls/prf.go \
934         go/crypto/tls/tls.go
935 go_crypto_twofish_files = \
936         go/crypto/twofish/twofish.go
937 go_crypto_x509_files = \
938         go/crypto/x509/x509.go
939 go_crypto_xtea_files = \
940         go/crypto/xtea/block.go \
941         go/crypto/xtea/cipher.go
942
943 go_crypto_openpgp_armor_files = \
944         go/crypto/openpgp/armor/armor.go \
945         go/crypto/openpgp/armor/encode.go
946 go_crypto_openpgp_error_files = \
947         go/crypto/openpgp/error/error.go
948 go_crypto_openpgp_s2k_files = \
949         go/crypto/openpgp/s2k/s2k.go
950
951 go_debug_dwarf_files = \
952         go/debug/dwarf/buf.go \
953         go/debug/dwarf/const.go \
954         go/debug/dwarf/entry.go \
955         go/debug/dwarf/open.go \
956         go/debug/dwarf/type.go \
957         go/debug/dwarf/unit.go
958 go_debug_elf_files = \
959         go/debug/elf/elf.go \
960         go/debug/elf/file.go
961 go_debug_gosym_files = \
962         go/debug/gosym/pclntab.go \
963         go/debug/gosym/symtab.go
964 go_debug_macho_files = \
965         go/debug/macho/file.go \
966         go/debug/macho/macho.go
967 go_debug_pe_files = \
968         go/debug/pe/file.go \
969         go/debug/pe/pe.go
970
971 go_debug_proc_files = \
972         go/debug/proc/proc.go \
973         go/debug/proc/proc_$(GOOS).go \
974         $(GO_DEBUG_PROC_REGS_OS_ARCH_FILE)
975
976 go_encoding_ascii85_files = \
977         go/encoding/ascii85/ascii85.go
978 go_encoding_base32_files = \
979         go/encoding/base32/base32.go
980 go_encoding_base64_files = \
981         go/encoding/base64/base64.go
982 go_encoding_binary_files = \
983         go/encoding/binary/binary.go
984 go_encoding_git85_files = \
985         go/encoding/git85/git.go
986 go_encoding_hex_files = \
987         go/encoding/hex/hex.go
988 go_encoding_line_files = \
989         go/encoding/line/line.go
990 go_encoding_pem_files = \
991         go/encoding/pem/pem.go
992
993 go_exp_datafmt_files = \
994         go/exp/datafmt/datafmt.go \
995         go/exp/datafmt/parser.go
996 go_exp_draw_files = \
997         go/exp/draw/draw.go \
998         go/exp/draw/event.go
999 go_exp_eval_files = \
1000         go/exp/eval/abort.go \
1001         go/exp/eval/bridge.go \
1002         go/exp/eval/compiler.go \
1003         go/exp/eval/expr.go \
1004         go/exp/eval/expr1.go \
1005         go/exp/eval/func.go \
1006         go/exp/eval/scope.go \
1007         go/exp/eval/stmt.go \
1008         go/exp/eval/type.go \
1009         go/exp/eval/typec.go \
1010         go/exp/eval/value.go \
1011         go/exp/eval/world.go
1012
1013 go_go_ast_files = \
1014         go/go/ast/ast.go \
1015         go/go/ast/filter.go \
1016         go/go/ast/print.go \
1017         go/go/ast/scope.go \
1018         go/go/ast/walk.go
1019 go_go_doc_files = \
1020         go/go/doc/comment.go \
1021         go/go/doc/doc.go
1022 go_go_parser_files = \
1023         go/go/parser/interface.go \
1024         go/go/parser/parser.go
1025 go_go_printer_files = \
1026         go/go/printer/nodes.go \
1027         go/go/printer/printer.go
1028 go_go_scanner_files = \
1029         go/go/scanner/errors.go \
1030         go/go/scanner/scanner.go
1031 go_go_token_files = \
1032         go/go/token/position.go \
1033         go/go/token/token.go
1034 go_go_typechecker_files = \
1035         go/go/typechecker/scope.go \
1036         go/go/typechecker/typechecker.go \
1037         go/go/typechecker/universe.go
1038
1039 go_hash_adler32_files = \
1040         go/hash/adler32/adler32.go
1041 go_hash_crc32_files = \
1042         go/hash/crc32/crc32.go
1043 go_hash_crc64_files = \
1044         go/hash/crc64/crc64.go
1045
1046 go_http_pprof_files = \
1047         go/http/pprof/pprof.go
1048
1049 go_image_jpeg_files = \
1050         go/image/jpeg/huffman.go \
1051         go/image/jpeg/idct.go \
1052         go/image/jpeg/reader.go
1053
1054 go_image_png_files = \
1055         go/image/png/reader.go \
1056         go/image/png/writer.go
1057
1058 go_index_suffixarray_files = \
1059         go/index/suffixarray/qsufsort.go \
1060         go/index/suffixarray/suffixarray.go
1061
1062 go_io_ioutil_files = \
1063         go/io/ioutil/ioutil.go \
1064         go/io/ioutil/tempfile.go
1065
1066 go_mime_multipart_files = \
1067         go/mime/multipart/multipart.go
1068
1069 go_net_dict_files = \
1070         go/net/dict/dict.go
1071
1072 go_net_textproto_files = \
1073         go/net/textproto/pipeline.go \
1074         go/net/textproto/reader.go \
1075         go/net/textproto/textproto.go \
1076         go/net/textproto/writer.go
1077
1078 go_os_inotify_files = \
1079         go/os/inotify/inotify_linux.go
1080
1081 go_os_signal_files = \
1082         go/os/signal/signal.go \
1083         unix.go
1084
1085 go_rpc_jsonrpc_files = \
1086         go/rpc/jsonrpc/client.go \
1087         go/rpc/jsonrpc/server.go
1088
1089 go_runtime_debug_files = \
1090         go/runtime/debug/stack.go
1091 go_runtime_pprof_files = \
1092         go/runtime/pprof/pprof.go
1093
1094 go_testing_iotest_files = \
1095         go/testing/iotest/logger.go \
1096         go/testing/iotest/reader.go \
1097         go/testing/iotest/writer.go
1098 go_testing_quick_files = \
1099         go/testing/quick/quick.go
1100 go_testing_script_files = \
1101         go/testing/script/script.go
1102
1103 # Define Syscall and Syscall6.
1104 if LIBGO_IS_RTEMS
1105 syscall_syscall_file = syscalls/syscall_stubs.go
1106 else
1107 syscall_syscall_file = syscalls/syscall.go
1108 endif
1109
1110 # Declare libc functions that vary for largefile systems.
1111 if LIBGO_IS_LINUX
1112 # Always use lseek64 on GNU/Linux.
1113 syscall_filesize_file = syscalls/sysfile_largefile.go
1114 else # !LIBGO_IS_LINUX
1115 if LIBGO_IS_SOLARIS
1116 if LIBGO_IS_386
1117 # Use lseek64 on 386 Solaris.
1118 syscall_filesize_file = syscalls/sysfile_largefile.go
1119 else # !LIBGO_IS_LINUX && LIBGO_IS_SOLARIS && !LIBGO_IS_386
1120 # Use lseek on amd64 Solaris.
1121 syscall_filesize_file = syscalls/sysfile_regfile.go
1122 endif # !LIBGO_IS_386
1123 else # !LIBGO_IS_LINUX && !LIBGO_IS_SOLARIS
1124 # Use lseek by default.
1125 syscall_filesize_file = syscalls/sysfile_regfile.go
1126 endif # !LIBGO_IS_SOLARIS
1127 endif # !LIBGO_IS_LINUX
1128
1129
1130 # Define ForkExec, PtraceForkExec, Exec, and Wait4.
1131 if LIBGO_IS_RTEMS
1132 syscall_exec_os_file = syscalls/exec_stubs.go
1133 else
1134 syscall_exec_os_file = syscalls/exec.go
1135 endif
1136
1137 # Define Sleep.
1138 if LIBGO_IS_RTEMS
1139 syscall_sleep_file = syscalls/sleep_rtems.go
1140 else
1141 syscall_sleep_file = syscalls/sleep_select.go
1142 endif
1143
1144 # Define Errstr.
1145 if LIBGO_IS_RTEMS
1146 syscall_errstr_file = syscalls/errstr_rtems.go
1147 else
1148 syscall_errstr_file = syscalls/errstr.go
1149 endif
1150
1151 # Declare libc_strerror_r which is the Go name for strerror_r.
1152 if LIBGO_IS_RTEMS
1153 # RTEMS uses newlib in which strerror_r returns char *.
1154 syscall_errstr_decl_file = syscalls/errstr_decl_rtems.go
1155 else
1156 if LIBGO_IS_LINUX
1157 # In Linux the POSIX strerror_r is called __xpg_strerror_r.
1158 syscall_errstr_decl_file = syscalls/errstr_decl_linux.go
1159 else
1160 # On other systems we hope strerror_r is just strerror_r.
1161 syscall_errstr_decl_file = syscalls/errstr_decl.go
1162 endif
1163 endif
1164
1165 # Define socket sizes and types.
1166 if LIBGO_IS_LINUX
1167 syscall_socket_os_file = syscalls/socket_linux.go
1168 else
1169 if LIBGO_IS_SOLARIS
1170 syscall_socket_os_file = syscalls/socket_solaris.go
1171 else
1172 syscall_socket_os_file = syscalls/socket_bsd.go
1173 endif
1174 endif
1175
1176 # Support for epoll.
1177 if LIBGO_IS_LINUX
1178 syscall_socket_epoll_file = syscalls/socket_epoll.go
1179 else
1180 syscall_socket_epoll_file =
1181 endif
1182
1183 syscall_arch.go: s-syscall_arch; @true
1184 s-syscall_arch: Makefile
1185         rm -f syscall_arch.go.tmp
1186         echo "package syscall" > syscall_arch.go.tmp
1187         echo 'const ARCH = "'$(GOARCH)'"' >> syscall_arch.go.tmp
1188         echo 'const OS = "'$(GOOS)'"' >> syscall_arch.go.tmp
1189         $(SHELL) $(srcdir)/../move-if-change syscall_arch.go.tmp syscall_arch.go
1190         $(STAMP) $@
1191
1192 go_syscall_files = \
1193         $(syscall_errstr_file) \
1194         $(syscall_errstr_decl_file) \
1195         syscalls/exec_helpers.go \
1196         $(syscall_exec_os_file) \
1197         $(syscall_filesize_file) \
1198         $(syscall_sleep_file) \
1199         syscalls/socket.go \
1200         $(syscall_socket_os_file) \
1201         $(syscall_socket_epoll_file) \
1202         $(syscall_syscall_file) \
1203         syscalls/syscall_unix.go \
1204         syscalls/stringbyte.go \
1205         syscalls/syscall_$(GOOS).go \
1206         $(GO_SYSCALLS_SYSCALL_OS_ARCH_FILE) \
1207         syscalls/sysfile_posix.go \
1208         sysinfo.go \
1209         syscall_arch.go
1210 go_syscall_c_files = \
1211         syscalls/errno.c
1212
1213 if LIBGO_IS_LINUX
1214 # os_lib_inotify_la = os/libinotify.la
1215 os_lib_inotify_la =
1216 else
1217 os_lib_inotify_la =
1218 endif
1219
1220 libgo_go_objs = \
1221         asn1/libasn1.la \
1222         big/libbig.la \
1223         bufio/libbufio.la \
1224         bytes/libbytes.la \
1225         cmath/libcmath.la \
1226         ebnf/libebnf.la \
1227         exec/libexec.la \
1228         expvar/libexpvar.la \
1229         flag/libflag.la \
1230         fmt/libfmt.la \
1231         gob/libgob.la \
1232         hash/libhash.la \
1233         html/libhtml.la \
1234         http/libhttp.la \
1235         image/libimage.la \
1236         io/libio.la \
1237         json/libjson.la \
1238         log/liblog.la \
1239         math/libmath.la \
1240         mime/libmime.la \
1241         net/libnet.la \
1242         netchan/libnetchan.la \
1243         os/libos.la \
1244         patch/libpatch.la \
1245         path/libpath.la \
1246         rand/librand.la \
1247         reflect/libreflect.la \
1248         regexp/libregexp.la \
1249         rpc/librpc.la \
1250         runtime/libruntime.la \
1251         scanner/libscanner.la \
1252         smtp/libsmtp.la \
1253         sort/libsort.la \
1254         strconv/libstrconv.la \
1255         strings/libstrings.la \
1256         sync/libsync.la \
1257         syslog/libsyslog.la \
1258         tabwriter/libtabwriter.la \
1259         template/libtemplate.la \
1260         time/libtime.la \
1261         try/libtry.la \
1262         unicode/libunicode.la \
1263         utf16/libutf16.la \
1264         utf8/libutf8.la \
1265         websocket/libwebsocket.la \
1266         xml/libxml.la \
1267         archive/libtar.la \
1268         archive/libzip.la \
1269         compress/libflate.la \
1270         compress/libgzip.la \
1271         compress/libzlib.la \
1272         container/libheap.la \
1273         container/liblist.la \
1274         container/libring.la \
1275         container/libvector.la \
1276         crypto/libaes.la \
1277         crypto/libblock.la \
1278         crypto/libblowfish.la \
1279         crypto/libcast5.la \
1280         crypto/libcipher.la \
1281         crypto/libelliptic.la \
1282         crypto/libhmac.la \
1283         crypto/libmd4.la \
1284         crypto/libmd5.la \
1285         crypto/libocsp.la \
1286         crypto/librand.la \
1287         crypto/librc4.la \
1288         crypto/libripemd160.la \
1289         crypto/librsa.la \
1290         crypto/libsha1.la \
1291         crypto/libsha256.la \
1292         crypto/libsha512.la \
1293         crypto/libsubtle.la \
1294         crypto/libtls.la \
1295         crypto/libtwofish.la \
1296         crypto/libx509.la \
1297         crypto/libxtea.la \
1298         crypto/openpgp/libarmor.la \
1299         crypto/openpgp/liberror.la \
1300         crypto/openpgp/libs2k.la \
1301         debug/libdwarf.la \
1302         debug/libelf.la \
1303         debug/libgosym.la \
1304         debug/libmacho.la \
1305         debug/libpe.la \
1306         debug/libproc.la \
1307         encoding/libascii85.la \
1308         encoding/libbase32.la \
1309         encoding/libbase64.la \
1310         encoding/libbinary.la \
1311         encoding/libgit85.la \
1312         encoding/libhex.la \
1313         encoding/libline.la \
1314         encoding/libpem.la \
1315         exp/libdatafmt.la \
1316         exp/libdraw.la \
1317         exp/libeval.la \
1318         go/libast.la \
1319         go/libdoc.la \
1320         go/libparser.la \
1321         go/libprinter.la \
1322         go/libscanner.la \
1323         go/libtoken.la \
1324         go/libtypechecker.la \
1325         hash/libadler32.la \
1326         hash/libcrc32.la \
1327         hash/libcrc64.la \
1328         http/libpprof.la \
1329         image/libjpeg.la \
1330         image/libpng.la \
1331         index/libsuffixarray.la \
1332         io/libioutil.la \
1333         mime/libmultipart.la \
1334         net/libdict.la \
1335         net/libtextproto.la \
1336         $(os_lib_inotify_la) \
1337         os/libsignal.la \
1338         rpc/libjsonrpc.la \
1339         runtime/libdebug.la \
1340         runtime/libpprof.la \
1341         syscalls/libsyscall.la \
1342         testing/libtesting.la \
1343         testing/libiotest.la \
1344         testing/libquick.la \
1345         testing/libscript.la
1346
1347 libgo_la_SOURCES = $(runtime_files)
1348
1349 libgo_la_LIBADD = \
1350         $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
1351
1352 libgobegin_a_SOURCES = \
1353         runtime/go-main.c
1354
1355 LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
1356
1357 GOCFLAGS = $(CFLAGS)
1358 AM_GOCFLAGS = $(STRINGOPS_FLAG)
1359 GOCOMPILE = $(GOC) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_GOCFLAGS) $(GOCFLAGS)
1360
1361 LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
1362         $(AM_GOCFLAGS) $(GOCFLAGS)
1363
1364 GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
1365         $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) -o $@
1366
1367 # Build a package.
1368 BUILDARCHIVE = \
1369         rm -f `echo $@ | sed -e 's|/lib|/|' -e 's/\.a/.gox/'`; \
1370         test -d $(@D) || $(MKDIR_P) $(@D); \
1371         rm -f $@; \
1372         files=`echo $^ | sed -e 's/[^ ]*\.gox//g'`; \
1373         if $(LTGOCOMPILE) -I . -c -fgo-prefix="libgo_$(@D)" -o $@.$(OBJEXT) $$files; then \
1374           $(AR) rc $@ $@.$(OBJEXT); \
1375         else exit 1; fi
1376
1377 # Build a .la file from a .a file.
1378 .a.la:
1379         $(LINK) $<.lo
1380
1381 if LIBGO_IS_RTEMS
1382 use_dejagnu = yes
1383 else
1384 use_dejagnu = no
1385 endif
1386
1387 # Check a package.
1388 CHECK = \
1389         @GC="$(GOC) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs -Wl,-R,`${PWD_COMMAND}`/.libs"; \
1390         export GC; \
1391         RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
1392         export RUNTESTFLAGS; \
1393         MAKE="$(MAKE)"; \
1394         export MAKE; \
1395         rm -f $@-log; \
1396         prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
1397         test "$${prefix}" != "." || prefix="$(@D)"; \
1398         if test "$(use_dejagnu)" = "yes"; then \
1399           $(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)"; \
1400         else \
1401           if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" >>$@-log 2>&1; then \
1402             echo "PASS: $(@D)"; \
1403           else \
1404             echo "FAIL: $(@D)"; \
1405             cat $@-log; \
1406             exit 1; \
1407           fi; \
1408         fi
1409
1410 # Build all packages before checking any.
1411 CHECK_DEPS = libgo.la libgobegin.a \
1412         $(toolexeclib_DATA) \
1413         $(toolexeclibarchive_DATA) \
1414         $(toolexeclibcompress_DATA) \
1415         $(toolexeclibcontainer_DATA) \
1416         $(toolexeclibcrypto_DATA) \
1417         $(toolexeclibdebug_DATA) \
1418         $(toolexeclibencoding_DATA) \
1419         $(toolexeclibexp_DATA) \
1420         $(toolexeclibgo_DATA) \
1421         $(toolexeclibhash_DATA) \
1422         $(toolexeclibhttp_DATA) \
1423         $(toolexeclibimage_DATA) \
1424         $(toolexeclibio_DATA) \
1425         $(toolexeclibos_DATA) \
1426         $(toolexeclibrpc_DATA) \
1427         $(toolexeclibruntime_DATA) \
1428         $(toolexeclibtesting_DATA)
1429
1430 asn1/libasn1.a: $(go_asn1_files) bytes.gox fmt.gox io.gox os.gox reflect.gox \
1431                 strconv.gox strings.gox time.gox
1432         $(BUILDARCHIVE)
1433 asn1/libasn1.la: asn1/libasn1.a
1434 asn1/check: $(CHECK_DEPS)
1435         $(CHECK)
1436 .PHONY: asn1/check
1437
1438 big/libbig.a: $(go_big_files) fmt.gox rand.gox strings.gox
1439         $(BUILDARCHIVE)
1440 big/libbig.la: big/libbig.a
1441 big/check: $(CHECK_DEPS)
1442         $(CHECK)
1443 .PHONY: big/check
1444
1445 bufio/libbufio.a: $(go_bufio_files) bytes.gox io.gox os.gox strconv.gox \
1446                 utf8.gox
1447         $(BUILDARCHIVE)
1448 bufio/libbufio.la: bufio/libbufio.a
1449 bufio/check: $(CHECK_DEPS)
1450         $(CHECK)
1451 .PHONY: bufio/check
1452
1453 bytes/libbytes.a: $(go_bytes_files) $(go_bytes_c_files) io.gox os.gox \
1454                 unicode.gox utf8.gox
1455         test -d bytes || $(MKDIR_P) bytes
1456         $(LTGOCOMPILE) -I . -c -o bytes/bytes.$(OBJEXT) -fgo-prefix=libgo_bytes $(srcdir)/go/bytes/buffer.go $(srcdir)/go/bytes/bytes.go $(srcdir)/go/bytes/bytes_decl.go
1457         $(LTCOMPILE) -c -o bytes/index.$(OBJEXT) $(srcdir)/go/bytes/indexbyte.c
1458         rm -f $@
1459         $(AR) rc $@ bytes/bytes.$(OBJEXT) bytes/index.$(OBJEXT)
1460 bytes/libbytes.la: bytes/libbytes.a
1461         $(LINK) bytes/bytes.lo bytes/index.lo
1462 bytes/check: $(CHECK_DEPS)
1463         $(CHECK)
1464 .PHONY: bytes/check
1465
1466 cmath/libcmath.a: $(go_cmath_files) math.gox
1467         $(BUILDARCHIVE)
1468 cmath/libcmath.la: cmath/libcmath.a
1469 cmath/check: $(CHECK_DEPS)
1470         $(CHECK)
1471 .PHONY: cmath/check
1472
1473 ebnf/libebnf.a: $(go_ebnf_files) container/vector.gox go/scanner.gox \
1474                 go/token.gox os.gox strconv.gox unicode.gox utf8.gox
1475         $(BUILDARCHIVE)
1476 ebnf/libebnf.la: ebnf/libebnf.a
1477 ebnf/check: $(CHECK_DEPS)
1478         $(CHECK)
1479 .PHONY: ebnf/check
1480
1481 exec/libexec.a: $(go_exec_files) os.gox strings.gox
1482         $(BUILDARCHIVE)
1483 exec/libexec.la: exec/libexec.a
1484 exec/check: $(CHECK_DEPS)
1485         $(CHECK)
1486 .PHONY: exec/check
1487
1488 expvar/libexpvar.a: $(go_expvar_files) bytes.gox fmt.gox http.gox json.gox \
1489                 log.gox os.gox runtime.gox strconv.gox sync.gox
1490         $(BUILDARCHIVE)
1491 expvar/libexpvar.la: expvar/libexpvar.a
1492 expvar/check: $(CHECK_DEPS)
1493         $(CHECK)
1494 .PHONY: expvar/check
1495
1496 flag/libflag.a: $(go_flag_files) fmt.gox os.gox strconv.gox
1497         $(BUILDARCHIVE)
1498 flag/libflag.la: flag/libflag.a
1499 flag/check: $(CHECK_DEPS)
1500         $(CHECK)
1501 .PHONY: flag/check
1502
1503 fmt/libfmt.a: $(go_fmt_files) bytes.gox io.gox os.gox reflect.gox strconv.gox \
1504                 strings.gox unicode.gox utf8.gox
1505         $(BUILDARCHIVE)
1506 fmt/libfmt.la: fmt/libfmt.a
1507 fmt/check: $(CHECK_DEPS)
1508         $(CHECK)
1509 .PHONY: fmt/check
1510
1511 gob/libgob.a: $(go_gob_files) bytes.gox fmt.gox io.gox math.gox os.gox \
1512                 reflect.gox runtime.gox strings.gox sync.gox unicode.gox \
1513                 utf8.gox
1514         $(BUILDARCHIVE)
1515 gob/libgob.la: gob/libgob.a
1516 gob/check: $(CHECK_DEPS)
1517         $(CHECK)
1518 .PHONY: gob/check
1519
1520 hash/libhash.a: $(go_hash_files) io.gox
1521         $(BUILDARCHIVE)
1522 hash/libhash.la: hash/libhash.a
1523 hash/check: $(CHECK_DEPS)
1524         $(CHECK)
1525 .PHONY: hash/check
1526
1527 html/libhtml.a: $(go_html_files) bytes.gox io.gox os.gox strconv.gox \
1528                 strings.gox utf8.gox
1529         $(BUILDARCHIVE)
1530 html/libhtml.la: html/libhtml.a
1531 html/check: $(CHECK_DEPS)
1532         $(CHECK)
1533 .PHONY: html/check
1534
1535 http/libhttp.a: $(go_http_files) bufio.gox bytes.gox container/list.gox \
1536                 container/vector.gox crypto/rand.gox crypto/tls.gox \
1537                 encoding/base64.gox fmt.gox io.gox io/ioutil.gox log.gox \
1538                 mime.gox mime/multipart.gox net.gox os.gox path.gox sort.gox \
1539                 strconv.gox strings.gox sync.gox time.gox utf8.gox
1540         $(BUILDARCHIVE)
1541 http/libhttp.la: http/libhttp.a
1542 http/check: $(CHECK_DEPS)
1543         $(CHECK)
1544 .PHONY: http/check
1545
1546 image/libimage.a: $(go_image_files) bufio.gox io.gox os.gox strconv.gox
1547         $(BUILDARCHIVE)
1548 image/libimage.la: image/libimage.a
1549 image/check: $(CHECK_DEPS)
1550         $(CHECK)
1551 .PHONY: image/check
1552
1553 io/libio.a: $(go_io_files) os.gox runtime.gox sync.gox
1554         $(BUILDARCHIVE)
1555 io/libio.la: io/libio.a
1556 io/check: $(CHECK_DEPS)
1557         $(CHECK)
1558 .PHONY: io/check
1559
1560 json/libjson.a: $(go_json_files) bytes.gox container/vector.gox fmt.gox \
1561                 io.gox math.gox os.gox reflect.gox runtime.gox strconv.gox \
1562                 strings.gox unicode.gox utf16.gox utf8.gox
1563         $(BUILDARCHIVE)
1564 json/libjson.la: json/libjson.a
1565 json/check: $(CHECK_DEPS)
1566         $(CHECK)
1567 .PHONY: json/check
1568
1569 log/liblog.a: $(go_log_files) bytes.gox fmt.gox io.gox runtime.gox os.gox \
1570                 sync.gox time.gox
1571         $(BUILDARCHIVE)
1572 log/liblog.la: log/liblog.a
1573 log/check: $(CHECK_DEPS)
1574         $(CHECK)
1575 .PHONY: log/check
1576
1577 math/libmath.a: $(go_math_files)
1578         $(BUILDARCHIVE)
1579 math/libmath.la: math/libmath.a
1580 math/check: $(CHECK_DEPS)
1581         $(CHECK)
1582 .PHONY: math/check
1583
1584 mime/libmime.a: $(go_mime_files) bufio.gox bytes.gox os.gox strings.gox \
1585                 sync.gox unicode.gox
1586         $(BUILDARCHIVE)
1587 mime/libmime.la: mime/libmime.a
1588 mime/check: $(CHECK_DEPS)
1589         $(CHECK)
1590 .PHONY: mime/check
1591
1592 net/libnet.a: $(go_net_files) bytes.gox fmt.gox io.gox os.gox reflect.gox \
1593                 strconv.gox strings.gox sync.gox syscall.gox
1594         $(BUILDARCHIVE)
1595 net/libnet.la: net/libnet.a
1596 net/check: $(CHECK_DEPS)
1597         $(CHECK)
1598 .PHONY: net/check
1599
1600 netchan/libnetchan.a: $(go_netchan_files) gob.gox log.gox net.gox os.gox \
1601                 reflect.gox strconv.gox sync.gox time.gox
1602         $(BUILDARCHIVE)
1603 netchan/libnetchan.la: netchan/libnetchan.a
1604 netchan/check: $(CHECK_DEPS)
1605         $(CHECK)
1606 .PHONY: netchan/check
1607
1608 os/libos.a: $(go_os_files) sync.gox syscall.gox
1609         $(BUILDARCHIVE)
1610 os/libos.la: os/libos.a
1611 os/check: $(CHECK_DEPS)
1612         $(CHECK)
1613 .PHONY: os/check
1614
1615 patch/libpatch.a: $(go_patch_files) bytes.gox compress/zlib.gox \
1616                 crypto/sha1.gox encoding/git85.gox fmt.gox io.gox os.gox \
1617                 path.gox strings.gox
1618         $(BUILDARCHIVE)
1619 patch/libpatch.la: patch/libpatch.a
1620 patch/check: $(CHECK_DEPS)
1621         $(CHECK)
1622 .PHONY: patch/check
1623
1624 path/libpath.a: $(go_path_files) io/ioutil.gox os.gox sort.gox strings.gox \
1625                 utf8.gox
1626         $(BUILDARCHIVE)
1627 path/libpath.la: path/libpath.a
1628 path/check: $(CHECK_DEPS)
1629         $(CHECK)
1630 .PHONY: path/check
1631
1632 rand/librand.a: $(go_rand_files) math.gox sync.gox
1633         $(BUILDARCHIVE)
1634 rand/librand.la: rand/librand.a
1635 rand/check: $(CHECK_DEPS)
1636         $(CHECK)
1637 .PHONY: rand/check
1638
1639 reflect/libreflect.a: $(go_reflect_files) math.gox runtime.gox strconv.gox \
1640                 sync.gox
1641         $(BUILDARCHIVE)
1642 reflect/libreflect.la: reflect/libreflect.a
1643 reflect/check: $(CHECK_DEPS)
1644         $(CHECK)
1645 .PHONY: reflect/check
1646
1647 regexp/libregexp.a: $(go_regexp_files) bytes.gox io.gox os.gox strings.gox \
1648                 utf8.gox
1649         $(BUILDARCHIVE)
1650 regexp/libregexp.la: regexp/libregexp.a
1651 regexp/check: $(CHECK_DEPS)
1652         $(CHECK)
1653 .PHONY: regexp/check
1654
1655 rpc/librpc.a: $(go_rpc_files) bufio.gox fmt.gox gob.gox http.gox io.gox \
1656                 log.gox net.gox os.gox reflect.gox sort.gox strings.gox \
1657                 strconv.gox sync.gox template.gox unicode.gox utf8.gox
1658         $(BUILDARCHIVE)
1659 rpc/librpc.la: rpc/librpc.a
1660 rpc/check: $(CHECK_DEPS)
1661         $(CHECK)
1662 .PHONY: rpc/check
1663
1664 runtime/libruntime.a: $(go_runtime_files)
1665         $(BUILDARCHIVE)
1666 runtime/libruntime.la: runtime/libruntime.a
1667 runtime/check: $(CHECK_DEPS)
1668         $(CHECK)
1669 .PHONY: runtime/check
1670
1671 scanner/libscanner.a: $(go_scanner_files) bytes.gox fmt.gox io.gox os.gox \
1672                 unicode.gox utf8.gox
1673         $(BUILDARCHIVE)
1674 scanner/libscanner.la: scanner/libscanner.a
1675 scanner/check: $(CHECK_DEPS)
1676         $(CHECK)
1677 .PHONY: scanner/check
1678
1679 smtp/libsmtp.a: $(go_smtp_files) crypto/tls.gox encoding/base64.gox io.gox \
1680                 net.gox net/textproto.gox os.gox strings.gox
1681         $(BUILDARCHIVE)
1682 smtp/libsmtp.la: smtp/libsmtp.a
1683 smtp/check: $(CHECK_DEPS)
1684         $(CHECK)
1685 .PHONY: smtp/check
1686
1687 sort/libsort.a: $(go_sort_files)
1688         $(BUILDARCHIVE)
1689 sort/libsort.la: sort/libsort.a
1690 sort/check: $(CHECK_DEPS)
1691         $(CHECK)
1692 .PHONY: sort/check
1693
1694 strconv/libstrconv.a: $(go_strconv_files) bytes.gox math.gox os.gox \
1695                 strings.gox unicode.gox utf8.gox
1696         $(BUILDARCHIVE)
1697 strconv/libstrconv.la: strconv/libstrconv.a
1698 strconv/check: $(CHECK_DEPS)
1699         $(CHECK)
1700 .PHONY: strconv/check
1701
1702 strings/libstrings.a: $(go_strings_files) os.gox unicode.gox utf8.gox
1703         $(BUILDARCHIVE)
1704 strings/libstrings.la: strings/libstrings.a
1705 strings/check: $(CHECK_DEPS)
1706         $(CHECK)
1707 .PHONY: strings/check
1708
1709 sync/libsync.a: $(go_sync_files) $(go_sync_c_files) runtime.gox
1710         test -d sync || $(MKDIR_P) sync
1711         $(LTGOCOMPILE) -I . -c -o sync/mutex.$(OBJEXT) -fgo-prefix=libgo_sync $(srcdir)/go/sync/mutex.go $(srcdir)/go/sync/once.go $(srcdir)/go/sync/rwmutex.go
1712         $(LTCOMPILE) -c -o sync/cas.$(OBJEXT) $(srcdir)/go/sync/cas.c
1713         rm -f $@
1714         $(AR) rc $@ sync/mutex.$(OBJEXT) sync/cas.$(OBJEXT)
1715 sync/libsync.la: sync/libsync.a
1716         $(LINK) sync/mutex.lo sync/cas.lo
1717 sync/check: $(CHECK_DEPS)
1718         $(CHECK)
1719 .PHONY: sync/check
1720
1721 syslog/libsyslog.a: $(go_syslog_files) fmt.gox log.gox net.gox os.gox
1722         $(BUILDARCHIVE)
1723 syslog/libsyslog.la: syslog/libsyslog.a
1724 syslog/check: $(CHECK_DEPS)
1725         $(CHECK)
1726 .PHONY: syslog/check
1727
1728 tabwriter/libtabwriter.a: $(go_tabwriter_files) bytes.gox io.gox os.gox \
1729                 utf8.gox
1730         $(BUILDARCHIVE)
1731 tabwriter/libtabwriter.la: tabwriter/libtabwriter.a
1732 tabwriter/check: $(CHECK_DEPS)
1733         $(CHECK)
1734 .PHONY: tabwriter/check
1735
1736 template/libtemplate.a: $(go_template_files) bytes.gox fmt.gox io.gox os.gox \
1737                 reflect.gox runtime.gox strings.gox container/vector.gox
1738         $(BUILDARCHIVE)
1739 template/libtemplate.la: template/libtemplate.a
1740 template/check: $(CHECK_DEPS)
1741         $(CHECK)
1742 .PHONY: template/check
1743
1744 testing/libtesting.a: $(go_testing_files) flag.gox fmt.gox os.gox regexp.gox \
1745                 runtime.gox time.gox
1746         $(BUILDARCHIVE)
1747 testing/libtesting.la: testing/libtesting.a
1748 testing/check: $(CHECK_DEPS)
1749         $(CHECK)
1750 .PHONY: testing/check
1751
1752 time/libtime.a: $(go_time_files) bytes.gox container/heap.gox io/ioutil.gox \
1753                 os.gox strconv.gox sync.gox syscall.gox
1754         $(BUILDARCHIVE)
1755 time/libtime.la: time/libtime.a
1756 time/check: $(CHECK_DEPS)
1757         $(CHECK)
1758 .PHONY: time/check
1759
1760 try/libtry.a: $(go_try_files) fmt.gox io.gox os.gox reflect.gox unicode.gox
1761         $(BUILDARCHIVE)
1762 try/libtry.la: try/libtry.a
1763 try/check: $(CHECK_DEPS)
1764         $(CHECK)
1765 .PHONY: try/check
1766
1767 unicode/libunicode.a: $(go_unicode_files)
1768         $(BUILDARCHIVE)
1769 unicode/libunicode.la: unicode/libunicode.a
1770 unicode/check: $(CHECK_DEPS)
1771         $(CHECK)
1772 .PHONY: unicode/check
1773
1774 utf16/libutf16.a: $(go_utf16_files) unicode.gox
1775         $(BUILDARCHIVE)
1776 utf16/libutf16.la: utf16/libutf16.a
1777 utf16/check: $(CHECK_DEPS)
1778         $(CHECK)
1779 .PHONY: utf16/check
1780
1781 utf8/libutf8.a: $(go_utf8_files) unicode.gox
1782         $(BUILDARCHIVE)
1783 utf8/libutf8.la: utf8/libutf8.a
1784 utf8/check: $(CHECK_DEPS)
1785         $(CHECK)
1786 .PHONY: utf8/check
1787
1788 websocket/libwebsocket.a: $(go_websocket_files) bufio.gox bytes.gox \
1789                 container/vector.gox crypto/md5.gox crypto/tls.gox \
1790                 encoding/binary.gox fmt.gox http.gox io.gox net.gox os.gox \
1791                 rand.gox strings.gox
1792         $(BUILDARCHIVE)
1793 websocket/libwebsocket.la: websocket/libwebsocket.a
1794 websocket/check: $(CHECK_DEPS)
1795         $(CHECK)
1796 .PHONY: websocket/check
1797
1798 xml/libxml.a: $(go_xml_files) bufio.gox bytes.gox fmt.gox io.gox os.gox \
1799                 reflect.gox strconv.gox strings.gox unicode.gox utf8.gox
1800         $(BUILDARCHIVE)
1801 xml/libxml.la: xml/libxml.a
1802 xml/check: $(CHECK_DEPS)
1803         $(CHECK)
1804 .PHONY: xml/check
1805
1806 archive/libtar.a: $(go_archive_tar_files) bytes.gox io.gox os.gox strconv.gox \
1807                 strings.gox
1808         $(BUILDARCHIVE)
1809 archive/libtar.la: archive/libtar.a
1810 archive/tar/check: $(CHECK_DEPS)
1811         @$(MKDIR_P) archive/tar
1812         $(CHECK)
1813 .PHONY: archive/tar/check
1814
1815 archive/libzip.a: $(go_archive_zip_files) bufio.gox bytes.gox \
1816                 compress/flate.gox hash.gox hash/crc32.gox \
1817                 encoding/binary.gox io.gox os.gox
1818         $(BUILDARCHIVE)
1819 archive/libzip.la: archive/libzip.a
1820 archive/zip/check: $(CHECK_DEPS)
1821         @$(MKDIR_P) archive/zip
1822         $(CHECK)
1823 .PHONY: archive/zip/check
1824
1825 compress/libflate.a: $(go_compress_flate_files) bufio.gox io.gox math.gox \
1826                 os.gox sort.gox strconv.gox
1827         $(BUILDARCHIVE)
1828 compress/libflate.la: compress/libflate.a
1829 compress/flate/check: $(CHECK_DEPS)
1830         @$(MKDIR_P) compress/flate
1831         $(CHECK)
1832 .PHONY: compress/flate/check
1833
1834 compress/libgzip.a: $(go_compress_gzip_files) bufio.gox compress/flate.gox \
1835                 hash.gox hash/crc32.gox io.gox os.gox
1836         $(BUILDARCHIVE)
1837 compress/libgzip.la: compress/libgzip.a
1838 compress/gzip/check: $(CHECK_DEPS)
1839         @$(MKDIR_P) compress/gzip
1840         $(CHECK)
1841 .PHONY: compress/gzip/check
1842
1843 compress/libzlib.a: $(go_compress_zlib_files) bufio.gox compress/flate.gox \
1844                 hash.gox hash/adler32.gox io.gox os.gox
1845         $(BUILDARCHIVE)
1846 compress/libzlib.la: compress/libzlib.a
1847 compress/zlib/check: $(CHECK_DEPS)
1848         @$(MKDIR_P) compress/zlib
1849         $(CHECK)
1850 .PHONY: compress/zlib/check
1851
1852 container/libheap.a: $(go_container_heap_files) sort.gox
1853         $(BUILDARCHIVE)
1854 container/libheap.la: container/libheap.a
1855 container/heap/check: $(CHECK_DEPS)
1856         @$(MKDIR_P) container/heap
1857         $(CHECK)
1858 .PHONY: container/heap/check
1859
1860 container/liblist.a: $(go_container_list_files)
1861         $(BUILDARCHIVE)
1862 container/liblist.la: container/liblist.a
1863 container/list/check: $(CHECK_DEPS)
1864         @$(MKDIR_P) container/list
1865         $(CHECK)
1866 .PHONY: container/list/check
1867
1868 container/libring.a: $(go_container_ring_files)
1869         $(BUILDARCHIVE)
1870 container/libring.la: container/libring.a
1871 container/ring/check: $(CHECK_DEPS)
1872         @$(MKDIR_P) container/ring
1873         $(CHECK)
1874 .PHONY: container/ring/check
1875
1876 container/libvector.a: $(go_container_vector_files)
1877         $(BUILDARCHIVE)
1878 container/libvector.la: container/libvector.a
1879 container/vector/check: $(CHECK_DEPS)
1880         @$(MKDIR_P) container/vector
1881         $(CHECK)
1882 .PHONY: container/vector/check
1883
1884 crypto/libaes.a: $(go_crypto_aes_files) os.gox strconv.gox
1885         $(BUILDARCHIVE)
1886 crypto/libaes.la: crypto/libaes.a
1887 crypto/aes/check: $(CHECK_DEPS)
1888         @$(MKDIR_P) crypto/aes
1889         $(CHECK)
1890 .PHONY: crypto/aes/check
1891
1892 crypto/libblock.a: $(go_crypto_block_files) fmt.gox io.gox os.gox strconv.gox
1893         $(BUILDARCHIVE)
1894 crypto/libblock.la: crypto/libblock.a
1895 crypto/block/check: $(CHECK_DEPS)
1896         @$(MKDIR_P) crypto/block
1897         $(CHECK)
1898 .PHONY: crypto/block/check
1899
1900 crypto/libblowfish.a: $(go_crypto_blowfish_files) os.gox strconv.gox
1901         $(BUILDARCHIVE)
1902 crypto/libblowfish.la: crypto/libblowfish.a
1903 crypto/blowfish/check: $(CHECK_DEPS)
1904         @$(MKDIR_P) crypto/blowfish
1905         $(CHECK)
1906 .PHONY: crypto/blowfish/check
1907
1908 crypto/libcast5.a: $(go_crypto_cast5_files) os.gox
1909         $(BUILDARCHIVE)
1910 crypto/libcast5.la: crypto/libcast5.a
1911 crypt/cast5/check: $(CHECK_DEPS)
1912         @$(MKDIR_P) crypto/cast5
1913         $(CHECK)
1914 .PHONY: crypto/cast5/check
1915
1916 crypto/libcipher.a: $(go_crypto_cipher_files) io.gox os.gox
1917         $(BUILDARCHIVE)
1918 crypto/libcipher.la: crypto/libcipher.a
1919 crypto/cipher/check: $(CHECK_DEPS)
1920         @$(MKDIR_P) crypto/cipher
1921         $(CHECK)
1922 .PHONY: crypto/cipher/check
1923
1924 crypto/libelliptic.a: $(go_crypto_elliptic_files) big.gox io.gox os.gox \
1925                 sync.gox
1926         $(BUILDARCHIVE)
1927 crypto/libelliptic.la: crypto/libelliptic.a
1928 crypto/elliptic/check: $(CHECK_DEPS)
1929         @$(MKDIR_P) crypto/elliptic
1930         $(CHECK)
1931 .PHONY: crypto/elliptic/check
1932
1933 crypto/libhmac.a: $(go_crypto_hmac_files) crypto/md5.gox crypto/sha1.gox \
1934                 crypto/sha256.gox hash.gox os.gox
1935         $(BUILDARCHIVE)
1936 crypto/libhmac.la: crypto/libhmac.a
1937 crypto/hmac/check: $(CHECK_DEPS)
1938         @$(MKDIR_P) crypto/hmac
1939         $(CHECK)
1940 .PHONY: crypto/hmac/check
1941
1942 crypto/libmd4.a: $(go_crypto_md4_files) hash.gox os.gox
1943         $(BUILDARCHIVE)
1944 crypto/libmd4.la: crypto/libmd4.a
1945 crypto/md4/check: $(CHECK_DEPS)
1946         @$(MKDIR_P) crypto/md4
1947         $(CHECK)
1948 .PHONY: crypto/md4/check
1949
1950 crypto/libmd5.a: $(go_crypto_md5_files) hash.gox os.gox
1951         $(BUILDARCHIVE)
1952 crypto/libmd5.la: crypto/libmd5.a
1953 crypto/md5/check: $(CHECK_DEPS)
1954         @$(MKDIR_P) crypto/md5
1955         $(CHECK)
1956 .PHONY: crypto/md5/check
1957
1958 crypto/libocsp.a: $(go_crypto_ocsp_files) asn1.gox crypto/rsa.gox \
1959                 crypto/sha1.gox crypto/x509.gox os.gox time.gox
1960         $(BUILDARCHIVE)
1961 crypto/libocsp.la: crypto/libocsp.a
1962 crypto/ocsp/check: $(CHECK_DEPS)
1963         @$(MKDIR_P) crypto/ocsp
1964         $(CHECK)
1965 .PHONY: crypto/ocsp/check
1966
1967 crypto/librand.a: $(go_crypto_rand_files) crypto/aes.gox io.gox os.gox \
1968                 sync.gox time.gox
1969         $(BUILDARCHIVE)
1970 crypto/librand.la: crypto/librand.a
1971 crypto/rand/check: $(CHECK_DEPS)
1972         @$(MKDIR_P) crypto/rand
1973         $(CHECK)
1974 .PHONY: crypto/rand/check
1975
1976 crypto/librc4.a: $(go_crypto_rc4_files) os.gox strconv.gox
1977         $(BUILDARCHIVE)
1978 crypto/librc4.la: crypto/librc4.a
1979 crypto/rc4/check: $(CHECK_DEPS)
1980         @$(MKDIR_P) crypto/rc4
1981         $(CHECK)
1982 .PHONY: crypto/rc4/check
1983
1984 crypto/libripemd160.a: $(go_crypto_ripemd160_files) hash.gox os.gox
1985         $(BUILDARCHIVE)
1986 crypto/libripemd160.la: crypto/libripemd160.a
1987 crypto/ripemd160/check: $(CHECK_DEPS)
1988         @$(MKDIR_P) crypto/ripemd160
1989         $(CHECK)
1990 .PHONY: crypto/ripemd160/check
1991
1992 crypto/librsa.a: $(go_crypto_rsa_files) big.gox crypto/sha1.gox \
1993                 crypto/subtle.gox encoding/hex.gox hash.gox io.gox os.gox
1994         $(BUILDARCHIVE)
1995 crypto/librsa.la: crypto/librsa.a
1996 crypto/rsa/check: $(CHECK_DEPS)
1997         @$(MKDIR_P) crypto/rsa
1998         $(CHECK)
1999 .PHONY: crypto/rsa/check
2000
2001 crypto/libsha1.a: $(go_crypto_sha1_files) hash.gox os.gox
2002         $(BUILDARCHIVE)
2003 crypto/libsha1.la: crypto/libsha1.a
2004 crypto/sha1/check: $(CHECK_DEPS)
2005         @$(MKDIR_P) crypto/sha1
2006         $(CHECK)
2007 .PHONY: crypto/sha1/check
2008
2009 crypto/libsha256.a: $(go_crypto_sha256_files) hash.gox os.gox
2010         $(BUILDARCHIVE)
2011 crypto/libsha256.la: crypto/libsha256.a
2012 crypto/sha256/check: $(CHECK_DEPS)
2013         @$(MKDIR_P) crypto/sha256
2014         $(CHECK)
2015 .PHONY: crypto/sha256/check
2016
2017 crypto/libsha512.a: $(go_crypto_sha512_files) hash.gox os.gox
2018         $(BUILDARCHIVE)
2019 crypto/libsha512.la: crypto/libsha512.a
2020 crypto/sha512/check: $(CHECK_DEPS)
2021         @$(MKDIR_P) crypto/sha512
2022         $(CHECK)
2023 .PHONY: crypto/sha512/check
2024
2025 crypto/libsubtle.a: $(go_crypto_subtle_files)
2026         $(BUILDARCHIVE)
2027 crypto/libsubtle.la: crypto/libsubtle.a
2028 crypto/subtle/check: $(CHECK_DEPS)
2029         @$(MKDIR_P) crypto/subtle
2030         $(CHECK)
2031 .PHONY: crypto/subtle/check
2032
2033 crypto/libtls.a: $(go_crypto_tls_files) big.gox bufio.gox bytes.gox \
2034                 container/list.gox crypto/aes.gox crypto/cipher.gox \
2035                 crypto/elliptic.gox crypto/hmac.gox crypto/md5.gox \
2036                 crypto/rc4.gox crypto/rand.gox crypto/rsa.gox crypto/sha1.gox \
2037                 crypto/subtle.gox crypto/rsa.gox crypto/sha1.gox \
2038                 crypto/x509.gox encoding/pem.gox fmt.gox hash.gox io.gox \
2039                 io/ioutil.gox net.gox os.gox strings.gox sync.gox time.gox
2040         $(BUILDARCHIVE)
2041 crypto/libtls.la: crypto/libtls.a
2042 crypto/tls/check: $(CHECK_DEPS)
2043         @$(MKDIR_P) crypto/tls
2044         $(CHECK)
2045 .PHONY: crypto/tls/check
2046
2047 crypto/libtwofish.a: $(go_crypto_twofish_files) os.gox strconv.gox
2048         $(BUILDARCHIVE)
2049 crypto/libtwofish.la: crypto/libtwofish.a
2050 crypto/twofish/check: $(CHECK_DEPS)
2051         @$(MKDIR_P) crypto/twofish
2052         $(CHECK)
2053 .PHONY: crypto/twofish/check
2054
2055 crypto/libx509.a: $(go_crypto_x509_files) asn1.gox big.gox \
2056                 container/vector.gox crypto/rsa.gox crypto/sha1.gox hash.gox \
2057                 os.gox strings.gox time.gox
2058         $(BUILDARCHIVE)
2059 crypto/libx509.la: crypto/libx509.a
2060 crypto/x509/check: $(CHECK_DEPS)
2061         @$(MKDIR_P) crypto/x509
2062         $(CHECK)
2063 .PHONY: crypto/x509/check
2064
2065 crypto/libxtea.a: $(go_crypto_xtea_files) os.gox strconv.gox
2066         $(BUILDARCHIVE)
2067 crypto/libxtea.la: crypto/libxtea.a
2068 crypto/xtea/check: $(CHECK_DEPS)
2069         @$(MKDIR_P) crypto/xtea
2070         $(CHECK)
2071 .PHONY: crypto/xtea/check
2072
2073 crypto/openpgp/libarmor.a: $(go_crypto_openpgp_armor_files) bytes.gox \
2074                 crypto/openpgp/error.gox encoding/base64.gox \
2075                 encoding/line.gox io.gox os.gox
2076         $(BUILDARCHIVE)
2077 crypto/openpgp/libarmor.la: crypto/openpgp/libarmor.a
2078 crypto/openpgp/armor/check: $(CHECK_DEPS)
2079         @$(MKDIR_P) crypto/openpgp/armor
2080         $(CHECK)
2081 .PHONY: crypto/openpgp/armor/check
2082
2083 crypto/openpgp/liberror.a: $(go_crypto_openpgp_error_files)
2084         $(BUILDARCHIVE)
2085 crypto/openpgp/liberror.la: crypto/openpgp/liberror.a
2086 crypto/openpgp/error/check: $(CHECK_DEPS)
2087         @$(MKDIR_P) crypto/openpgp/error
2088         $(CHECK)
2089 .PHONY: crypto/openpgp/error/check
2090
2091 crypto/openpgp/libs2k.a: $(go_crypto_openpgp_s2k_files) crypto/md5.gox \
2092                 crypto/openpgp/error.gox crypto/ripemd160.gox crypto/sha1.gox \
2093                 crypto/sha256.gox crypto/sha512.gox hash.gox io.gox os.gox
2094         $(BUILDARCHIVE)
2095 crypto/openpgp/libs2k.la: crypto/openpgp/libs2k.a
2096 crypto/openpgp/s2k/check: $(CHECK_DEPS)
2097         @$(MKDIR_P) crypto/openpgp/s2k
2098         $(CHECK)
2099 .PHONY: crypto/openpgp/s2k/check
2100
2101 debug/libdwarf.a: $(go_debug_dwarf_files) encoding/binary.gox os.gox \
2102                 strconv.gox
2103         $(BUILDARCHIVE)
2104 debug/libdwarf.la: debug/libdwarf.a
2105 debug/dwarf/check: $(CHECK_DEPS)
2106         @$(MKDIR_P) debug/dwarf
2107         $(CHECK)
2108 .PHONY: debug/dwarf/check
2109
2110 debug/libelf.a: $(go_debug_elf_files) bytes.gox debug/dwarf.gox \
2111                 encoding/binary.gox fmt.gox io.gox os.gox strconv.gox
2112         $(BUILDARCHIVE)
2113 debug/libelf.la: debug/libelf.a
2114 debug/elf/check: $(CHECK_DEPS)
2115         @$(MKDIR_P) debug/elf
2116         $(CHECK)
2117 .PHONY: debug/elf/check
2118
2119 debug/libgosym.a: $(go_debug_gosym_files) encoding/binary.gox fmt.gox os.gox \
2120                 strconv.gox strings.gox
2121         $(BUILDARCHIVE)
2122 debug/libgosym.la: debug/libgosym.a
2123 debug/gosym/check: $(CHECK_DEPS)
2124         @$(MKDIR_P) debug/gosym
2125         $(CHECK)
2126 .PHONY: debug/gosym/check
2127
2128 debug/libmacho.a: $(go_debug_macho_files) bytes.gox debug/dwarf.gox \
2129                 encoding/binary.gox fmt.gox io.gox os.gox strconv.gox
2130         $(BUILDARCHIVE)
2131 debug/libmacho.la: debug/libmacho.a
2132 debug/macho/check: $(CHECK_DEPS)
2133         @$(MKDIR_P) debug/macho
2134         $(CHECK)
2135 .PHONY: debug/macho/check
2136
2137 debug/libpe.a: $(go_debug_pe_files) debug/dwarf.gox encoding/binary.gox \
2138                 fmt.gox io.gox os.gox strconv.gox
2139         $(BUILDARCHIVE)
2140 debug/libpe.la: debug/libpe.a
2141 debug/pe/check: $(CHECK_DEPS)
2142         @$(MKDIR_P) debug/pe
2143         $(CHECK)
2144 .PHONY: debug/pe/check
2145
2146 debug/libproc.a: $(go_debug_proc_files) container/vector.gox fmt.gox \
2147                 io/ioutil.gox os.gox runtime.gox strconv.gox strings.gox \
2148                 sync.gox syscall.gox
2149         $(BUILDARCHIVE)
2150 debug/libproc.la: debug/libproc.a
2151 debug/proc/check: $(CHECK_DEPS)
2152         @$(MKDIR_P) debug/proc
2153         $(CHECK)
2154 .PHONY: debug/proc/check
2155
2156 encoding/libascii85.a: $(go_encoding_ascii85_files) io.gox os.gox strconv.gox
2157         $(BUILDARCHIVE)
2158 encoding/libascii85.la: encoding/libascii85.a
2159 encoding/ascii85/check: $(CHECK_DEPS)
2160         @$(MKDIR_P) encoding/ascii85
2161         $(CHECK)
2162 .PHONY: encoding/ascii85/check
2163
2164 encoding/libbase32.a: $(go_encoding_base32_files) io.gox os.gox strconv.gox
2165         $(BUILDARCHIVE)
2166 encoding/libbase32.la: encoding/libbase32.a
2167 encoding/base32/check: $(CHECK_DEPS)
2168         @$(MKDIR_P) encoding/base32
2169         $(CHECK)
2170 .PHONY: encoding/base32/check
2171
2172 encoding/libbase64.a: $(go_encoding_base64_files) io.gox os.gox strconv.gox
2173         $(BUILDARCHIVE)
2174 encoding/libbase64.la: encoding/libbase64.a
2175 encoding/base64/check: $(CHECK_DEPS)
2176         @$(MKDIR_P) encoding/base64
2177         $(CHECK)
2178 .PHONY: encoding/base64/check
2179
2180 encoding/libbinary.a: $(go_encoding_binary_files) io.gox math.gox os.gox \
2181                 reflect.gox
2182         $(BUILDARCHIVE)
2183 encoding/libbinary.la: encoding/libbinary.a
2184 encoding/binary/check: $(CHECK_DEPS)
2185         @$(MKDIR_P) encoding/binary
2186         $(CHECK)
2187 .PHONY: encoding/binary/check
2188
2189 encoding/libgit85.a: $(go_encoding_git85_files) bytes.gox io.gox os.gox \
2190                 strconv.gox
2191         $(BUILDARCHIVE)
2192 encoding/libgit85.la: encoding/libgit85.a
2193 encoding/git85/check: $(CHECK_DEPS)
2194         @$(MKDIR_P) encoding/git85
2195         $(CHECK)
2196 .PHONY: encoding/git85/check
2197
2198 encoding/libhex.a: $(go_encoding_hex_files) os.gox strconv.gox
2199         $(BUILDARCHIVE)
2200 encoding/libhex.la: encoding/libhex.a
2201 encoding/hex/check: $(CHECK_DEPS)
2202         @$(MKDIR_P) encoding/hex
2203         $(CHECK)
2204 .PHONY: encoding/hex/check
2205
2206 encoding/libline.a: $(go_encoding_line_files) io.gox os.gox
2207         $(BUILDARCHIVE)
2208 encoding/libline.la: encoding/libline.a
2209 encoding/line/check: $(CHECK_DEPS)
2210         @$(MKDIR_P) encoding/line
2211         $(CHECK)
2212 .PHONY: encoding/line/check
2213
2214 encoding/libpem.a: $(go_encoding_pem_files) bytes.gox encoding/base64.gox
2215         $(BUILDARCHIVE)
2216 encoding/libpem.la: encoding/libpem.a
2217 encoding/pem/check: $(CHECK_DEPS)
2218         @$(MKDIR_P) encoding/pem
2219         $(CHECK)
2220 .PHONY: encoding/pem/check
2221
2222 exp/libdatafmt.a: $(go_exp_datafmt_files) bytes.gox container/vector.gox \
2223                 fmt.gox go/scanner.gox go/token.gox io.gox os.gox reflect.gox \
2224                 runtime.gox strconv.gox strings.gox
2225         $(BUILDARCHIVE)
2226 exp/libdatafmt.la: exp/libdatafmt.a
2227 exp/datafmt/check: $(CHECK_DEPS)
2228         @$(MKDIR_P) exp/datafmt
2229         $(CHECK)
2230 .PHONY: exp/datafmt/check
2231
2232 exp/libdraw.a: $(go_exp_draw_files) image.gox os.gox
2233         $(BUILDARCHIVE)
2234 exp/libdraw.la: exp/libdraw.a
2235 exp/draw/check: $(CHECK_DEPS)
2236         @$(MKDIR_P) exp/draw
2237         $(CHECK)
2238 .PHONY: exp/draw/check
2239
2240 exp/libeval.a: $(go_exp_eval_files) big.gox go/ast.gox go/parser.gox \
2241                 go/scanner.gox go/token.gox fmt.gox log.gox strconv.gox \
2242                 strings.gox os.gox reflect.gox runtime.gox sort.gox template.gox
2243         $(BUILDARCHIVE)
2244 exp/libeval.la: exp/libeval.a
2245 exp/eval/check: $(CHECK_DEPS)
2246         @$(MKDIR_P) exp/eval
2247         $(CHECK)
2248 .PHONY: exp/eval/check
2249
2250 go/libast.a: $(go_go_ast_files) fmt.gox go/token.gox io.gox os.gox \
2251                 reflect.gox unicode.gox utf8.gox
2252         $(BUILDARCHIVE)
2253 go/libast.la: go/libast.a
2254 go/ast/check: $(CHECK_DEPS)
2255         @$(MKDIR_P) go/ast
2256         $(CHECK)
2257 .PHONY: go/ast/check
2258
2259 go/libdoc.a: $(go_go_doc_files) go/ast.gox go/token.gox io.gox regexp.gox \
2260                 sort.gox strings.gox template.gox
2261         $(BUILDARCHIVE)
2262 go/libdoc.la: go/libdoc.a
2263 go/doc/check: $(CHECK_DEPS)
2264         @$(MKDIR_P) go/doc
2265         $(CHECK)
2266 .PHONY: go/doc/check
2267
2268 go/libparser.a: $(go_go_parser_files) bytes.gox fmt.gox go/ast.gox \
2269                 go/scanner.gox go/token.gox io.gox io/ioutil.gox os.gox \
2270                 path.gox strings.gox
2271         $(BUILDARCHIVE)
2272 go/libparser.la: go/libparser.a
2273 go/parser/check: $(CHECK_DEPS)
2274         @$(MKDIR_P) go/parser
2275         $(CHECK)
2276 .PHONY: go/parser/check
2277
2278 go/libprinter.a: $(go_go_printer_files) bytes.gox fmt.gox go/ast.gox \
2279                 go/token.gox io.gox os.gox reflect.gox runtime.gox \
2280                 strings.gox tabwriter.gox
2281         $(BUILDARCHIVE)
2282 go/libprinter.la: go/libprinter.a
2283 go/printer/check: $(CHECK_DEPS)
2284         @$(MKDIR_P) go/printer
2285         $(CHECK)
2286 .PHONY: go/printer/check
2287
2288 go/libscanner.a: $(go_go_scanner_files) bytes.gox container/vector.gox fmt.gox \
2289                 go/token.gox io.gox os.gox path.gox sort.gox strconv.gox \
2290                 unicode.gox utf8.gox
2291         $(BUILDARCHIVE)
2292 go/libscanner.la: go/libscanner.a
2293 go/scanner/check: $(CHECK_DEPS)
2294         @$(MKDIR_P) go/scanner
2295         $(CHECK)
2296 .PHONY: go/scanner/check
2297
2298 go/libtoken.a: $(go_go_token_files) fmt.gox strconv.gox
2299         $(BUILDARCHIVE)
2300 go/libtoken.la: go/libtoken.a
2301 go/token/check: $(CHECK_DEPS)
2302         @$(MKDIR_P) go/token
2303         $(CHECK)
2304 .PHONY: go/token/check
2305
2306 go/libtypechecker.a: $(go_go_typechecker_files) fmt.gox go/ast.gox \
2307                 go/token.gox go/scanner.gox os.gox
2308         $(BUILDARCHIVE)
2309 go/libtypechecker.la: go/libtypechecker.a
2310 go/typechecker/check: $(CHECK_DEPS)
2311         @$(MKDIR_P) go/typechecker
2312         $(CHECK)
2313 .PHONY: go/typechecker/check
2314
2315 hash/libadler32.a: $(go_hash_adler32_files) hash.gox os.gox
2316         $(BUILDARCHIVE)
2317 hash/libadler32.la: hash/libadler32.a
2318 hash/adler32/check: $(CHECK_DEPS)
2319         @$(MKDIR_P) hash/adler32
2320         $(CHECK)
2321 .PHONY: hash/adler32/check
2322
2323 hash/libcrc32.a: $(go_hash_crc32_files) hash.gox os.gox
2324         $(BUILDARCHIVE)
2325 hash/libcrc32.la: hash/libcrc32.a
2326 hash/crc32/check: $(CHECK_DEPS)
2327         @$(MKDIR_P) hash/crc32
2328         $(CHECK)
2329 .PHONY: hash/crc32/check
2330
2331 hash/libcrc64.a: $(go_hash_crc64_files) hash.gox os.gox
2332         $(BUILDARCHIVE)
2333 hash/libcrc64.la: hash/libcrc64.a
2334 hash/crc64/check: $(CHECK_DEPS)
2335         @$(MKDIR_P) hash/crc64
2336         $(CHECK)
2337 .PHONY: hash/crc64/check
2338
2339 http/libpprof.a: $(go_http_pprof_files) bufio.gox fmt.gox http.gox os.gox \
2340                 runtime.gox runtime/pprof.gox strconv.gox strings.gox
2341         $(BUILDARCHIVE)
2342 http/libpprof.la: http/libpprof.a
2343 http/pprof/check: $(CHECK_DEPS)
2344         @$(MKDIR_P) http/pprof
2345         $(CHECK)
2346 .PHONY: http/pprof/check
2347
2348 image/libjpeg.a: $(go_image_jpeg_files) bufio.gox image.gox io.gox os.gox
2349         $(BUILDARCHIVE)
2350 image/libjpeg.la: image/libjpeg.a
2351 image/jpeg/check: $(CHECK_DEPS)
2352         @$(MKDIR_P) image/jpeg
2353         $(CHECK)
2354 .PHONY: image/jpeg/check
2355
2356 image/libpng.a: $(go_image_png_files) bufio.gox compress/zlib.gox fmt.gox \
2357                 hash.gox hash/crc32.gox image.gox io.gox os.gox strconv.gox
2358         $(BUILDARCHIVE)
2359 image/libpng.la: image/libpng.a
2360 image/png/check: $(CHECK_DEPS)
2361         @$(MKDIR_P) image/png
2362         $(CHECK)
2363 .PHONY: image/png/check
2364
2365 index/libsuffixarray.a: $(go_index_suffixarray_files) bytes.gox regexp.gox \
2366                 sort.gox
2367         $(BUILDARCHIVE)
2368 index/libsuffixarray.la: index/libsuffixarray.a
2369 index/suffixarray/check: $(CHECK_DEPS)
2370         @$(MKDIR_P) index/suffixarray
2371         $(CHECK)
2372 .PHONY: index/suffixarray/check
2373
2374 io/libioutil.a: $(go_io_ioutil_files) bytes.gox io.gox os.gox sort.gox \
2375                 strconv.gox
2376         $(BUILDARCHIVE)
2377 io/libioutil.la: io/libioutil.a
2378 io/ioutil/check: $(CHECK_DEPS)
2379         @$(MKDIR_P) io/ioutil
2380         $(CHECK)
2381 .PHONY: io/ioutil/check
2382
2383 mime/libmultipart.a: $(go_mime_multipart_files) bufio.gox bytes.gox io.gox \
2384                 mime.gox os.gox regexp.gox strings.gox
2385         $(BUILDARCHIVE)
2386 mime/libmultipart.la: mime/libmultipart.a
2387 mime/multipart/check: $(CHECK_DEPS)
2388         @$(MKDIR_P) mime/multipart
2389         $(CHECK)
2390 .PHONY: mime/multipart/check
2391
2392 net/libdict.a: $(go_net_dict_files) container/vector.gox net/textproto.gox \
2393                 os.gox strconv.gox strings.gox
2394         $(BUILDARCHIVE)
2395 net/libdict.la: net/libdict.a
2396
2397 net/libtextproto.a: $(go_net_textproto_files) bufio.gox bytes.gox \
2398                 container/vector.gox fmt.gox io.gox io/ioutil.gox net.gox \
2399                 os.gox strconv.gox sync.gox
2400         $(BUILDARCHIVE)
2401 net/libtextproto.la: net/libtextproto.a
2402 net/textproto/check: $(CHECK_DEPS)
2403         @$(MKDIR_P) net/textproto
2404         $(CHECK)
2405 .PHONY: net/textproto/check
2406
2407 os/libinotify.a: $(go_os_inotify_files) fmt.gox os.gox strings.gox \
2408                 syscall.gox
2409         $(BUILDARCHIVE)
2410 os/libinotify.la: os/libinotify.a
2411 os/inotify/check: $(CHECK_DEPS)
2412         @$(MKDIR_P) os/inotify
2413         $(CHECK)
2414 .PHONY: os/inotify/check
2415
2416 os/libsignal.a: $(go_os_signal_files) runtime.gox strconv.gox
2417         $(BUILDARCHIVE)
2418 os/libsignal.la: os/libsignal.a
2419 os/signal/check: $(CHECK_DEPS)
2420         @$(MKDIR_P) os/signal
2421         $(CHECK)
2422 .PHONY: os/signal/check
2423
2424 unix.go: $(srcdir)/go/os/signal/mkunix.sh sysinfo.go
2425         $(SHELL) $(srcdir)/go/os/signal/mkunix.sh sysinfo.go > $@.tmp
2426         mv -f $@.tmp $@
2427
2428 rpc/libjsonrpc.a: $(go_rpc_jsonrpc_files) fmt.gox io.gox json.gox net.gox \
2429                 os.gox rpc.gox sync.gox
2430         $(BUILDARCHIVE)
2431 rpc/libjsonrpc.la: rpc/libjsonrpc.a
2432 rpc/jsonrpc/check: $(CHECK_DEPS)
2433         @$(MKDIR_P) rpc/jsonrpc
2434         $(CHECK)
2435 .PHONY: rpc/jsonrpc/check
2436
2437 runtime/libdebug.a: $(go_runtime_debug_files) bytes.gox fmt.gox io/ioutil.gox \
2438                 os.gox runtime.gox
2439         $(BUILDARCHIVE)
2440 runtime/libdebug.la: runtime/libdebug.a
2441 runtime/debug/check: $(CHECK_DEPS)
2442         @$(MKDIR_P) runtime/debug
2443         $(CHECK)
2444 .PHONY: runtime/debug/check
2445
2446 runtime/libpprof.a: $(go_runtime_pprof_files) bufio.gox fmt.gox io.gox os.gox \
2447                 runtime.gox
2448         $(BUILDARCHIVE)
2449 runtime/libpprof.la: runtime/libpprof.a
2450 runtime/pprof/check: $(CHECK_DEPS)
2451         @$(MKDIR_P) runtime/pprof
2452         $(CHECK)
2453 .PHONY: runtime/pprof/check
2454
2455 testing/libiotest.a: $(go_testing_iotest_files) io.gox log.gox os.gox
2456         $(BUILDARCHIVE)
2457 testing/libiotest.la: testing/libiotest.a
2458 testing/iotest/check: $(CHECK_DEPS)
2459         @$(MKDIR_P) testing/iotest
2460         $(CHECK)
2461 .PHONY: testing/iotest/check
2462
2463 testing/libquick.a: $(go_testing_quick_files) flag.gox fmt.gox math.gox \
2464                 os.gox rand.gox reflect.gox strings.gox
2465         $(BUILDARCHIVE)
2466 testing/libquick.la: testing/libquick.a
2467 testing/quick/check: $(CHECK_DEPS)
2468         @$(MKDIR_P) testing/quick
2469         $(CHECK)
2470 .PHONY: testing/quick/check
2471
2472 testing/libscript.a: $(go_testing_script_files) fmt.gox os.gox rand.gox \
2473                 reflect.gox strings.gox
2474         $(BUILDARCHIVE)
2475 testing/libscript.la: testing/libscript.a
2476 testing/script/check: $(CHECK_DEPS)
2477         @$(MKDIR_P) testing/script
2478         $(CHECK)
2479 .PHONY: testing/script/check
2480
2481 sysinfo.go: s-sysinfo; @true
2482 s-sysinfo: $(srcdir)/mksysinfo.sh config.h
2483         CC="$(CC)" $(SHELL) $(srcdir)/mksysinfo.sh
2484         $(SHELL) $(srcdir)/../move-if-change tmp-sysinfo.go sysinfo.go
2485         $(STAMP) $@
2486
2487 syscalls/libsyscall.a: $(go_syscall_files) $(go_syscall_c_files) sync.gox
2488         rm -f syscall.gox syscalls/libsyscall.a
2489         test -d syscalls || $(MKDIR_P) syscalls
2490         files=`echo $^ | sed -e 's/[^ ]*\.gox//g' -e's/[^ ]*\.c//g'`; \
2491         $(LTGOCOMPILE) -I . -c -fgo-prefix="libgo_syscalls" -o syscalls/syscall.$(OBJEXT) $$files
2492         $(LTCOMPILE) -c -o syscalls/errno.$(OBJEXT) $(srcdir)/syscalls/errno.c
2493         $(AR) rc syscalls/libsyscall.a syscalls/syscall.$(OBJEXT) syscalls/errno.$(OBJEXT)
2494 syscalls/libsyscall.la: syscalls/libsyscall.a
2495         $(LINK) syscalls/syscall.lo syscalls/errno.lo
2496
2497 # How to build a .gox file from a .a file.
2498 BUILDGOX = \
2499         set -e; \
2500         rm -f $@.$(OBJEXT); \
2501         $(CC) -r -nostdlib -o $@.$(OBJEXT) -Wl,--whole-archive $<; \
2502         $(OBJCOPY) -j .go_export $@.$(OBJEXT) $@.tmp; \
2503         mv -f $@.tmp $@; \
2504         rm -f $@.$(OBJEXT)
2505
2506 asn1.gox: asn1/libasn1.a
2507         $(BUILDGOX)
2508 big.gox: big/libbig.a
2509         $(BUILDGOX)
2510 bufio.gox: bufio/libbufio.a
2511         $(BUILDGOX)
2512 bytes.gox: bytes/libbytes.a
2513         $(BUILDGOX)
2514 cmath.gox: cmath/libcmath.a
2515         $(BUILDGOX)
2516 ebnf.gox: ebnf/libebnf.a
2517         $(BUILDGOX)
2518 exec.gox: exec/libexec.a
2519         $(BUILDGOX)
2520 expvar.gox: expvar/libexpvar.a
2521         $(BUILDGOX)
2522 flag.gox: flag/libflag.a
2523         $(BUILDGOX)
2524 fmt.gox: fmt/libfmt.a
2525         $(BUILDGOX)
2526 gob.gox: gob/libgob.a
2527         $(BUILDGOX)
2528 hash.gox: hash/libhash.a
2529         $(BUILDGOX)
2530 html.gox: html/libhtml.a
2531         $(BUILDGOX)
2532 http.gox: http/libhttp.a
2533         $(BUILDGOX)
2534 image.gox: image/libimage.a
2535         $(BUILDGOX)
2536 io.gox: io/libio.a
2537         $(BUILDGOX)
2538 json.gox: json/libjson.a
2539         $(BUILDGOX)
2540 log.gox: log/liblog.a
2541         $(BUILDGOX)
2542 math.gox: math/libmath.a
2543         $(BUILDGOX)
2544 mime.gox: mime/libmime.a
2545         $(BUILDGOX)
2546 net.gox: net/libnet.a
2547         $(BUILDGOX)
2548 netchan.gox: netchan/libnetchan.a
2549         $(BUILDGOX)
2550 os.gox: os/libos.a
2551         $(BUILDGOX)
2552 patch.gox: patch/libpatch.a
2553         $(BUILDGOX)
2554 path.gox: path/libpath.a
2555         $(BUILDGOX)
2556 rand.gox: rand/librand.a
2557         $(BUILDGOX)
2558 reflect.gox: reflect/libreflect.a
2559         $(BUILDGOX)
2560 regexp.gox: regexp/libregexp.a
2561         $(BUILDGOX)
2562 rpc.gox: rpc/librpc.a
2563         $(BUILDGOX)
2564 runtime.gox: runtime/libruntime.a
2565         $(BUILDGOX)
2566 scanner.gox: scanner/libscanner.a
2567         $(BUILDGOX)
2568 smtp.gox: smtp/libsmtp.a
2569         $(BUILDGOX)
2570 sort.gox: sort/libsort.a
2571         $(BUILDGOX)
2572 strconv.gox: strconv/libstrconv.a
2573         $(BUILDGOX)
2574 strings.gox: strings/libstrings.a
2575         $(BUILDGOX)
2576 sync.gox: sync/libsync.a
2577         $(BUILDGOX)
2578 syslog.gox: syslog/libsyslog.a
2579         $(BUILDGOX)
2580 syscall.gox: syscalls/libsyscall.a
2581         $(BUILDGOX)
2582 tabwriter.gox: tabwriter/libtabwriter.a
2583         $(BUILDGOX)
2584 template.gox: template/libtemplate.a
2585         $(BUILDGOX)
2586 testing.gox: testing/libtesting.a
2587         $(BUILDGOX)
2588 time.gox: time/libtime.a
2589         $(BUILDGOX)
2590 try.gox: try/libtry.a
2591         $(BUILDGOX)
2592 unicode.gox: unicode/libunicode.a
2593         $(BUILDGOX)
2594 utf16.gox: utf16/libutf16.a
2595         $(BUILDGOX)
2596 utf8.gox: utf8/libutf8.a
2597         $(BUILDGOX)
2598 websocket.gox: websocket/libwebsocket.a
2599         $(BUILDGOX)
2600 xml.gox: xml/libxml.a
2601         $(BUILDGOX)
2602
2603 archive/tar.gox: archive/libtar.a
2604         $(BUILDGOX)
2605 archive/zip.gox: archive/libzip.a
2606         $(BUILDGOX)
2607
2608 compress/flate.gox: compress/libflate.a
2609         $(BUILDGOX)
2610 compress/gzip.gox: compress/libgzip.a
2611         $(BUILDGOX)
2612 compress/zlib.gox: compress/libzlib.a
2613         $(BUILDGOX)
2614
2615 container/heap.gox: container/libheap.a
2616         $(BUILDGOX)
2617 container/list.gox: container/liblist.a
2618         $(BUILDGOX)
2619 container/ring.gox: container/libring.a
2620         $(BUILDGOX)
2621 container/vector.gox: container/libvector.a
2622         $(BUILDGOX)
2623
2624 crypto/aes.gox: crypto/libaes.a
2625         $(BUILDGOX)
2626 crypto/block.gox: crypto/libblock.a
2627         $(BUILDGOX)
2628 crypto/blowfish.gox: crypto/libblowfish.a
2629         $(BUILDGOX)
2630 crypto/cast5.gox: crypto/libcast5.a
2631         $(BUILDGOX)
2632 crypto/cipher.gox: crypto/libcipher.a
2633         $(BUILDGOX)
2634 crypto/elliptic.gox: crypto/libelliptic.a
2635         $(BUILDGOX)
2636 crypto/hmac.gox: crypto/libhmac.a
2637         $(BUILDGOX)
2638 crypto/md4.gox: crypto/libmd4.a
2639         $(BUILDGOX)
2640 crypto/md5.gox: crypto/libmd5.a
2641         $(BUILDGOX)
2642 crypto/ocsp.gox: crypto/libocsp.a
2643         $(BUILDGOX)
2644 crypto/rand.gox: crypto/librand.a
2645         $(BUILDGOX)
2646 crypto/rc4.gox: crypto/librc4.a
2647         $(BUILDGOX)
2648 crypto/ripemd160.gox: crypto/libripemd160.a
2649         $(BUILDGOX)
2650 crypto/rsa.gox: crypto/librsa.a
2651         $(BUILDGOX)
2652 crypto/sha1.gox: crypto/libsha1.a
2653         $(BUILDGOX)
2654 crypto/sha256.gox: crypto/libsha256.a
2655         $(BUILDGOX)
2656 crypto/sha512.gox: crypto/libsha512.a
2657         $(BUILDGOX)
2658 crypto/subtle.gox: crypto/libsubtle.a
2659         $(BUILDGOX)
2660 crypto/tls.gox: crypto/libtls.a
2661         $(BUILDGOX)
2662 crypto/twofish.gox: crypto/libtwofish.a
2663         $(BUILDGOX)
2664 crypto/x509.gox: crypto/libx509.a
2665         $(BUILDGOX)
2666 crypto/xtea.gox: crypto/libxtea.a
2667         $(BUILDGOX)
2668
2669 crypto/openpgp/armor.gox: crypto/openpgp/libarmor.a
2670         $(BUILDGOX)
2671 crypto/openpgp/error.gox: crypto/openpgp/liberror.a
2672         $(BUILDGOX)
2673 crypto/openpgp/s2k.gox: crypto/openpgp/libs2k.a
2674         $(BUILDGOX)
2675
2676 debug/dwarf.gox: debug/libdwarf.a
2677         $(BUILDGOX)
2678 debug/elf.gox: debug/libelf.a
2679         $(BUILDGOX)
2680 debug/gosym.gox: debug/libgosym.a
2681         $(BUILDGOX)
2682 debug/macho.gox: debug/libmacho.a
2683         $(BUILDGOX)
2684 debug/pe.gox: debug/libpe.a
2685         $(BUILDGOX)
2686 debug/proc.gox: debug/libproc.a
2687         $(BUILDGOX)
2688
2689 encoding/ascii85.gox: encoding/libascii85.a
2690         $(BUILDGOX)
2691 encoding/base32.gox: encoding/libbase32.a
2692         $(BUILDGOX)
2693 encoding/base64.gox: encoding/libbase64.a
2694         $(BUILDGOX)
2695 encoding/binary.gox: encoding/libbinary.a
2696         $(BUILDGOX)
2697 encoding/git85.gox: encoding/libgit85.a
2698         $(BUILDGOX)
2699 encoding/hex.gox: encoding/libhex.a
2700         $(BUILDGOX)
2701 encoding/line.gox: encoding/libline.a
2702         $(BUILDGOX)
2703 encoding/pem.gox: encoding/libpem.a
2704         $(BUILDGOX)
2705
2706 exp/datafmt.gox: exp/libdatafmt.a
2707         $(BUILDGOX)
2708 exp/draw.gox: exp/libdraw.a
2709         $(BUILDGOX)
2710 exp/eval.gox: exp/libeval.a
2711         $(BUILDGOX)
2712
2713 go/ast.gox: go/libast.a
2714         $(BUILDGOX)
2715 go/doc.gox: go/libdoc.a
2716         $(BUILDGOX)
2717 go/parser.gox: go/libparser.a
2718         $(BUILDGOX)
2719 go/printer.gox: go/libprinter.a
2720         $(BUILDGOX)
2721 go/scanner.gox: go/libscanner.a
2722         $(BUILDGOX)
2723 go/token.gox: go/libtoken.a
2724         $(BUILDGOX)
2725 go/typechecker.gox: go/libtypechecker.a
2726         $(BUILDGOX)
2727
2728 hash/adler32.gox: hash/libadler32.a
2729         $(BUILDGOX)
2730 hash/crc32.gox: hash/libcrc32.a
2731         $(BUILDGOX)
2732 hash/crc64.gox: hash/libcrc64.a
2733         $(BUILDGOX)
2734
2735 http/pprof.gox: http/libpprof.a
2736         $(BUILDGOX)
2737
2738 image/jpeg.gox: image/libjpeg.a
2739         $(BUILDGOX)
2740 image/png.gox: image/libpng.a
2741         $(BUILDGOX)
2742
2743 index/suffixarray.gox: index/libsuffixarray.a
2744         $(BUILDGOX)
2745
2746 io/ioutil.gox: io/libioutil.a
2747         $(BUILDGOX)
2748
2749 mime/multipart.gox: mime/libmultipart.a
2750         $(BUILDGOX)
2751
2752 net/dict.gox: net/libdict.a
2753         $(BUILDGOX)
2754 net/textproto.gox: net/libtextproto.a
2755         $(BUILDGOX)
2756
2757 os/inotify.gox: os/libinotify.a
2758         $(BUILDGOX)
2759 os/signal.gox: os/libsignal.a
2760         $(BUILDGOX)
2761
2762 rpc/jsonrpc.gox: rpc/libjsonrpc.a
2763         $(BUILDGOX)
2764
2765 runtime/debug.gox: runtime/libdebug.a
2766         $(BUILDGOX)
2767 runtime/pprof.gox: runtime/libpprof.a
2768         $(BUILDGOX)
2769
2770 testing/iotest.gox: testing/libiotest.a
2771         $(BUILDGOX)
2772 testing/quick.gox: testing/libquick.a
2773         $(BUILDGOX)
2774 testing/script.gox: testing/libscript.a
2775         $(BUILDGOX)
2776
2777 if LIBGO_IS_LINUX
2778 # os_inotify_check = os/inotify/check
2779 os_inotify_check =
2780 else
2781 os_inotify_check =
2782 endif
2783
2784 TEST_PACKAGES = \
2785         asn1/check \
2786         big/check \
2787         bufio/check \
2788         bytes/check \
2789         cmath/check \
2790         ebnf/check \
2791         exec/check \
2792         expvar/check \
2793         flag/check \
2794         fmt/check \
2795         gob/check \
2796         html/check \
2797         http/check \
2798         io/check \
2799         json/check \
2800         log/check \
2801         math/check \
2802         mime/check \
2803         net/check \
2804         netchan/check \
2805         os/check \
2806         patch/check \
2807         path/check \
2808         rand/check \
2809         reflect/check \
2810         regexp/check \
2811         rpc/check \
2812         runtime/check \
2813         scanner/check \
2814         smtp/check \
2815         sort/check \
2816         strconv/check \
2817         strings/check \
2818         sync/check \
2819         syslog/check \
2820         tabwriter/check \
2821         template/check \
2822         time/check \
2823         try/check \
2824         unicode/check \
2825         utf16/check \
2826         utf8/check \
2827         websocket/check \
2828         xml/check \
2829         archive/tar/check \
2830         archive/zip/check \
2831         compress/flate/check \
2832         compress/gzip/check \
2833         compress/zlib/check \
2834         container/heap/check \
2835         container/list/check \
2836         container/ring/check \
2837         container/vector/check \
2838         crypto/aes/check \
2839         crypto/block/check \
2840         crypto/blowfish/check \
2841         crypto/cast5/check \
2842         crypto/cipher/check \
2843         crypto/elliptic/check \
2844         crypto/hmac/check \
2845         crypto/md4/check \
2846         crypto/md5/check \
2847         crypto/ocsp/check \
2848         crypto/rand/check \
2849         crypto/rc4/check \
2850         crypto/ripemd160/check \
2851         crypto/rsa/check \
2852         crypto/sha1/check \
2853         crypto/sha256/check \
2854         crypto/sha512/check \
2855         crypto/subtle/check \
2856         crypto/tls/check \
2857         crypto/twofish/check \
2858         crypto/x509/check \
2859         crypto/xtea/check \
2860         crypto/openpgp/armor/check \
2861         crypto/openpgp/s2k/check \
2862         debug/dwarf/check \
2863         debug/elf/check \
2864         debug/macho/check \
2865         debug/pe/check \
2866         encoding/ascii85/check \
2867         encoding/base32/check \
2868         encoding/base64/check \
2869         encoding/binary/check \
2870         encoding/git85/check \
2871         encoding/hex/check \
2872         encoding/line/check \
2873         encoding/pem/check \
2874         exp/datafmt/check \
2875         exp/draw/check \
2876         exp/eval/check \
2877         go/parser/check \
2878         go/printer/check \
2879         go/scanner/check \
2880         go/token/check \
2881         go/typechecker/check \
2882         hash/adler32/check \
2883         hash/crc32/check \
2884         hash/crc64/check \
2885         image/png/check \
2886         index/suffixarray/check \
2887         io/ioutil/check \
2888         mime/multipart/check \
2889         net/textproto/check \
2890         $(os_inotify_check) \
2891         os/signal/check \
2892         rpc/jsonrpc/check \
2893         testing/quick/check \
2894         testing/script/check
2895
2896 check-recursive: $(TEST_PACKAGES)
2897
2898 mostlyclean-local:
2899         find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
2900         find . -name '*.$(OBJEXT)' -print | xargs rm -f
2901
2902 clean-local:
2903         find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f
2904         find . -name '*.a' -print | xargs rm -f
2905
2906 CLEANFILES = *.go *.gox goc2c *.c s-version