1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#
# Copyright 1999 Silicon Graphics, Inc.
# Copyright 2002-2004 Guido Guenther <agx@sigxcpu.org>
# Copyright (C) 2004 by Thiemo Seufer
#
# default subarch
SUBARCH ?= IP22
ifeq ($(SUBARCH),IP22)
KERNELADDR=0x88002000
MAXLOADSIZE=0x1700000
LOADADDR=0x88802000
TIP_LOADADDR=0x89702000
OUTPUTFORMAT=ecoff-bigmips
endif
ifeq ($(SUBARCH),IP32)
KERNELADDR=0x80004000
MAXLOADSIZE=0x1400000
LOADADDR=0x81404000
TIP_LOADADDR=$(LOADADDR)
OUTPUTFORMAT=elf32-tradbigmips
endif
# these contain subarch independent files
SUBARCH_INDEP_DIRS= \
arclib
# these contain subarch dependent files
SUBARCH_DIRS= \
common \
ext2load \
tip22
define indep-tgt
$(foreach sd,$(SUBARCH_INDEP_DIRS),$(1)-subarch-indep-$(sd))
endef
define dep-tgt
$(foreach sd,$(SUBARCH_DIRS),$(1)-subarch-dep-$(sd))
endef
define build-indep-tgt
$(call indep-tgt,build)
endef
define build-dep-tgt
$(call dep-tgt,build)
endef
define install-indep-tgt
$(call indep-tgt,install)
endef
define install-dep-tgt
$(call dep-tgt,install)
endef
define clean-indep-tgt
$(call indep-tgt,clean)
endef
define clean-dep-tgt
$(call dep-tgt,clean)
endef
define submake
@$(MAKE) -C $(1) SUBARCH=$(SUBARCH) \
LOADADDR=$(LOADADDR) \
TIP_LOADADDR=$(TIP_LOADADDR) \
MAXLOADSIZE=$(MAXLOADSIZE) \
KERNELADDR=$(KERNELADDR) \
OUTPUTFORMAT=$(OUTPUTFORMAT) \
$(2)
endef
all: build
build: build-subarch-indep build-subarch-dep
build-subarch-indep: $(build-indep-tgt)
build-subarch-dep: $(build-dep-tgt)
$(build-indep-tgt):
$(call submake,$(patsubst build-subarch-indep-%,%,$@),all)
$(build-dep-tgt):
$(call submake,$(patsubst build-subarch-dep-%,%,$@),all)
install: install-subarch-indep install-subarch-dep
install-subarch-indep: $(install-indep-tgt)
install-subarch-dep: $(install-dep-tgt)
$(install-indep-tgt):
$(call submake,$(patsubst install-subarch-indep-%,%,$@),install)
$(install-dep-tgt):
$(call submake,$(patsubst install-subarch-dep-%,%,$@),install)
clean: clean-subarch-indep clean-subarch-dep
clean-subarch-indep: $(clean-indep-tgt)
clean-subarch-dep: $(clean-dep-tgt)
$(clean-indep-tgt):
$(call submake,$(patsubst clean-subarch-indep-%,%,$@),clean)
$(clean-dep-tgt):
$(call submake,$(patsubst clean-subarch-dep-%,%,$@),clean)
.PHONY: all \
build build-subarch-indep build-subarch-dep \
$(build-indep-tgt) $(build-dep-tgt) \
clean clean-subarch-indep clean-subarch-dep \
$(clean-indep-tgt) $(clean-dep-tgt)
|