source: mainline/boot/Makefile.common@ f834dd81

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since f834dd81 was 0798689, checked in by jzr <zarevucky.jiri@…>, 8 years ago

Reference boot arch headers directly, instead of via symlinks.

This change was previously done in kernel and uspace, but not in boot.
In addition to better consistency, this also fixes an issue with
make dependency tracking.

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