Makefile 2.12 KB
Newer Older
Russ Cox's avatar
Russ Cox committed
1 2 3 4 5 6 7 8 9 10 11
# 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.

all: install

GC=6g

DIRS=\
	container/array\
	fmt\
12
	hash\
Russ Cox's avatar
Russ Cox committed
13
	http\
14
	io\
Russ Cox's avatar
Russ Cox committed
15
	json\
Russ Cox's avatar
Russ Cox committed
16 17 18 19 20 21
	math\
	net\
	os\
	reflect\
	regexp\
	strconv\
Russ Cox's avatar
Russ Cox committed
22
	sync\
23
	tabwriter\
Russ Cox's avatar
Russ Cox committed
24
	time\
Russ Cox's avatar
Russ Cox committed
25
	unicode\
Russ Cox's avatar
Russ Cox committed
26 27 28 29

FILES=\
	bufio\
	flag\
30
	malloc\
Russ Cox's avatar
Russ Cox committed
31 32 33 34 35
	once\
	rand\
	sort\
	strings\
	testing\
Russ Cox's avatar
Russ Cox committed
36
	utf8\
Rob Pike's avatar
Rob Pike committed
37
	bignum\
Russ Cox's avatar
Russ Cox committed
38

Russ Cox's avatar
Russ Cox committed
39
TEST=\
40
	bufio\
Russ Cox's avatar
Russ Cox committed
41
	once\
42 43
	sort\
	strings\
Russ Cox's avatar
Russ Cox committed
44
	utf8\
Rob Pike's avatar
Rob Pike committed
45
	bignum\
Russ Cox's avatar
Russ Cox committed
46

Russ Cox's avatar
Russ Cox committed
47 48 49 50
clean.dirs: $(addsuffix .dirclean, $(DIRS))
install.dirs: $(addsuffix .dirinstall, $(DIRS))
install.files: $(addsuffix .install, $(FILES))
nuke.dirs: $(addsuffix .dirnuke, $(DIRS))
Russ Cox's avatar
Russ Cox committed
51
test.files: $(addsuffix .test, $(TEST))
Russ Cox's avatar
Russ Cox committed
52 53 54 55 56 57 58

%.6: container/%.go
	$(GC) container/$*.go

%.6: %.go
	$(GC) $*.go

Russ Cox's avatar
Russ Cox committed
59 60 61
%.test: %.6
	gotest $*_test.go

Russ Cox's avatar
Russ Cox committed
62 63 64 65
%.clean:
	rm -f $*.6

%.install: %.6
Russ Cox's avatar
Russ Cox committed
66
	mv $*.6 $(GOROOT)/pkg/$*.6
Russ Cox's avatar
Russ Cox committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

%.dirclean:
	+cd $* && make clean

%.dirinstall:
	+cd $* && make install

%.dirnuke:
	+cd $* && make nuke

clean.files:
	rm -f 6.out *.6

clean: clean.dirs clean.files

install: install.dirs install.files

nuke: nuke.dirs clean.files
	rm -f $(GOROOT)/pkg/*

Russ Cox's avatar
Russ Cox committed
87 88
test: test.files

89
# TODO: dependencies - should auto-generate
Russ Cox's avatar
Russ Cox committed
90 91

bignum.6: fmt.dirinstall
92
bufio.6: io.dirinstall os.dirinstall
Russ Cox's avatar
Russ Cox committed
93 94
flag.6: fmt.dirinstall
testing.6: flag.install fmt.dirinstall
95
strings.6: utf8.install
Russ Cox's avatar
Russ Cox committed
96

97
fmt.dirinstall: io.dirinstall reflect.dirinstall strconv.dirinstall
98
hash.dirinstall: os.dirinstall
99 100
http.dirinstall: bufio.install io.dirinstall net.dirinstall os.dirinstall strings.install
io.dirinstall: os.dirinstall syscall.dirinstall
Russ Cox's avatar
Russ Cox committed
101 102
json.dirinstall: container/array.dirinstall fmt.dirinstall io.dirinstall math.dirinstall \
	strconv.dirinstall strings.install utf8.install
Russ Cox's avatar
Russ Cox committed
103 104
# TODO(rsc): net is not supposed to depend on fmt or strings or strconv
net.dirinstall: fmt.dirinstall once.install os.dirinstall strconv.dirinstall strings.install
Russ Cox's avatar
Russ Cox committed
105 106
os.dirinstall: syscall.dirinstall
regexp.dirinstall: os.dirinstall
107
reflect.dirinstall: strconv.dirinstall sync.dirinstall
Russ Cox's avatar
Russ Cox committed
108
strconv.dirinstall: os.dirinstall utf8.install
109
tabwriter.dirinstall: os.dirinstall io.dirinstall container/array.dirinstall
Russ Cox's avatar
Russ Cox committed
110
time.dirinstall: once.install os.dirinstall
Russ Cox's avatar
Russ Cox committed
111
sync.dirinstall:
Russ Cox's avatar
Russ Cox committed
112