1 # $Id: Makefile,v 1.175 2003/10/15 22:16:43 vizzini Exp $
9 # Define to build ReactOS external targets
11 ifeq ($(ROS_BUILD_EXT
),)
17 include $(PATH_TO_TOP
)/rules.mak
19 # Required to run the system
20 COMPONENTS
= iface_native iface_additional hallib ntoskrnl
22 # Hardware Abstraction Layers
30 # Filesystem libraries
35 LIB_STATIC
= string rosrtl epsapi zlib
38 # advapi32 cards crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll
39 # epsapi psapi richedit rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda mswsock
40 DLLS
= advapi32 cards crtdll fmifs freetype gdi32 kernel32 packet lzexpand msafd \
41 msvcrt ntdll psapi richedit secur32 syssetup twain user32 version winedbgc \
42 winspool ws2help ws2_32 wsock32 wshirda iphlpapi kbdus mswsock msimg32
44 SUBSYS
= smss win32k csrss ntvdm
47 # Select the server(s) you want to build
49 #SERVERS = posix linux os2
56 # Driver support libraries
60 # Kernel mode device drivers
62 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
63 DEVICE_DRIVERS
= beep blue debugout floppy null serial vga videoprt bootvid
65 # Kernel mode input drivers
66 INPUT_DRIVERS
= keyboard mouclass psaux sermouse
68 # Kernel mode file system drivers
69 # cdfs ext2 fs_rec ms np vfat
70 FS_DRIVERS
= cdfs fs_rec ms np vfat mup ntfs
72 # Kernel mode networking drivers
73 # afd ndis npf tcpip tdi wshtcpip
74 NET_DRIVERS
= afd ndis npf tcpip tdi wshtcpip
76 # Kernel mode networking device drivers
78 NET_DEVICE_DRIVERS
= ne2000 pcnet
80 # Kernel mode storage drivers
81 # atapi cdrom class2 disk scsiport
82 STORAGE_DRIVERS
= atapi cdrom class2 disk scsiport diskdump
85 # autochk cmd format gstart services setup usetup welcome winlogon
86 SYS_APPS
= autochk cmd format gstart services setup usetup welcome winlogon
90 SYS_SVC
= rpcss eventlog
92 APPS
= tests testsets utils
95 # External (sub)systems for ReactOS
96 # rosapps wine posix os2 (requires c++) java (non-existant)
97 EXTERNALS
= rosapps wine posix os2
99 ifeq ($(ROS_BUILD_EXT
),yes
)
100 EXT_MODULES
= $(EXTERNALS
)
105 KERNEL_DRIVERS
= $(DRIVERS_LIB
) $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) \
106 $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
) $(STORAGE_DRIVERS
)
111 all: tools dk implib
$(LIB_STATIC
) $(COMPONENTS
) $(HALS
) $(BUS
) $(LIB_FSLIB
) $(DLLS
) $(SUBSYS
) \
112 $(LOADERS
) $(KERNEL_DRIVERS
) $(SYS_APPS
) $(SYS_SVC
) \
113 $(APPS
) $(EXT_MODULES
) $(REGTESTS
)
115 #config: $(TOOLS:%=%_config)
117 depends
: $(LIB_STATIC
:%=%_depends
) $(LIB_FSLIB
:%=%_depends
) $(DLLS
:%=%_depends
) $(SUBSYS
:%=%_depends
) $(SYS_SVC
:%=%_depends
) \
118 $(EXT_MODULES
:%=%_depends
) $(POSIX_LIBS
:%=%_depends
)
120 implib
: $(COMPONENTS
:%=%_implib
) $(HALS
:%=%_implib
) $(BUS
:%=%_implib
) \
121 $(LIB_STATIC
:%=%_implib
) $(LIB_FSLIB
:%=%_implib
) $(DLLS
:%=%_implib
) $(LOADERS
:%=%_implib
) \
122 $(KERNEL_DRIVERS
:%=%_implib
) $(SUBSYS
:%=%_implib
) \
123 $(SYS_APPS
:%=%_implib
) $(SYS_SVC
:%=%_implib
) \
124 $(APPS
:%=%_implib
) $(EXT_MODULES
:%=%_implib
)
126 clean: tools dk_clean
$(HALS
:%=%_clean
) \
127 $(COMPONENTS
:%=%_clean
) $(BUS
:%=%_clean
) $(LIB_STATIC
:%=%_clean
) $(LIB_FSLIB
:%=%_clean
) $(DLLS
:%=%_clean
) \
128 $(LOADERS
:%=%_clean
) $(KERNEL_DRIVERS
:%=%_clean
) $(SUBSYS
:%=%_clean
) \
129 $(SYS_APPS
:%=%_clean
) $(SYS_SVC
:%=%_clean
) \
130 $(NET_APPS
:%=%_clean
) \
131 $(APPS
:%=%_clean
) $(EXT_MODULES
:%=%_clean
) $(REGTESTS
:%=%_clean
) \
132 clean_after tools_clean
135 $(RM
) $(PATH_TO_TOP
)/include/roscfg.h
137 install: tools install_dirs install_before \
138 $(COMPONENTS
:%=%_install
) $(HALS
:%=%_install
) $(BUS
:%=%_install
) \
139 $(LIB_STATIC
:%=%_install
) $(LIB_FSLIB
:%=%_install
) $(DLLS
:%=%_install
) $(LOADERS
:%=%_install
) \
140 $(KERNEL_DRIVERS
:%=%_install
) $(SUBSYS
:%=%_install
) \
141 $(SYS_APPS
:%=%_install
) $(SYS_SVC
:%=%_install
) \
142 $(APPS
:%=%_install
) $(EXT_MODULES
:%=%_install
) $(REGTESTS
:%=%_install
)
144 dist: $(TOOLS_PATH
)/rcopy
$(EXE_POSTFIX
) dist_clean dist_dirs \
145 $(HALS
:%=%_dist
) $(COMPONENTS
:%=%_dist
) $(BUS
:%=%_dist
) $(LIB_STATIC
:%=%_dist
) $(LIB_FSLIB
:%=%_dist
) \
146 $(DLLS
:%=%_dist
) $(LOADERS
:%=%_dist
) $(KERNEL_DRIVERS
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
147 $(SYS_APPS
:%=%_dist
) $(SYS_SVC
:%=%_dist
) \
148 $(NET_APPS
:%=%_dist
) \
149 $(APPS
:%=%_dist
) $(EXT_MODULES
:%=%_dist
)
151 FREELDR_DIR
= ..
/freeldr
154 $(MAKE
) -C
$(FREELDR_DIR
)
156 bootcd_directory_layout
: freeldr
157 $(RMKDIR
) $(BOOTCD_DIR
)
158 $(RMKDIR
) $(BOOTCD_DIR
)/bootdisk
159 $(RMKDIR
) $(BOOTCD_DIR
)/loader
160 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
161 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
/system32
162 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/..
/isoboot.bin
163 $(CP
) ${FREELDR_DIR}/bootsect
/dosmbr.bin
${BOOTCD_DIR}/loader
/dosmbr.bin
164 $(CP
) ${FREELDR_DIR}/bootsect
/ext2.bin
${BOOTCD_DIR}/loader
/ext2.bin
165 $(CP
) ${FREELDR_DIR}/bootsect
/fat.bin
${BOOTCD_DIR}/loader
/fat.bin
166 $(CP
) ${FREELDR_DIR}/bootsect
/fat32.bin
${BOOTCD_DIR}/loader
/fat32.bin
167 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/loader
/isoboot.bin
168 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${BOOTCD_DIR}/loader
/freeldr.sys
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_basic
: all bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
191 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/L
$(BOOTCD_DIR
)/reactos
/I
192 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/RC
$(BOOTCD_DIR
)/reactos
/reactos.inf
/L
$(BOOTCD_DIR
)/reactos
/N
193 - $(RM
) $(BOOTCD_DIR
)/reactos
/reactos.inf
194 $(TOOLS_PATH
)/cdmake
/cdmake
-v
-m
-b
$(BOOTCD_DIR
)/..
/isoboot.bin
$(BOOTCD_DIR
) REACTOS ReactOS.iso
197 $(CP
) bootdata
/unattend.inf
$(BOOTCD_DIR
)/reactos
/unattend.inf
199 bootcd
: bootcd_basic bootcd_makecd
201 ubootcd
: bootcd_basic ubootcd_unattend bootcd_makecd
204 $(TOOLS_PATH
)/mkhive
/mkhive
$(EXE_POSTFIX
) bootdata
$(INSTALL_DIR
)/system32
/config
206 .PHONY
: all depends implib
clean clean_before
install dist freeldr bootcd_directory_layout \
207 bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
211 # System Applications
214 $(MAKE
) -C subsys
/system
/$*
216 $(SYS_APPS
:%=%_implib
): %_implib
:
217 $(MAKE
) -C subsys
/system
/$* implib
219 $(SYS_APPS
:%=%_clean
): %_clean
:
220 $(MAKE
) -C subsys
/system
/$* clean
222 $(SYS_APPS
:%=%_dist
): %_dist
:
223 $(MAKE
) -C subsys
/system
/$* dist
225 $(SYS_APPS
:%=%_install
): %_install
:
226 $(MAKE
) -C subsys
/system
/$* install
228 $(SYS_APPS
:%=%_bootcd
): %_bootcd
:
229 $(MAKE
) -C subsys
/system
/$* bootcd
231 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_dist
) $(SYS_APPS
:%=%_bootcd
)
237 $(MAKE
) -C services
/$*
239 $(SYS_SVC
:%=%_depends
): %_depends
:
240 $(MAKE
) -C services
/$* depends
242 $(SYS_SVC
:%=%_implib
): %_implib
:
243 $(MAKE
) -C services
/$* implib
245 $(SYS_SVC
:%=%_clean
): %_clean
:
246 $(MAKE
) -C services
/$* clean
248 $(SYS_SVC
:%=%_dist
): %_dist
:
249 $(MAKE
) -C services
/$* dist
251 $(SYS_SVC
:%=%_install
): %_install
:
252 $(MAKE
) -C services
/$* install
254 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_depends
) $(SYS_SVC
:%=%_implib
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
) $(SYS_SVC
:%=%_dist
)
261 # Extra (optional system) Applications
266 $(APPS
:%=%_implib
): %_implib
:
267 $(MAKE
) -C apps
/$* implib
269 $(APPS
:%=%_clean
): %_clean
:
270 $(MAKE
) -C apps
/$* clean
272 $(APPS
:%=%_dist
): %_dist
:
273 $(MAKE
) -C apps
/$* dist
275 $(APPS
:%=%_install
): %_install
:
276 $(MAKE
) -C apps
/$* install
278 .PHONY
: $(APPS
) $(APPS
:%=%_implib
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
) $(APPS
:%=%_dist
)
282 # External ports and subsystem personalities
285 $(MAKE
) -C
$(ROOT_PATH
)/$*
287 $(EXTERNALS
:%=%_depends
): %_depends
:
288 $(MAKE
) -C
$(ROOT_PATH
)/$* depends
290 $(EXTERNALS
:%=%_implib
): %_implib
:
291 $(MAKE
) -C
$(ROOT_PATH
)/$* implib
293 $(EXTERNALS
:%=%_clean
): %_clean
:
294 $(MAKE
) -C
$(ROOT_PATH
)/$* clean
296 $(EXTERNALS
:%=%_dist
): %_dist
:
297 $(MAKE
) -C
$(ROOT_PATH
)/$* dist
299 $(EXTERNALS
:%=%_install
): %_install
:
300 $(MAKE
) -C
$(ROOT_PATH
)/$* install
302 .PHONY
: $(EXTERNALS
) $(EXTERNALS
:%=%_depends
) $(EXTERNALS
:%=%_implib
) $(EXTERNALS
:%=%_clean
) $(EXTERNALS
:%=%_install
) $(EXTERNALS
:%=%_dist
)
314 $(MAKE
) -C tools
clean
320 .PHONY
: tools tools_implib tools_clean tools_install tools_dist
328 $(RMKDIR
) $(DDK_PATH
)
329 $(RMKDIR
) $(DDK_PATH_LIB
)
330 $(RMKDIR
) $(DDK_PATH_INC
)
331 $(RMKDIR
) $(SDK_PATH
)
332 $(RMKDIR
) $(SDK_PATH_LIB
)
333 $(RMKDIR
) $(SDK_PATH_INC
)
334 $(RMKDIR
) $(XDK_PATH
)
335 $(RMKDIR
) $(XDK_PATH_LIB
)
336 $(RMKDIR
) $(XDK_PATH_INC
)
340 # WARNING! Be very sure that there are no important files
341 # in these directories before cleaning them!!!
343 $(RM
) $(DDK_PATH_LIB
)/*.a
344 # $(RM) $(DDK_PATH_INC)/*.h
345 $(RMDIR
) $(DDK_PATH_LIB
)
346 # $(RMDIR) $(DDK_PATH_INC)
347 $(RM
) $(SDK_PATH_LIB
)/*.a
348 # $(RM) $(SDK_PATH_INC)/*.h
349 $(RMDIR
) $(SDK_PATH_LIB
)
350 # $(RMDIR) $(SDK_PATH_INC)
351 $(RM
) $(XDK_PATH_LIB
)/*.a
352 # $(RM) $(XDK_PATH_INC)/*.h
353 $(RMDIR
) $(XDK_PATH_LIB
)
354 # $(RMDIR) $(XDK_PATH_INC)
360 .PHONY
: dk dk_implib dk_clean dk_install dk_dist
367 $(MAKE
) -C iface
/native
372 $(MAKE
) -C iface
/native
clean
374 iface_native_install
:
381 $(MAKE
) -C iface
/addsys
383 iface_additional_implib
:
385 iface_additional_clean
:
386 $(MAKE
) -C iface
/addsys
clean
388 iface_additional_install
:
390 iface_additional_dist
:
392 iface_additional_bootcd
:
394 .PHONY
: iface_native iface_native_implib iface_native_clean iface_native_install \
395 iface_native_dist iface_native_bootcd \
396 iface_additional iface_additional_implib iface_additional_clean \
397 iface_additional_install iface_additional_dist iface_additional_bootcd
403 $(MAKE
) -C drivers
/bus
/$*
405 $(BUS
:%=%_implib
): %_implib
:
406 $(MAKE
) -C drivers
/bus
/$* implib
408 $(BUS
:%=%_clean
): %_clean
:
409 $(MAKE
) -C drivers
/bus
/$* clean
411 $(BUS
:%=%_install
): %_install
:
412 $(MAKE
) -C drivers
/bus
/$* install
414 $(BUS
:%=%_dist
): %_dist
:
415 $(MAKE
) -C drivers
/bus
/$* dist
417 $(BUS
:%=%_bootcd
): %_bootcd
:
418 $(MAKE
) -C drivers
/bus
/$* bootcd
420 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
421 $(BUS
:%=%_install
) $(BUS
:%=%_dist
) $(BUS
:%=%_bootcd
)
424 # Driver support libraries rules
427 $(MAKE
) -C drivers
/lib
/$*
429 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
430 $(MAKE
) -C drivers
/lib
/$* implib
432 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
433 $(MAKE
) -C drivers
/lib
/$* clean
435 $(DRIVERS_LIB
:%=%_install
): %_install
:
436 $(MAKE
) -C drivers
/lib
/$* install
438 $(DRIVERS_LIB
:%=%_dist
): %_dist
:
439 $(MAKE
) -C drivers
/lib
/$* dist
441 $(DRIVERS_LIB
:%=%_bootcd
): %_bootcd
:
442 $(MAKE
) -C drivers
/lib
/$* bootcd
444 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_clean
) \
445 $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_dist
) $(DRIVERS_LIB
:%=%_bootcd
)
448 # Device driver rules
450 $(DEVICE_DRIVERS
): %:
451 $(MAKE
) -C drivers
/dd
/$*
453 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
454 $(MAKE
) -C drivers
/dd
/$* implib
456 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
457 $(MAKE
) -C drivers
/dd
/$* clean
459 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
460 $(MAKE
) -C drivers
/dd
/$* install
462 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
463 $(MAKE
) -C drivers
/dd
/$* dist
465 $(DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
466 $(MAKE
) -C drivers
/dd
/$* bootcd
468 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_clean
) \
469 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_dist
) $(DEVICE_DRIVERS
:%=%_bootcd
)
475 $(MAKE
) -C drivers
/input
/$*
477 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
478 $(MAKE
) -C drivers
/input
/$* implib
480 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
481 $(MAKE
) -C drivers
/input
/$* clean
483 $(INPUT_DRIVERS
:%=%_install
): %_install
:
484 $(MAKE
) -C drivers
/input
/$* install
486 $(INPUT_DRIVERS
:%=%_dist
): %_dist
:
487 $(MAKE
) -C drivers
/input
/$* dist
489 $(INPUT_DRIVERS
:%=%_bootcd
): %_bootcd
:
490 $(MAKE
) -C drivers
/input
/$* bootcd
492 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_clean
)\
493 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_dist
) $(INPUT_DRIVERS
:%=%_bootcd
)
496 $(MAKE
) -C drivers
/fs
/$*
498 $(FS_DRIVERS
:%=%_implib
): %_implib
:
499 $(MAKE
) -C drivers
/fs
/$* implib
501 $(FS_DRIVERS
:%=%_clean
): %_clean
:
502 $(MAKE
) -C drivers
/fs
/$* clean
504 $(FS_DRIVERS
:%=%_install
): %_install
:
505 $(MAKE
) -C drivers
/fs
/$* install
507 $(FS_DRIVERS
:%=%_dist
): %_dist
:
508 $(MAKE
) -C drivers
/fs
/$* dist
510 $(FS_DRIVERS
:%=%_bootcd
): %_bootcd
:
511 $(MAKE
) -C drivers
/fs
/$* bootcd
513 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_clean
) \
514 $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_dist
) $(FS_DRIVERS
:%=%_bootcd
)
517 # Network driver rules
520 $(MAKE
) -C drivers
/net
/$*
522 $(NET_DRIVERS
:%=%_implib
): %_implib
:
523 $(MAKE
) -C drivers
/net
/$* implib
525 $(NET_DRIVERS
:%=%_clean
): %_clean
:
526 $(MAKE
) -C drivers
/net
/$* clean
528 $(NET_DRIVERS
:%=%_install
): %_install
:
529 $(MAKE
) -C drivers
/net
/$* install
531 $(NET_DRIVERS
:%=%_dist
): %_dist
:
532 $(MAKE
) -C drivers
/net
/$* dist
534 $(NET_DRIVERS
:%=%_bootcd
): %_bootcd
:
535 $(MAKE
) -C drivers
/net
/$* bootcd
537 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_clean
) \
538 $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_dist
) $(NET_DRIVERS
:%=%_bootcd
)
540 $(NET_DEVICE_DRIVERS
): %:
541 $(MAKE
) -C drivers
/net
/dd
/$*
543 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
544 $(MAKE
) -C drivers
/net
/dd
/$* implib
546 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
547 $(MAKE
) -C drivers
/net
/dd
/$* clean
549 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
550 $(MAKE
) -C drivers
/net
/dd
/$* install
552 $(NET_DEVICE_DRIVERS
:%=%_dist
): %_dist
:
553 $(MAKE
) -C drivers
/net
/dd
/$* dist
555 $(NET_DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
556 $(MAKE
) -C drivers
/net
/dd
/$* bootcd
558 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) $(NET_DEVICE_DRIVERS
:%=%_implib
) \
559 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_dist
) $(NET_DEVICE_DRIVERS
:%=%_bootcd
)
562 # storage driver rules
564 $(STORAGE_DRIVERS
): %:
565 $(MAKE
) -C drivers
/storage
/$*
567 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
568 $(MAKE
) -C drivers
/storage
/$* implib
570 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
571 $(MAKE
) -C drivers
/storage
/$* clean
573 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
574 $(MAKE
) -C drivers
/storage
/$* install
576 $(STORAGE_DRIVERS
:%=%_dist
): %_dist
:
577 $(MAKE
) -C drivers
/storage
/$* dist
579 $(STORAGE_DRIVERS
:%=%_bootcd
): %_bootcd
:
580 $(MAKE
) -C drivers
/storage
/$* bootcd
582 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) $(STORAGE_DRIVERS
:%=%_implib
) \
583 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_dist
) $(STORAGE_DRIVERS
:%=%_bootcd
)
590 $(MAKE
) -C loaders
/$*
592 $(LOADERS
:%=%_implib
): %_implib
:
594 $(LOADERS
:%=%_clean
): %_clean
:
595 $(MAKE
) -C loaders
/$* clean
597 $(LOADERS
:%=%_install
): %_install
:
598 $(MAKE
) -C loaders
/$* install
600 $(LOADERS
:%=%_dist
): %_dist
:
601 $(MAKE
) -C loaders
/$* dist
603 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
) \
607 # Required system components
614 $(MAKE
) -C ntoskrnl implib
617 $(MAKE
) -C ntoskrnl
clean
620 $(MAKE
) -C ntoskrnl
install
623 $(MAKE
) -C ntoskrnl
dist
626 $(MAKE
) -C ntoskrnl bootcd
628 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
631 # Hardware Abstraction Layer import library
638 $(MAKE
) -C hal
/hal implib
641 $(MAKE
) -C hal
/hal
clean
644 $(MAKE
) -C hal
/hal
install
647 $(MAKE
) -C hal
/hal
dist
650 $(MAKE
) -C hal
/hal bootcd
652 .PHONY
: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
655 # Hardware Abstraction Layers
661 $(HALS
:%=%_implib
): %_implib
:
662 $(MAKE
) -C hal
/$* implib
664 $(HALS
:%=%_clean
): %_clean
:
665 $(MAKE
) -C hal
/$* clean
667 $(HALS
:%=%_install
): %_install
:
668 $(MAKE
) -C hal
/$* install
670 $(HALS
:%=%_dist
): %_dist
:
671 $(MAKE
) -C hal
/$* dist
673 $(HALS
:%=%_bootcd
): %_bootcd
:
674 $(MAKE
) -C hal
/$* bootcd
676 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_dist
) $(HALS
:%=%_bootcd
)
679 # File system libraries
683 $(MAKE
) -C lib
/fslib
/$*
685 $(LIB_FSLIB
:%=%_depends
): %_depends
:
686 $(MAKE
) -C lib
/fslib
/$* depends
688 $(LIB_FSLIB
:%=%_implib
): %_implib
:
689 $(MAKE
) -C lib
/fslib
/$* implib
691 $(LIB_FSLIB
:%=%_clean
): %_clean
:
692 $(MAKE
) -C lib
/fslib
/$* clean
694 $(LIB_FSLIB
:%=%_install
): %_install
:
695 $(MAKE
) -C lib
/fslib
/$* install
697 $(LIB_FSLIB
:%=%_dist
): %_dist
:
698 $(MAKE
) -C lib
/fslib
/$* dist
700 $(LIB_FSLIB
:%=%_bootcd
): %_bootcd
:
701 $(MAKE
) -C lib
/fslib
/$* bootcd
703 .PHONY
: $(LIB_FSLIB
) $(LIB_FSLIB
:%=%_depends
) $(LIB_FSLIB
:%=%_implib
) $(LIB_FSLIB
:%=%_clean
) \
704 $(LIB_FSLIB
:%=%_install
) $(LIB_FSLIB
:%=%_dist
) $(LIB_FSLIB
:%=%_bootcd
)
713 $(LIB_STATIC
:%=%_depends
): %_depends
:
714 $(MAKE
) -C lib
/string depends
716 $(LIB_STATIC
:%=%_implib
): %_implib
:
717 $(MAKE
) -C lib
/$* implib
719 $(LIB_STATIC
:%=%_clean
): %_clean
:
720 $(MAKE
) -C lib
/$* clean
722 $(LIB_STATIC
:%=%_install
): %_install
:
723 $(MAKE
) -C lib
/$* install
725 $(LIB_STATIC
:%=%_dist
): %_dist
:
726 $(MAKE
) -C lib
/$* dist
728 $(LIB_STATIC
:%=%_bootcd
): %_bootcd
:
729 $(MAKE
) -C lib
/$* bootcd
731 .PHONY
: $(LIB_STATIC
) $(LIB_STATIC
:%=%_depends
) $(LIB_STATIC
:%=%_implib
) $(LIB_STATIC
:%=%_clean
) \
732 $(LIB_STATIC
:%=%_install
) $(LIB_STATIC
:%=%_dist
) $(LIB_STATIC
:%=%_bootcd
)
741 $(DLLS
:%=%_depends
): %_depends
:
742 $(MAKE
) -C lib
/$* depends
744 $(DLLS
:%=%_implib
): %_implib
:
745 $(MAKE
) -C lib
/$* implib
747 $(DLLS
:%=%_clean
): %_clean
:
748 $(MAKE
) -C lib
/$* clean
750 $(DLLS
:%=%_install
): %_install
:
751 $(MAKE
) -C lib
/$* install
753 $(DLLS
:%=%_dist
): %_dist
:
754 $(MAKE
) -C lib
/$* dist
756 $(DLLS
:%=%_bootcd
): %_bootcd
:
757 $(MAKE
) -C lib
/$* bootcd
759 .PHONY
: $(DLLS
) $(DLLS
:%=%_depends
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_dist
) $(DLLS
:%=%_bootcd
)
762 # Subsystem support modules
768 $(SUBSYS
:%=%_depends
): %_depends
:
769 $(MAKE
) -C subsys
/$* depends
771 $(SUBSYS
:%=%_implib
): %_implib
:
772 $(MAKE
) -C subsys
/$* implib
774 $(SUBSYS
:%=%_clean
): %_clean
:
775 $(MAKE
) -C subsys
/$* clean
777 $(SUBSYS
:%=%_install
): %_install
:
778 $(MAKE
) -C subsys
/$* install
780 $(SUBSYS
:%=%_dist
): %_dist
:
781 $(MAKE
) -C subsys
/$* dist
783 $(SUBSYS
:%=%_bootcd
): %_bootcd
:
784 $(MAKE
) -C subsys
/$* bootcd
786 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_depends
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
787 $(SUBSYS
:%=%_dist
) $(SUBSYS
:%=%_bootcd
)
790 # Regression testsuite
796 $(REGTESTS
:%=%_clean
): %_clean
:
797 $(MAKE
) -C regtests
clean
799 $(REGTESTS
:%=%_install
): %_install
:
800 $(MAKE
) -C regtests
install
802 .PHONY
: $(REGTESTS
) $(REGTESTS
:%=%_depends
) $(SUBSYS
:%=%_clean
) $(REGTESTS
:%=%_install
)
806 # Create an installation
810 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
811 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
812 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
813 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
814 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
815 $(RM
) $(INSTALL_DIR
)/media
/*.
*
816 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
817 $(RM
) $(INSTALL_DIR
)/*.com
818 $(RM
) $(INSTALL_DIR
)/*.bat
819 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
820 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
821 $(RMDIR
) $(INSTALL_DIR
)/system32
822 $(RMDIR
) $(INSTALL_DIR
)/symbols
823 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
824 $(RMDIR
) $(INSTALL_DIR
)/media
825 $(RMDIR
) $(INSTALL_DIR
)/bin
826 $(RMDIR
) $(INSTALL_DIR
)
828 ifneq ($(BOOTCD_INSTALL
),)
831 $(RMKDIR
) $(INSTALL_DIR
)
834 $(RLINE
) bootdata
/autorun.inf
$(INSTALL_DIR
)/..
/autorun.inf
835 $(RLINE
) bootdata
/readme.txt
$(INSTALL_DIR
)/..
/readme.txt
836 $(RLINE
) bootdata
/hivecls.inf
$(INSTALL_DIR
)/hivecls.inf
837 $(RLINE
) bootdata
/hivedef.inf
$(INSTALL_DIR
)/hivedef.inf
838 $(RLINE
) bootdata
/hivesft.inf
$(INSTALL_DIR
)/hivesft.inf
839 $(RLINE
) bootdata
/hivesys.inf
$(INSTALL_DIR
)/hivesys.inf
840 $(RLINE
) bootdata
/txtsetup.sif
$(INSTALL_DIR
)/txtsetup.sif
841 $(CP
) bootdata
/icon.ico
$(INSTALL_DIR
)/..
/icon.ico
842 $(CP
) media
/fonts
$(INSTALL_DIR
)
843 $(CP
) media
/nls
$(INSTALL_DIR
)
845 else # !BOOTCD_INSTALL
848 $(RMKDIR
) $(INSTALL_DIR
)
849 $(RMKDIR
) $(INSTALL_DIR
)/bin
850 $(RMKDIR
) $(INSTALL_DIR
)/media
851 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
852 $(RMKDIR
) $(INSTALL_DIR
)/symbols
853 $(RMKDIR
) $(INSTALL_DIR
)/system32
854 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
855 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
858 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
859 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
860 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
861 $(CP
) media
/fonts
$(INSTALL_DIR
)/media
/fonts
862 $(CP
) media
/nls
$(INSTALL_DIR
)/system32
863 $(CP
) media
/nls
/c_1252.nls
$(INSTALL_DIR
)/system32
/ansi.nls
864 $(CP
) media
/nls
/c_437.nls
$(INSTALL_DIR
)/system32
/oem.nls
865 $(CP
) media
/nls
/l_intl.nls
$(INSTALL_DIR
)/system32
/casemap.nls
867 endif # BOOTCD_INSTALL
869 .PHONY
: install_clean install_dirs install_before
873 # Make a distribution saveset
877 $(RM
) $(DIST_DIR
)/symbols
/*.sym
878 $(RM
) $(DIST_DIR
)/drivers
/*.sys
879 $(RM
) $(DIST_DIR
)/subsys
/*.exe
880 $(RM
) $(DIST_DIR
)/dlls
/*.dll
881 $(RM
) $(DIST_DIR
)/apps
/*.exe
882 $(RM
) $(DIST_DIR
)/*.exe
883 $(RMDIR
) $(DIST_DIR
)/symbols
884 $(RMDIR
) $(DIST_DIR
)/subsys
885 $(RMDIR
) $(DIST_DIR
)/drivers
886 $(RMDIR
) $(DIST_DIR
)/dlls
887 $(RMDIR
) $(DIST_DIR
)/apps
891 $(RMKDIR
) $(DIST_DIR
)
892 $(RMKDIR
) $(DIST_DIR
)/apps
893 $(RMKDIR
) $(DIST_DIR
)/dlls
894 $(RMKDIR
) $(DIST_DIR
)/drivers
895 $(RMKDIR
) $(DIST_DIR
)/subsys
896 $(RMKDIR
) $(DIST_DIR
)/symbols
898 .PHONY
: dist_clean dist_dirs
901 find .
-name
"*.[ch]" -print | etags
--language
=c
-