8 # Define to build ReactOS external targets
10 ifeq ($(ROS_BUILD_EXT),)
16 include $(PATH_TO_TOP)/rules.mak
18 # Required to run the system
19 COMPONENTS = iface_native iface_additional hallib ntoskrnl
21 # Hardware Abstraction Layers
29 # Filesystem libraries
33 # User and kernel mode libraries
34 # advapi32 crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll ole32
35 # oleaut32 epsapi psapi rpcrt4 secur32 shell32 user32 version ws2help ws2_32 wsock32 wshirda
36 DLLS = rosrtl advapi32 crtdll fmifs freetype gdi32 kernel32 packet msafd msvcrt ntdll \
37 epsapi psapi secur32 user32 version winedbgc winspool ws2help ws2_32 wsock32 \
40 SUBSYS = smss win32k csrss ntvdm
43 # Select the server(s) you want to build
45 #SERVERS = posix linux os2
52 # Driver support libraries
56 # Kernel mode device drivers
58 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
59 DEVICE_DRIVERS = beep blue floppy null serial vga videoprt
61 # Kernel mode input drivers
62 # keyboard mouclass psaux sermouse
63 INPUT_DRIVERS = keyboard mouclass psaux
65 # Kernel mode file system drivers
66 # cdfs ext2 fs_rec ms np vfat
67 FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
69 # Kernel mode networking drivers
70 # afd ndis npf tcpip tdi wshtcpip
71 NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
73 # Kernel mode networking device drivers
75 NET_DEVICE_DRIVERS = ne2000
77 # Kernel mode storage drivers
78 # atapi cdrom class2 disk scsiport
79 STORAGE_DRIVERS = atapi cdrom class2 disk scsiport
82 # autochk cmd services format gstart usetup winlogon
83 SYS_APPS = autochk cmd services format gstart usetup winlogon
87 SYS_SVC = rpcss eventlog
89 APPS = tests testsets utils
92 # External (sub)systems for ReactOS
93 # rosapps wine posix os2 (requires c++) java (non-existant)
94 EXTERNALS = rosapps wine posix os2
96 ifeq ($(ROS_BUILD_EXT),yes)
97 EXT_MODULES = $(EXTERNALS)
102 KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
103 $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
105 all: tools dk implib $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
106 $(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
107 $(APPS) $(EXT_MODULES)
109 #config: $(TOOLS:%=%_config)
111 depends: $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
112 $(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
114 implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
115 $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
116 $(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
117 $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
118 $(APPS:%=%_implib) $(EXT_MODULES:%=%_implib)
120 clean: tools dk_clean $(HALS:%=%_clean) \
121 $(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
122 $(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
123 $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
124 $(NET_APPS:%=%_clean) \
125 $(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) \
126 clean_after tools_clean
129 $(RM) $(PATH_TO_TOP)/include/roscfg.h
131 install: tools install_dirs install_before \
132 $(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
133 $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
134 $(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
135 $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
136 $(APPS:%=%_install) $(EXT_MODULES:%=%_install)
138 dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
139 $(HALS:%=%_dist) $(COMPONENTS:%=%_dist) $(BUS:%=%_dist) $(LIB_FSLIB:%=%_dist) \
140 $(DLLS:%=%_dist) $(LOADERS:%=%_dist) $(KERNEL_DRIVERS:%=%_dist) $(SUBSYS:%=%_dist) \
141 $(SYS_APPS:%=%_dist) $(SYS_SVC:%=%_dist) \
142 $(NET_APPS:%=%_dist) \
143 $(APPS:%=%_dist) $(EXT_MODULES:%=%_dist)
145 bootcd_directory_layout:
146 $(RMKDIR) $(BOOTCD_DIR)
147 $(RMKDIR) $(BOOTCD_DIR)/bootdisk
148 $(RMKDIR) $(BOOTCD_DIR)/install
149 $(RMKDIR) $(BOOTCD_DIR)/reactos
150 $(RMKDIR) $(BOOTCD_DIR)/reactos/system32
151 $(RMKDIR) $(BOOTCD_DIR)/loader
153 bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
154 $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
155 $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
157 bootcd: all bootcd_directory_layout bootcd_bootstrap_files
158 $(MAKE) install INSTALL_DIR=$(BOOTCD_DIR)/install INSTALL_SYMBOLS=no BOOTCD_INSTALL=yes
160 .PHONY: all depends implib clean clean_before install dist bootcd_directory_layout \
161 bootcd_bootstrap_files bootcd
165 # System Applications
168 $(MAKE) -C subsys/system/$*
170 $(SYS_APPS:%=%_implib): %_implib:
171 $(MAKE) -C subsys/system/$* implib
173 $(SYS_APPS:%=%_clean): %_clean:
174 $(MAKE) -C subsys/system/$* clean
176 $(SYS_APPS:%=%_dist): %_dist:
177 $(MAKE) -C subsys/system/$* dist
179 $(SYS_APPS:%=%_install): %_install:
180 $(MAKE) -C subsys/system/$* install
182 $(SYS_APPS:%=%_bootcd): %_bootcd:
183 $(MAKE) -C subsys/system/$* bootcd
185 .PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist) $(SYS_APPS:%=%_bootcd)
191 $(MAKE) -C services/$*
193 $(SYS_SVC:%=%_depends): %_depends:
194 $(MAKE) -C services/$* depends
196 $(SYS_SVC:%=%_implib): %_implib:
197 $(MAKE) -C services/$* implib
199 $(SYS_SVC:%=%_clean): %_clean:
200 $(MAKE) -C services/$* clean
202 $(SYS_SVC:%=%_dist): %_dist:
203 $(MAKE) -C services/$* dist
205 $(SYS_SVC:%=%_install): %_install:
206 $(MAKE) -C services/$* install
208 .PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
215 # Extra (optional system) Applications
220 $(APPS:%=%_implib): %_implib:
221 $(MAKE) -C apps/$* implib
223 $(APPS:%=%_clean): %_clean:
224 $(MAKE) -C apps/$* clean
226 $(APPS:%=%_dist): %_dist:
227 $(MAKE) -C apps/$* dist
229 $(APPS:%=%_install): %_install:
230 $(MAKE) -C apps/$* install
232 .PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install) $(APPS:%=%_dist)
236 # External ports and subsystem personalities
239 $(MAKE) -C $(ROOT_PATH)/$*
241 $(EXTERNALS:%=%_depends): %_depends:
242 $(MAKE) -C $(ROOT_PATH)/$* depends
244 $(EXTERNALS:%=%_implib): %_implib:
245 $(MAKE) -C $(ROOT_PATH)/$* implib
247 $(EXTERNALS:%=%_clean): %_clean:
248 $(MAKE) -C $(ROOT_PATH)/$* clean
250 $(EXTERNALS:%=%_dist): %_dist:
251 $(MAKE) -C $(ROOT_PATH)/$* dist
253 $(EXTERNALS:%=%_install): %_install:
254 $(MAKE) -C $(ROOT_PATH)/$* install
256 .PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) $(EXTERNALS:%=%_dist)
268 $(MAKE) -C tools clean
274 .PHONY: tools tools_implib tools_clean tools_install tools_dist
282 $(RMKDIR) $(DDK_PATH)
283 $(RMKDIR) $(DDK_PATH_LIB)
284 $(RMKDIR) $(DDK_PATH_INC)
285 $(RMKDIR) $(SDK_PATH)
286 $(RMKDIR) $(SDK_PATH_LIB)
287 $(RMKDIR) $(SDK_PATH_INC)
288 $(RMKDIR) $(XDK_PATH)
289 $(RMKDIR) $(XDK_PATH_LIB)
290 $(RMKDIR) $(XDK_PATH_INC)
294 # WARNING! Be very sure that there are no important files
295 # in these directories before cleaning them!!!
297 $(RM) $(DDK_PATH_LIB)/*.a
298 # $(RM) $(DDK_PATH_INC)/*.h
299 $(RMDIR) $(DDK_PATH_LIB)
300 # $(RMDIR) $(DDK_PATH_INC)
301 $(RM) $(SDK_PATH_LIB)/*.a
302 # $(RM) $(SDK_PATH_INC)/*.h
303 $(RMDIR) $(SDK_PATH_LIB)
304 # $(RMDIR) $(SDK_PATH_INC)
305 $(RM) $(XDK_PATH_LIB)/*.a
306 # $(RM) $(XDK_PATH_INC)/*.h
307 $(RMDIR) $(XDK_PATH_LIB)
308 # $(RMDIR) $(XDK_PATH_INC)
314 .PHONY: dk dk_implib dk_clean dk_install dk_dist
321 $(MAKE) -C iface/native
326 $(MAKE) -C iface/native clean
328 iface_native_install:
335 $(MAKE) -C iface/addsys
337 iface_additional_implib:
339 iface_additional_clean:
340 $(MAKE) -C iface/addsys clean
342 iface_additional_install:
344 iface_additional_dist:
346 iface_additional_bootcd:
348 .PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
349 iface_native_dist iface_native_bootcd \
350 iface_additional iface_additional_implib iface_additional_clean \
351 iface_additional_install iface_additional_dist iface_additional_bootcd
357 $(MAKE) -C drivers/bus/$*
359 $(BUS:%=%_implib): %_implib:
360 $(MAKE) -C drivers/bus/$* implib
362 $(BUS:%=%_clean): %_clean:
363 $(MAKE) -C drivers/bus/$* clean
365 $(BUS:%=%_install): %_install:
366 $(MAKE) -C drivers/bus/$* install
368 $(BUS:%=%_dist): %_dist:
369 $(MAKE) -C drivers/bus/$* dist
371 $(BUS:%=%_bootcd): %_bootcd:
372 $(MAKE) -C drivers/bus/$* bootcd
374 .PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
375 $(BUS:%=%_install) $(BUS:%=%_dist) $(BUS:%=%_bootcd)
378 # Driver support libraries rules
381 $(MAKE) -C drivers/lib/$*
383 $(DRIVERS_LIB:%=%_implib): %_implib:
384 $(MAKE) -C drivers/lib/$* implib
386 $(DRIVERS_LIB:%=%_clean): %_clean:
387 $(MAKE) -C drivers/lib/$* clean
389 $(DRIVERS_LIB:%=%_install): %_install:
390 $(MAKE) -C drivers/lib/$* install
392 $(DRIVERS_LIB:%=%_dist): %_dist:
393 $(MAKE) -C drivers/lib/$* dist
395 $(DRIVERS_LIB:%=%_bootcd): %_bootcd:
396 $(MAKE) -C drivers/lib/$* bootcd
398 .PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
399 $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist) $(DRIVERS_LIB:%=%_bootcd)
402 # Device driver rules
404 $(DEVICE_DRIVERS): %:
405 $(MAKE) -C drivers/dd/$*
407 $(DEVICE_DRIVERS:%=%_implib): %_implib:
408 $(MAKE) -C drivers/dd/$* implib
410 $(DEVICE_DRIVERS:%=%_clean): %_clean:
411 $(MAKE) -C drivers/dd/$* clean
413 $(DEVICE_DRIVERS:%=%_install): %_install:
414 $(MAKE) -C drivers/dd/$* install
416 $(DEVICE_DRIVERS:%=%_dist): %_dist:
417 $(MAKE) -C drivers/dd/$* dist
419 $(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
420 $(MAKE) -C drivers/dd/$* bootcd
422 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
423 $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist) $(DEVICE_DRIVERS:%=%_bootcd)
429 $(MAKE) -C drivers/input/$*
431 $(INPUT_DRIVERS:%=%_implib): %_implib:
432 $(MAKE) -C drivers/input/$* implib
434 $(INPUT_DRIVERS:%=%_clean): %_clean:
435 $(MAKE) -C drivers/input/$* clean
437 $(INPUT_DRIVERS:%=%_install): %_install:
438 $(MAKE) -C drivers/input/$* install
440 $(INPUT_DRIVERS:%=%_dist): %_dist:
441 $(MAKE) -C drivers/input/$* dist
443 $(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
444 $(MAKE) -C drivers/input/$* bootcd
446 .PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
447 $(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist) $(INPUT_DRIVERS:%=%_bootcd)
450 $(MAKE) -C drivers/fs/$*
452 $(FS_DRIVERS:%=%_implib): %_implib:
453 $(MAKE) -C drivers/fs/$* implib
455 $(FS_DRIVERS:%=%_clean): %_clean:
456 $(MAKE) -C drivers/fs/$* clean
458 $(FS_DRIVERS:%=%_install): %_install:
459 $(MAKE) -C drivers/fs/$* install
461 $(FS_DRIVERS:%=%_dist): %_dist:
462 $(MAKE) -C drivers/fs/$* dist
464 $(FS_DRIVERS:%=%_bootcd): %_bootcd:
465 $(MAKE) -C drivers/fs/$* bootcd
467 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
468 $(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist) $(FS_DRIVERS:%=%_bootcd)
471 # Network driver rules
474 $(MAKE) -C drivers/net/$*
476 $(NET_DRIVERS:%=%_implib): %_implib:
477 $(MAKE) -C drivers/net/$* implib
479 $(NET_DRIVERS:%=%_clean): %_clean:
480 $(MAKE) -C drivers/net/$* clean
482 $(NET_DRIVERS:%=%_install): %_install:
483 $(MAKE) -C drivers/net/$* install
485 $(NET_DRIVERS:%=%_dist): %_dist:
486 $(MAKE) -C drivers/net/$* dist
488 $(NET_DRIVERS:%=%_bootcd): %_bootcd:
489 $(MAKE) -C drivers/net/$* bootcd
491 .PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
492 $(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist) $(NET_DRIVERS:%=%_bootcd)
494 $(NET_DEVICE_DRIVERS): %:
495 $(MAKE) -C drivers/net/dd/$*
497 $(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
498 $(MAKE) -C drivers/net/dd/$* implib
500 $(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
501 $(MAKE) -C drivers/net/dd/$* clean
503 $(NET_DEVICE_DRIVERS:%=%_install): %_install:
504 $(MAKE) -C drivers/net/dd/$* install
506 $(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
507 $(MAKE) -C drivers/net/dd/$* dist
509 $(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
510 $(MAKE) -C drivers/net/dd/$* bootcd
512 .PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
513 $(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_dist) $(NET_DEVICE_DRIVERS:%=%_bootcd)
516 # storage driver rules
518 $(STORAGE_DRIVERS): %:
519 $(MAKE) -C drivers/storage/$*
521 $(STORAGE_DRIVERS:%=%_implib): %_implib:
522 $(MAKE) -C drivers/storage/$* implib
524 $(STORAGE_DRIVERS:%=%_clean): %_clean:
525 $(MAKE) -C drivers/storage/$* clean
527 $(STORAGE_DRIVERS:%=%_install): %_install:
528 $(MAKE) -C drivers/storage/$* install
530 $(STORAGE_DRIVERS:%=%_dist): %_dist:
531 $(MAKE) -C drivers/storage/$* dist
533 $(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
534 $(MAKE) -C drivers/storage/$* bootcd
536 .PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
537 $(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist) $(STORAGE_DRIVERS:%=%_bootcd)
544 $(MAKE) -C loaders/$*
546 $(LOADERS:%=%_implib): %_implib:
548 $(LOADERS:%=%_clean): %_clean:
549 $(MAKE) -C loaders/$* clean
551 $(LOADERS:%=%_install): %_install:
552 $(MAKE) -C loaders/$* install
554 $(LOADERS:%=%_dist): %_dist:
555 $(MAKE) -C loaders/$* dist
557 .PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
561 # Required system components
568 $(MAKE) -C ntoskrnl implib
571 $(MAKE) -C ntoskrnl clean
574 $(MAKE) -C ntoskrnl install
577 $(MAKE) -C ntoskrnl dist
580 $(MAKE) -C ntoskrnl bootcd
582 .PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
585 # Hardware Abstraction Layer import library
592 $(MAKE) -C hal/hal implib
595 $(MAKE) -C hal/hal clean
598 $(MAKE) -C hal/hal install
601 $(MAKE) -C hal/hal dist
604 $(MAKE) -C hal/hal bootcd
606 .PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
609 # Hardware Abstraction Layers
615 $(HALS:%=%_implib): %_implib:
616 $(MAKE) -C hal/$* implib
618 $(HALS:%=%_clean): %_clean:
619 $(MAKE) -C hal/$* clean
621 $(HALS:%=%_install): %_install:
622 $(MAKE) -C hal/$* install
624 $(HALS:%=%_dist): %_dist:
625 $(MAKE) -C hal/$* dist
627 $(HALS:%=%_bootcd): %_bootcd:
628 $(MAKE) -C hal/$* bootcd
630 .PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist) $(HALS:%=%_bootcd)
633 # File system libraries
637 $(MAKE) -C lib/fslib/$*
639 $(LIB_FSLIB:%=%_depends): %_depends:
640 $(MAKE) -C lib/fslib/$* depends
642 $(LIB_FSLIB:%=%_implib): %_implib:
643 $(MAKE) -C lib/fslib/$* implib
645 $(LIB_FSLIB:%=%_clean): %_clean:
646 $(MAKE) -C lib/fslib/$* clean
648 $(LIB_FSLIB:%=%_install): %_install:
649 $(MAKE) -C lib/fslib/$* install
651 $(LIB_FSLIB:%=%_dist): %_dist:
652 $(MAKE) -C lib/fslib/$* dist
654 $(LIB_FSLIB:%=%_bootcd): %_bootcd:
655 $(MAKE) -C lib/fslib/$* bootcd
657 .PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
658 $(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_dist) $(LIB_FSLIB:%=%_bootcd)
667 $(DLLS:%=%_depends): %_depends:
668 $(MAKE) -C lib/$* depends
670 $(DLLS:%=%_implib): %_implib:
671 $(MAKE) -C lib/$* implib
673 $(DLLS:%=%_clean): %_clean:
674 $(MAKE) -C lib/$* clean
676 $(DLLS:%=%_install): %_install:
677 $(MAKE) -C lib/$* install
679 $(DLLS:%=%_dist): %_dist:
680 $(MAKE) -C lib/$* dist
682 $(DLLS:%=%_bootcd): %_bootcd:
683 $(MAKE) -C lib/$* bootcd
685 .PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist) $(DLLS:%=%_bootcd)
688 # Subsystem support modules
694 $(SUBSYS:%=%_depends): %_depends:
695 $(MAKE) -C subsys/$* depends
697 $(SUBSYS:%=%_implib): %_implib:
698 $(MAKE) -C subsys/$* implib
700 $(SUBSYS:%=%_clean): %_clean:
701 $(MAKE) -C subsys/$* clean
703 $(SUBSYS:%=%_install): %_install:
704 $(MAKE) -C subsys/$* install
706 $(SUBSYS:%=%_dist): %_dist:
707 $(MAKE) -C subsys/$* dist
709 $(SUBSYS:%=%_bootcd): %_bootcd:
710 $(MAKE) -C subsys/$* bootcd
712 .PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
713 $(SUBSYS:%=%_dist) $(SUBSYS:%=%_bootcd)
716 # Create an installation
720 $(RM) $(INSTALL_DIR)/system32/drivers/*.*
721 $(RM) $(INSTALL_DIR)/system32/config/*.*
722 $(RM) $(INSTALL_DIR)/system32/*.*
723 $(RM) $(INSTALL_DIR)/symbols/*.*
724 $(RM) $(INSTALL_DIR)/media/fonts/*.*
725 $(RM) $(INSTALL_DIR)/media/*.*
726 $(RM) $(INSTALL_DIR)/bin/*.*
727 $(RM) $(INSTALL_DIR)/*.com
728 $(RM) $(INSTALL_DIR)/*.bat
729 $(RMDIR) $(INSTALL_DIR)/system32/drivers
730 $(RMDIR) $(INSTALL_DIR)/system32/config
731 $(RMDIR) $(INSTALL_DIR)/system32
732 $(RMDIR) $(INSTALL_DIR)/symbols
733 $(RMDIR) $(INSTALL_DIR)/media/fonts
734 $(RMDIR) $(INSTALL_DIR)/media
735 $(RMDIR) $(INSTALL_DIR)/bin
736 $(RMDIR) $(INSTALL_DIR)
738 ifneq ($(BOOTCD_INSTALL),)
741 $(RMKDIR) $(INSTALL_DIR)
744 #$(CP) bootdata/autorun.inf $(INSTALL_DIR)/../autorun.inf
745 $(CP) bootdata/readme.txt $(INSTALL_DIR)/../readme.txt
746 $(RLINE) bootdata/hivecls.inf $(INSTALL_DIR)/hivecls.inf
747 $(RLINE) bootdata/hivedef.inf $(INSTALL_DIR)/hivedef.inf
748 $(RLINE) bootdata/hivesft.inf $(INSTALL_DIR)/hivesft.inf
749 $(RLINE) bootdata/hivesys.inf $(INSTALL_DIR)/hivesys.inf
750 $(RLINE) bootdata/txtsetup.sif $(INSTALL_DIR)/txtsetup.sif
751 $(CP) system.hiv $(INSTALL_DIR)/system.hiv
752 $(CP) media/fonts/helb____.ttf $(INSTALL_DIR)/helb____.ttf
753 $(CP) media/fonts/timr____.ttf $(INSTALL_DIR)/timr____.ttf
755 else # BOOTCD_INSTALL
758 $(RMKDIR) $(INSTALL_DIR)
759 $(RMKDIR) $(INSTALL_DIR)/bin
760 $(RMKDIR) $(INSTALL_DIR)/media
761 $(RMKDIR) $(INSTALL_DIR)/media/fonts
762 $(RMKDIR) $(INSTALL_DIR)/symbols
763 $(RMKDIR) $(INSTALL_DIR)/system32
764 $(RMKDIR) $(INSTALL_DIR)/system32/config
765 $(RMKDIR) $(INSTALL_DIR)/system32/drivers
768 $(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
769 $(CP) boot.bat $(INSTALL_DIR)/boot.bat
770 $(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
771 $(CP) system.hiv $(INSTALL_DIR)/system32/config/system.hiv
772 $(CP) media/fonts/helb____.ttf $(INSTALL_DIR)/media/fonts/helb____.ttf
773 $(CP) media/fonts/timr____.ttf $(INSTALL_DIR)/media/fonts/timr____.ttf
775 endif # BOOTCD_INSTALL
777 .PHONY: install_clean install_dirs install_before
781 # Make a distribution saveset
785 $(RM) $(DIST_DIR)/symbols/*.sym
786 $(RM) $(DIST_DIR)/drivers/*.sys
787 $(RM) $(DIST_DIR)/subsys/*.exe
788 $(RM) $(DIST_DIR)/dlls/*.dll
789 $(RM) $(DIST_DIR)/apps/*.exe
790 $(RM) $(DIST_DIR)/*.exe
791 $(RMDIR) $(DIST_DIR)/symbols
792 $(RMDIR) $(DIST_DIR)/subsys
793 $(RMDIR) $(DIST_DIR)/drivers
794 $(RMDIR) $(DIST_DIR)/dlls
795 $(RMDIR) $(DIST_DIR)/apps
799 $(RMKDIR) $(DIST_DIR)
800 $(RMKDIR) $(DIST_DIR)/apps
801 $(RMKDIR) $(DIST_DIR)/dlls
802 $(RMKDIR) $(DIST_DIR)/drivers
803 $(RMKDIR) $(DIST_DIR)/subsys
804 $(RMKDIR) $(DIST_DIR)/symbols
806 .PHONY: dist_clean dist_dirs
810 find . -name "*.[ch]" -print | etags --language=c -