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