# 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

D=/container/

include $(GOROOT)/src/Make.$(GOARCH)
AR=gopack

default: packages

clean:
	rm -rf *.[$(OS)] *.a [$(OS)].out _obj

test: packages
	gotest

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

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

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

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

O1=\
	vector.$O\

O2=\
	intvector.$O\
	stringvector.$O\


phases: a1 a2
_obj$D/vector.a: phases

a1: $(O1)
	$(AR) grc _obj$D/vector.a vector.$O
	rm -f $(O1)

a2: $(O2)
	$(AR) grc _obj$D/vector.a intvector.$O stringvector.$O
	rm -f $(O2)


newpkg: clean
	mkdir -p _obj$D
	$(AR) grc _obj$D/vector.a

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

nuke: clean
	rm -f $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D/vector.a

packages: _obj$D/vector.a

install: packages
	test -d $(GOROOT)/pkg && mkdir -p $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D
	cp _obj$D/vector.a $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D/vector.a
