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