# Copyright 2011 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.

include ../Make.inc

all: install

# Only build tools for current architecture, and only tools written in C.
# The tools written in Go are managed by ../pkg/Makefile.
DIRS=\
	$(O)a\
	$(O)c\
	$(O)g\
	$(O)l\
	cc\
	cov\
	gc\
	godefs\
	gopack\
	nm\
	prof\
	
# Clean applies to all directories, even for other architectures or 
# written in Go.
CLEANDIRS=\
	$(DIRS)\
	5a\
	5c\
	5g\
	5l\
	6a\
	6c\
	6g\
	6l\
	8a\
	8c\
	8g\
	8l\
	cgo\
	godoc\
	gofix\
	gofmt\
	goinstall\
	gotest\
	goyacc\
	hgpatch\

install: $(patsubst %,%.install,$(DIRS))
clean: $(patsubst %,%.clean,$(CLEANDIRS))
nuke: $(patsubst %,%.nuke,$(CLEANDIRS))

%.install:
	@echo
	@echo %%%% making $* %%%%
	@echo
	$(MAKE) -C $* install

gc.install $(O)c.install: cc.install
$(O)g.install: gc.install
$(O)a.install $(O)c.install $(O)g.install: $(O)l.install

%.clean:
	$(MAKE) -C $* clean

%.nuke:
	$(MAKE) -C $* nuke

echo-dirs:
	@echo $(DIRS)
