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
34 LIB_STATIC
= string rosrtl epsapi zlib
37 # advapi32 cards crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll
38 # epsapi psapi rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda
39 DLLS
= advapi32 cards crtdll fmifs freetype gdi32 kernel32 packet lzexpand msafd \
40 msvcrt ntdll psapi secur32 syssetup twain user32 version winedbgc \
41 winspool ws2help ws2_32 wsock32 wshirda iphlpapi kbdus
43 SUBSYS
= smss win32k csrss ntvdm
46 # Select the server(s) you want to build
48 #SERVERS = posix linux os2
55 # Driver support libraries
59 # Kernel mode device drivers
61 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
62 DEVICE_DRIVERS
= beep blue debugout floppy null serial vga videoprt bootvid
64 # Kernel mode input drivers
65 INPUT_DRIVERS
= keyboard mouclass psaux sermouse
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
71 # Kernel mode networking drivers
72 # afd ndis npf tcpip tdi wshtcpip
73 NET_DRIVERS
= afd ndis npf tcpip tdi wshtcpip
75 # Kernel mode networking device drivers
77 NET_DEVICE_DRIVERS
= ne2000
79 # Kernel mode storage drivers
80 # atapi cdrom class2 disk scsiport
81 STORAGE_DRIVERS
= atapi cdrom class2 disk scsiport diskdump
84 # autochk cmd format gstart services setup usetup welcome winlogon
85 SYS_APPS
= autochk cmd format gstart services setup usetup welcome winlogon
89 SYS_SVC
= rpcss eventlog
91 APPS
= tests testsets utils
94 # External (sub)systems for ReactOS
95 # rosapps wine posix os2 (requires c++) java (non-existant)
96 EXTERNALS
= rosapps wine posix os2
98 ifeq ($(ROS_BUILD_EXT
),yes
)
99 EXT_MODULES
= $(EXTERNALS
)
104 KERNEL_DRIVERS
= $(DRIVERS_LIB
) $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) \
105 $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
) $(STORAGE_DRIVERS
)
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
)
114 #config: $(TOOLS:%=%_config)
116 depends
: $(LIB_STATIC
:%=%_depends
) $(LIB_FSLIB
:%=%_depends
) $(DLLS
:%=%_depends
) $(SUBSYS
:%=%_depends
) $(SYS_SVC
:%=%_depends
) \
117 $(EXT_MODULES
:%=%_depends
) $(POSIX_LIBS
:%=%_depends
)
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
)
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
134 $(RM
) $(PATH_TO_TOP
)/include/roscfg.h
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
)
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
)
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
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
)
161 bootcd_install_before
:
162 $(RLINE
) bootdata
/autorun.inf
$(BOOTCD_DIR
)/autorun.inf
163 $(RLINE
) bootdata
/readme.txt
$(BOOTCD_DIR
)/readme.txt
164 $(RLINE
) bootdata
/hivecls.inf
$(BOOTCD_DIR
)/reactos
/hivecls.inf
165 $(RLINE
) bootdata
/hivedef.inf
$(BOOTCD_DIR
)/reactos
/hivedef.inf
166 $(RLINE
) bootdata
/hivesft.inf
$(BOOTCD_DIR
)/reactos
/hivesft.inf
167 $(RLINE
) bootdata
/hivesys.inf
$(BOOTCD_DIR
)/reactos
/hivesys.inf
168 $(RLINE
) bootdata
/txtsetup.sif
$(BOOTCD_DIR
)/reactos
/txtsetup.sif
169 $(CP
) bootdata
/icon.ico
$(BOOTCD_DIR
)/icon.ico
170 $(CP
) media
/nls
/c_1252.nls
$(BOOTCD_DIR
)/reactos
/c_1252.nls
171 $(CP
) media
/nls
/c_437.nls
$(BOOTCD_DIR
)/reactos
/c_437.nls
172 $(CP
) media
/nls
/l_intl.nls
$(BOOTCD_DIR
)/reactos
/l_intl.nls
174 bootcd
: all bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
175 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/L
$(BOOTCD_DIR
)/reactos
/I
176 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/RC
$(BOOTCD_DIR
)/reactos
/reactos.inf
/L
$(BOOTCD_DIR
)/reactos
/N
177 - $(RM
) $(BOOTCD_DIR
)/reactos
/reactos.inf
179 .PHONY
: all depends implib
clean clean_before
install dist bootcd_directory_layout \
180 bootcd_bootstrap_files bootcd
184 # System Applications
187 $(MAKE
) -C subsys
/system
/$*
189 $(SYS_APPS
:%=%_implib
): %_implib
:
190 $(MAKE
) -C subsys
/system
/$* implib
192 $(SYS_APPS
:%=%_clean
): %_clean
:
193 $(MAKE
) -C subsys
/system
/$* clean
195 $(SYS_APPS
:%=%_dist
): %_dist
:
196 $(MAKE
) -C subsys
/system
/$* dist
198 $(SYS_APPS
:%=%_install
): %_install
:
199 $(MAKE
) -C subsys
/system
/$* install
201 $(SYS_APPS
:%=%_bootcd
): %_bootcd
:
202 $(MAKE
) -C subsys
/system
/$* bootcd
204 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_dist
) $(SYS_APPS
:%=%_bootcd
)
210 $(MAKE
) -C services
/$*
212 $(SYS_SVC
:%=%_depends
): %_depends
:
213 $(MAKE
) -C services
/$* depends
215 $(SYS_SVC
:%=%_implib
): %_implib
:
216 $(MAKE
) -C services
/$* implib
218 $(SYS_SVC
:%=%_clean
): %_clean
:
219 $(MAKE
) -C services
/$* clean
221 $(SYS_SVC
:%=%_dist
): %_dist
:
222 $(MAKE
) -C services
/$* dist
224 $(SYS_SVC
:%=%_install
): %_install
:
225 $(MAKE
) -C services
/$* install
227 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_depends
) $(SYS_SVC
:%=%_implib
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
) $(SYS_SVC
:%=%_dist
)
234 # Extra (optional system) Applications
239 $(APPS
:%=%_implib
): %_implib
:
240 $(MAKE
) -C apps
/$* implib
242 $(APPS
:%=%_clean
): %_clean
:
243 $(MAKE
) -C apps
/$* clean
245 $(APPS
:%=%_dist
): %_dist
:
246 $(MAKE
) -C apps
/$* dist
248 $(APPS
:%=%_install
): %_install
:
249 $(MAKE
) -C apps
/$* install
251 .PHONY
: $(APPS
) $(APPS
:%=%_implib
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
) $(APPS
:%=%_dist
)
255 # External ports and subsystem personalities
258 $(MAKE
) -C
$(ROOT_PATH
)/$*
260 $(EXTERNALS
:%=%_depends
): %_depends
:
261 $(MAKE
) -C
$(ROOT_PATH
)/$* depends
263 $(EXTERNALS
:%=%_implib
): %_implib
:
264 $(MAKE
) -C
$(ROOT_PATH
)/$* implib
266 $(EXTERNALS
:%=%_clean
): %_clean
:
267 $(MAKE
) -C
$(ROOT_PATH
)/$* clean
269 $(EXTERNALS
:%=%_dist
): %_dist
:
270 $(MAKE
) -C
$(ROOT_PATH
)/$* dist
272 $(EXTERNALS
:%=%_install
): %_install
:
273 $(MAKE
) -C
$(ROOT_PATH
)/$* install
275 .PHONY
: $(EXTERNALS
) $(EXTERNALS
:%=%_depends
) $(EXTERNALS
:%=%_implib
) $(EXTERNALS
:%=%_clean
) $(EXTERNALS
:%=%_install
) $(EXTERNALS
:%=%_dist
)
287 $(MAKE
) -C tools
clean
293 .PHONY
: tools tools_implib tools_clean tools_install tools_dist
301 $(RMKDIR
) $(DDK_PATH
)
302 $(RMKDIR
) $(DDK_PATH_LIB
)
303 $(RMKDIR
) $(DDK_PATH_INC
)
304 $(RMKDIR
) $(SDK_PATH
)
305 $(RMKDIR
) $(SDK_PATH_LIB
)
306 $(RMKDIR
) $(SDK_PATH_INC
)
307 $(RMKDIR
) $(XDK_PATH
)
308 $(RMKDIR
) $(XDK_PATH_LIB
)
309 $(RMKDIR
) $(XDK_PATH_INC
)
313 # WARNING! Be very sure that there are no important files
314 # in these directories before cleaning them!!!
316 $(RM
) $(DDK_PATH_LIB
)/*.a
317 # $(RM) $(DDK_PATH_INC)/*.h
318 $(RMDIR
) $(DDK_PATH_LIB
)
319 # $(RMDIR) $(DDK_PATH_INC)
320 $(RM
) $(SDK_PATH_LIB
)/*.a
321 # $(RM) $(SDK_PATH_INC)/*.h
322 $(RMDIR
) $(SDK_PATH_LIB
)
323 # $(RMDIR) $(SDK_PATH_INC)
324 $(RM
) $(XDK_PATH_LIB
)/*.a
325 # $(RM) $(XDK_PATH_INC)/*.h
326 $(RMDIR
) $(XDK_PATH_LIB
)
327 # $(RMDIR) $(XDK_PATH_INC)
333 .PHONY
: dk dk_implib dk_clean dk_install dk_dist
340 $(MAKE
) -C iface
/native
345 $(MAKE
) -C iface
/native
clean
347 iface_native_install
:
354 $(MAKE
) -C iface
/addsys
356 iface_additional_implib
:
358 iface_additional_clean
:
359 $(MAKE
) -C iface
/addsys
clean
361 iface_additional_install
:
363 iface_additional_dist
:
365 iface_additional_bootcd
:
367 .PHONY
: iface_native iface_native_implib iface_native_clean iface_native_install \
368 iface_native_dist iface_native_bootcd \
369 iface_additional iface_additional_implib iface_additional_clean \
370 iface_additional_install iface_additional_dist iface_additional_bootcd
376 $(MAKE
) -C drivers
/bus
/$*
378 $(BUS
:%=%_implib
): %_implib
:
379 $(MAKE
) -C drivers
/bus
/$* implib
381 $(BUS
:%=%_clean
): %_clean
:
382 $(MAKE
) -C drivers
/bus
/$* clean
384 $(BUS
:%=%_install
): %_install
:
385 $(MAKE
) -C drivers
/bus
/$* install
387 $(BUS
:%=%_dist
): %_dist
:
388 $(MAKE
) -C drivers
/bus
/$* dist
390 $(BUS
:%=%_bootcd
): %_bootcd
:
391 $(MAKE
) -C drivers
/bus
/$* bootcd
393 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
394 $(BUS
:%=%_install
) $(BUS
:%=%_dist
) $(BUS
:%=%_bootcd
)
397 # Driver support libraries rules
400 $(MAKE
) -C drivers
/lib
/$*
402 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
403 $(MAKE
) -C drivers
/lib
/$* implib
405 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
406 $(MAKE
) -C drivers
/lib
/$* clean
408 $(DRIVERS_LIB
:%=%_install
): %_install
:
409 $(MAKE
) -C drivers
/lib
/$* install
411 $(DRIVERS_LIB
:%=%_dist
): %_dist
:
412 $(MAKE
) -C drivers
/lib
/$* dist
414 $(DRIVERS_LIB
:%=%_bootcd
): %_bootcd
:
415 $(MAKE
) -C drivers
/lib
/$* bootcd
417 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_clean
) \
418 $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_dist
) $(DRIVERS_LIB
:%=%_bootcd
)
421 # Device driver rules
423 $(DEVICE_DRIVERS
): %:
424 $(MAKE
) -C drivers
/dd
/$*
426 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
427 $(MAKE
) -C drivers
/dd
/$* implib
429 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
430 $(MAKE
) -C drivers
/dd
/$* clean
432 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
433 $(MAKE
) -C drivers
/dd
/$* install
435 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
436 $(MAKE
) -C drivers
/dd
/$* dist
438 $(DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
439 $(MAKE
) -C drivers
/dd
/$* bootcd
441 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_clean
) \
442 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_dist
) $(DEVICE_DRIVERS
:%=%_bootcd
)
448 $(MAKE
) -C drivers
/input
/$*
450 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
451 $(MAKE
) -C drivers
/input
/$* implib
453 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
454 $(MAKE
) -C drivers
/input
/$* clean
456 $(INPUT_DRIVERS
:%=%_install
): %_install
:
457 $(MAKE
) -C drivers
/input
/$* install
459 $(INPUT_DRIVERS
:%=%_dist
): %_dist
:
460 $(MAKE
) -C drivers
/input
/$* dist
462 $(INPUT_DRIVERS
:%=%_bootcd
): %_bootcd
:
463 $(MAKE
) -C drivers
/input
/$* bootcd
465 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_clean
)\
466 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_dist
) $(INPUT_DRIVERS
:%=%_bootcd
)
469 $(MAKE
) -C drivers
/fs
/$*
471 $(FS_DRIVERS
:%=%_implib
): %_implib
:
472 $(MAKE
) -C drivers
/fs
/$* implib
474 $(FS_DRIVERS
:%=%_clean
): %_clean
:
475 $(MAKE
) -C drivers
/fs
/$* clean
477 $(FS_DRIVERS
:%=%_install
): %_install
:
478 $(MAKE
) -C drivers
/fs
/$* install
480 $(FS_DRIVERS
:%=%_dist
): %_dist
:
481 $(MAKE
) -C drivers
/fs
/$* dist
483 $(FS_DRIVERS
:%=%_bootcd
): %_bootcd
:
484 $(MAKE
) -C drivers
/fs
/$* bootcd
486 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_clean
) \
487 $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_dist
) $(FS_DRIVERS
:%=%_bootcd
)
490 # Network driver rules
493 $(MAKE
) -C drivers
/net
/$*
495 $(NET_DRIVERS
:%=%_implib
): %_implib
:
496 $(MAKE
) -C drivers
/net
/$* implib
498 $(NET_DRIVERS
:%=%_clean
): %_clean
:
499 $(MAKE
) -C drivers
/net
/$* clean
501 $(NET_DRIVERS
:%=%_install
): %_install
:
502 $(MAKE
) -C drivers
/net
/$* install
504 $(NET_DRIVERS
:%=%_dist
): %_dist
:
505 $(MAKE
) -C drivers
/net
/$* dist
507 $(NET_DRIVERS
:%=%_bootcd
): %_bootcd
:
508 $(MAKE
) -C drivers
/net
/$* bootcd
510 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_clean
) \
511 $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_dist
) $(NET_DRIVERS
:%=%_bootcd
)
513 $(NET_DEVICE_DRIVERS
): %:
514 $(MAKE
) -C drivers
/net
/dd
/$*
516 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
517 $(MAKE
) -C drivers
/net
/dd
/$* implib
519 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
520 $(MAKE
) -C drivers
/net
/dd
/$* clean
522 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
523 $(MAKE
) -C drivers
/net
/dd
/$* install
525 $(NET_DEVICE_DRIVERS
:%=%_dist
): %_dist
:
526 $(MAKE
) -C drivers
/net
/dd
/$* dist
528 $(NET_DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
529 $(MAKE
) -C drivers
/net
/dd
/$* bootcd
531 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) $(NET_DEVICE_DRIVERS
:%=%_implib
) \
532 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_dist
) $(NET_DEVICE_DRIVERS
:%=%_bootcd
)
535 # storage driver rules
537 $(STORAGE_DRIVERS
): %:
538 $(MAKE
) -C drivers
/storage
/$*
540 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
541 $(MAKE
) -C drivers
/storage
/$* implib
543 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
544 $(MAKE
) -C drivers
/storage
/$* clean
546 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
547 $(MAKE
) -C drivers
/storage
/$* install
549 $(STORAGE_DRIVERS
:%=%_dist
): %_dist
:
550 $(MAKE
) -C drivers
/storage
/$* dist
552 $(STORAGE_DRIVERS
:%=%_bootcd
): %_bootcd
:
553 $(MAKE
) -C drivers
/storage
/$* bootcd
555 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) $(STORAGE_DRIVERS
:%=%_implib
) \
556 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_dist
) $(STORAGE_DRIVERS
:%=%_bootcd
)
563 $(MAKE
) -C loaders
/$*
565 $(LOADERS
:%=%_implib
): %_implib
:
567 $(LOADERS
:%=%_clean
): %_clean
:
568 $(MAKE
) -C loaders
/$* clean
570 $(LOADERS
:%=%_install
): %_install
:
571 $(MAKE
) -C loaders
/$* install
573 $(LOADERS
:%=%_dist
): %_dist
:
574 $(MAKE
) -C loaders
/$* dist
576 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
) \
580 # Required system components
587 $(MAKE
) -C ntoskrnl implib
590 $(MAKE
) -C ntoskrnl
clean
593 $(MAKE
) -C ntoskrnl
install
596 $(MAKE
) -C ntoskrnl
dist
599 $(MAKE
) -C ntoskrnl bootcd
601 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
604 # Hardware Abstraction Layer import library
611 $(MAKE
) -C hal
/hal implib
614 $(MAKE
) -C hal
/hal
clean
617 $(MAKE
) -C hal
/hal
install
620 $(MAKE
) -C hal
/hal
dist
623 $(MAKE
) -C hal
/hal bootcd
625 .PHONY
: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
628 # Hardware Abstraction Layers
634 $(HALS
:%=%_implib
): %_implib
:
635 $(MAKE
) -C hal
/$* implib
637 $(HALS
:%=%_clean
): %_clean
:
638 $(MAKE
) -C hal
/$* clean
640 $(HALS
:%=%_install
): %_install
:
641 $(MAKE
) -C hal
/$* install
643 $(HALS
:%=%_dist
): %_dist
:
644 $(MAKE
) -C hal
/$* dist
646 $(HALS
:%=%_bootcd
): %_bootcd
:
647 $(MAKE
) -C hal
/$* bootcd
649 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_dist
) $(HALS
:%=%_bootcd
)
652 # File system libraries
656 $(MAKE
) -C lib
/fslib
/$*
658 $(LIB_FSLIB
:%=%_depends
): %_depends
:
659 $(MAKE
) -C lib
/fslib
/$* depends
661 $(LIB_FSLIB
:%=%_implib
): %_implib
:
662 $(MAKE
) -C lib
/fslib
/$* implib
664 $(LIB_FSLIB
:%=%_clean
): %_clean
:
665 $(MAKE
) -C lib
/fslib
/$* clean
667 $(LIB_FSLIB
:%=%_install
): %_install
:
668 $(MAKE
) -C lib
/fslib
/$* install
670 $(LIB_FSLIB
:%=%_dist
): %_dist
:
671 $(MAKE
) -C lib
/fslib
/$* dist
673 $(LIB_FSLIB
:%=%_bootcd
): %_bootcd
:
674 $(MAKE
) -C lib
/fslib
/$* bootcd
676 .PHONY
: $(LIB_FSLIB
) $(LIB_FSLIB
:%=%_depends
) $(LIB_FSLIB
:%=%_implib
) $(LIB_FSLIB
:%=%_clean
) \
677 $(LIB_FSLIB
:%=%_install
) $(LIB_FSLIB
:%=%_dist
) $(LIB_FSLIB
:%=%_bootcd
)
686 $(LIB_STATIC
:%=%_depends
): %_depends
:
687 $(MAKE
) -C lib
/string depends
689 $(LIB_STATIC
:%=%_implib
): %_implib
:
690 $(MAKE
) -C lib
/$* implib
692 $(LIB_STATIC
:%=%_clean
): %_clean
:
693 $(MAKE
) -C lib
/$* clean
695 $(LIB_STATIC
:%=%_install
): %_install
:
696 $(MAKE
) -C lib
/$* install
698 $(LIB_STATIC
:%=%_dist
): %_dist
:
699 $(MAKE
) -C lib
/$* dist
701 $(LIB_STATIC
:%=%_bootcd
): %_bootcd
:
702 $(MAKE
) -C lib
/$* bootcd
704 .PHONY
: $(LIB_STATIC
) $(LIB_STATIC
:%=%_depends
) $(LIB_STATIC
:%=%_implib
) $(LIB_STATIC
:%=%_clean
) \
705 $(LIB_STATIC
:%=%_install
) $(LIB_STATIC
:%=%_dist
) $(LIB_STATIC
:%=%_bootcd
)
714 $(DLLS
:%=%_depends
): %_depends
:
715 $(MAKE
) -C lib
/$* depends
717 $(DLLS
:%=%_implib
): %_implib
:
718 $(MAKE
) -C lib
/$* implib
720 $(DLLS
:%=%_clean
): %_clean
:
721 $(MAKE
) -C lib
/$* clean
723 $(DLLS
:%=%_install
): %_install
:
724 $(MAKE
) -C lib
/$* install
726 $(DLLS
:%=%_dist
): %_dist
:
727 $(MAKE
) -C lib
/$* dist
729 $(DLLS
:%=%_bootcd
): %_bootcd
:
730 $(MAKE
) -C lib
/$* bootcd
732 .PHONY
: $(DLLS
) $(DLLS
:%=%_depends
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_dist
) $(DLLS
:%=%_bootcd
)
735 # Subsystem support modules
741 $(SUBSYS
:%=%_depends
): %_depends
:
742 $(MAKE
) -C subsys
/$* depends
744 $(SUBSYS
:%=%_implib
): %_implib
:
745 $(MAKE
) -C subsys
/$* implib
747 $(SUBSYS
:%=%_clean
): %_clean
:
748 $(MAKE
) -C subsys
/$* clean
750 $(SUBSYS
:%=%_install
): %_install
:
751 $(MAKE
) -C subsys
/$* install
753 $(SUBSYS
:%=%_dist
): %_dist
:
754 $(MAKE
) -C subsys
/$* dist
756 $(SUBSYS
:%=%_bootcd
): %_bootcd
:
757 $(MAKE
) -C subsys
/$* bootcd
759 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_depends
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
760 $(SUBSYS
:%=%_dist
) $(SUBSYS
:%=%_bootcd
)
763 # Regression testsuite
769 $(REGTESTS
:%=%_clean
): %_clean
:
770 $(MAKE
) -C regtests
clean
772 $(REGTESTS
:%=%_install
): %_install
:
773 $(MAKE
) -C regtests
install
775 .PHONY
: $(REGTESTS
) $(REGTESTS
:%=%_depends
) $(SUBSYS
:%=%_clean
) $(REGTESTS
:%=%_install
)
779 # Create an installation
783 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
784 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
785 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
786 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
787 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
788 $(RM
) $(INSTALL_DIR
)/media
/*.
*
789 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
790 $(RM
) $(INSTALL_DIR
)/*.com
791 $(RM
) $(INSTALL_DIR
)/*.bat
792 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
793 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
794 $(RMDIR
) $(INSTALL_DIR
)/system32
795 $(RMDIR
) $(INSTALL_DIR
)/symbols
796 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
797 $(RMDIR
) $(INSTALL_DIR
)/media
798 $(RMDIR
) $(INSTALL_DIR
)/bin
799 $(RMDIR
) $(INSTALL_DIR
)
801 ifneq ($(BOOTCD_INSTALL
),)
804 $(RMKDIR
) $(INSTALL_DIR
)
807 $(RLINE
) bootdata
/autorun.inf
$(INSTALL_DIR
)/..
/autorun.inf
808 $(RLINE
) bootdata
/readme.txt
$(INSTALL_DIR
)/..
/readme.txt
809 $(RLINE
) bootdata
/hivecls.inf
$(INSTALL_DIR
)/hivecls.inf
810 $(RLINE
) bootdata
/hivedef.inf
$(INSTALL_DIR
)/hivedef.inf
811 $(RLINE
) bootdata
/hivesft.inf
$(INSTALL_DIR
)/hivesft.inf
812 $(RLINE
) bootdata
/hivesys.inf
$(INSTALL_DIR
)/hivesys.inf
813 $(RLINE
) bootdata
/txtsetup.sif
$(INSTALL_DIR
)/txtsetup.sif
814 $(CP
) bootdata
/icon.ico
$(INSTALL_DIR
)/..
/icon.ico
815 $(CP
) media
/fonts
$(INSTALL_DIR
)
816 $(CP
) media
/nls
$(INSTALL_DIR
)
818 else # !BOOTCD_INSTALL
821 $(RMKDIR
) $(INSTALL_DIR
)
822 $(RMKDIR
) $(INSTALL_DIR
)/bin
823 $(RMKDIR
) $(INSTALL_DIR
)/media
824 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
825 $(RMKDIR
) $(INSTALL_DIR
)/symbols
826 $(RMKDIR
) $(INSTALL_DIR
)/system32
827 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
828 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
831 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
832 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
833 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
834 $(CP
) media
/fonts
$(INSTALL_DIR
)/media
/fonts
835 $(CP
) media
/nls
$(INSTALL_DIR
)/system32
836 $(CP
) media
/nls
/c_1252.nls
$(INSTALL_DIR
)/system32
/ansi.nls
837 $(CP
) media
/nls
/c_437.nls
$(INSTALL_DIR
)/system32
/oem.nls
838 $(CP
) media
/nls
/l_intl.nls
$(INSTALL_DIR
)/system32
/casemap.nls
840 endif # BOOTCD_INSTALL
842 .PHONY
: install_clean install_dirs install_before
846 # Make a distribution saveset
850 $(RM
) $(DIST_DIR
)/symbols
/*.sym
851 $(RM
) $(DIST_DIR
)/drivers
/*.sys
852 $(RM
) $(DIST_DIR
)/subsys
/*.exe
853 $(RM
) $(DIST_DIR
)/dlls
/*.dll
854 $(RM
) $(DIST_DIR
)/apps
/*.exe
855 $(RM
) $(DIST_DIR
)/*.exe
856 $(RMDIR
) $(DIST_DIR
)/symbols
857 $(RMDIR
) $(DIST_DIR
)/subsys
858 $(RMDIR
) $(DIST_DIR
)/drivers
859 $(RMDIR
) $(DIST_DIR
)/dlls
860 $(RMDIR
) $(DIST_DIR
)/apps
864 $(RMKDIR
) $(DIST_DIR
)
865 $(RMKDIR
) $(DIST_DIR
)/apps
866 $(RMKDIR
) $(DIST_DIR
)/dlls
867 $(RMKDIR
) $(DIST_DIR
)/drivers
868 $(RMKDIR
) $(DIST_DIR
)/subsys
869 $(RMKDIR
) $(DIST_DIR
)/symbols
871 .PHONY
: dist_clean dist_dirs
874 find .
-name
"*.[ch]" -print | etags
--language
=c
-