hbench: comments
[helenos.git] / boot / Makefile.common
blob9489e60f429c93e03d6957bf1588ef556354d5ef
2 # Copyright (c) 2006 Martin Decky
3 # All rights reserved.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
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.
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.
29 ## Configuration
32 ROOT_PATH = ..
34 VERSION_DEF = $(ROOT_PATH)/version
36 COMMON_MAKEFILE = $(ROOT_PATH)/Makefile.common
37 COMMON_HEADER = $(ROOT_PATH)/common.h
39 CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
40 CONFIG_HEADER = $(ROOT_PATH)/config.h
42 -include $(VERSION_DEF)
43 -include $(COMMON_MAKEFILE)
44 -include $(CONFIG_MAKEFILE)
46 KERNEL_PATH = $(ROOT_PATH)/kernel
47 USPACE_PATH = $(ROOT_PATH)/uspace
48 DIST_PATH = $(USPACE_PATH)/dist
49 DIST_OVERLAY_PATH = $(USPACE_PATH)/overlay
50 TOOLS_PATH = $(ROOT_PATH)/tools
51 DRVS_PATH = drv
53 MKARRAY = $(TOOLS_PATH)/mkarray.py
54 MKFAT = $(TOOLS_PATH)/mkfat.py
55 MKEXT4 = $(TOOLS_PATH)/mkext4.py
56 MKUIMAGE = $(TOOLS_PATH)/mkuimage.py
58 ifeq ($(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 $@
62 else
63         CC_JOB = $(CC) $< -o $@
64 endif
66 DISTROOT = distroot
67 INITRD = initrd
69 INIT_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
78 ifeq ($(RDFMT),tmpfs)
79         INIT_TASKS += $(USPACE_PATH)/srv/fs/tmpfs/tmpfs
80 endif
82 ifeq ($(RDFMT),fat)
83         INIT_TASKS += $(USPACE_PATH)/srv/fs/fat/fat
84 endif
86 ifeq ($(RDFMT),ext4fs)
87         INIT_TASKS += $(USPACE_PATH)/srv/fs/ext4fs/ext4fs
88 endif
90 RD_SRVS_ESSENTIAL = \
91         hid/input \
92         hid/output \
93         hid/console \
94         devman \
95         fs/locfs \
96         hid/compositor \
97         klog
99 RD_SRVS_NON_ESSENTIAL = \
100         bd/file_bd \
101         bd/sata_bd \
102         bd/vbd \
103         clipboard \
104         fs/tmpfs \
105         fs/fat \
106         fs/mfs \
107         fs/cdfs \
108         fs/exfat \
109         fs/udf \
110         fs/ext4fs \
111         hid/remcons \
112         hid/isdv4_tablet \
113         hid/rfb \
114         net/dhcp \
115         net/dnsrsrv \
116         net/ethip \
117         net/inetsrv \
118         net/loopip \
119         net/nconfsrv \
120         net/slip \
121         net/tcp \
122         net/udp \
123         taskmon \
124         test/chardev-test \
125         test/ipc-test \
126         volsrv
128 RD_DRVS_ESSENTIAL = \
129         root/root \
130         root/virt \
131         fb/kfb
133 RD_DRVS_NON_ESSENTIAL = \
134         test/test1 \
135         test/test2 \
136         test/test3 \
137         nic/ne2k \
138         nic/e1k \
139         nic/rtl8139 \
140         nic/rtl8169 \
141         nic/ar9271 \
142         nic/virtio-net \
143         block/ahci
145 RD_DRV_CFG =
147 RD_DRVS_FW_NON_ESSENTIAL = \
148         nic/ar9271
150 RD_LIBS =
152 ifeq ($(CONFIG_DEVEL_FILES), y)
153         RD_LIBS += \
154                 $(USPACE_PATH)/lib/c/libc.a
155 endif
157 ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
158         RD_LIBS += \
159                 $(USPACE_PATH)/lib/c/libc.so.0 \
160                 $(USPACE_PATH)/lib/math/libmath.so.0 \
161                 $(USPACE_PATH)/lib/dltest/libdltest.so.0
162 endif
164 RD_APPS_ESSENTIAL = bdsh getterm kio vlaunch vterm
166 RD_APPS_NON_ESSENTIAL = \
167         barber \
168         bithenge \
169         blkdump \
170         contacts \
171         corecfg \
172         cpptest \
173         devctl \
174         dnscfg \
175         dnsres \
176         download \
177         edit \
178         fdisk \
179         gunzip \
180         hbench \
181         inet \
182         kill \
183         killall \
184         loc \
185         lprint \
186         mixerctl \
187         modplay \
188         logset \
189         mkfat \
190         mkexfat \
191         mkext4 \
192         mkmfs \
193         nic \
194         sbi \
195         sportdmp \
196         redir \
197         taskdump \
198         tester \
199         testread \
200         testrunner \
201         testwrit \
202         tetris \
203         tmon \
204         trace \
205         netecho \
206         nterm \
207         pci \
208         ping \
209         pkg \
210         stats \
211         sysinfo \
212         sysinst \
213         top \
214         untar \
215         usbinfo \
216         vol \
217         vuhid \
218         mkbd \
219         websrv \
220         date \
221         vcalc \
222         vdemo \
223         viewer \
224         df \
225         fontviewer \
226         wifi_supplicant
228 ifeq ($(CONFIG_BUILD_SHARED_LIBS), y)
229         RD_APPS_NON_ESSENTIAL += dltest dltests
230 endif
232 RD_TESTS = \
233         $(USPACE_PATH)/lib/c/test-libc \
234         $(USPACE_PATH)/lib/label/test-liblabel \
235         $(USPACE_PATH)/lib/posix/test-libposix \
236         $(USPACE_PATH)/lib/sif/test-libsif \
237         $(USPACE_PATH)/lib/uri/test-liburi \
238         $(USPACE_PATH)/lib/math/test-libmath \
239         $(USPACE_PATH)/drv/bus/usb/xhci/test-xhci \
240         $(USPACE_PATH)/app/bdsh/test-bdsh \
241         $(USPACE_PATH)/srv/net/tcp/test-tcp \
242         $(USPACE_PATH)/srv/volsrv/test-volsrv \
244 RD_DATA_ESSENTIAL = \
245         $(USPACE_PATH)/app/bdsh/demo.txt
247 RD_DATA_NON_ESSENTIAL = \
248         $(USPACE_PATH)/app/modplay/demo.xm \
249         $(USPACE_PATH)/app/viewer/logo.tga
252 COMPONENTS = \
253         $(KERNEL_PATH)/kernel.elf \
254         $(INIT_TASKS) \
255         $(INITRD).img
258 LINK = arch/$(BARCH)/_link.ld
259 COMP = component
260 COMPS = $(COMP)s
262 -include arch/$(BARCH)/Makefile.inc
264 ifeq ($(CONFIG_BAREBONE),y)
265         RD_SRVS = $(RD_SRVS_ESSENTIAL)
266         RD_APPS = $(RD_APPS_ESSENTIAL)
267         RD_DRVS = $(RD_DRVS_ESSENTIAL)
268         RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL)
269         RD_DATA = $(RD_DATA_ESSENTIAL)
270 else
271         RD_SRVS = $(RD_SRVS_ESSENTIAL) $(RD_SRVS_NON_ESSENTIAL)
272         RD_APPS = $(RD_APPS_ESSENTIAL) $(RD_APPS_NON_ESSENTIAL)
273         RD_DRVS = $(RD_DRVS_ESSENTIAL) $(RD_DRVS_NON_ESSENTIAL)
274         RD_DRVS_FW = $(RD_DRVS_FW_ESSENTIAL) $(RD_DRVS_FW_NON_ESSENTIAL)
275         RD_DATA = $(RD_DATA_ESSENTIAL) $(RD_DATA_NON_ESSENTIAL)
276 endif
278 MODULES := $(notdir $(COMPONENTS))
280 BOOT_OUTPUT ?= $(ROOT_PATH)/image.boot
281 RAW ?= image.raw
282 JOB ?= image.job
283 MAP ?= image.map
284 BUILD ?= Makefile.build