source: mainline/boot/Makefile.common@ e8747bd8

Last change on this file since e8747bd8 was 012dd8e, checked in by Matthieu Riolo <matthieu.riolo@…>, 6 years ago

taskman: Handle INIT_TASKS as tasks spawned by loader

  • everyone is connected to its spawner, except for INIT_TASKS, they are connected to taskman (first binary)
  • taskman is now aware even of INIT_TASKS and taskman itself
  • refactored taskman handshake — NS session is created lazily
  • refactored async.c with usage of create_session
  • changed EINVAL to EINTR on lost waits
  • removed TODOs from taskman and related libc TODOs

Conflicts:

abi/include/abi/ipc/methods.h
boot/Makefile.common
uspace/lib/c/generic/async.c
uspace/lib/c/generic/libc.c
uspace/lib/c/generic/loader.c
uspace/lib/c/generic/ns.c
uspace/lib/c/generic/private/async.h
uspace/lib/c/generic/private/taskman.h
uspace/lib/c/generic/task.c
uspace/lib/c/include/async.h
uspace/lib/c/include/task.h
uspace/srv/loader/main.c
uspace/srv/ns/ns.c

  • Property mode set to 100644
File size: 6.5 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).
73# INIT_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/loader/loader \
79# $(USPACE_PATH)/srv/bd/rd/rd
80
81INIT_TASKS = \
82 $(USPACE_PATH)/srv/taskman/taskman \
83 $(USPACE_PATH)/srv/ns/ns \
84 $(USPACE_PATH)/srv/locsrv/locsrv \
85 $(USPACE_PATH)/srv/vfs/vfs \
86 $(USPACE_PATH)/srv/sysman/sysman \
87 $(USPACE_PATH)/srv/loader/loader \
88 $(USPACE_PATH)/srv/logger/logger \
89 $(USPACE_PATH)/srv/bd/rd/rd
90
91
92ifeq ($(RDFMT),tmpfs)
93 INIT_TASKS += $(USPACE_PATH)/srv/fs/tmpfs/tmpfs
94endif
95
96ifeq ($(RDFMT),fat)
97 INIT_TASKS += $(USPACE_PATH)/srv/fs/fat/fat
98endif
99
100ifeq ($(RDFMT),ext4fs)
101 INIT_TASKS += $(USPACE_PATH)/srv/fs/ext4fs/ext4fs
102endif
103
104RD_SRVS_ESSENTIAL = \
105 hid/input \
106 hid/output \
107 hid/console \
108 devman \
109 fs/locfs \
110 klog
111
112ifeq ($(CONFIG_FB), y)
113 RD_SRVS_ESSENTIAL += \
114 hid/compositor
115endif
116
117RD_SRVS_NON_ESSENTIAL = \
118 bd/file_bd \
119 bd/sata_bd \
120 bd/vbd \
121 clipboard \
122 fs/tmpfs \
123 fs/fat \
124 fs/mfs \
125 fs/cdfs \
126 fs/exfat \
127 fs/udf \
128 fs/ext4fs \
129 hid/remcons \
130 hid/isdv4_tablet \
131 hid/rfb \
132 net/dhcp \
133 net/dnsrsrv \
134 net/ethip \
135 net/inetsrv \
136 net/loopip \
137 net/nconfsrv \
138 net/slip \
139 net/tcp \
140 net/udp \
141 taskmon \
142 test/chardev-test \
143 test/ipc-test \
144 volsrv
145
146RD_DRVS_ESSENTIAL = \
147 root/root \
148 root/virt \
149 fb/kfb
150
151RD_DRVS_NON_ESSENTIAL = \
152 test/test1 \
153 test/test2 \
154 test/test3 \
155 nic/ne2k \
156 nic/e1k \
157 nic/rtl8139 \
158 nic/rtl8169 \
159 nic/ar9271 \
160 nic/virtio-net \
161 block/ahci \
162 block/virtio-blk
163
164RD_DRV_CFG =
165
166RD_DRVS_FW_NON_ESSENTIAL = \
167 nic/ar9271
168
169RD_LIBS =
170
171ifeq ($(CONFIG_DEVEL_FILES), y)
172 RD_LIBS += \
173 $(USPACE_PATH)/lib/c/libc.a
174endif
175
176ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
177 RD_LIBS += \
178 $(USPACE_PATH)/lib/c/libc.so.0 \
179 $(USPACE_PATH)/lib/math/libmath.so.0 \
180 $(USPACE_PATH)/lib/dltest/libdltest.so.0
181endif
182
183RD_APPS_ESSENTIAL = \
184 bdsh \
185 getterm \
186 kio
187
188ifeq ($(CONFIG_FB), y)
189 RD_APPS_ESSENTIAL += \
190 vlaunch \
191 vterm
192endif
193
194RD_APPS_NON_ESSENTIAL = \
195 barber \
196 bithenge \
197 blkdump \
198 contacts \
199 corecfg \
200 cpptest \
201 devctl \
202 dnscfg \
203 dnsres \
204 download \
205 edit \
206 fdisk \
207 gunzip \
208 hbench \
209 inet \
210 kill \
211 killall \
212 loc \
213 lprint \
214 mixerctl \
215 modplay \
216 logset \
217 mkfat \
218 mkexfat \
219 mkext4 \
220 mkmfs \
221 nic \
222 sbi \
223 sportdmp \
224 redir \
225 taskdump \
226 tester \
227 testread \
228 testrunner \
229 testwrit \
230 tetris \
231 tmon \
232 trace \
233 netecho \
234 nterm \
235 pci \
236 ping \
237 pkg \
238 stats \
239 sysinfo \
240 sysinst \
241 top \
242 untar \
243 usbinfo \
244 vol \
245 vuhid \
246 mkbd \
247 websrv \
248 date \
249 vcalc \
250 vdemo \
251 viewer \
252 df \
253 fontviewer \
254 wifi_supplicant
255
256ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
257 RD_APPS_NON_ESSENTIAL += dltest dltests
258endif
259
260RD_TESTS = \
261 $(USPACE_PATH)/lib/c/test-libc \
262 $(USPACE_PATH)/lib/label/test-liblabel \
263 $(USPACE_PATH)/lib/conf/test-libconf \
264 $(USPACE_PATH)/lib/posix/test-libposix \
265 $(USPACE_PATH)/lib/sif/test-libsif \
266 $(USPACE_PATH)/lib/uri/test-liburi \
267 $(USPACE_PATH)/lib/math/test-libmath \
268 $(USPACE_PATH)/drv/bus/usb/xhci/test-xhci \
269 $(USPACE_PATH)/app/bdsh/test-bdsh \
270 $(USPACE_PATH)/srv/net/tcp/test-tcp \
271 $(USPACE_PATH)/srv/volsrv/test-volsrv \
272
273RD_DATA_ESSENTIAL = \
274 $(USPACE_PATH)/app/bdsh/demo.txt
275
276RD_DATA_NON_ESSENTIAL = \
277 $(USPACE_PATH)/app/modplay/demo.xm \
278 $(USPACE_PATH)/app/viewer/logo.tga
279
280
281COMPONENTS = \
282 $(KERNEL_PATH)/kernel.elf \
283 $(INIT_TASKS) \
284 $(INITRD).img
285
286
287LINK = arch/$(BARCH)/_link.ld
288COMP = component
289COMPS = $(COMP)s
290
291-include arch/$(BARCH)/Makefile.inc
292
293ifeq ($(CONFIG_BAREBONE),y)
294 RD_SRVS = $(RD_SRVS_ESSENTIAL)
295 RD_APPS = $(RD_APPS_ESSENTIAL)
296 RD_DRVS = $(RD_DRVS_ESSENTIAL)
297 RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL)
298 RD_DATA = $(RD_DATA_ESSENTIAL)
299else
300 RD_SRVS = $(RD_SRVS_ESSENTIAL) $(RD_SRVS_NON_ESSENTIAL)
301 RD_APPS = $(RD_APPS_ESSENTIAL) $(RD_APPS_NON_ESSENTIAL)
302 RD_DRVS = $(RD_DRVS_ESSENTIAL) $(RD_DRVS_NON_ESSENTIAL)
303 RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) $(RD_DRVS_FW_NON_ESSENTIAL)
304 RD_DATA = $(RD_DATA_ESSENTIAL) $(RD_DATA_NON_ESSENTIAL)
305endif
306
307MODULES := $(notdir $(COMPONENTS))
308
309BOOT_OUTPUT ?= $(ROOT_PATH)/image.boot
310RAW ?= image.raw
311JOB ?= image.job
312MAP ?= image.map
313BUILD ?= Makefile.build
Note: See TracBrowser for help on using the repository browser.