Added eventlog service stub.
[reactos.git] / reactos / Makefile
1 #
2 # Global makefile
3 #
4
5 PATH_TO_TOP = .
6
7 #
8 # Define to build WINE modules
9 #
10 ifeq ($(ROS_BUILD_WINE),)
11 ROS_BUILD_WINE = no
12 else
13 ROS_BUILD_WINE = 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
22 # Hardware Abstraction Layers
23 # halx86
24 HALS = halx86
25
26 # Bus drivers
27 # acpi isapnp pci
28 BUS = acpi isapnp pci
29
30 # User mode libraries
31 # advapi32 crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll ole32
32 # oleaut32 psapi rpcrt4 secur32 shell32 user32 version ws2help ws2_32 wsock32 wshirda
33 DLLS = advapi32 crtdll fmifs gdi32 kernel32 packet msafd msvcrt ntdll \
34 secur32 user32 version ws2help ws2_32 wshirda
35 SUBSYS = smss win32k csrss
36
37 #
38 # Select the server(s) you want to build
39 #
40 #SERVERS = posix linux os2
41 SERVERS = win32
42
43 # Boot loaders
44 # dos
45 LOADERS = dos
46
47 # Driver support libraries
48 #bzip2 zlib
49 DRIVERS_LIB = bzip2 zlib
50
51 # Kernel mode device drivers
52 # beep blue floppy ide keyboard mouse null parallel ramdrv serial vga vidport
53 DEVICE_DRIVERS = blue floppy ide null vga vidport
54
55 # Kernel mode input drivers
56 # keyboard mouclass psaux sermouse
57 INPUT_DRIVERS = keyboard mouclass psaux
58
59 # Kernel mode file system drivers
60 # cdfs ext2 fs_rec ms np vfat
61 FS_DRIVERS = cdfs fs_rec ms np vfat
62
63 # Kernel mode networking drivers
64 # afd ndis packet tcpip tdi wshtcpip
65 NET_DRIVERS = afd ndis packet tcpip tdi wshtcpip
66
67 # Kernel mode networking device drivers
68 # ne2000
69 NET_DEVICE_DRIVERS = ne2000
70
71 # Kernel mode storage drivers
72 # atapi cdrom class2 disk scsiport
73 STORAGE_DRIVERS = atapi cdrom class2 disk scsiport
74
75 # System applications
76 # autochk lsass services shell winlogon
77 SYS_APPS = autochk services shell winlogon
78
79 # System services
80 # rpcss eventlog
81 SYS_SVC = rpcss eventlog
82
83 # Test applications
84 # alive apc args atomtest bench consume count dump_shared_data
85 # event file gditest hello isotest lpc mstest mutex nptest
86 # pteb regtest sectest shm simple thread vmtest winhello
87 TEST_APPS = alive apc args atomtest bench consume count dump_shared_data \
88 event file gditest hello isotest lpc mstest mutex nptest \
89 pteb regtest sectest shm simple thread tokentest vmtest winhello
90
91 # Test applications
92 # cabman cat net objdir partinfo pice ps stats
93 UTIL_APPS = cat objdir partinfo stats
94
95 #
96 # Wine userspace win32 subsystem plus other stuff. This will all be moved
97 # to helper makefile down the road and there will be peace on earth.
98 #
99
100 WINE_OTHER = unicode
101
102 WINE_TOOLS = wrc winebuild
103
104 WINE_DLLS = rpcrt4 mapi32 ole32 oleaut32 oledlg olepro32 olecli olesvr \
105 shell32 shlwapi comctl32 shfolder shdocvw commdlg \
106 ddraw dinput dplay dplayx \
107 psapi richedit serialui tapi32 urlmon winspool wintrust
108 #lzexpand (missing imports)
109 #dsound (missing winmm.dll)
110
111
112 WINE_PROGS = clock cmdlgtst control notepad osversioncheck \
113 progman uninstaller view wcmd winefile winemine \
114 winver
115
116 ifeq ($(ROS_BUILD_WINE),yes)
117 WINE_MODULES = $(WINE_OTHER) $(WINE_TOOLS) $(WINE_DLLS) $(WINE_PROGS)
118 else
119 WINE_MODULES =
120 endif
121
122 KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
123 $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
124
125 all: tools dk implib $(COMPONENTS) $(HALS) $(BUS) $(DLLS) $(SUBSYS) \
126 $(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) $(TEST_APPS) \
127 $(UTIL_APPS) $(WINE_MODULES)
128
129 implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
130 $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
131 $(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
132 $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
133 $(TEST_APPS:%=%_implib) $(UTIL_APPS:%=%_implib) \
134 $(WINE_MODULES:%=%_implib)
135
136 clean: tools dk_clean $(HALS:%=%_clean) \
137 $(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(DLLS:%=%_clean) \
138 $(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
139 $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) $(TEST_APPS:%=%_clean) \
140 $(UTIL_APPS:%=%_clean) $(NET_APPS:%=%_clean) $(WINE_MODULES:%=%_clean) \
141 clean_after tools_clean
142
143 clean_after:
144 $(RM) $(PATH_TO_TOP)/include/roscfg.h
145
146 install: tools install_dirs install_before \
147 $(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
148 $(DLLS:%=%_install) $(LOADERS:%=%_install) \
149 $(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
150 $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
151 $(TEST_APPS:%=%_install) $(UTIL_APPS:%=%_install) \
152 $(WINE_MODULES:%=%_install)
153
154 dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
155 $(HALS:%=%_dist) $(COMPONENTS:%=%_dist) $(BUS:%=%_dist) $(DLLS:%=%_dist) \
156 $(LOADERS:%=%_dist) $(KERNEL_DRIVERS:%=%_dist) $(SUBSYS:%=%_dist) \
157 $(SYS_APPS:%=%_dist) $(SYS_SVC:%=%_dist) $(TEST_APPS:%=%_dist) \
158 $(UTIL_APPS:%=%_dist) $(NET_APPS:%=%_dist) $(WINE_MODULES:%=%_dist)
159
160 .PHONY: all implib clean clean_before install dist
161
162
163 #
164 # System Applications
165 #
166 $(SYS_APPS): %:
167 make -C subsys/system/$*
168
169 $(SYS_APPS:%=%_implib): %_implib:
170 make -C subsys/system/$* implib
171
172 $(SYS_APPS:%=%_clean): %_clean:
173 make -C subsys/system/$* clean
174
175 $(SYS_APPS:%=%_dist): %_dist:
176 make -C subsys/system/$* dist
177
178 $(SYS_APPS:%=%_install): %_install:
179 make -C subsys/system/$* install
180
181 .PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist)
182
183 #
184 # System Services
185 #
186 $(SYS_SVC): %:
187 make -C services/$*
188
189 $(SYS_SVC:%=%_implib): %_implib:
190 make -C services/$* implib
191
192 $(SYS_SVC:%=%_clean): %_clean:
193 make -C services/$* clean
194
195 $(SYS_SVC:%=%_dist): %_dist:
196 make -C services/$* dist
197
198 $(SYS_SVC:%=%_install): %_install:
199 make -C services/$* install
200
201 .PHONY: $(SYS_SVC) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
202
203
204 #
205 # Test Applications
206 #
207 $(TEST_APPS): %:
208 make -C apps/tests/$*
209
210 $(TEST_APPS:%=%_implib): %_implib:
211 make -C apps/tests/$* implib
212
213 $(TEST_APPS:%=%_clean): %_clean:
214 make -C apps/tests/$* clean
215
216 $(TEST_APPS:%=%_dist): %_dist:
217 make -C apps/tests/$* dist
218
219 $(TEST_APPS:%=%_install): %_install:
220 make -C apps/tests/$* install
221
222 .PHONY: $(TEST_APPS) $(TEST_APPS:%=%_implib) $(TEST_APPS:%=%_clean) $(TEST_APPS:%=%_install) $(TEST_APPS:%=%_dist)
223
224
225 #
226 # Utility Applications
227 #
228 $(UTIL_APPS): %:
229 make -C apps/utils/$*
230
231 $(UTIL_APPS:%=%_implib): %_implib:
232 make -C apps/utils/$* implib
233
234 $(UTIL_APPS:%=%_clean): %_clean:
235 make -C apps/utils/$* clean
236
237 $(UTIL_APPS:%=%_dist): %_dist:
238 make -C apps/utils/$* dist
239
240 $(UTIL_APPS:%=%_install): %_install:
241 make -C apps/utils/$* install
242
243 .PHONY: $(UTIL_APPS) $(UTIL_APPS:%=%_implib) $(UTIL_APPS:%=%_clean) $(UTIL_APPS:%=%_install) $(UTIL_APPS:%=%_dist)
244
245
246 #
247 # Other Wine Modules
248 #
249 $(WINE_OTHER): %:
250 make -f makefile.ros -C $(WINE_PATH)/$*
251
252 $(WINE_OTHER:%=%_implib): %_implib:
253 make -f makefile.ros -C $(WINE_PATH)/$* implib
254
255 $(WINE_OTHER:%=%_clean): %_clean:
256 make -f makefile.ros -C $(WINE_PATH)/$* clean
257
258 $(WINE_OTHER:%=%_dist): %_dist:
259 make -f makefile.ros -C $(WINE_PATH)/$* dist
260
261 $(WINE_OTHER:%=%_install): %_install:
262 make -f makefile.ros -C $(WINE_PATH)/$* install
263
264 .PHONY: $(WINE_OTHER) $(WINE_OTHER:%=%_implib) $(WINE_OTHER:%=%_clean) $(WINE_OTHER:%=%_install) $(WINE_OTHER:%=%_dist)
265
266
267 #
268 # Wine Tools
269 #
270 $(WINE_TOOLS): %:
271 make -f makefile.ros -C $(WINE_PATH)/tools/$*
272
273 $(WINE_TOOLS:%=%_implib): %_implib:
274 make -f makefile.ros -C $(WINE_PATH)/tools/$* implib
275
276 $(WINE_TOOLS:%=%_clean): %_clean:
277 make -f makefile.ros -C $(WINE_PATH)/tools/$* clean
278
279 $(WINE_TOOLS:%=%_dist): %_dist:
280 make -f makefile.ros -C $(WINE_PATH)/tools/$* dist
281
282 $(WINE_TOOLS:%=%_install): %_install:
283 make -f makefile.ros -C $(WINE_PATH)/tools/$* install
284
285 .PHONY: $(WINE_DLLS) $(WINE_DLLS:%=%_implib) $(WINE_DLLS:%=%_clean) $(WINE_DLLS:%=%_install) $(WINE_DLLS:%=%_dist)
286
287
288 #
289 # Wine DLLs
290 #
291 $(WINE_DLLS): %:
292 make -f makefile.ros -C $(WINE_PATH)/dlls/$*
293
294 $(WINE_DLLS:%=%_implib): %_implib:
295 make -f makefile.ros -C $(WINE_PATH)/dlls/$* implib
296
297 $(WINE_DLLS:%=%_clean): %_clean:
298 make -f makefile.ros -C $(WINE_PATH)/dlls/$* clean
299
300 $(WINE_DLLS:%=%_dist): %_dist:
301 make -f makefile.ros -C $(WINE_PATH)/dlls/$* dist
302
303 $(WINE_DLLS:%=%_install): %_install:
304 make -f makefile.ros -C $(WINE_PATH)/dlls/$* install
305
306 .PHONY: $(WINE_DLLS) $(WINE_DLLS:%=%_implib) $(WINE_DLLS:%=%_clean) $(WINE_DLLS:%=%_install) $(WINE_DLLS:%=%_dist)
307
308
309 #
310 # Wine programs
311 #
312 $(WINE_PROGS): %:
313 make -f makefile.ros -C $(WINE_PATH)/programs/$*
314
315 $(WINE_PROGS:%=%_implib): %_implib:
316 make -f makefile.ros -C $(WINE_PATH)/programs/$* implib
317
318 $(WINE_PROGS:%=%_clean): %_clean:
319 make -f makefile.ros -C $(WINE_PATH)/programs/$* clean
320
321 $(WINE_PROGS:%=%_dist): %_dist:
322 make -f makefile.ros -C $(WINE_PATH)/programs/$* dist
323
324 $(WINE_PROGS:%=%_install): %_install:
325 make -f makefile.ros -C $(WINE_PATH)/programs/$* install
326
327 .PHONY: $(WINE_PROGS) $(WINE_PROGS:%=%_implib) $(WINE_PROGS:%=%_clean) $(WINE_PROGS:%=%_install) $(WINE_PROGS:%=%_dist)
328
329
330 #
331 # Tools
332 #
333 tools:
334 make -C tools
335
336 tools_implib:
337
338 tools_clean:
339 make -C tools clean
340
341 tools_install:
342
343 tools_dist:
344
345 .PHONY: tools tools_implib tools_clean tools_install tools_dist
346
347
348 #
349 # Developer Kits
350 #
351 dk:
352 $(RMKDIR) $(DK_PATH)
353 $(RMKDIR) $(DDK_PATH)
354 $(RMKDIR) $(DDK_PATH_LIB)
355 $(RMKDIR) $(DDK_PATH_INC)
356 $(RMKDIR) $(SDK_PATH)
357 $(RMKDIR) $(SDK_PATH_LIB)
358 $(RMKDIR) $(SDK_PATH_INC)
359 $(RMKDIR) $(XDK_PATH)
360 $(RMKDIR) $(XDK_PATH_LIB)
361 $(RMKDIR) $(XDK_PATH_INC)
362
363 dk_implib:
364
365 # WARNING! Be very sure that there are no important files
366 # in these directories before cleaning them!!!
367 dk_clean:
368 $(RM) $(DDK_PATH_LIB)/*.a
369 # $(RM) $(DDK_PATH_INC)/*.h
370 $(RMDIR) $(DDK_PATH_LIB)
371 # $(RMDIR) $(DDK_PATH_INC)
372 $(RM) $(SDK_PATH_LIB)/*.a
373 # $(RM) $(SDK_PATH_INC)/*.h
374 $(RMDIR) $(SDK_PATH_LIB)
375 # $(RMDIR) $(SDK_PATH_INC)
376 $(RM) $(XDK_PATH_LIB)/*.a
377 # $(RM) $(XDK_PATH_INC)/*.h
378 $(RMDIR) $(XDK_PATH_LIB)
379 # $(RMDIR) $(XDK_PATH_INC)
380
381 dk_install:
382
383 dk_dist:
384
385 .PHONY: dk dk_implib dk_clean dk_install dk_dist
386
387
388 #
389 # Interfaces
390 #
391 iface_native:
392 make -C iface/native
393
394 iface_native_implib:
395
396 iface_native_clean:
397 make -C iface/native clean
398
399 iface_native_install:
400
401 iface_native_dist:
402
403 iface_additional:
404 make -C iface/addsys
405
406 iface_additional_implib:
407
408 iface_additional_clean:
409 make -C iface/addsys clean
410
411 iface_additional_install:
412
413 iface_additional_dist:
414
415 .PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
416 iface_native_dist \
417 iface_additional iface_additional_implib iface_additional_clean \
418 iface_additional_install iface_additional_dist
419
420 #
421 # Bus driver rules
422 #
423 $(BUS): %:
424 make -C drivers/bus/$*
425
426 $(BUS:%=%_implib): %_implib:
427 make -C drivers/bus/$* implib
428
429 $(BUS:%=%_clean): %_clean:
430 make -C drivers/bus/$* clean
431
432 $(BUS:%=%_install): %_install:
433 make -C drivers/bus/$* install
434
435 $(BUS:%=%_dist): %_dist:
436 make -C drivers/bus/$* dist
437
438 .PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
439 $(BUS:%=%_install) $(BUS:%=%_dist)
440
441 #
442 # Driver support libraries rules
443 #
444 $(DRIVERS_LIB): %:
445 make -C drivers/lib/$*
446
447 $(DRIVERS_LIB:%=%_implib): %_implib:
448 make -C drivers/lib/$* implib
449
450 $(DRIVERS_LIB:%=%_clean): %_clean:
451 make -C drivers/lib/$* clean
452
453 $(DRIVERS_LIB:%=%_install): %_install:
454 make -C drivers/lib/$* install
455
456 $(DRIVERS_LIB:%=%_dist): %_dist:
457 make -C drivers/lib/$* dist
458
459 .PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
460 $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist)
461
462 #
463 # Device driver rules
464 #
465 $(DEVICE_DRIVERS): %:
466 make -C drivers/dd/$*
467
468 $(DEVICE_DRIVERS:%=%_implib): %_implib:
469 make -C drivers/dd/$* implib
470
471 $(DEVICE_DRIVERS:%=%_clean): %_clean:
472 make -C drivers/dd/$* clean
473
474 $(DEVICE_DRIVERS:%=%_install): %_install:
475 make -C drivers/dd/$* install
476
477 $(DEVICE_DRIVERS:%=%_dist): %_dist:
478 make -C drivers/dd/$* dist
479
480 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
481 $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist)
482
483 #
484 # Input driver rules
485 #
486 $(INPUT_DRIVERS): %:
487 make -C drivers/input/$*
488
489 $(INPUT_DRIVERS:%=%_implib): %_implib:
490 make -C drivers/input/$* implib
491
492 $(INPUT_DRIVERS:%=%_clean): %_clean:
493 make -C drivers/input/$* clean
494
495 $(INPUT_DRIVERS:%=%_install): %_install:
496 make -C drivers/input/$* install
497
498 $(INPUT_DRIVERS:%=%_dist): %_dist:
499 make -C drivers/input/$* dist
500
501 .PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
502 $(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist)
503
504 $(FS_DRIVERS): %:
505 make -C drivers/fs/$*
506
507 $(FS_DRIVERS:%=%_implib): %_implib:
508 make -C drivers/fs/$* implib
509
510 $(FS_DRIVERS:%=%_clean): %_clean:
511 make -C drivers/fs/$* clean
512
513 $(FS_DRIVERS:%=%_install): %_install:
514 make -C drivers/fs/$* install
515
516 $(FS_DRIVERS:%=%_dist): %_dist:
517 make -C drivers/fs/$* dist
518
519 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
520 $(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist)
521
522 #
523 # Network driver rules
524 #
525 $(NET_DRIVERS): %:
526 make -C drivers/net/$*
527
528 $(NET_DRIVERS:%=%_implib): %_implib:
529 make -C drivers/net/$* implib
530
531 $(NET_DRIVERS:%=%_clean): %_clean:
532 make -C drivers/net/$* clean
533
534 $(NET_DRIVERS:%=%_install): %_install:
535 make -C drivers/net/$* install
536
537 $(NET_DRIVERS:%=%_dist): %_dist:
538 make -C drivers/net/$* dist
539
540 .PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
541 $(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist)
542
543 $(NET_DEVICE_DRIVERS): %:
544 make -C drivers/net/dd/$*
545
546 $(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
547 make -C drivers/net/dd/$* implib
548
549 $(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
550 make -C drivers/net/dd/$* clean
551
552 $(NET_DEVICE_DRIVERS:%=%_install): %_install:
553 make -C drivers/net/dd/$* install
554
555 $(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
556 make -C drivers/net/dd/$* dist
557
558 .PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
559 $(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_dist)
560
561 #
562 # storage driver rules
563 #
564 $(STORAGE_DRIVERS): %:
565 make -C drivers/storage/$*
566
567 $(STORAGE_DRIVERS:%=%_implib): %_implib:
568 make -C drivers/storage/$* implib
569
570 $(STORAGE_DRIVERS:%=%_clean): %_clean:
571 make -C drivers/storage/$* clean
572
573 $(STORAGE_DRIVERS:%=%_install): %_install:
574 make -C drivers/storage/$* install
575
576 $(STORAGE_DRIVERS:%=%_dist): %_dist:
577 make -C drivers/storage/$* dist
578
579 .PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) \
580 $(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist)
581
582 #
583 # Kernel loaders
584 #
585
586 $(LOADERS): %:
587 make -C loaders/$*
588
589 $(LOADERS:%=%_implib): %_implib:
590
591 $(LOADERS:%=%_clean): %_clean:
592 make -C loaders/$* clean
593
594 $(LOADERS:%=%_install): %_install:
595 make -C loaders/$* install
596
597 $(LOADERS:%=%_dist): %_dist:
598 make -C loaders/$* dist
599
600 .PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
601 $(LOADERS:%=%_dist)
602
603 #
604 # Required system components
605 #
606
607 ntoskrnl:
608 make -C ntoskrnl
609
610 ntoskrnl_implib:
611 make -C ntoskrnl implib
612
613 ntoskrnl_clean:
614 make -C ntoskrnl clean
615
616 ntoskrnl_install:
617 make -C ntoskrnl install
618
619 ntoskrnl_dist:
620 make -C ntoskrnl dist
621
622 .PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist
623
624 #
625 # Hardware Abstraction Layer import library
626 #
627
628 hallib:
629 make -C hal/hal
630
631 hallib_implib:
632 make -C hal/hal implib
633
634 hallib_clean:
635 make -C hal/hal clean
636
637 hallib_install:
638 make -C hal/hal install
639
640 hallib_dist:
641 make -C hal/hal dist
642
643 .PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist
644
645 #
646 # Hardware Abstraction Layers
647 #
648
649 $(HALS): %:
650 make -C hal/$*
651
652 $(HALS:%=%_implib): %_implib:
653 make -C hal/$* implib
654
655 $(HALS:%=%_clean): %_clean:
656 make -C hal/$* clean
657
658 $(HALS:%=%_install): %_install:
659 make -C hal/$* install
660
661 $(HALS:%=%_dist): %_dist:
662 make -C hal/$* dist
663
664 .PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist)
665
666 #
667 # Required DLLs
668 #
669
670 $(DLLS): %:
671 make -C lib/$*
672
673 $(DLLS:%=%_implib): %_implib:
674 make -C lib/$* implib
675
676 $(DLLS:%=%_clean): %_clean:
677 make -C lib/$* clean
678
679 $(DLLS:%=%_install): %_install:
680 make -C lib/$* install
681
682 $(DLLS:%=%_dist): %_dist:
683 make -C lib/$* dist
684
685 .PHONY: $(DLLS) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist)
686
687 #
688 # Subsystem support modules
689 #
690
691 $(SUBSYS): %:
692 make -C subsys/$*
693
694 $(SUBSYS:%=%_implib): %_implib:
695 make -C subsys/$* implib
696
697 $(SUBSYS:%=%_clean): %_clean:
698 make -C subsys/$* clean
699
700 $(SUBSYS:%=%_install): %_install:
701 make -C subsys/$* install
702
703 $(SUBSYS:%=%_dist): %_dist:
704 make -C subsys/$* dist
705
706 .PHONY: $(SUBSYS) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
707 $(SUBSYS:%=%_dist)
708
709 #
710 # Create an installation
711 #
712
713 install_clean:
714 $(RM) $(INSTALL_DIR)/system32/drivers/*.*
715 $(RM) $(INSTALL_DIR)/system32/config/*.*
716 $(RM) $(INSTALL_DIR)/system32/*.*
717 $(RM) $(INSTALL_DIR)/symbols/*.*
718 $(RM) $(INSTALL_DIR)/media/fonts/*.*
719 $(RM) $(INSTALL_DIR)/media/*.*
720 $(RM) $(INSTALL_DIR)/bin/*.*
721 $(RM) $(INSTALL_DIR)/*.com
722 $(RM) $(INSTALL_DIR)/*.bat
723 $(RMDIR) $(INSTALL_DIR)/system32/drivers
724 $(RMDIR) $(INSTALL_DIR)/system32/config
725 $(RMDIR) $(INSTALL_DIR)/system32
726 $(RMDIR) $(INSTALL_DIR)/symbols
727 $(RMDIR) $(INSTALL_DIR)/media/fonts
728 $(RMDIR) $(INSTALL_DIR)/media
729 $(RMDIR) $(INSTALL_DIR)/bin
730 $(RMDIR) $(INSTALL_DIR)
731
732 install_dirs:
733 $(RMKDIR) $(INSTALL_DIR)
734 $(RMKDIR) $(INSTALL_DIR)/bin
735 $(RMKDIR) $(INSTALL_DIR)/media
736 $(RMKDIR) $(INSTALL_DIR)/media/fonts
737 $(RMKDIR) $(INSTALL_DIR)/symbols
738 $(RMKDIR) $(INSTALL_DIR)/system32
739 $(RMKDIR) $(INSTALL_DIR)/system32/config
740 $(RMKDIR) $(INSTALL_DIR)/system32/drivers
741
742 install_before:
743 $(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
744 $(CP) boot.bat $(INSTALL_DIR)/boot.bat
745 $(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
746 $(CP) system.hiv $(INSTALL_DIR)/system32/system.hiv
747 $(CP) media/fonts/helb____.ttf $(INSTALL_DIR)/media/fonts/helb____.ttf
748 $(CP) media/fonts/timr____.ttf $(INSTALL_DIR)/media/fonts/timr____.ttf
749
750 .PHONY: install_clean install_dirs install_before
751
752
753 #
754 # Make a distribution saveset
755 #
756
757 dist_clean:
758 $(RM) $(DIST_DIR)/symbols/*.sym
759 $(RM) $(DIST_DIR)/drivers/*.sys
760 $(RM) $(DIST_DIR)/subsys/*.exe
761 $(RM) $(DIST_DIR)/dlls/*.dll
762 $(RM) $(DIST_DIR)/apps/*.exe
763 $(RM) $(DIST_DIR)/*.exe
764 $(RMDIR) $(DIST_DIR)/symbols
765 $(RMDIR) $(DIST_DIR)/subsys
766 $(RMDIR) $(DIST_DIR)/drivers
767 $(RMDIR) $(DIST_DIR)/dlls
768 $(RMDIR) $(DIST_DIR)/apps
769 $(RMDIR) $(DIST_DIR)
770
771 dist_dirs:
772 $(RMKDIR) $(DIST_DIR)
773 $(RMKDIR) $(DIST_DIR)/apps
774 $(RMKDIR) $(DIST_DIR)/dlls
775 $(RMKDIR) $(DIST_DIR)/drivers
776 $(RMKDIR) $(DIST_DIR)/subsys
777 $(RMKDIR) $(DIST_DIR)/symbols
778
779 .PHONY: dist_clean dist_dirs
780
781
782 etags:
783 find . -name "*.[ch]" -print | etags --language=c -
784
785 # EOF