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 FREELDR_DIR
= ..
/freeldr
153 $(MAKE
) -C
$(FREELDR_DIR
)
155 bootcd_directory_layout
: freeldr
156 $(RMKDIR
) $(BOOTCD_DIR
)
157 $(RMKDIR
) $(BOOTCD_DIR
)/bootdisk
158 $(RMKDIR
) $(BOOTCD_DIR
)/loader
159 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
160 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
/system32
161 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/..
/isoboot.bin
162 $(CP
) ${FREELDR_DIR}/bootsect
/dosmbr.bin
${BOOTCD_DIR}/loader
/dosmbr.bin
163 $(CP
) ${FREELDR_DIR}/bootsect
/ext2.bin
${BOOTCD_DIR}/loader
/ext2.bin
164 $(CP
) ${FREELDR_DIR}/bootsect
/fat.bin
${BOOTCD_DIR}/loader
/fat.bin
165 $(CP
) ${FREELDR_DIR}/bootsect
/fat32.bin
${BOOTCD_DIR}/loader
/fat32.bin
166 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/loader
/isoboot.bin
167 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${BOOTCD_DIR}/loader
/freeldr.sys
168 $(CP
) ${FREELDR_DIR}/FREELDR.INI
${BOOTCD_DIR}/loader
/freeldr.ini
169 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/setupldr.sys
${BOOTCD_DIR}/loader
/setupldr.sys
171 bootcd_bootstrap_files
: $(COMPONENTS
:%=%_bootcd
) $(HALS
:%=%_bootcd
) $(BUS
:%=%_bootcd
) \
172 $(LIB_STATIC
:%=%_bootcd
) $(LIB_FSLIB
:%=%_bootcd
) $(DLLS
:%=%_bootcd
) $(KERNEL_DRIVERS
:%=%_bootcd
) \
173 $(SUBSYS
:%=%_bootcd
) $(SYS_APPS
:%=%_bootcd
)
175 bootcd_install_before
:
176 $(RLINE
) bootdata
/autorun.inf
$(BOOTCD_DIR
)/autorun.inf
177 $(RLINE
) bootdata
/readme.txt
$(BOOTCD_DIR
)/readme.txt
178 $(RLINE
) bootdata
/hivecls.inf
$(BOOTCD_DIR
)/reactos
/hivecls.inf
179 $(RLINE
) bootdata
/hivedef.inf
$(BOOTCD_DIR
)/reactos
/hivedef.inf
180 $(RLINE
) bootdata
/hivesft.inf
$(BOOTCD_DIR
)/reactos
/hivesft.inf
181 $(RLINE
) bootdata
/hivesys.inf
$(BOOTCD_DIR
)/reactos
/hivesys.inf
182 $(RLINE
) bootdata
/txtsetup.sif
$(BOOTCD_DIR
)/reactos
/txtsetup.sif
183 $(CP
) bootdata
/icon.ico
$(BOOTCD_DIR
)/icon.ico
184 $(CP
) media
/nls
/c_1252.nls
$(BOOTCD_DIR
)/reactos
/c_1252.nls
185 $(CP
) media
/nls
/c_437.nls
$(BOOTCD_DIR
)/reactos
/c_437.nls
186 $(CP
) media
/nls
/l_intl.nls
$(BOOTCD_DIR
)/reactos
/l_intl.nls
188 bootcd
: all bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
189 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/L
$(BOOTCD_DIR
)/reactos
/I
190 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/RC
$(BOOTCD_DIR
)/reactos
/reactos.inf
/L
$(BOOTCD_DIR
)/reactos
/N
191 - $(RM
) $(BOOTCD_DIR
)/reactos
/reactos.inf
192 $(TOOLS_PATH
)/cdmake
/cdmake
-v
-m
-b
$(BOOTCD_DIR
)/..
/isoboot.bin
$(BOOTCD_DIR
) REACTOS ReactOS.iso
194 .PHONY
: all depends implib
clean clean_before
install dist freeldr bootcd_directory_layout \
195 bootcd_bootstrap_files bootcd
199 # System Applications
202 $(MAKE
) -C subsys
/system
/$*
204 $(SYS_APPS
:%=%_implib
): %_implib
:
205 $(MAKE
) -C subsys
/system
/$* implib
207 $(SYS_APPS
:%=%_clean
): %_clean
:
208 $(MAKE
) -C subsys
/system
/$* clean
210 $(SYS_APPS
:%=%_dist
): %_dist
:
211 $(MAKE
) -C subsys
/system
/$* dist
213 $(SYS_APPS
:%=%_install
): %_install
:
214 $(MAKE
) -C subsys
/system
/$* install
216 $(SYS_APPS
:%=%_bootcd
): %_bootcd
:
217 $(MAKE
) -C subsys
/system
/$* bootcd
219 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_dist
) $(SYS_APPS
:%=%_bootcd
)
225 $(MAKE
) -C services
/$*
227 $(SYS_SVC
:%=%_depends
): %_depends
:
228 $(MAKE
) -C services
/$* depends
230 $(SYS_SVC
:%=%_implib
): %_implib
:
231 $(MAKE
) -C services
/$* implib
233 $(SYS_SVC
:%=%_clean
): %_clean
:
234 $(MAKE
) -C services
/$* clean
236 $(SYS_SVC
:%=%_dist
): %_dist
:
237 $(MAKE
) -C services
/$* dist
239 $(SYS_SVC
:%=%_install
): %_install
:
240 $(MAKE
) -C services
/$* install
242 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_depends
) $(SYS_SVC
:%=%_implib
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
) $(SYS_SVC
:%=%_dist
)
249 # Extra (optional system) Applications
254 $(APPS
:%=%_implib
): %_implib
:
255 $(MAKE
) -C apps
/$* implib
257 $(APPS
:%=%_clean
): %_clean
:
258 $(MAKE
) -C apps
/$* clean
260 $(APPS
:%=%_dist
): %_dist
:
261 $(MAKE
) -C apps
/$* dist
263 $(APPS
:%=%_install
): %_install
:
264 $(MAKE
) -C apps
/$* install
266 .PHONY
: $(APPS
) $(APPS
:%=%_implib
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
) $(APPS
:%=%_dist
)
270 # External ports and subsystem personalities
273 $(MAKE
) -C
$(ROOT_PATH
)/$*
275 $(EXTERNALS
:%=%_depends
): %_depends
:
276 $(MAKE
) -C
$(ROOT_PATH
)/$* depends
278 $(EXTERNALS
:%=%_implib
): %_implib
:
279 $(MAKE
) -C
$(ROOT_PATH
)/$* implib
281 $(EXTERNALS
:%=%_clean
): %_clean
:
282 $(MAKE
) -C
$(ROOT_PATH
)/$* clean
284 $(EXTERNALS
:%=%_dist
): %_dist
:
285 $(MAKE
) -C
$(ROOT_PATH
)/$* dist
287 $(EXTERNALS
:%=%_install
): %_install
:
288 $(MAKE
) -C
$(ROOT_PATH
)/$* install
290 .PHONY
: $(EXTERNALS
) $(EXTERNALS
:%=%_depends
) $(EXTERNALS
:%=%_implib
) $(EXTERNALS
:%=%_clean
) $(EXTERNALS
:%=%_install
) $(EXTERNALS
:%=%_dist
)
302 $(MAKE
) -C tools
clean
308 .PHONY
: tools tools_implib tools_clean tools_install tools_dist
316 $(RMKDIR
) $(DDK_PATH
)
317 $(RMKDIR
) $(DDK_PATH_LIB
)
318 $(RMKDIR
) $(DDK_PATH_INC
)
319 $(RMKDIR
) $(SDK_PATH
)
320 $(RMKDIR
) $(SDK_PATH_LIB
)
321 $(RMKDIR
) $(SDK_PATH_INC
)
322 $(RMKDIR
) $(XDK_PATH
)
323 $(RMKDIR
) $(XDK_PATH_LIB
)
324 $(RMKDIR
) $(XDK_PATH_INC
)
328 # WARNING! Be very sure that there are no important files
329 # in these directories before cleaning them!!!
331 $(RM
) $(DDK_PATH_LIB
)/*.a
332 # $(RM) $(DDK_PATH_INC)/*.h
333 $(RMDIR
) $(DDK_PATH_LIB
)
334 # $(RMDIR) $(DDK_PATH_INC)
335 $(RM
) $(SDK_PATH_LIB
)/*.a
336 # $(RM) $(SDK_PATH_INC)/*.h
337 $(RMDIR
) $(SDK_PATH_LIB
)
338 # $(RMDIR) $(SDK_PATH_INC)
339 $(RM
) $(XDK_PATH_LIB
)/*.a
340 # $(RM) $(XDK_PATH_INC)/*.h
341 $(RMDIR
) $(XDK_PATH_LIB
)
342 # $(RMDIR) $(XDK_PATH_INC)
348 .PHONY
: dk dk_implib dk_clean dk_install dk_dist
355 $(MAKE
) -C iface
/native
360 $(MAKE
) -C iface
/native
clean
362 iface_native_install
:
369 $(MAKE
) -C iface
/addsys
371 iface_additional_implib
:
373 iface_additional_clean
:
374 $(MAKE
) -C iface
/addsys
clean
376 iface_additional_install
:
378 iface_additional_dist
:
380 iface_additional_bootcd
:
382 .PHONY
: iface_native iface_native_implib iface_native_clean iface_native_install \
383 iface_native_dist iface_native_bootcd \
384 iface_additional iface_additional_implib iface_additional_clean \
385 iface_additional_install iface_additional_dist iface_additional_bootcd
391 $(MAKE
) -C drivers
/bus
/$*
393 $(BUS
:%=%_implib
): %_implib
:
394 $(MAKE
) -C drivers
/bus
/$* implib
396 $(BUS
:%=%_clean
): %_clean
:
397 $(MAKE
) -C drivers
/bus
/$* clean
399 $(BUS
:%=%_install
): %_install
:
400 $(MAKE
) -C drivers
/bus
/$* install
402 $(BUS
:%=%_dist
): %_dist
:
403 $(MAKE
) -C drivers
/bus
/$* dist
405 $(BUS
:%=%_bootcd
): %_bootcd
:
406 $(MAKE
) -C drivers
/bus
/$* bootcd
408 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
409 $(BUS
:%=%_install
) $(BUS
:%=%_dist
) $(BUS
:%=%_bootcd
)
412 # Driver support libraries rules
415 $(MAKE
) -C drivers
/lib
/$*
417 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
418 $(MAKE
) -C drivers
/lib
/$* implib
420 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
421 $(MAKE
) -C drivers
/lib
/$* clean
423 $(DRIVERS_LIB
:%=%_install
): %_install
:
424 $(MAKE
) -C drivers
/lib
/$* install
426 $(DRIVERS_LIB
:%=%_dist
): %_dist
:
427 $(MAKE
) -C drivers
/lib
/$* dist
429 $(DRIVERS_LIB
:%=%_bootcd
): %_bootcd
:
430 $(MAKE
) -C drivers
/lib
/$* bootcd
432 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_clean
) \
433 $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_dist
) $(DRIVERS_LIB
:%=%_bootcd
)
436 # Device driver rules
438 $(DEVICE_DRIVERS
): %:
439 $(MAKE
) -C drivers
/dd
/$*
441 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
442 $(MAKE
) -C drivers
/dd
/$* implib
444 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
445 $(MAKE
) -C drivers
/dd
/$* clean
447 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
448 $(MAKE
) -C drivers
/dd
/$* install
450 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
451 $(MAKE
) -C drivers
/dd
/$* dist
453 $(DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
454 $(MAKE
) -C drivers
/dd
/$* bootcd
456 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_clean
) \
457 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_dist
) $(DEVICE_DRIVERS
:%=%_bootcd
)
463 $(MAKE
) -C drivers
/input
/$*
465 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
466 $(MAKE
) -C drivers
/input
/$* implib
468 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
469 $(MAKE
) -C drivers
/input
/$* clean
471 $(INPUT_DRIVERS
:%=%_install
): %_install
:
472 $(MAKE
) -C drivers
/input
/$* install
474 $(INPUT_DRIVERS
:%=%_dist
): %_dist
:
475 $(MAKE
) -C drivers
/input
/$* dist
477 $(INPUT_DRIVERS
:%=%_bootcd
): %_bootcd
:
478 $(MAKE
) -C drivers
/input
/$* bootcd
480 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_clean
)\
481 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_dist
) $(INPUT_DRIVERS
:%=%_bootcd
)
484 $(MAKE
) -C drivers
/fs
/$*
486 $(FS_DRIVERS
:%=%_implib
): %_implib
:
487 $(MAKE
) -C drivers
/fs
/$* implib
489 $(FS_DRIVERS
:%=%_clean
): %_clean
:
490 $(MAKE
) -C drivers
/fs
/$* clean
492 $(FS_DRIVERS
:%=%_install
): %_install
:
493 $(MAKE
) -C drivers
/fs
/$* install
495 $(FS_DRIVERS
:%=%_dist
): %_dist
:
496 $(MAKE
) -C drivers
/fs
/$* dist
498 $(FS_DRIVERS
:%=%_bootcd
): %_bootcd
:
499 $(MAKE
) -C drivers
/fs
/$* bootcd
501 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_clean
) \
502 $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_dist
) $(FS_DRIVERS
:%=%_bootcd
)
505 # Network driver rules
508 $(MAKE
) -C drivers
/net
/$*
510 $(NET_DRIVERS
:%=%_implib
): %_implib
:
511 $(MAKE
) -C drivers
/net
/$* implib
513 $(NET_DRIVERS
:%=%_clean
): %_clean
:
514 $(MAKE
) -C drivers
/net
/$* clean
516 $(NET_DRIVERS
:%=%_install
): %_install
:
517 $(MAKE
) -C drivers
/net
/$* install
519 $(NET_DRIVERS
:%=%_dist
): %_dist
:
520 $(MAKE
) -C drivers
/net
/$* dist
522 $(NET_DRIVERS
:%=%_bootcd
): %_bootcd
:
523 $(MAKE
) -C drivers
/net
/$* bootcd
525 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_clean
) \
526 $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_dist
) $(NET_DRIVERS
:%=%_bootcd
)
528 $(NET_DEVICE_DRIVERS
): %:
529 $(MAKE
) -C drivers
/net
/dd
/$*
531 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
532 $(MAKE
) -C drivers
/net
/dd
/$* implib
534 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
535 $(MAKE
) -C drivers
/net
/dd
/$* clean
537 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
538 $(MAKE
) -C drivers
/net
/dd
/$* install
540 $(NET_DEVICE_DRIVERS
:%=%_dist
): %_dist
:
541 $(MAKE
) -C drivers
/net
/dd
/$* dist
543 $(NET_DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
544 $(MAKE
) -C drivers
/net
/dd
/$* bootcd
546 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) $(NET_DEVICE_DRIVERS
:%=%_implib
) \
547 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_dist
) $(NET_DEVICE_DRIVERS
:%=%_bootcd
)
550 # storage driver rules
552 $(STORAGE_DRIVERS
): %:
553 $(MAKE
) -C drivers
/storage
/$*
555 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
556 $(MAKE
) -C drivers
/storage
/$* implib
558 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
559 $(MAKE
) -C drivers
/storage
/$* clean
561 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
562 $(MAKE
) -C drivers
/storage
/$* install
564 $(STORAGE_DRIVERS
:%=%_dist
): %_dist
:
565 $(MAKE
) -C drivers
/storage
/$* dist
567 $(STORAGE_DRIVERS
:%=%_bootcd
): %_bootcd
:
568 $(MAKE
) -C drivers
/storage
/$* bootcd
570 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) $(STORAGE_DRIVERS
:%=%_implib
) \
571 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_dist
) $(STORAGE_DRIVERS
:%=%_bootcd
)
578 $(MAKE
) -C loaders
/$*
580 $(LOADERS
:%=%_implib
): %_implib
:
582 $(LOADERS
:%=%_clean
): %_clean
:
583 $(MAKE
) -C loaders
/$* clean
585 $(LOADERS
:%=%_install
): %_install
:
586 $(MAKE
) -C loaders
/$* install
588 $(LOADERS
:%=%_dist
): %_dist
:
589 $(MAKE
) -C loaders
/$* dist
591 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
) \
595 # Required system components
602 $(MAKE
) -C ntoskrnl implib
605 $(MAKE
) -C ntoskrnl
clean
608 $(MAKE
) -C ntoskrnl
install
611 $(MAKE
) -C ntoskrnl
dist
614 $(MAKE
) -C ntoskrnl bootcd
616 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
619 # Hardware Abstraction Layer import library
626 $(MAKE
) -C hal
/hal implib
629 $(MAKE
) -C hal
/hal
clean
632 $(MAKE
) -C hal
/hal
install
635 $(MAKE
) -C hal
/hal
dist
638 $(MAKE
) -C hal
/hal bootcd
640 .PHONY
: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
643 # Hardware Abstraction Layers
649 $(HALS
:%=%_implib
): %_implib
:
650 $(MAKE
) -C hal
/$* implib
652 $(HALS
:%=%_clean
): %_clean
:
653 $(MAKE
) -C hal
/$* clean
655 $(HALS
:%=%_install
): %_install
:
656 $(MAKE
) -C hal
/$* install
658 $(HALS
:%=%_dist
): %_dist
:
659 $(MAKE
) -C hal
/$* dist
661 $(HALS
:%=%_bootcd
): %_bootcd
:
662 $(MAKE
) -C hal
/$* bootcd
664 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_dist
) $(HALS
:%=%_bootcd
)
667 # File system libraries
671 $(MAKE
) -C lib
/fslib
/$*
673 $(LIB_FSLIB
:%=%_depends
): %_depends
:
674 $(MAKE
) -C lib
/fslib
/$* depends
676 $(LIB_FSLIB
:%=%_implib
): %_implib
:
677 $(MAKE
) -C lib
/fslib
/$* implib
679 $(LIB_FSLIB
:%=%_clean
): %_clean
:
680 $(MAKE
) -C lib
/fslib
/$* clean
682 $(LIB_FSLIB
:%=%_install
): %_install
:
683 $(MAKE
) -C lib
/fslib
/$* install
685 $(LIB_FSLIB
:%=%_dist
): %_dist
:
686 $(MAKE
) -C lib
/fslib
/$* dist
688 $(LIB_FSLIB
:%=%_bootcd
): %_bootcd
:
689 $(MAKE
) -C lib
/fslib
/$* bootcd
691 .PHONY
: $(LIB_FSLIB
) $(LIB_FSLIB
:%=%_depends
) $(LIB_FSLIB
:%=%_implib
) $(LIB_FSLIB
:%=%_clean
) \
692 $(LIB_FSLIB
:%=%_install
) $(LIB_FSLIB
:%=%_dist
) $(LIB_FSLIB
:%=%_bootcd
)
701 $(LIB_STATIC
:%=%_depends
): %_depends
:
702 $(MAKE
) -C lib
/string depends
704 $(LIB_STATIC
:%=%_implib
): %_implib
:
705 $(MAKE
) -C lib
/$* implib
707 $(LIB_STATIC
:%=%_clean
): %_clean
:
708 $(MAKE
) -C lib
/$* clean
710 $(LIB_STATIC
:%=%_install
): %_install
:
711 $(MAKE
) -C lib
/$* install
713 $(LIB_STATIC
:%=%_dist
): %_dist
:
714 $(MAKE
) -C lib
/$* dist
716 $(LIB_STATIC
:%=%_bootcd
): %_bootcd
:
717 $(MAKE
) -C lib
/$* bootcd
719 .PHONY
: $(LIB_STATIC
) $(LIB_STATIC
:%=%_depends
) $(LIB_STATIC
:%=%_implib
) $(LIB_STATIC
:%=%_clean
) \
720 $(LIB_STATIC
:%=%_install
) $(LIB_STATIC
:%=%_dist
) $(LIB_STATIC
:%=%_bootcd
)
729 $(DLLS
:%=%_depends
): %_depends
:
730 $(MAKE
) -C lib
/$* depends
732 $(DLLS
:%=%_implib
): %_implib
:
733 $(MAKE
) -C lib
/$* implib
735 $(DLLS
:%=%_clean
): %_clean
:
736 $(MAKE
) -C lib
/$* clean
738 $(DLLS
:%=%_install
): %_install
:
739 $(MAKE
) -C lib
/$* install
741 $(DLLS
:%=%_dist
): %_dist
:
742 $(MAKE
) -C lib
/$* dist
744 $(DLLS
:%=%_bootcd
): %_bootcd
:
745 $(MAKE
) -C lib
/$* bootcd
747 .PHONY
: $(DLLS
) $(DLLS
:%=%_depends
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_dist
) $(DLLS
:%=%_bootcd
)
750 # Subsystem support modules
756 $(SUBSYS
:%=%_depends
): %_depends
:
757 $(MAKE
) -C subsys
/$* depends
759 $(SUBSYS
:%=%_implib
): %_implib
:
760 $(MAKE
) -C subsys
/$* implib
762 $(SUBSYS
:%=%_clean
): %_clean
:
763 $(MAKE
) -C subsys
/$* clean
765 $(SUBSYS
:%=%_install
): %_install
:
766 $(MAKE
) -C subsys
/$* install
768 $(SUBSYS
:%=%_dist
): %_dist
:
769 $(MAKE
) -C subsys
/$* dist
771 $(SUBSYS
:%=%_bootcd
): %_bootcd
:
772 $(MAKE
) -C subsys
/$* bootcd
774 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_depends
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
775 $(SUBSYS
:%=%_dist
) $(SUBSYS
:%=%_bootcd
)
778 # Regression testsuite
784 $(REGTESTS
:%=%_clean
): %_clean
:
785 $(MAKE
) -C regtests
clean
787 $(REGTESTS
:%=%_install
): %_install
:
788 $(MAKE
) -C regtests
install
790 .PHONY
: $(REGTESTS
) $(REGTESTS
:%=%_depends
) $(SUBSYS
:%=%_clean
) $(REGTESTS
:%=%_install
)
794 # Create an installation
798 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
799 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
800 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
801 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
802 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
803 $(RM
) $(INSTALL_DIR
)/media
/*.
*
804 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
805 $(RM
) $(INSTALL_DIR
)/*.com
806 $(RM
) $(INSTALL_DIR
)/*.bat
807 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
808 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
809 $(RMDIR
) $(INSTALL_DIR
)/system32
810 $(RMDIR
) $(INSTALL_DIR
)/symbols
811 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
812 $(RMDIR
) $(INSTALL_DIR
)/media
813 $(RMDIR
) $(INSTALL_DIR
)/bin
814 $(RMDIR
) $(INSTALL_DIR
)
816 ifneq ($(BOOTCD_INSTALL
),)
819 $(RMKDIR
) $(INSTALL_DIR
)
822 $(RLINE
) bootdata
/autorun.inf
$(INSTALL_DIR
)/..
/autorun.inf
823 $(RLINE
) bootdata
/readme.txt
$(INSTALL_DIR
)/..
/readme.txt
824 $(RLINE
) bootdata
/hivecls.inf
$(INSTALL_DIR
)/hivecls.inf
825 $(RLINE
) bootdata
/hivedef.inf
$(INSTALL_DIR
)/hivedef.inf
826 $(RLINE
) bootdata
/hivesft.inf
$(INSTALL_DIR
)/hivesft.inf
827 $(RLINE
) bootdata
/hivesys.inf
$(INSTALL_DIR
)/hivesys.inf
828 $(RLINE
) bootdata
/txtsetup.sif
$(INSTALL_DIR
)/txtsetup.sif
829 $(CP
) bootdata
/icon.ico
$(INSTALL_DIR
)/..
/icon.ico
830 $(CP
) media
/fonts
$(INSTALL_DIR
)
831 $(CP
) media
/nls
$(INSTALL_DIR
)
833 else # !BOOTCD_INSTALL
836 $(RMKDIR
) $(INSTALL_DIR
)
837 $(RMKDIR
) $(INSTALL_DIR
)/bin
838 $(RMKDIR
) $(INSTALL_DIR
)/media
839 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
840 $(RMKDIR
) $(INSTALL_DIR
)/symbols
841 $(RMKDIR
) $(INSTALL_DIR
)/system32
842 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
843 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
846 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
847 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
848 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
849 $(CP
) media
/fonts
$(INSTALL_DIR
)/media
/fonts
850 $(CP
) media
/nls
$(INSTALL_DIR
)/system32
851 $(CP
) media
/nls
/c_1252.nls
$(INSTALL_DIR
)/system32
/ansi.nls
852 $(CP
) media
/nls
/c_437.nls
$(INSTALL_DIR
)/system32
/oem.nls
853 $(CP
) media
/nls
/l_intl.nls
$(INSTALL_DIR
)/system32
/casemap.nls
855 endif # BOOTCD_INSTALL
857 .PHONY
: install_clean install_dirs install_before
861 # Make a distribution saveset
865 $(RM
) $(DIST_DIR
)/symbols
/*.sym
866 $(RM
) $(DIST_DIR
)/drivers
/*.sys
867 $(RM
) $(DIST_DIR
)/subsys
/*.exe
868 $(RM
) $(DIST_DIR
)/dlls
/*.dll
869 $(RM
) $(DIST_DIR
)/apps
/*.exe
870 $(RM
) $(DIST_DIR
)/*.exe
871 $(RMDIR
) $(DIST_DIR
)/symbols
872 $(RMDIR
) $(DIST_DIR
)/subsys
873 $(RMDIR
) $(DIST_DIR
)/drivers
874 $(RMDIR
) $(DIST_DIR
)/dlls
875 $(RMDIR
) $(DIST_DIR
)/apps
879 $(RMKDIR
) $(DIST_DIR
)
880 $(RMKDIR
) $(DIST_DIR
)/apps
881 $(RMKDIR
) $(DIST_DIR
)/dlls
882 $(RMKDIR
) $(DIST_DIR
)/drivers
883 $(RMKDIR
) $(DIST_DIR
)/subsys
884 $(RMKDIR
) $(DIST_DIR
)/symbols
886 .PHONY
: dist_clean dist_dirs
889 find .
-name
"*.[ch]" -print | etags
--language
=c
-