source: mainline/boot/Makefile.common@ 931afbc

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 931afbc was 75701004, checked in by Martin Decky <martin@…>, 7 years ago

use a TAR as the archive format for populating TMPFS root file system

Also remove the logic of populating a TMPFS file system from the TMPFS
file system driver. A more elegant separation of concerns is to populate
the file system from the client. This is now done by the init task (if
required) and should work universally for any file system.

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