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

O2=\
	client.$O\
	debug.$O\


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

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

a2: $(O2)
	$(AR) grc _obj$D/rpc.a client.$O debug.$O
	rm -f $(O2)


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

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

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

packages: _obj$D/rpc.a

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