Fix movement direction of mouse cursor, install serial mouse driver but
[reactos.git] / reactos / Makefile
1 #
2 # Global makefile
3 #
4
5 PATH_TO_TOP = .
6
7 #
8 # Define to build ReactOS external targets
9 #
10 ifeq ($(ROS_BUILD_EXT),)
11 ROS_BUILD_EXT = no
12 else
13 ROS_BUILD_EXT = yes
14 endif
15
16 include $(PATH_TO_TOP)/rules.mak
17
18 # Required to run the system
19 COMPONENTS = iface_native iface_additional hallib ntoskrnl
20
21 # Hardware Abstraction Layers
22 # halx86
23 HALS = halx86
24
25 # Bus drivers
26 # acpi isapnp pci
27 BUS = acpi isapnp pci
28
29 # Filesystem libraries
30 # vfatlib
31 LIB_FSLIB = vfatlib
32
33 # Static libraries
34 LIB_STATIC = string rosrtl epsapi zlib
35
36 # User mode libraries
37 # advapi32 crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll
38 # epsapi psapi rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda
39 DLLS = advapi32 crtdll fmifs freetype gdi32 kernel32 packet msafd msvcrt ntdll \
40 psapi secur32 syssetup user32 version winspool ws2help ws2_32 \
41 wsock32 wshirda
42
43 SUBSYS = smss win32k csrss ntvdm
44
45 #
46 # Select the server(s) you want to build
47 #
48 #SERVERS = posix linux os2
49 SERVERS = win32
50
51 # Boot loaders
52 # dos
53 LOADERS = dos
54
55 # Driver support libraries
56 #bzip2 zlib
57 DRIVERS_LIB = bzip2
58
59 # Kernel mode device drivers
60 # Obsolete: ide
61 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
62 DEVICE_DRIVERS = beep blue debugout floppy null serial vga videoprt
63
64 # Kernel mode input drivers
65 INPUT_DRIVERS = keyboard mouclass psaux sermouse
66
67 # Kernel mode file system drivers
68 # cdfs ext2 fs_rec ms np vfat
69 FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
70
71 # Kernel mode networking drivers
72 # afd ndis npf tcpip tdi wshtcpip
73 NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
74
75 # Kernel mode networking device drivers
76 # ne2000
77 NET_DEVICE_DRIVERS = ne2000
78
79 # Kernel mode storage drivers
80 # atapi cdrom class2 disk scsiport
81 STORAGE_DRIVERS = atapi cdrom class2 disk scsiport
82
83 # System applications
84 # autochk cmd format gstart services setup usetup winlogon
85 SYS_APPS = autochk cmd format gstart services setup usetup winlogon
86
87 # System services
88 # rpcss eventlog
89 SYS_SVC = rpcss eventlog
90
91 APPS = tests testsets utils
92
93
94 # External (sub)systems for ReactOS
95 # rosapps wine posix os2 (requires c++) java (non-existant)
96 EXTERNALS = rosapps wine posix os2
97
98 ifeq ($(ROS_BUILD_EXT),yes)
99 EXT_MODULES = $(EXTERNALS)
100 else
101 EXT_MODULES =
102 endif
103
104 KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
105 $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
106
107 # Regression tests
108 REGTESTS = regtests
109
110 all: tools dk implib $(LIB_STATIC) $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
111 $(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
112 $(APPS) $(EXT_MODULES) $(REGTESTS)
113
114 #config: $(TOOLS:%=%_config)
115
116 depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
117 $(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
118
119 implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
120 $(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
121 $(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
122 $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
123 $(APPS:%=%_implib) $(EXT_MODULES:%=%_implib)
124
125 clean: tools dk_clean $(HALS:%=%_clean) \
126 $(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
127 $(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
128 $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
129 $(NET_APPS:%=%_clean) \
130 $(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) $(REGTESTS:%=%_clean) \
131 clean_after tools_clean
132
133 clean_after:
134 $(RM) $(PATH_TO_TOP)/include/roscfg.h
135
136 install: tools install_dirs install_before \
137 $(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
138 $(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
139 $(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
140 $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
141 $(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install)
142
143 dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
144 $(HALS:%=%_dist) $(COMPONENTS:%=%_dist) $(BUS:%=%_dist) $(LIB_STATIC:%=%_dist) $(LIB_FSLIB:%=%_dist) \
145 $(DLLS:%=%_dist) $(LOADERS:%=%_dist) $(KERNEL_DRIVERS:%=%_dist) $(SUBSYS:%=%_dist) \
146 $(SYS_APPS:%=%_dist) $(SYS_SVC:%=%_dist) \
147 $(NET_APPS:%=%_dist) \
148 $(APPS:%=%_dist) $(EXT_MODULES:%=%_dist)
149
150 bootcd_directory_layout:
151 $(RMKDIR) $(BOOTCD_DIR)
152 $(RMKDIR) $(BOOTCD_DIR)/bootdisk
153 $(RMKDIR) $(BOOTCD_DIR)/loader
154 $(RMKDIR) $(BOOTCD_DIR)/reactos
155 $(RMKDIR) $(BOOTCD_DIR)/reactos/system32
156
157 bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
158 $(LIB_STATIC:%=%_bootcd) $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
159 $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
160
161 bootcd: all bootcd_directory_layout bootcd_bootstrap_files
162 $(MAKE) install INSTALL_DIR=$(BOOTCD_DIR)/reactos INSTALL_SYMBOLS=no BOOTCD_INSTALL=yes
163
164 .PHONY: all depends implib clean clean_before install dist bootcd_directory_layout \
165 bootcd_bootstrap_files bootcd
166
167
168 #
169 # System Applications
170 #
171 $(SYS_APPS): %:
172 $(MAKE) -C subsys/system/$*
173
174 $(SYS_APPS:%=%_implib): %_implib:
175 $(MAKE) -C subsys/system/$* implib
176
177 $(SYS_APPS:%=%_clean): %_clean:
178 $(MAKE) -C subsys/system/$* clean
179
180 $(SYS_APPS:%=%_dist): %_dist:
181 $(MAKE) -C subsys/system/$* dist
182
183 $(SYS_APPS:%=%_install): %_install:
184 $(MAKE) -C subsys/system/$* install
185
186 $(SYS_APPS:%=%_bootcd): %_bootcd:
187 $(MAKE) -C subsys/system/$* bootcd
188
189 .PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist) $(SYS_APPS:%=%_bootcd)
190
191 #
192 # System Services
193 #
194 $(SYS_SVC): %:
195 $(MAKE) -C services/$*
196
197 $(SYS_SVC:%=%_depends): %_depends:
198 $(MAKE) -C services/$* depends
199
200 $(SYS_SVC:%=%_implib): %_implib:
201 $(MAKE) -C services/$* implib
202
203 $(SYS_SVC:%=%_clean): %_clean:
204 $(MAKE) -C services/$* clean
205
206 $(SYS_SVC:%=%_dist): %_dist:
207 $(MAKE) -C services/$* dist
208
209 $(SYS_SVC:%=%_install): %_install:
210 $(MAKE) -C services/$* install
211
212 .PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
213
214
215 #
216 # Applications
217 #
218 #
219 # Extra (optional system) Applications
220 #
221 $(APPS): %:
222 $(MAKE) -C apps/$*
223
224 $(APPS:%=%_implib): %_implib:
225 $(MAKE) -C apps/$* implib
226
227 $(APPS:%=%_clean): %_clean:
228 $(MAKE) -C apps/$* clean
229
230 $(APPS:%=%_dist): %_dist:
231 $(MAKE) -C apps/$* dist
232
233 $(APPS:%=%_install): %_install:
234 $(MAKE) -C apps/$* install
235
236 .PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install) $(APPS:%=%_dist)
237
238
239 #
240 # External ports and subsystem personalities
241 #
242 $(EXTERNALS): %:
243 $(MAKE) -C $(ROOT_PATH)/$*
244
245 $(EXTERNALS:%=%_depends): %_depends:
246 $(MAKE) -C $(ROOT_PATH)/$* depends
247
248 $(EXTERNALS:%=%_implib): %_implib:
249 $(MAKE) -C $(ROOT_PATH)/$* implib
250
251 $(EXTERNALS:%=%_clean): %_clean:
252 $(MAKE) -C $(ROOT_PATH)/$* clean
253
254 $(EXTERNALS:%=%_dist): %_dist:
255 $(MAKE) -C $(ROOT_PATH)/$* dist
256
257 $(EXTERNALS:%=%_install): %_install:
258 $(MAKE) -C $(ROOT_PATH)/$* install
259
260 .PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) $(EXTERNALS:%=%_dist)
261
262
263 #
264 # Tools
265 #
266 tools:
267 $(MAKE) -C tools
268
269 tools_implib:
270
271 tools_clean:
272 $(MAKE) -C tools clean
273
274 tools_install:
275
276 tools_dist:
277
278 .PHONY: tools tools_implib tools_clean tools_install tools_dist
279
280
281 #
282 # Developer Kits
283 #
284 dk:
285 $(RMKDIR) $(DK_PATH)
286 $(RMKDIR) $(DDK_PATH)
287 $(RMKDIR) $(DDK_PATH_LIB)
288 $(RMKDIR) $(DDK_PATH_INC)
289 $(RMKDIR) $(SDK_PATH)
290 $(RMKDIR) $(SDK_PATH_LIB)
291 $(RMKDIR) $(SDK_PATH_INC)
292 $(RMKDIR) $(XDK_PATH)
293 $(RMKDIR) $(XDK_PATH_LIB)
294 $(RMKDIR) $(XDK_PATH_INC)
295
296 dk_implib:
297
298 # WARNING! Be very sure that there are no important files
299 # in these directories before cleaning them!!!
300 dk_clean:
301 $(RM) $(DDK_PATH_LIB)/*.a
302 # $(RM) $(DDK_PATH_INC)/*.h
303 $(RMDIR) $(DDK_PATH_LIB)
304 # $(RMDIR) $(DDK_PATH_INC)
305 $(RM) $(SDK_PATH_LIB)/*.a
306 # $(RM) $(SDK_PATH_INC)/*.h
307 $(RMDIR) $(SDK_PATH_LIB)
308 # $(RMDIR) $(SDK_PATH_INC)
309 $(RM) $(XDK_PATH_LIB)/*.a
310 # $(RM) $(XDK_PATH_INC)/*.h
311 $(RMDIR) $(XDK_PATH_LIB)
312 # $(RMDIR) $(XDK_PATH_INC)
313
314 dk_install:
315
316 dk_dist:
317
318 .PHONY: dk dk_implib dk_clean dk_install dk_dist
319
320
321 #
322 # Interfaces
323 #
324 iface_native:
325 $(MAKE) -C iface/native
326
327 iface_native_implib:
328
329 iface_native_clean:
330 $(MAKE) -C iface/native clean
331
332 iface_native_install:
333
334 iface_native_dist:
335
336 iface_native_bootcd:
337
338 iface_additional:
339 $(MAKE) -C iface/addsys
340
341 iface_additional_implib:
342
343 iface_additional_clean:
344 $(MAKE) -C iface/addsys clean
345
346 iface_additional_install:
347
348 iface_additional_dist:
349
350 iface_additional_bootcd:
351
352 .PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
353 iface_native_dist iface_native_bootcd \
354 iface_additional iface_additional_implib iface_additional_clean \
355 iface_additional_install iface_additional_dist iface_additional_bootcd
356
357 #
358 # Bus driver rules
359 #
360 $(BUS): %:
361 $(MAKE) -C drivers/bus/$*
362
363 $(BUS:%=%_implib): %_implib:
364 $(MAKE) -C drivers/bus/$* implib
365
366 $(BUS:%=%_clean): %_clean:
367 $(MAKE) -C drivers/bus/$* clean
368
369 $(BUS:%=%_install): %_install:
370 $(MAKE) -C drivers/bus/$* install
371
372 $(BUS:%=%_dist): %_dist:
373 $(MAKE) -C drivers/bus/$* dist
374
375 $(BUS:%=%_bootcd): %_bootcd:
376 $(MAKE) -C drivers/bus/$* bootcd
377
378 .PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
379 $(BUS:%=%_install) $(BUS:%=%_dist) $(BUS:%=%_bootcd)
380
381 #
382 # Driver support libraries rules
383 #
384 $(DRIVERS_LIB): %:
385 $(MAKE) -C drivers/lib/$*
386
387 $(DRIVERS_LIB:%=%_implib): %_implib:
388 $(MAKE) -C drivers/lib/$* implib
389
390 $(DRIVERS_LIB:%=%_clean): %_clean:
391 $(MAKE) -C drivers/lib/$* clean
392
393 $(DRIVERS_LIB:%=%_install): %_install:
394 $(MAKE) -C drivers/lib/$* install
395
396 $(DRIVERS_LIB:%=%_dist): %_dist:
397 $(MAKE) -C drivers/lib/$* dist
398
399 $(DRIVERS_LIB:%=%_bootcd): %_bootcd:
400 $(MAKE) -C drivers/lib/$* bootcd
401
402 .PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
403 $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist) $(DRIVERS_LIB:%=%_bootcd)
404
405 #
406 # Device driver rules
407 #
408 $(DEVICE_DRIVERS): %:
409 $(MAKE) -C drivers/dd/$*
410
411 $(DEVICE_DRIVERS:%=%_implib): %_implib:
412 $(MAKE) -C drivers/dd/$* implib
413
414 $(DEVICE_DRIVERS:%=%_clean): %_clean:
415 $(MAKE) -C drivers/dd/$* clean
416
417 $(DEVICE_DRIVERS:%=%_install): %_install:
418 $(MAKE) -C drivers/dd/$* install
419
420 $(DEVICE_DRIVERS:%=%_dist): %_dist:
421 $(MAKE) -C drivers/dd/$* dist
422
423 $(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
424 $(MAKE) -C drivers/dd/$* bootcd
425
426 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
427 $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist) $(DEVICE_DRIVERS:%=%_bootcd)
428
429 #
430 # Input driver rules
431 #
432 $(INPUT_DRIVERS): %:
433 $(MAKE) -C drivers/input/$*
434
435 $(INPUT_DRIVERS:%=%_implib): %_implib:
436 $(MAKE) -C drivers/input/$* implib
437
438 $(INPUT_DRIVERS:%=%_clean): %_clean:
439 $(MAKE) -C drivers/input/$* clean
440
441 $(INPUT_DRIVERS:%=%_install): %_install:
442 $(MAKE) -C drivers/input/$* install
443
444 $(INPUT_DRIVERS:%=%_dist): %_dist:
445 $(MAKE) -C drivers/input/$* dist
446
447 $(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
448 $(MAKE) -C drivers/input/$* bootcd
449
450 .PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
451 $(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist) $(INPUT_DRIVERS:%=%_bootcd)
452
453 $(FS_DRIVERS): %:
454 $(MAKE) -C drivers/fs/$*
455
456 $(FS_DRIVERS:%=%_implib): %_implib:
457 $(MAKE) -C drivers/fs/$* implib
458
459 $(FS_DRIVERS:%=%_clean): %_clean:
460 $(MAKE) -C drivers/fs/$* clean
461
462 $(FS_DRIVERS:%=%_install): %_install:
463 $(MAKE) -C drivers/fs/$* install
464
465 $(FS_DRIVERS:%=%_dist): %_dist:
466 $(MAKE) -C drivers/fs/$* dist
467
468 $(FS_DRIVERS:%=%_bootcd): %_bootcd:
469 $(MAKE) -C drivers/fs/$* bootcd
470
471 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
472 $(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist) $(FS_DRIVERS:%=%_bootcd)
473
474 #
475 # Network driver rules
476 #
477 $(NET_DRIVERS): %:
478 $(MAKE) -C drivers/net/$*
479
480 $(NET_DRIVERS:%=%_implib): %_implib:
481 $(MAKE) -C drivers/net/$* implib
482
483 $(NET_DRIVERS:%=%_clean): %_clean:
484 $(MAKE) -C drivers/net/$* clean
485
486 $(NET_DRIVERS:%=%_install): %_install:
487 $(MAKE) -C drivers/net/$* install
488
489 $(NET_DRIVERS:%=%_dist): %_dist:
490 $(MAKE) -C drivers/net/$* dist
491
492 $(NET_DRIVERS:%=%_bootcd): %_bootcd:
493 $(MAKE) -C drivers/net/$* bootcd
494
495 .PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
496 $(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist) $(NET_DRIVERS:%=%_bootcd)
497
498 $(NET_DEVICE_DRIVERS): %:
499 $(MAKE) -C drivers/net/dd/$*
500
501 $(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
502 $(MAKE) -C drivers/net/dd/$* implib
503
504 $(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
505 $(MAKE) -C drivers/net/dd/$* clean
506
507 $(NET_DEVICE_DRIVERS:%=%_install): %_install:
508 $(MAKE) -C drivers/net/dd/$* install
509
510 $(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
511 $(MAKE) -C drivers/net/dd/$* dist
512
513 $(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
514 $(MAKE) -C drivers/net/dd/$* bootcd
515
516 .PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
517 $(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_dist) $(NET_DEVICE_DRIVERS:%=%_bootcd)
518
519 #
520 # storage driver rules
521 #
522 $(STORAGE_DRIVERS): %:
523 $(MAKE) -C drivers/storage/$*
524
525 $(STORAGE_DRIVERS:%=%_implib): %_implib:
526 $(MAKE) -C drivers/storage/$* implib
527
528 $(STORAGE_DRIVERS:%=%_clean): %_clean:
529 $(MAKE) -C drivers/storage/$* clean
530
531 $(STORAGE_DRIVERS:%=%_install): %_install:
532 $(MAKE) -C drivers/storage/$* install
533
534 $(STORAGE_DRIVERS:%=%_dist): %_dist:
535 $(MAKE) -C drivers/storage/$* dist
536
537 $(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
538 $(MAKE) -C drivers/storage/$* bootcd
539
540 .PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
541 $(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist) $(STORAGE_DRIVERS:%=%_bootcd)
542
543 #
544 # Kernel loaders
545 #
546
547 $(LOADERS): %:
548 $(MAKE) -C loaders/$*
549
550 $(LOADERS:%=%_implib): %_implib:
551
552 $(LOADERS:%=%_clean): %_clean:
553 $(MAKE) -C loaders/$* clean
554
555 $(LOADERS:%=%_install): %_install:
556 $(MAKE) -C loaders/$* install
557
558 $(LOADERS:%=%_dist): %_dist:
559 $(MAKE) -C loaders/$* dist
560
561 .PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
562 $(LOADERS:%=%_dist)
563
564 #
565 # Required system components
566 #
567
568 ntoskrnl:
569 $(MAKE) -C ntoskrnl
570
571 ntoskrnl_implib:
572 $(MAKE) -C ntoskrnl implib
573
574 ntoskrnl_clean:
575 $(MAKE) -C ntoskrnl clean
576
577 ntoskrnl_install:
578 $(MAKE) -C ntoskrnl install
579
580 ntoskrnl_dist:
581 $(MAKE) -C ntoskrnl dist
582
583 ntoskrnl_bootcd:
584 $(MAKE) -C ntoskrnl bootcd
585
586 .PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
587
588 #
589 # Hardware Abstraction Layer import library
590 #
591
592 hallib:
593 $(MAKE) -C hal/hal
594
595 hallib_implib:
596 $(MAKE) -C hal/hal implib
597
598 hallib_clean:
599 $(MAKE) -C hal/hal clean
600
601 hallib_install:
602 $(MAKE) -C hal/hal install
603
604 hallib_dist:
605 $(MAKE) -C hal/hal dist
606
607 hallib_bootcd:
608 $(MAKE) -C hal/hal bootcd
609
610 .PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
611
612 #
613 # Hardware Abstraction Layers
614 #
615
616 $(HALS): %:
617 $(MAKE) -C hal/$*
618
619 $(HALS:%=%_implib): %_implib:
620 $(MAKE) -C hal/$* implib
621
622 $(HALS:%=%_clean): %_clean:
623 $(MAKE) -C hal/$* clean
624
625 $(HALS:%=%_install): %_install:
626 $(MAKE) -C hal/$* install
627
628 $(HALS:%=%_dist): %_dist:
629 $(MAKE) -C hal/$* dist
630
631 $(HALS:%=%_bootcd): %_bootcd:
632 $(MAKE) -C hal/$* bootcd
633
634 .PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist) $(HALS:%=%_bootcd)
635
636 #
637 # File system libraries
638 #
639
640 $(LIB_FSLIB): %:
641 $(MAKE) -C lib/fslib/$*
642
643 $(LIB_FSLIB:%=%_depends): %_depends:
644 $(MAKE) -C lib/fslib/$* depends
645
646 $(LIB_FSLIB:%=%_implib): %_implib:
647 $(MAKE) -C lib/fslib/$* implib
648
649 $(LIB_FSLIB:%=%_clean): %_clean:
650 $(MAKE) -C lib/fslib/$* clean
651
652 $(LIB_FSLIB:%=%_install): %_install:
653 $(MAKE) -C lib/fslib/$* install
654
655 $(LIB_FSLIB:%=%_dist): %_dist:
656 $(MAKE) -C lib/fslib/$* dist
657
658 $(LIB_FSLIB:%=%_bootcd): %_bootcd:
659 $(MAKE) -C lib/fslib/$* bootcd
660
661 .PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
662 $(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_dist) $(LIB_FSLIB:%=%_bootcd)
663
664 #
665 # Static libraries
666 #
667
668 $(LIB_STATIC): %:
669 $(MAKE) -C lib/$*
670
671 $(LIB_STATIC:%=%_depends): %_depends:
672 $(MAKE) -C lib/string depends
673
674 $(LIB_STATIC:%=%_implib): %_implib:
675 $(MAKE) -C lib/$* implib
676
677 $(LIB_STATIC:%=%_clean): %_clean:
678 $(MAKE) -C lib/$* clean
679
680 $(LIB_STATIC:%=%_install): %_install:
681 $(MAKE) -C lib/$* install
682
683 $(LIB_STATIC:%=%_dist): %_dist:
684 $(MAKE) -C lib/$* dist
685
686 $(LIB_STATIC:%=%_bootcd): %_bootcd:
687 $(MAKE) -C lib/$* bootcd
688
689 .PHONY: $(LIB_STATIC) $(LIB_STATIC:%=%_depends) $(LIB_STATIC:%=%_implib) $(LIB_STATIC:%=%_clean) \
690 $(LIB_STATIC:%=%_install) $(LIB_STATIC:%=%_dist) $(LIB_STATIC:%=%_bootcd)
691
692 #
693 # Required DLLs
694 #
695
696 $(DLLS): %:
697 $(MAKE) -C lib/$*
698
699 $(DLLS:%=%_depends): %_depends:
700 $(MAKE) -C lib/$* depends
701
702 $(DLLS:%=%_implib): %_implib:
703 $(MAKE) -C lib/$* implib
704
705 $(DLLS:%=%_clean): %_clean:
706 $(MAKE) -C lib/$* clean
707
708 $(DLLS:%=%_install): %_install:
709 $(MAKE) -C lib/$* install
710
711 $(DLLS:%=%_dist): %_dist:
712 $(MAKE) -C lib/$* dist
713
714 $(DLLS:%=%_bootcd): %_bootcd:
715 $(MAKE) -C lib/$* bootcd
716
717 .PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist) $(DLLS:%=%_bootcd)
718
719 #
720 # Subsystem support modules
721 #
722
723 $(SUBSYS): %:
724 $(MAKE) -C subsys/$*
725
726 $(SUBSYS:%=%_depends): %_depends:
727 $(MAKE) -C subsys/$* depends
728
729 $(SUBSYS:%=%_implib): %_implib:
730 $(MAKE) -C subsys/$* implib
731
732 $(SUBSYS:%=%_clean): %_clean:
733 $(MAKE) -C subsys/$* clean
734
735 $(SUBSYS:%=%_install): %_install:
736 $(MAKE) -C subsys/$* install
737
738 $(SUBSYS:%=%_dist): %_dist:
739 $(MAKE) -C subsys/$* dist
740
741 $(SUBSYS:%=%_bootcd): %_bootcd:
742 $(MAKE) -C subsys/$* bootcd
743
744 .PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
745 $(SUBSYS:%=%_dist) $(SUBSYS:%=%_bootcd)
746
747 #
748 # Regression testsuite
749 #
750
751 $(REGTESTS): %:
752 $(MAKE) -C regtests
753
754 $(REGTESTS:%=%_clean): %_clean:
755 $(MAKE) -C regtests clean
756
757 $(REGTESTS:%=%_install): %_install:
758 $(MAKE) -C regtests install
759
760 .PHONY: $(REGTESTS) $(REGTESTS:%=%_depends) $(SUBSYS:%=%_clean) $(REGTESTS:%=%_install)
761
762
763 #
764 # Create an installation
765 #
766
767 install_clean:
768 $(RM) $(INSTALL_DIR)/system32/drivers/*.*
769 $(RM) $(INSTALL_DIR)/system32/config/*.*
770 $(RM) $(INSTALL_DIR)/system32/*.*
771 $(RM) $(INSTALL_DIR)/symbols/*.*
772 $(RM) $(INSTALL_DIR)/media/fonts/*.*
773 $(RM) $(INSTALL_DIR)/media/*.*
774 $(RM) $(INSTALL_DIR)/bin/*.*
775 $(RM) $(INSTALL_DIR)/*.com
776 $(RM) $(INSTALL_DIR)/*.bat
777 $(RMDIR) $(INSTALL_DIR)/system32/drivers
778 $(RMDIR) $(INSTALL_DIR)/system32/config
779 $(RMDIR) $(INSTALL_DIR)/system32
780 $(RMDIR) $(INSTALL_DIR)/symbols
781 $(RMDIR) $(INSTALL_DIR)/media/fonts
782 $(RMDIR) $(INSTALL_DIR)/media
783 $(RMDIR) $(INSTALL_DIR)/bin
784 $(RMDIR) $(INSTALL_DIR)
785
786 ifneq ($(BOOTCD_INSTALL),)
787
788 install_dirs:
789 $(RMKDIR) $(INSTALL_DIR)
790
791 install_before:
792 # $(RLINE) bootdata/autorun.inf $(INSTALL_DIR)/../autorun.inf
793 $(RLINE) bootdata/readme.txt $(INSTALL_DIR)/../readme.txt
794 $(RLINE) bootdata/hivecls.inf $(INSTALL_DIR)/hivecls.inf
795 $(RLINE) bootdata/hivedef.inf $(INSTALL_DIR)/hivedef.inf
796 $(RLINE) bootdata/hivesft.inf $(INSTALL_DIR)/hivesft.inf
797 $(RLINE) bootdata/hivesys.inf $(INSTALL_DIR)/hivesys.inf
798 $(RLINE) bootdata/txtsetup.sif $(INSTALL_DIR)/txtsetup.sif
799 $(CP) media/fonts $(INSTALL_DIR)
800 $(CP) media/nls $(INSTALL_DIR)
801
802 else # !BOOTCD_INSTALL
803
804 install_dirs:
805 $(RMKDIR) $(INSTALL_DIR)
806 $(RMKDIR) $(INSTALL_DIR)/bin
807 $(RMKDIR) $(INSTALL_DIR)/media
808 $(RMKDIR) $(INSTALL_DIR)/media/fonts
809 $(RMKDIR) $(INSTALL_DIR)/symbols
810 $(RMKDIR) $(INSTALL_DIR)/system32
811 $(RMKDIR) $(INSTALL_DIR)/system32/config
812 $(RMKDIR) $(INSTALL_DIR)/system32/drivers
813
814 install_before:
815 $(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
816 $(CP) boot.bat $(INSTALL_DIR)/boot.bat
817 $(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
818 $(CP) media/fonts $(INSTALL_DIR)/media/fonts
819 $(CP) media/nls $(INSTALL_DIR)/system32
820 $(CP) media/nls/c_1252.nls $(INSTALL_DIR)/system32/ansi.nls
821 $(CP) media/nls/c_437.nls $(INSTALL_DIR)/system32/oem.nls
822 $(CP) media/nls/l_intl.nls $(INSTALL_DIR)/system32/casemap.nls
823
824 endif # BOOTCD_INSTALL
825
826 .PHONY: install_clean install_dirs install_before
827
828
829 #
830 # Make a distribution saveset
831 #
832
833 dist_clean:
834 $(RM) $(DIST_DIR)/symbols/*.sym
835 $(RM) $(DIST_DIR)/drivers/*.sys
836 $(RM) $(DIST_DIR)/subsys/*.exe
837 $(RM) $(DIST_DIR)/dlls/*.dll
838 $(RM) $(DIST_DIR)/apps/*.exe
839 $(RM) $(DIST_DIR)/*.exe
840 $(RMDIR) $(DIST_DIR)/symbols
841 $(RMDIR) $(DIST_DIR)/subsys
842 $(RMDIR) $(DIST_DIR)/drivers
843 $(RMDIR) $(DIST_DIR)/dlls
844 $(RMDIR) $(DIST_DIR)/apps
845 $(RMDIR) $(DIST_DIR)
846
847 dist_dirs:
848 $(RMKDIR) $(DIST_DIR)
849 $(RMKDIR) $(DIST_DIR)/apps
850 $(RMKDIR) $(DIST_DIR)/dlls
851 $(RMKDIR) $(DIST_DIR)/drivers
852 $(RMKDIR) $(DIST_DIR)/subsys
853 $(RMKDIR) $(DIST_DIR)/symbols
854
855 .PHONY: dist_clean dist_dirs
856
857 etags:
858 find . -name "*.[ch]" -print | etags --language=c -
859
860 # EOF
861