source: mainline/boot/Makefile.common@ 272a293

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 272a293 was 60c96cf, checked in by Vojtech Horky <vojtech.horky@…>, 7 years ago

boot image: GUI apps are not always essential

If the platform (configuration) does not support graphical output, we
really do not need to include vlaunch etc.

This also saves some bytes in the boot image that can be used for
testing ported software more.

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