# Copyright 2009 The Go Authors.  All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# DO NOT EDIT.  Automatically generated by gobuild.
# gobuild -m >Makefile
O=6
GC=$(O)g
CC=$(O)c -w
AS=$(O)a
AR=$(O)ar

default: packages

clean:
	rm -f *.$O *.a $O.out

test: packages
	gotest

coverage: packages
	gotest
	6cov -g `pwd` | grep -v '_test\.go:'

%.$O: %.go
	$(GC) $*.go

%.$O: %.c
	$(CC) $*.c

%.$O: %.s
	$(AS) $*.s

O1=\
	array.$O\

O2=\
	intarray.$O\

array.a: a1 a2

a1:	$(O1)
	$(AR) grc array.a array.$O
	rm -f $(O1)

a2:	$(O2)
	$(AR) grc array.a intarray.$O
	rm -f $(O2)

newpkg: clean
	$(AR) grc array.a

$(O1): newpkg
$(O2): a1

nuke: clean
	rm -f $(GOROOT)/pkg/array.a

packages: array.a

install: packages
	cp array.a $(GOROOT)/pkg/array.a

