# 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 dir_${GOOS}_${GOARCH}.go env.go error.go file.go path.go stat_${GOOS}_${GOARCH}.go time.go types.go exec.go proc.go getwd.go >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=\
	error.$O\
	types.$O\

O2=\
	proc.$O\
	stat_$(GOOS)_$(GOARCH).$O\
	time.$O\

O3=\
	env.$O\
	file.$O\

O4=\
	dir_$(GOOS)_$(GOARCH).$O\
	exec.$O\
	getwd.$O\
	path.$O\


phases: a1 a2 a3 a4
_obj$D/os.a: phases

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

a2: $(O2)
	$(AR) grc _obj$D/os.a proc.$O stat_$(GOOS)_$(GOARCH).$O time.$O
	rm -f $(O2)

a3: $(O3)
	$(AR) grc _obj$D/os.a env.$O file.$O
	rm -f $(O3)

a4: $(O4)
	$(AR) grc _obj$D/os.a dir_$(GOOS)_$(GOARCH).$O exec.$O getwd.$O path.$O
	rm -f $(O4)


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

$(O1): newpkg
$(O2): a1
$(O3): a2
$(O4): a3
$(O5): a4

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

packages: _obj$D/os.a

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