# 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=

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=\
	base64.$O\


phases: a1
_obj$D/base64.a: phases

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


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

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

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

packages: _obj$D/base64.a

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