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

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

O3=\
	file.$O\

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

os.a: a1 a2 a3 a4

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

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

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

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

newpkg: clean
	$(AR) grc os.a

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

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

packages: os.a

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

