1 # $Id: Makefile,v 1.235 2004/07/10 21:44:14 sedwards 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 uuid libwine zlib rtl tgetopt pseh
37 # Keyboard layout libraries
38 DLLS_KBD
= kbddv kbdfr kbdgr kbdse kbduk kbdus
44 # advapi32 cards crtdll comdlg32 fmifs gdi32 imagehlp kernel32 libpcap packet msafd msvcrt ntdll
45 # epsapi psapi richedit rpcrt4 secur32 user32 version ws2help ws2_32 wsock32 wshirda mswsock
47 DLLS
= acledit advapi32 cabinet cards comctl32 crtdll comdlg32 d3d8thk expat fmifs freetype gdi32 \
48 imm32 iphlpapi kernel32 lzexpand mpr msafd msgina msimg32 msvcrt msvcrt20 msvideo mswsock \
49 netapi32 ntdll ole32 oleaut32 oledlg packet psapi richedit rpcrt4 samlib secur32 \
50 setupapi shell32 shlwapi snmpapi syssetup twain unicode user32 userenv version wininet \
51 winmm winspool ws2help ws2_32 wsock32 wshirda imagehlp
$(DLLS_KBD
) $(DLLS_CPL
)
53 SUBSYS
= smss win32k csrss ntvdm
56 # Select the server(s) you want to build
58 #SERVERS = posix linux os2
65 # Driver support libraries
67 DRIVERS_LIB
= bzip2 oskittcp csq
69 # Kernel mode device drivers
71 # beep blue floppy null parallel ramdrv serenum serial
72 DEVICE_DRIVERS
= beep blue debugout null serial bootvid
74 # Kernel mode input drivers
75 INPUT_DRIVERS
= keyboard mouclass psaux sermouse
77 # Kernel mode file system drivers
78 # cdfs ext2 fs_rec ms np vfat
79 FS_DRIVERS
= cdfs fs_rec ms np vfat mup ntfs
81 # Kernel mode networking drivers
82 # afd ndis npf tcpip tdi wshtcpip
83 NET_DRIVERS
= afd ndis npf tcpip tdi wshtcpip
85 # Kernel mode networking device drivers
87 NET_DEVICE_DRIVERS
= ne2000 pcnet
89 # Kernel mode storage drivers
90 # atapi cdrom class2 disk scsiport
91 STORAGE_DRIVERS
= atapi cdrom class2 disk floppy scsiport diskdump
94 # autochk cmd format services setup usetup welcome winlogon
95 SYS_APPS
= autochk cmd explorer expand format services setup taskmgr userinit usetup welcome vmwinst winlogon regedit
99 SYS_SVC
= rpcss eventlog
101 APPS
= tests testsets utils
104 # External modules and (sub)systems for ReactOS
105 # rosapps posix os2 (requires c++) java (non-existant)
108 ifeq ($(ROS_BUILD_EXT
),yes
)
109 EXT_MODULES
= $(EXTERNALS
)
114 KERNEL_DRIVERS
= $(DRIVERS_LIB
) $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) \
115 $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
) $(STORAGE_DRIVERS
) VIDEO_DRIVERS
120 all: tools dk implib
$(LIB_STATIC
) $(COMPONENTS
) $(REGTESTS
) $(HALS
) $(BUS
) $(LIB_FSLIB
) $(DLLS
) $(SUBSYS
) \
121 $(LOADERS
) $(KERNEL_DRIVERS
) $(SYS_APPS
) $(SYS_SVC
) \
122 $(APPS
) $(EXT_MODULES
)
124 #config: $(TOOLS:%=%_config)
126 depends
: $(LIB_STATIC
:%=%_depends
) $(LIB_FSLIB
:%=%_depends
) $(DLLS
:%=%_depends
) $(SUBSYS
:%=%_depends
) $(SYS_SVC
:%=%_depends
) \
127 $(EXT_MODULES
:%=%_depends
) $(POSIX_LIBS
:%=%_depends
)
129 implib
: $(COMPONENTS
:%=%_implib
) $(HALS
:%=%_implib
) $(BUS
:%=%_implib
) \
130 $(LIB_STATIC
:%=%_implib
) $(LIB_FSLIB
:%=%_implib
) $(DLLS
:%=%_implib
) $(LOADERS
:%=%_implib
) \
131 $(KERNEL_DRIVERS
:%=%_implib
) $(SUBSYS
:%=%_implib
) \
132 $(SYS_SVC
:%=%_implib
) $(EXT_MODULES
:%=%_implib
)
134 clean: tools dk_clean
$(HALS
:%=%_clean
) \
135 $(COMPONENTS
:%=%_clean
) $(BUS
:%=%_clean
) $(LIB_STATIC
:%=%_clean
) $(LIB_FSLIB
:%=%_clean
) $(DLLS
:%=%_clean
) \
136 $(LOADERS
:%=%_clean
) $(KERNEL_DRIVERS
:%=%_clean
) $(SUBSYS
:%=%_clean
) \
137 $(SYS_APPS
:%=%_clean
) $(SYS_SVC
:%=%_clean
) \
138 $(NET_APPS
:%=%_clean
) \
139 $(APPS
:%=%_clean
) $(EXT_MODULES
:%=%_clean
) $(REGTESTS
:%=%_clean
) \
140 clean_after tools_clean
143 $(RM
) $(PATH_TO_TOP
)/include/roscfg.h
145 fastinstall
: tools install_dirs install_before \
146 $(COMPONENTS
:%=%_install
) $(HALS
:%=%_install
) $(BUS
:%=%_install
) \
147 $(LIB_STATIC
:%=%_install
) $(LIB_FSLIB
:%=%_install
) $(DLLS
:%=%_install
) $(LOADERS
:%=%_install
) \
148 $(KERNEL_DRIVERS
:%=%_install
) $(SUBSYS
:%=%_install
) \
149 $(SYS_APPS
:%=%_install
) $(SYS_SVC
:%=%_install
) \
150 $(APPS
:%=%_install
) $(EXT_MODULES
:%=%_install
) $(REGTESTS
:%=%_install
)
151 install: fastinstall registry
153 FREELDR_DIR
= ..
/freeldr
156 $(MAKE
) -C
$(FREELDR_DIR
)
158 bootcd_directory_layout
:
159 $(RMKDIR
) $(BOOTCD_DIR
)
160 $(RMKDIR
) $(BOOTCD_DIR
)/bootdisk
161 $(RMKDIR
) $(BOOTCD_DIR
)/loader
162 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
163 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
/system32
164 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/..
/isoboot.bin
165 $(CP
) ${FREELDR_DIR}/bootsect
/dosmbr.bin
${BOOTCD_DIR}/loader
/dosmbr.bin
166 $(CP
) ${FREELDR_DIR}/bootsect
/ext2.bin
${BOOTCD_DIR}/loader
/ext2.bin
167 $(CP
) ${FREELDR_DIR}/bootsect
/fat.bin
${BOOTCD_DIR}/loader
/fat.bin
168 $(CP
) ${FREELDR_DIR}/bootsect
/fat32.bin
${BOOTCD_DIR}/loader
/fat32.bin
169 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/loader
/isoboot.bin
170 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${BOOTCD_DIR}/loader
/freeldr.sys
171 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/setupldr.sys
${BOOTCD_DIR}/loader
/setupldr.sys
173 bootcd_bootstrap_files
: $(COMPONENTS
:%=%_bootcd
) $(HALS
:%=%_bootcd
) $(BUS
:%=%_bootcd
) \
174 $(LIB_STATIC
:%=%_bootcd
) $(LIB_FSLIB
:%=%_bootcd
) $(DLLS
:%=%_bootcd
) $(KERNEL_DRIVERS
:%=%_bootcd
) \
175 $(SUBSYS
:%=%_bootcd
) $(SYS_APPS
:%=%_bootcd
)
177 bootcd_install_before
:
178 $(RLINE
) bootdata
/autorun.inf
$(BOOTCD_DIR
)/autorun.inf
179 $(RLINE
) bootdata
/readme.txt
$(BOOTCD_DIR
)/readme.txt
180 $(RLINE
) bootdata
/hivecls.inf
$(BOOTCD_DIR
)/reactos
/hivecls.inf
181 $(RLINE
) bootdata
/hivedef.inf
$(BOOTCD_DIR
)/reactos
/hivedef.inf
182 $(RLINE
) bootdata
/hivesft.inf
$(BOOTCD_DIR
)/reactos
/hivesft.inf
183 $(RLINE
) bootdata
/hivesys.inf
$(BOOTCD_DIR
)/reactos
/hivesys.inf
184 $(RLINE
) bootdata
/txtsetup.sif
$(BOOTCD_DIR
)/reactos
/txtsetup.sif
185 $(CP
) bootdata
/icon.ico
$(BOOTCD_DIR
)/icon.ico
186 $(CP
) subsys
/system
/welcome
/welcome.exe
$(BOOTCD_DIR
)/reactos
/welcome.exe
187 $(CP
) media
/nls
/c_1252.nls
$(BOOTCD_DIR
)/reactos
/c_1252.nls
188 $(CP
) media
/nls
/c_437.nls
$(BOOTCD_DIR
)/reactos
/c_437.nls
189 $(CP
) media
/nls
/l_intl.nls
$(BOOTCD_DIR
)/reactos
/l_intl.nls
190 $(CP
) media
/drivers
/etc
/services
$(BOOTCD_DIR
)/reactos
/services
192 bootcd_basic
: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
195 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/L
$(BOOTCD_DIR
)/reactos
/I
196 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/RC
$(BOOTCD_DIR
)/reactos
/reactos.inf
/L
$(BOOTCD_DIR
)/reactos
/N
197 - $(RM
) $(BOOTCD_DIR
)/reactos
/reactos.inf
198 $(TOOLS_PATH
)/cdmake
/cdmake
-v
-m
-b
$(BOOTCD_DIR
)/..
/isoboot.bin
$(BOOTCD_DIR
) REACTOS ReactOS.iso
201 $(CP
) bootdata
/unattend.inf
$(BOOTCD_DIR
)/reactos
/unattend.inf
203 livecd_directory_layout
:
204 $(RMKDIR
) $(LIVECD_DIR
)
205 $(RMKDIR
) $(LIVECD_DIR
)/loader
206 $(RMKDIR
) $(LIVECD_DIR
)/reactos
207 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/All\ Users
/Desktop
208 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/Default\ User
/Desktop
209 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/Default\ User
/My\ Documents
210 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${LIVECD_DIR}/..
/isoboot.bin
211 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${LIVECD_DIR}/loader
/setupldr.sys
212 $(RLINE
) bootdata
/livecd.ini
$(LIVECD_DIR
)/freeldr.ini
214 livecd_bootstrap_files
:
215 $(MAKE
) LIVECD_INSTALL
=yes fastinstall
217 livecd_install_before
:
218 $(TOOLS_PATH
)/mkhive
/mkhive
$(EXE_POSTFIX
) bootdata
$(LIVECD_DIR
)/reactos
/system32
/config bootdata
/livecd.inf bootdata
/hiveinst.inf
220 livecd_basic
: livecd_directory_layout livecd_bootstrap_files livecd_install_before
223 $(TOOLS_PATH
)/cdmake
/cdmake
-m
-j
-b
$(LIVECD_DIR
)/..
/isoboot.bin
$(LIVECD_DIR
) REACTOS roslive.iso
225 bootcd
: bootcd_basic bootcd_makecd
227 ubootcd
: bootcd_basic ubootcd_unattend bootcd_makecd
229 livecd
: livecd_basic livecd_makecd
232 $(TOOLS_PATH
)/mkhive
/mkhive
$(EXE_POSTFIX
) bootdata
$(INSTALL_DIR
)/system32
/config bootdata
/hiveinst.inf
234 .PHONY
: all depends implib
clean clean_before
install freeldr bootcd_directory_layout \
235 bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
239 # System Applications
242 $(MAKE
) -C subsys
/system
/$*
244 $(SYS_APPS
:%=%_implib
): %_implib
:
245 $(MAKE
) -C subsys
/system
/$* implib
247 $(SYS_APPS
:%=%_clean
): %_clean
:
248 $(MAKE
) -C subsys
/system
/$* clean
250 $(SYS_APPS
:%=%_install
): %_install
:
251 $(MAKE
) -C subsys
/system
/$* install
253 $(SYS_APPS
:%=%_bootcd
): %_bootcd
:
254 $(MAKE
) -C subsys
/system
/$* bootcd
256 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_bootcd
)
262 $(MAKE
) -C services
/$*
264 $(SYS_SVC
:%=%_depends
): %_depends
:
265 $(MAKE
) -C services
/$* depends
267 $(SYS_SVC
:%=%_implib
): %_implib
:
268 $(MAKE
) -C services
/$* implib
270 $(SYS_SVC
:%=%_clean
): %_clean
:
271 $(MAKE
) -C services
/$* clean
273 $(SYS_SVC
:%=%_install
): %_install
:
274 $(MAKE
) -C services
/$* install
276 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_depends
) $(SYS_SVC
:%=%_implib
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
)
283 # Extra (optional system) Applications
289 # $(APPS:%=%_implib): %_implib:
290 # $(MAKE) -C apps/$* implib
292 $(APPS
:%=%_clean
): %_clean
:
293 $(MAKE
) -C apps
/$* clean
295 $(APPS
:%=%_install
): %_install
:
296 $(MAKE
) -C apps
/$* install
298 .PHONY
: $(APPS
) $(APPS
:%=%_implib
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
)
302 # External ports and subsystem personalities
305 $(MAKE
) -C
$(ROOT_PATH
)/$*
307 $(EXTERNALS
:%=%_depends
): %_depends
:
308 $(MAKE
) -C
$(ROOT_PATH
)/$* depends
310 $(EXTERNALS
:%=%_implib
): %_implib
:
311 $(MAKE
) -C
$(ROOT_PATH
)/$* implib
313 $(EXTERNALS
:%=%_clean
): %_clean
:
314 $(MAKE
) -C
$(ROOT_PATH
)/$* clean
316 $(EXTERNALS
:%=%_install
): %_install
:
317 $(MAKE
) -C
$(ROOT_PATH
)/$* install
319 .PHONY
: $(EXTERNALS
) $(EXTERNALS
:%=%_depends
) $(EXTERNALS
:%=%_implib
) $(EXTERNALS
:%=%_clean
) $(EXTERNALS
:%=%_install
)
331 $(MAKE
) -C tools
clean
335 .PHONY
: tools tools_implib tools_clean tools_install
343 $(RMKDIR
) $(DDK_PATH
)
344 $(RMKDIR
) $(DDK_PATH_LIB
)
345 $(RMKDIR
) $(DDK_PATH_INC
)
346 $(RMKDIR
) $(SDK_PATH
)
347 $(RMKDIR
) $(SDK_PATH_LIB
)
348 $(RMKDIR
) $(SDK_PATH_INC
)
349 $(RMKDIR
) $(XDK_PATH
)
350 $(RMKDIR
) $(XDK_PATH_LIB
)
351 $(RMKDIR
) $(XDK_PATH_INC
)
355 # WARNING! Be very sure that there are no important files
356 # in these directories before cleaning them!!!
358 $(RM
) $(DDK_PATH_LIB
)/*.a
359 # $(RM) $(DDK_PATH_INC)/*.h
360 $(RMDIR
) $(DDK_PATH_LIB
)
361 # $(RMDIR) $(DDK_PATH_INC)
362 $(RM
) $(SDK_PATH_LIB
)/*.a
363 # $(RM) $(SDK_PATH_INC)/*.h
364 $(RMDIR
) $(SDK_PATH_LIB
)
365 # $(RMDIR) $(SDK_PATH_INC)
366 $(RM
) $(XDK_PATH_LIB
)/*.a
367 # $(RM) $(XDK_PATH_INC)/*.h
368 $(RMDIR
) $(XDK_PATH_LIB
)
369 # $(RMDIR) $(XDK_PATH_INC)
373 .PHONY
: dk dk_implib dk_clean dk_install
380 $(MAKE
) -C iface
/native
385 $(MAKE
) -C iface
/native
clean
387 iface_native_install
:
392 $(MAKE
) -C iface
/addsys
394 iface_additional_implib
:
396 iface_additional_clean
:
397 $(MAKE
) -C iface
/addsys
clean
399 iface_additional_install
:
401 iface_additional_bootcd
:
403 .PHONY
: iface_native iface_native_implib iface_native_clean iface_native_install \
404 iface_native_bootcd \
405 iface_additional iface_additional_implib iface_additional_clean \
406 iface_additional_install iface_additional_bootcd
413 $(MAKE
) -C drivers
/bus
/$*
415 $(BUS
:%=%_implib
): %_implib
:
416 $(MAKE
) -C drivers
/bus
/$* implib
418 $(BUS
:%=%_clean
): %_clean
:
419 $(MAKE
) -C drivers
/bus
/$* clean
421 $(BUS
:%=%_install
): %_install
:
422 $(MAKE
) -C drivers
/bus
/$* install
424 $(BUS
:%=%_bootcd
): %_bootcd
:
425 $(MAKE
) -C drivers
/bus
/$* bootcd
427 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
428 $(BUS
:%=%_install
) $(BUS
:%=%_bootcd
)
432 # Driver support libraries rules
435 $(MAKE
) -C drivers
/lib
/$*
437 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
438 $(MAKE
) -C drivers
/lib
/$* implib
440 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
441 $(MAKE
) -C drivers
/lib
/$* clean
443 $(DRIVERS_LIB
:%=%_install
): %_install
:
444 $(MAKE
) -C drivers
/lib
/$* install
446 $(DRIVERS_LIB
:%=%_bootcd
): %_bootcd
:
447 $(MAKE
) -C drivers
/lib
/$* bootcd
449 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_clean
) \
450 $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_bootcd
)
454 # Device driver rules
456 $(DEVICE_DRIVERS
): %:
457 $(MAKE
) -C drivers
/dd
/$*
459 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
460 $(MAKE
) -C drivers
/dd
/$* implib
462 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
463 $(MAKE
) -C drivers
/dd
/$* clean
465 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
466 $(MAKE
) -C drivers
/dd
/$* install
468 $(DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
469 $(MAKE
) -C drivers
/dd
/$* bootcd
471 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_clean
) \
472 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_bootcd
)
476 # Video device driver rules
479 $(MAKE
) -C drivers
/video
481 VIDEO_DRIVERS_implib
:
482 $(MAKE
) -C drivers
/video implib
485 $(MAKE
) -C drivers
/video
clean
487 VIDEO_DRIVERS_install
:
488 $(MAKE
) -C drivers
/video
install
490 VIDEO_DRIVERS_bootcd
:
491 $(MAKE
) -C drivers
/video bootcd
493 .PHONY
: VIDEO_DRIVERS VIDEO_DRIVERS_implib VIDEO_DRIVERS_clean \
494 VIDEO_DRIVERS_install VIDEO_DRIVERS_bootcd
501 $(MAKE
) -C drivers
/input
/$*
503 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
504 $(MAKE
) -C drivers
/input
/$* implib
506 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
507 $(MAKE
) -C drivers
/input
/$* clean
509 $(INPUT_DRIVERS
:%=%_install
): %_install
:
510 $(MAKE
) -C drivers
/input
/$* install
512 $(INPUT_DRIVERS
:%=%_bootcd
): %_bootcd
:
513 $(MAKE
) -C drivers
/input
/$* bootcd
515 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_clean
)\
516 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_bootcd
)
519 # Filesystem driver rules
522 $(MAKE
) -C drivers
/fs
/$*
524 $(FS_DRIVERS
:%=%_implib
): %_implib
:
525 $(MAKE
) -C drivers
/fs
/$* implib
527 $(FS_DRIVERS
:%=%_clean
): %_clean
:
528 $(MAKE
) -C drivers
/fs
/$* clean
530 $(FS_DRIVERS
:%=%_install
): %_install
:
531 $(MAKE
) -C drivers
/fs
/$* install
533 $(FS_DRIVERS
:%=%_bootcd
): %_bootcd
:
534 $(MAKE
) -C drivers
/fs
/$* bootcd
536 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_clean
) \
537 $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_bootcd
)
541 # Network driver rules
544 $(MAKE
) -C drivers
/net
/$*
546 $(NET_DRIVERS
:%=%_implib
): %_implib
:
547 $(MAKE
) -C drivers
/net
/$* implib
549 $(NET_DRIVERS
:%=%_clean
): %_clean
:
550 $(MAKE
) -C drivers
/net
/$* clean
552 $(NET_DRIVERS
:%=%_install
): %_install
:
553 $(MAKE
) -C drivers
/net
/$* install
555 $(NET_DRIVERS
:%=%_bootcd
): %_bootcd
:
556 $(MAKE
) -C drivers
/net
/$* bootcd
558 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_clean
) \
559 $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_bootcd
)
563 # Network device driver rules
565 $(NET_DEVICE_DRIVERS
): %:
566 $(MAKE
) -C drivers
/net
/dd
/$*
568 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
569 $(MAKE
) -C drivers
/net
/dd
/$* implib
571 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
572 $(MAKE
) -C drivers
/net
/dd
/$* clean
574 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
575 $(MAKE
) -C drivers
/net
/dd
/$* install
577 $(NET_DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
578 $(MAKE
) -C drivers
/net
/dd
/$* bootcd
580 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) $(NET_DEVICE_DRIVERS
:%=%_implib
) \
581 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_bootcd
)
585 # storage driver rules
587 $(STORAGE_DRIVERS
): %:
588 $(MAKE
) -C drivers
/storage
/$*
590 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
591 $(MAKE
) -C drivers
/storage
/$* implib
593 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
594 $(MAKE
) -C drivers
/storage
/$* clean
596 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
597 $(MAKE
) -C drivers
/storage
/$* install
599 $(STORAGE_DRIVERS
:%=%_bootcd
): %_bootcd
:
600 $(MAKE
) -C drivers
/storage
/$* bootcd
602 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) $(STORAGE_DRIVERS
:%=%_implib
) \
603 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_bootcd
)
610 $(MAKE
) -C loaders
/$*
612 $(LOADERS
:%=%_implib
): %_implib
:
614 $(LOADERS
:%=%_clean
): %_clean
:
615 $(MAKE
) -C loaders
/$* clean
617 $(LOADERS
:%=%_install
): %_install
:
618 $(MAKE
) -C loaders
/$* install
620 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
)
624 # Required system components
630 $(MAKE
) -C ntoskrnl implib
633 $(MAKE
) -C ntoskrnl
clean
636 $(MAKE
) -C ntoskrnl
install
639 $(MAKE
) -C ntoskrnl bootcd
641 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_bootcd
645 # Hardware Abstraction Layer import library
651 $(MAKE
) -C hal
/hal implib
654 $(MAKE
) -C hal
/hal
clean
657 $(MAKE
) -C hal
/hal
install
660 $(MAKE
) -C hal
/hal bootcd
662 .PHONY
: hallib hallib_implib hallib_clean hallib_install hallib_bootcd
666 # Hardware Abstraction Layers
671 $(HALS
:%=%_implib
): %_implib
:
672 $(MAKE
) -C hal
/$* implib
674 $(HALS
:%=%_clean
): %_clean
:
675 $(MAKE
) -C hal
/$* clean
677 $(HALS
:%=%_install
): %_install
:
678 $(MAKE
) -C hal
/$* install
680 $(HALS
:%=%_bootcd
): %_bootcd
:
681 $(MAKE
) -C hal
/$* bootcd
683 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_bootcd
)
687 # File system libraries
690 $(MAKE
) -C lib
/fslib
/$*
692 $(LIB_FSLIB
:%=%_depends
): %_depends
:
693 $(MAKE
) -C lib
/fslib
/$* depends
695 $(LIB_FSLIB
:%=%_implib
): %_implib
:
696 $(MAKE
) -C lib
/fslib
/$* implib
698 $(LIB_FSLIB
:%=%_clean
): %_clean
:
699 $(MAKE
) -C lib
/fslib
/$* clean
701 $(LIB_FSLIB
:%=%_install
): %_install
:
702 $(MAKE
) -C lib
/fslib
/$* install
704 $(LIB_FSLIB
:%=%_bootcd
): %_bootcd
:
705 $(MAKE
) -C lib
/fslib
/$* bootcd
707 .PHONY
: $(LIB_FSLIB
) $(LIB_FSLIB
:%=%_depends
) $(LIB_FSLIB
:%=%_implib
) $(LIB_FSLIB
:%=%_clean
) \
708 $(LIB_FSLIB
:%=%_install
) $(LIB_FSLIB
:%=%_bootcd
)
717 $(LIB_STATIC
:%=%_depends
): %_depends
:
718 $(MAKE
) -C lib
/string depends
720 $(LIB_STATIC
:%=%_implib
): %_implib
:
721 $(MAKE
) -C lib
/$* implib
723 $(LIB_STATIC
:%=%_clean
): %_clean
:
724 $(MAKE
) -C lib
/$* clean
726 $(LIB_STATIC
:%=%_install
): %_install
:
727 $(MAKE
) -C lib
/$* install
729 $(LIB_STATIC
:%=%_bootcd
): %_bootcd
:
730 $(MAKE
) -C lib
/$* bootcd
732 .PHONY
: $(LIB_STATIC
) $(LIB_STATIC
:%=%_depends
) $(LIB_STATIC
:%=%_implib
) $(LIB_STATIC
:%=%_clean
) \
733 $(LIB_STATIC
:%=%_install
) $(LIB_STATIC
:%=%_bootcd
)
742 $(DLLS
:%=%_depends
): %_depends
:
743 $(MAKE
) -C lib
/$* depends
745 $(DLLS
:%=%_implib
): %_implib
:
746 $(MAKE
) -C lib
/$* implib
748 $(DLLS
:%=%_clean
): %_clean
:
749 $(MAKE
) -C lib
/$* clean
751 $(DLLS
:%=%_install
): %_install
:
752 $(MAKE
) -C lib
/$* install
754 $(DLLS
:%=%_bootcd
): %_bootcd
:
755 $(MAKE
) -C lib
/$* bootcd
757 .PHONY
: $(DLLS
) $(DLLS
:%=%_depends
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) \
762 # Subsystem support modules
767 $(SUBSYS
:%=%_depends
): %_depends
:
768 $(MAKE
) -C subsys
/$* depends
770 $(SUBSYS
:%=%_implib
): %_implib
:
771 $(MAKE
) -C subsys
/$* implib
773 $(SUBSYS
:%=%_clean
): %_clean
:
774 $(MAKE
) -C subsys
/$* clean
776 $(SUBSYS
:%=%_install
): %_install
:
777 $(MAKE
) -C subsys
/$* install
779 $(SUBSYS
:%=%_bootcd
): %_bootcd
:
780 $(MAKE
) -C subsys
/$* bootcd
782 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_depends
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
786 # Regression testsuite
792 $(REGTESTS
:%=%_clean
): %_clean
:
793 $(MAKE
) -C regtests
clean
795 $(REGTESTS
:%=%_install
): %_install
:
796 $(MAKE
) -C regtests
install
798 .PHONY
: $(REGTESTS
) $(REGTESTS
:%=%_depends
) $(SUBSYS
:%=%_clean
) $(REGTESTS
:%=%_install
)
802 # Create an installation
806 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
807 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
808 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
809 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
810 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
811 $(RM
) $(INSTALL_DIR
)/media
/*.
*
812 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
813 $(RM
) $(INSTALL_DIR
)/*.com
814 $(RM
) $(INSTALL_DIR
)/*.bat
815 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
816 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
817 $(RMDIR
) $(INSTALL_DIR
)/system32
818 $(RMDIR
) $(INSTALL_DIR
)/symbols
819 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
820 $(RMDIR
) $(INSTALL_DIR
)/media
821 $(RMDIR
) $(INSTALL_DIR
)/bin
822 $(RMDIR
) $(INSTALL_DIR
)
825 $(RMKDIR
) $(INSTALL_DIR
)
826 $(RMKDIR
) $(INSTALL_DIR
)/bin
827 $(RMKDIR
) $(INSTALL_DIR
)/media
828 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
829 $(RMKDIR
) $(INSTALL_DIR
)/symbols
830 $(RMKDIR
) $(INSTALL_DIR
)/system32
831 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
832 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
833 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
/etc
836 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
837 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
838 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
839 $(CP
) media
/fonts
$(INSTALL_DIR
)/media
/fonts
840 $(CP
) media
/nls
$(INSTALL_DIR
)/system32
841 $(CP
) media
/nls
/c_1252.nls
$(INSTALL_DIR
)/system32
/ansi.nls
842 $(CP
) media
/nls
/c_437.nls
$(INSTALL_DIR
)/system32
/oem.nls
843 $(CP
) media
/nls
/l_intl.nls
$(INSTALL_DIR
)/system32
/casemap.nls
844 $(CP
) media
/drivers
/etc
/services \
845 $(INSTALL_DIR
)/system32
/drivers
/etc
/services
847 .PHONY
: install_clean install_dirs install_before
851 find .
-name
"*.[ch]" -print | etags
--language
=c
-
855 echo generating ReactOS NTOSKRNL documentation ...
856 $(MAKE
) -C ntoskrnl docu
858 echo generating ReactOS drivers documentation ...
859 $(MAKE
) -C drivers docu
861 echo generating ReactOS NTDLL documentation ...
862 $(MAKE
) -C lib
/ntdll docu
864 echo generating ReactOS Freetype documentation ...
865 $(MAKE
) -C lib
/freetype docu
867 echo generating ReactOS libs documentation ...
870 echo generating ReactOS WIN32K documentation ...
871 $(MAKE
) -C subsys
/win32k docu
873 echo generating ReactOS apps
+tools documentation ...
876 echo generating ReactOS explorer documentation ...
877 $(MAKE
) -C subsys
/system
/explorer full-docu
879 echo generating remaining ReactOS documentation ...