source: mainline/uspace/Makefile@ 7f9d97f3

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 7f9d97f3 was 235d31d, checked in by Jakub Jermar <jakub@…>, 11 years ago

Merge the CHT pre-integration branch

This branch contains:

  • the merge of lp:~adam-hraska+lp/helenos/rcu, which brings:
  • a new preemptible kernel RCU variant called A-RCU,
  • a preemptible variant of Podzimek's non-preemptible kernel RCU and
  • a new variant of usersace RCU,
  • a new concurrent hash table (CHT) implementation based on RCU,
  • a deployment of CHT in kernel futex handling,
  • a deployment of the userspace RCU in the implementation of upgradable futexes,

all described in Adam Hraska's master thesis named Read-Copy-Update
for HelenOS, defended in 2013 at MFF UK; furthemore, the branch
fixes two synchronization bugs in condvars and waitq, respectively:

  • revid:adam.hraska+hos@gmail.com-20121116144921-3to9u1tn1sg07rg7
  • revid:adam.hraska+hos@gmail.com-20121116173623-km7gwtqixwudpe66
  • build fixes required to pass make check
  • overhaul of ia64 and sparc64 trap handling, to allow exc_dispatch() to be used now when the kernel is more picky about CPU state accounting
  • an important fix of the sparc64/sun4v preemptible trap handler
  • various other fixes of issues discovered on non-x86 architectures
  • Property mode set to 100644
File size: 5.6 KB
Line 
1#
2# Copyright (c) 2005 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-include ../Makefile.common
30-include ../Makefile.config
31
32## Common binaries
33#
34
35DIRS = \
36 app/barber \
37 app/bdsh \
38 app/bithenge \
39 app/blkdump \
40 app/bnchmark \
41 app/corecfg \
42 app/devctl \
43 app/dnscfg \
44 app/dnsres \
45 app/download \
46 app/edit \
47 app/fontviewer \
48 app/getterm \
49 app/hdisk \
50 app/init \
51 app/inet \
52 app/kill \
53 app/killall \
54 app/kio \
55 app/loc \
56 app/logset \
57 app/mixerctl \
58 app/mkfat \
59 app/mkexfat \
60 app/mkmfs \
61 app/modplay \
62 app/nterm \
63 app/redir \
64 app/rcutest \
65 app/rcubench \
66 app/sbi \
67 app/sportdmp \
68 app/stats \
69 app/taskdump \
70 app/tester \
71 app/testread \
72 app/testwrit \
73 app/tetris \
74 app/trace \
75 app/top \
76 app/untar \
77 app/usbinfo \
78 app/vuhid \
79 app/netecho \
80 app/netspeed \
81 app/nettest1 \
82 app/nettest2 \
83 app/nettest3 \
84 app/nic \
85 app/ping \
86 app/sysinfo \
87 app/mkbd \
88 app/date \
89 app/vdemo \
90 app/viewer \
91 app/vlaunch \
92 app/vterm \
93 app/df \
94 app/wavplay \
95 app/websrv \
96 srv/audio/hound \
97 srv/clipboard \
98 srv/locsrv \
99 srv/logger \
100 srv/klog \
101 srv/devman \
102 srv/loader \
103 srv/net/dhcp \
104 srv/net/dnsrsrv \
105 srv/net/ethip \
106 srv/net/inetsrv \
107 srv/net/loopip \
108 srv/net/nconfsrv \
109 srv/net/slip \
110 srv/net/tcp \
111 srv/net/udp \
112 srv/ns \
113 srv/taskmon \
114 srv/vfs \
115 srv/bd/sata_bd \
116 srv/bd/file_bd \
117 srv/bd/rd \
118 srv/bd/part/guid_part \
119 srv/bd/part/mbr_part \
120 srv/fs/exfat \
121 srv/fs/udf \
122 srv/fs/fat \
123 srv/fs/cdfs \
124 srv/fs/tmpfs \
125 srv/fs/mfs \
126 srv/fs/locfs \
127 srv/fs/ext4fs \
128 srv/hid/compositor \
129 srv/hid/console \
130 srv/hid/s3c24xx_ts \
131 srv/hid/isdv4_tablet \
132 srv/hid/input \
133 srv/hid/output \
134 srv/hid/remcons \
135 srv/hw/char/s3c24xx_uart \
136 srv/hid/rfb \
137 drv/audio/hdaudio \
138 drv/audio/sb16 \
139 drv/root/root \
140 drv/root/virt \
141 drv/block/ahci \
142 drv/block/ata_bd \
143 drv/char/i8042 \
144 drv/char/pl050 \
145 drv/char/ps2mouse \
146 drv/char/xtkbd \
147 drv/test/test1 \
148 drv/test/test2 \
149 drv/test/test3 \
150 drv/fb/kfb \
151 drv/bus/usb/ehci \
152 drv/bus/usb/ohci \
153 drv/bus/usb/uhci \
154 drv/bus/usb/uhcirh \
155 drv/bus/usb/usbflbk \
156 drv/bus/usb/usbhid \
157 drv/bus/usb/usbhub \
158 drv/bus/usb/usbmast \
159 drv/bus/usb/usbmid \
160 drv/bus/usb/vhc \
161 drv/nic/ne2k \
162 drv/nic/e1k \
163 drv/nic/rtl8139 \
164 drv/nic/rtl8169 \
165 drv/platform/icp
166
167## Platform-specific hardware support
168#
169
170ifeq ($(UARCH), $(filter $(UARCH),amd64 ia32 ia64))
171 DIRS += \
172 drv/platform/pc \
173 drv/bus/pci/pciintel \
174 drv/bus/isa \
175 drv/char/ns8250 \
176 drv/time/cmos-rtc \
177 srv/hw/irc/apic \
178 srv/hw/irc/i8259
179endif
180
181ifeq ($(UARCH), $(filter $(UARCH),mips32 mips32eb))
182 DIRS += \
183 drv/platform/malta \
184 drv/bus/pci/pciintel \
185 drv/bus/isa
186endif
187
188ifeq ($(UARCH),ppc32)
189 DIRS += \
190 drv/platform/mac \
191 drv/bus/pci/pciintel \
192 srv/hw/bus/cuda_adb
193endif
194
195ifeq ($(UARCH),sparc64)
196 DIRS += \
197 srv/hw/irc/obio
198endif
199
200ifeq ($(UARCH),arm32)
201 DIRS += \
202 drv/platform/amdm37x \
203 drv/fb/amdm37x_dispc \
204 srv/hw/irc/icp-ic
205endif
206
207## System libraries
208#
209
210LIBC = lib/c
211LIBS = \
212 lib/fs \
213 lib/block \
214 lib/clui \
215 lib/fmtutil \
216 lib/scsi \
217 lib/compress \
218 lib/softint \
219 lib/softfloat \
220 lib/drv \
221 lib/graph \
222 lib/gui \
223 lib/hound \
224 lib/http \
225 lib/softrend \
226 lib/draw \
227 lib/math \
228 lib/net \
229 lib/nic \
230 lib/ext4 \
231 lib/trackmod \
232 lib/uri \
233 lib/urcu \
234 lib/usb \
235 lib/usbhost \
236 lib/usbdev \
237 lib/usbhid \
238 lib/usbvirt \
239 lib/pcm \
240 lib/pcut \
241 lib/bithenge \
242 lib/posix \
243 lib/mbr \
244 lib/gpt
245
246LIBC_BUILD = $(addsuffix .build,$(LIBC))
247LIBS_BUILD = $(addsuffix .build,$(LIBS))
248LIBN_BUILD = $(addsuffix .build,$(LIBN))
249BUILDS := $(addsuffix .build,$(DIRS))
250BUILDS_TESTS := $(addsuffix .build-test,$(DIRS) $(LIBS) lib/c)
251
252CLEANS := $(addsuffix .clean,$(DIRS)) $(addsuffix .clean,$(LIBN)) $(addsuffix .clean,$(LIBS)) $(addsuffix .clean,$(LIBC))
253
254.PHONY: all $(LIBC_BUILD) $(LIBS_BUILD) $(LIBN_BUILD) $(BUILDS) $(CLEANS) clean
255
256all: $(BUILDS) $(BUILDS_TESTS)
257
258$(BUILDS_TESTS): $(BUILDS)
259 $(MAKE) -C $(basename $@) all-test PRECHECK=$(PRECHECK)
260
261clean: $(CLEANS)
262
263$(CLEANS):
264 -$(MAKE) -C $(basename $@) clean
265
266$(BUILDS): $(LIBC_BUILD) $(LIBS_BUILD) $(LIBN_BUILD)
267 $(MAKE) -C $(basename $@) all PRECHECK=$(PRECHECK)
268
269$(LIBN_BUILD): $(LIBC_BUILD) $(LIBS_BUILD)
270 $(MAKE) -C $(basename $@) all PRECHECK=$(PRECHECK)
271
272$(LIBS_BUILD): $(LIBC_BUILD)
273 $(MAKE) -C $(basename $@) all PRECHECK=$(PRECHECK)
274
275$(LIBC_BUILD):
276 $(MAKE) -C $(basename $@) all PRECHECK=$(PRECHECK)
Note: See TracBrowser for help on using the repository browser.