source: mainline/boot/Makefile.common@ b55f62a

Last change on this file since b55f62a was 2df7d824, checked in by Matthieu Riolo <matthieu.riolo@…>, 6 years ago

Makefile: tidy old INIT_TASKS

  • Property mode set to 100644
File size: 6.3 KB
Line 
1#
2# Copyright (c) 2006 Martin Decky
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
9# - Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# - Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14# - The name of the author may not be used to endorse or promote products
15# derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27#
28
29## Configuration
30#
31
32ROOT_PATH = ..
33
34VERSION_DEF = $(ROOT_PATH)/version
35
36COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common
37COMMON_HEADER = $(ROOT_PATH)/common.h
38
39CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
40CONFIG_HEADER = $(ROOT_PATH)/config.h
41
42-include $(VERSION_DEF)
43-include $(COMMON_MAKEFILE)
44-include $(CONFIG_MAKEFILE)
45
46KERNEL_PATH = $(ROOT_PATH)/kernel
47USPACE_PATH = $(ROOT_PATH)/uspace
48DIST_PATH = $(USPACE_PATH)/dist
49DIST_OVERLAY_PATH = $(USPACE_PATH)/overlay
50TOOLS_PATH = $(ROOT_PATH)/tools
51DRVS_PATH = drv
52CFG_PATH = $(USPACE_PATH)/cfg
53
54MKARRAY = $(TOOLS_PATH)/mkarray.py
55MKFAT = $(TOOLS_PATH)/mkfat.py
56MKEXT4 = $(TOOLS_PATH)/mkext4.py
57MKUIMAGE = $(TOOLS_PATH)/mkuimage.py
58
59ifeq ($(PRECHECK),y)
60 JOBFILE = $(TOOLS_PATH)/jobfile.py
61 # NOTE: You must not change the order of arguments.
62 CC_JOB = $(JOBFILE) $(JOB) $(CC) $< -o $@
63else
64 CC_JOB = $(CC) $< -o $@
65endif
66
67DISTROOT = distroot
68INITRD = initrd
69
70# NOTE: Order of tasks here is important since kernel connects initial phone of
71# all these tasks to answerbox of the first one in this list (its phone is left
72# untouched).
73INIT_TASKS = \
74 $(USPACE_PATH)/srv/taskman/taskman \
75 $(USPACE_PATH)/srv/ns/ns \
76 $(USPACE_PATH)/srv/locsrv/locsrv \
77 $(USPACE_PATH)/srv/vfs/vfs \
78 $(USPACE_PATH)/srv/sysman/sysman \
79 $(USPACE_PATH)/srv/loader/loader \
80 $(USPACE_PATH)/srv/logger/logger \
81 $(USPACE_PATH)/srv/bd/rd/rd
82
83
84ifeq ($(RDFMT),tmpfs)
85 INIT_TASKS += $(USPACE_PATH)/srv/fs/tmpfs/tmpfs
86endif
87
88ifeq ($(RDFMT),fat)
89 INIT_TASKS += $(USPACE_PATH)/srv/fs/fat/fat
90endif
91
92ifeq ($(RDFMT),ext4fs)
93 INIT_TASKS += $(USPACE_PATH)/srv/fs/ext4fs/ext4fs
94endif
95
96RD_SRVS_ESSENTIAL = \
97 hid/input \
98 hid/output \
99 hid/console \
100 devman \
101 fs/locfs \
102 klog
103
104ifeq ($(CONFIG_FB), y)
105 RD_SRVS_ESSENTIAL += \
106 hid/compositor
107endif
108
109RD_SRVS_NON_ESSENTIAL = \
110 bd/file_bd \
111 bd/sata_bd \
112 bd/vbd \
113 clipboard \
114 fs/tmpfs \
115 fs/fat \
116 fs/mfs \
117 fs/cdfs \
118 fs/exfat \
119 fs/udf \
120 fs/ext4fs \
121 hid/remcons \
122 hid/isdv4_tablet \
123 hid/rfb \
124 net/dhcp \
125 net/dnsrsrv \
126 net/ethip \
127 net/inetsrv \
128 net/loopip \
129 net/nconfsrv \
130 net/slip \
131 net/tcp \
132 net/udp \
133 taskmon \
134 test/chardev-test \
135 test/ipc-test \
136 volsrv
137
138RD_DRVS_ESSENTIAL = \
139 root/root \
140 root/virt \
141 fb/kfb
142
143RD_DRVS_NON_ESSENTIAL = \
144 test/test1 \
145 test/test2 \
146 test/test3 \
147 nic/ne2k \
148 nic/e1k \
149 nic/rtl8139 \
150 nic/rtl8169 \
151 nic/ar9271 \
152 nic/virtio-net \
153 block/ahci \
154 block/virtio-blk
155
156RD_DRV_CFG =
157
158RD_DRVS_FW_NON_ESSENTIAL = \
159 nic/ar9271
160
161RD_LIBS =
162
163ifeq ($(CONFIG_DEVEL_FILES), y)
164 RD_LIBS += \
165 $(USPACE_PATH)/lib/c/libc.a
166endif
167
168ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
169 RD_LIBS += \
170 $(USPACE_PATH)/lib/c/libc.so.0 \
171 $(USPACE_PATH)/lib/math/libmath.so.0 \
172 $(USPACE_PATH)/lib/dltest/libdltest.so.0
173endif
174
175RD_APPS_ESSENTIAL = \
176 bdsh \
177 getterm \
178 kio
179
180ifeq ($(CONFIG_FB), y)
181 RD_APPS_ESSENTIAL += \
182 vlaunch \
183 vterm
184endif
185
186RD_APPS_NON_ESSENTIAL = \
187 barber \
188 bithenge \
189 blkdump \
190 contacts \
191 corecfg \
192 cpptest \
193 devctl \
194 dnscfg \
195 dnsres \
196 download \
197 edit \
198 fdisk \
199 gunzip \
200 hbench \
201 inet \
202 kill \
203 killall \
204 loc \
205 lprint \
206 mixerctl \
207 modplay \
208 logset \
209 mkfat \
210 mkexfat \
211 mkext4 \
212 mkmfs \
213 nic \
214 sbi \
215 sportdmp \
216 redir \
217 taskdump \
218 tester \
219 testread \
220 testrunner \
221 testwrit \
222 tetris \
223 tmon \
224 trace \
225 netecho \
226 nterm \
227 pci \
228 ping \
229 pkg \
230 stats \
231 sysinfo \
232 sysinst \
233 top \
234 untar \
235 usbinfo \
236 vol \
237 vuhid \
238 mkbd \
239 websrv \
240 date \
241 vcalc \
242 vdemo \
243 viewer \
244 df \
245 fontviewer \
246 wifi_supplicant
247
248ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
249 RD_APPS_NON_ESSENTIAL += dltest dltests
250endif
251
252RD_TESTS = \
253 $(USPACE_PATH)/lib/c/test-libc \
254 $(USPACE_PATH)/lib/label/test-liblabel \
255 $(USPACE_PATH)/lib/conf/test-libconf \
256 $(USPACE_PATH)/lib/posix/test-libposix \
257 $(USPACE_PATH)/lib/sif/test-libsif \
258 $(USPACE_PATH)/lib/uri/test-liburi \
259 $(USPACE_PATH)/lib/math/test-libmath \
260 $(USPACE_PATH)/drv/bus/usb/xhci/test-xhci \
261 $(USPACE_PATH)/app/bdsh/test-bdsh \
262 $(USPACE_PATH)/srv/net/tcp/test-tcp \
263 $(USPACE_PATH)/srv/volsrv/test-volsrv \
264
265RD_DATA_ESSENTIAL = \
266 $(USPACE_PATH)/app/bdsh/demo.txt
267
268RD_DATA_NON_ESSENTIAL = \
269 $(USPACE_PATH)/app/modplay/demo.xm \
270 $(USPACE_PATH)/app/viewer/logo.tga
271
272
273COMPONENTS = \
274 $(KERNEL_PATH)/kernel.elf \
275 $(INIT_TASKS) \
276 $(INITRD).img
277
278
279LINK = arch/$(BARCH)/_link.ld
280COMP = component
281COMPS = $(COMP)s
282
283-include arch/$(BARCH)/Makefile.inc
284
285ifeq ($(CONFIG_BAREBONE),y)
286 RD_SRVS = $(RD_SRVS_ESSENTIAL)
287 RD_APPS = $(RD_APPS_ESSENTIAL)
288 RD_DRVS = $(RD_DRVS_ESSENTIAL)
289 RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL)
290 RD_DATA = $(RD_DATA_ESSENTIAL)
291else
292 RD_SRVS = $(RD_SRVS_ESSENTIAL) $(RD_SRVS_NON_ESSENTIAL)
293 RD_APPS = $(RD_APPS_ESSENTIAL) $(RD_APPS_NON_ESSENTIAL)
294 RD_DRVS = $(RD_DRVS_ESSENTIAL) $(RD_DRVS_NON_ESSENTIAL)
295 RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) $(RD_DRVS_FW_NON_ESSENTIAL)
296 RD_DATA = $(RD_DATA_ESSENTIAL) $(RD_DATA_NON_ESSENTIAL)
297endif
298
299MODULES := $(notdir $(COMPONENTS))
300
301BOOT_OUTPUT ?= $(ROOT_PATH)/image.boot
302RAW ?= image.raw
303JOB ?= image.job
304MAP ?= image.map
305BUILD ?= Makefile.build
Note: See TracBrowser for help on using the repository browser.