1 # $Id: Makefile,v 1.238 2004/07/23 20:03:24 chorns 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 # libpcap packet epsapi
45 DLLS
= acledit advapi32 cabinet cards comctl32 crtdll comdlg32 d3d8thk expat fmifs freetype \
46 gdi32 imagehlp imm32 iphlpapi kernel32 lzexpand mpr msacm msafd msgina msimg32 msvcrt \
47 msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg packet psapi richedit \
48 rpcrt4 samlib secur32 setupapi shell32 shlwapi snmpapi syssetup twain unicode user32 \
49 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda \
50 $(DLLS_KBD
) $(DLLS_CPL
)
52 SUBSYS
= smss win32k csrss ntvdm
55 # Select the server(s) you want to build
57 #SERVERS = posix linux os2
64 # Driver support libraries
66 DRIVERS_LIB
= bzip2 oskittcp csq
68 # Kernel mode device drivers
70 # beep blue floppy null parallel ramdrv serenum serial
71 DEVICE_DRIVERS
= beep blue debugout null serial bootvid
73 # Kernel mode input drivers
74 INPUT_DRIVERS
= keyboard mouclass psaux sermouse
76 # Kernel mode file system drivers
77 # cdfs ext2 fs_rec ms np vfat
78 FS_DRIVERS
= cdfs fs_rec ms np vfat mup ntfs
80 # Kernel mode networking drivers
81 # afd ndis npf tcpip tdi wshtcpip
82 NET_DRIVERS
= afd ndis npf tcpip tdi wshtcpip
84 # Kernel mode networking device drivers
86 NET_DEVICE_DRIVERS
= ne2000 pcnet
88 # Kernel mode storage drivers
89 # atapi cdrom class2 disk scsiport
90 STORAGE_DRIVERS
= atapi cdrom class2 disk floppy scsiport diskdump
93 # autochk cmd format services setup usetup welcome winlogon
94 SYS_APPS
= autochk cmd explorer expand format services setup taskmgr userinit usetup welcome vmwinst winlogon regedit
98 SYS_SVC
= rpcss eventlog
100 APPS
= tests testsets utils
103 # External modules and (sub)systems for ReactOS
104 # rosapps posix os2 (requires c++) java (non-existant)
107 ifeq ($(ROS_BUILD_EXT
),yes
)
108 EXT_MODULES
= $(EXTERNALS
)
113 KERNEL_DRIVERS
= $(DRIVERS_LIB
) $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) \
114 $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
) $(STORAGE_DRIVERS
) VIDEO_DRIVERS
119 all: tools dk implib
$(LIB_STATIC
) $(COMPONENTS
) $(REGTESTS
) $(HALS
) $(BUS
) $(LIB_FSLIB
) $(DLLS
) $(SUBSYS
) \
120 $(LOADERS
) $(KERNEL_DRIVERS
) $(SYS_APPS
) $(SYS_SVC
) \
121 $(APPS
) $(EXT_MODULES
)
123 #config: $(TOOLS:%=%_config)
125 depends
: $(LIB_STATIC
:%=%_depends
) $(LIB_FSLIB
:%=%_depends
) $(DLLS
:%=%_depends
) $(SUBSYS
:%=%_depends
) $(SYS_SVC
:%=%_depends
) \
126 $(EXT_MODULES
:%=%_depends
) $(POSIX_LIBS
:%=%_depends
)
128 implib
: $(COMPONENTS
:%=%_implib
) $(HALS
:%=%_implib
) $(BUS
:%=%_implib
) \
129 $(LIB_STATIC
:%=%_implib
) $(LIB_FSLIB
:%=%_implib
) $(DLLS
:%=%_implib
) $(LOADERS
:%=%_implib
) \
130 $(KERNEL_DRIVERS
:%=%_implib
) $(SUBSYS
:%=%_implib
) \
131 $(SYS_SVC
:%=%_implib
) $(EXT_MODULES
:%=%_implib
)
133 test: $(COMPONENTS
:%=%_test
) $(HALS
:%=%_test
) $(BUS
:%=%_test
) \
134 $(LIB_STATIC
:%=%_test
) $(LIB_FSLIB
:%=%_test
) $(DLLS
:%=%_test
) $(LOADERS
:%=%_test
) \
135 $(KERNEL_DRIVERS
:%=%_test
) $(SUBSYS
:%=%_test
) \
136 $(SYS_SVC
:%=%_test
) $(EXT_MODULES
:%=%_test
)
138 clean: tools dk_clean
$(HALS
:%=%_clean
) \
139 $(COMPONENTS
:%=%_clean
) $(BUS
:%=%_clean
) $(LIB_STATIC
:%=%_clean
) $(LIB_FSLIB
:%=%_clean
) $(DLLS
:%=%_clean
) \
140 $(LOADERS
:%=%_clean
) $(KERNEL_DRIVERS
:%=%_clean
) $(SUBSYS
:%=%_clean
) \
141 $(SYS_APPS
:%=%_clean
) $(SYS_SVC
:%=%_clean
) \
142 $(NET_APPS
:%=%_clean
) \
143 $(APPS
:%=%_clean
) $(EXT_MODULES
:%=%_clean
) $(REGTESTS
:%=%_clean
) \
144 clean_after tools_clean
147 $(RM
) $(PATH_TO_TOP
)/include/roscfg.h
149 fastinstall
: tools install_dirs install_before \
150 $(COMPONENTS
:%=%_install
) $(HALS
:%=%_install
) $(BUS
:%=%_install
) \
151 $(LIB_STATIC
:%=%_install
) $(LIB_FSLIB
:%=%_install
) $(DLLS
:%=%_install
) $(LOADERS
:%=%_install
) \
152 $(KERNEL_DRIVERS
:%=%_install
) $(SUBSYS
:%=%_install
) \
153 $(SYS_APPS
:%=%_install
) $(SYS_SVC
:%=%_install
) \
154 $(APPS
:%=%_install
) $(EXT_MODULES
:%=%_install
) $(REGTESTS
:%=%_install
)
155 install: fastinstall registry
157 FREELDR_DIR
= ..
/freeldr
160 $(MAKE
) -C
$(FREELDR_DIR
)
162 bootcd_directory_layout
:
163 $(RMKDIR
) $(BOOTCD_DIR
)
164 $(RMKDIR
) $(BOOTCD_DIR
)/bootdisk
165 $(RMKDIR
) $(BOOTCD_DIR
)/loader
166 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
167 $(RMKDIR
) $(BOOTCD_DIR
)/reactos
/system32
168 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/..
/isoboot.bin
169 $(CP
) ${FREELDR_DIR}/bootsect
/dosmbr.bin
${BOOTCD_DIR}/loader
/dosmbr.bin
170 $(CP
) ${FREELDR_DIR}/bootsect
/ext2.bin
${BOOTCD_DIR}/loader
/ext2.bin
171 $(CP
) ${FREELDR_DIR}/bootsect
/fat.bin
${BOOTCD_DIR}/loader
/fat.bin
172 $(CP
) ${FREELDR_DIR}/bootsect
/fat32.bin
${BOOTCD_DIR}/loader
/fat32.bin
173 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${BOOTCD_DIR}/loader
/isoboot.bin
174 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${BOOTCD_DIR}/loader
/freeldr.sys
175 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/setupldr.sys
${BOOTCD_DIR}/loader
/setupldr.sys
177 bootcd_bootstrap_files
: $(COMPONENTS
:%=%_bootcd
) $(HALS
:%=%_bootcd
) $(BUS
:%=%_bootcd
) \
178 $(LIB_STATIC
:%=%_bootcd
) $(LIB_FSLIB
:%=%_bootcd
) $(DLLS
:%=%_bootcd
) $(KERNEL_DRIVERS
:%=%_bootcd
) \
179 $(SUBSYS
:%=%_bootcd
) $(SYS_APPS
:%=%_bootcd
)
181 bootcd_install_before
:
182 $(RLINE
) bootdata
/autorun.inf
$(BOOTCD_DIR
)/autorun.inf
183 $(RLINE
) bootdata
/readme.txt
$(BOOTCD_DIR
)/readme.txt
184 $(RLINE
) bootdata
/hivecls.inf
$(BOOTCD_DIR
)/reactos
/hivecls.inf
185 $(RLINE
) bootdata
/hivedef.inf
$(BOOTCD_DIR
)/reactos
/hivedef.inf
186 $(RLINE
) bootdata
/hivesft.inf
$(BOOTCD_DIR
)/reactos
/hivesft.inf
187 $(RLINE
) bootdata
/hivesys.inf
$(BOOTCD_DIR
)/reactos
/hivesys.inf
188 $(RLINE
) bootdata
/txtsetup.sif
$(BOOTCD_DIR
)/reactos
/txtsetup.sif
189 $(CP
) bootdata
/icon.ico
$(BOOTCD_DIR
)/icon.ico
190 $(CP
) subsys
/system
/welcome
/welcome.exe
$(BOOTCD_DIR
)/reactos
/welcome.exe
191 $(CP
) media
/nls
/c_1252.nls
$(BOOTCD_DIR
)/reactos
/c_1252.nls
192 $(CP
) media
/nls
/c_437.nls
$(BOOTCD_DIR
)/reactos
/c_437.nls
193 $(CP
) media
/nls
/l_intl.nls
$(BOOTCD_DIR
)/reactos
/l_intl.nls
194 $(CP
) media
/drivers
/etc
/services
$(BOOTCD_DIR
)/reactos
/services
196 bootcd_basic
: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
199 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/L
$(BOOTCD_DIR
)/reactos
/I
200 $(CABMAN
) /C bootdata
/packages
/reactos.dff
/RC
$(BOOTCD_DIR
)/reactos
/reactos.inf
/L
$(BOOTCD_DIR
)/reactos
/N
201 - $(RM
) $(BOOTCD_DIR
)/reactos
/reactos.inf
202 $(CDMAKE
) -v
-m
-b
$(BOOTCD_DIR
)/..
/isoboot.bin
$(BOOTCD_DIR
) REACTOS ReactOS.iso
205 $(CP
) bootdata
/unattend.inf
$(BOOTCD_DIR
)/reactos
/unattend.inf
207 livecd_directory_layout
:
208 $(RMKDIR
) $(LIVECD_DIR
)
209 $(RMKDIR
) $(LIVECD_DIR
)/loader
210 $(RMKDIR
) $(LIVECD_DIR
)/reactos
211 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/All\ Users
/Desktop
212 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/Default\ User
/Desktop
213 $(RMKDIR
) $(LIVECD_DIR
)/Profiles
/Default\ User
/My\ Documents
214 $(CP
) ${FREELDR_DIR}/bootsect
/isoboot.bin
${LIVECD_DIR}/..
/isoboot.bin
215 $(CP
) ${FREELDR_DIR}/freeldr
/obj
/i386
/freeldr.sys
${LIVECD_DIR}/loader
/setupldr.sys
216 $(RLINE
) bootdata
/livecd.ini
$(LIVECD_DIR
)/freeldr.ini
218 livecd_bootstrap_files
:
219 $(MAKE
) LIVECD_INSTALL
=yes fastinstall
221 livecd_install_before
:
222 $(MKHIVE
) bootdata
$(LIVECD_DIR
)/reactos
/system32
/config bootdata
/livecd.inf bootdata
/hiveinst.inf
224 livecd_basic
: livecd_directory_layout livecd_bootstrap_files livecd_install_before
227 $(CDMAKE
) -m
-j
-b
$(LIVECD_DIR
)/..
/isoboot.bin
$(LIVECD_DIR
) REACTOS roslive.iso
229 bootcd
: bootcd_basic bootcd_makecd
231 ubootcd
: bootcd_basic ubootcd_unattend bootcd_makecd
233 livecd
: livecd_basic livecd_makecd
236 $(MKHIVE
) bootdata
$(INSTALL_DIR
)/system32
/config bootdata
/hiveinst.inf
238 .PHONY
: all depends implib
test clean clean_before
install freeldr bootcd_directory_layout \
239 bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
243 # System Applications
246 $(MAKE
) -C subsys
/system
/$*
248 $(SYS_APPS
:%=%_implib
): %_implib
:
249 $(MAKE
) -C subsys
/system
/$* implib
251 $(SYS_APPS
:%=%_test
): %_test
:
252 $(MAKE
) -C subsys
/system
/$* test
254 $(SYS_APPS
:%=%_clean
): %_clean
:
255 $(MAKE
) -C subsys
/system
/$* clean
257 $(SYS_APPS
:%=%_install
): %_install
:
258 $(MAKE
) -C subsys
/system
/$* install
260 $(SYS_APPS
:%=%_bootcd
): %_bootcd
:
261 $(MAKE
) -C subsys
/system
/$* bootcd
263 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_test
) \
264 $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_bootcd
)
270 $(MAKE
) -C services
/$*
272 $(SYS_SVC
:%=%_depends
): %_depends
:
273 $(MAKE
) -C services
/$* depends
275 $(SYS_SVC
:%=%_implib
): %_implib
:
276 $(MAKE
) -C services
/$* implib
278 $(SYS_SVC
:%=%_test
): %_test
:
279 $(MAKE
) -C services
/$* test
281 $(SYS_SVC
:%=%_clean
): %_clean
:
282 $(MAKE
) -C services
/$* clean
284 $(SYS_SVC
:%=%_install
): %_install
:
285 $(MAKE
) -C services
/$* install
287 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_depends
) $(SYS_SVC
:%=%_implib
) \
288 $(SYS_SVC
:%=%_test
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
)
295 # Extra (optional system) Applications
301 # $(APPS:%=%_implib): %_implib:
302 # $(MAKE) -C apps/$* implib
304 $(APPS
:%=%_test
): %_test
:
305 $(MAKE
) -C apps
/$* test
307 $(APPS
:%=%_clean
): %_clean
:
308 $(MAKE
) -C apps
/$* clean
310 $(APPS
:%=%_install
): %_install
:
311 $(MAKE
) -C apps
/$* install
313 .PHONY
: $(APPS
) $(APPS
:%=%_test
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
)
317 # External ports and subsystem personalities
320 $(MAKE
) -C
$(ROOT_PATH
)/$*
322 $(EXTERNALS
:%=%_depends
): %_depends
:
323 $(MAKE
) -C
$(ROOT_PATH
)/$* depends
325 $(EXTERNALS
:%=%_implib
): %_implib
:
326 $(MAKE
) -C
$(ROOT_PATH
)/$* implib
328 $(EXTERNALS
:%=%_clean
): %_clean
:
329 $(MAKE
) -C
$(ROOT_PATH
)/$* clean
331 $(EXTERNALS
:%=%_install
): %_install
:
332 $(MAKE
) -C
$(ROOT_PATH
)/$* install
334 .PHONY
: $(EXTERNALS
) $(EXTERNALS
:%=%_depends
) $(EXTERNALS
:%=%_implib
) $(EXTERNALS
:%=%_clean
) $(EXTERNALS
:%=%_install
)
350 $(MAKE
) -C tools
clean
354 .PHONY
: tools tools_implib tools_test tools_clean tools_install
362 $(RMKDIR
) $(DDK_PATH
)
363 $(RMKDIR
) $(DDK_PATH_LIB
)
364 $(RMKDIR
) $(DDK_PATH_INC
)
365 $(RMKDIR
) $(SDK_PATH
)
366 $(RMKDIR
) $(SDK_PATH_LIB
)
367 $(RMKDIR
) $(SDK_PATH_INC
)
368 $(RMKDIR
) $(XDK_PATH
)
369 $(RMKDIR
) $(XDK_PATH_LIB
)
370 $(RMKDIR
) $(XDK_PATH_INC
)
374 # WARNING! Be very sure that there are no important files
375 # in these directories before cleaning them!!!
377 $(RM
) $(DDK_PATH_LIB
)/*.a
378 # $(RM) $(DDK_PATH_INC)/*.h
379 $(RMDIR
) $(DDK_PATH_LIB
)
380 # $(RMDIR) $(DDK_PATH_INC)
381 $(RM
) $(SDK_PATH_LIB
)/*.a
382 # $(RM) $(SDK_PATH_INC)/*.h
383 $(RMDIR
) $(SDK_PATH_LIB
)
384 # $(RMDIR) $(SDK_PATH_INC)
385 $(RM
) $(XDK_PATH_LIB
)/*.a
386 # $(RM) $(XDK_PATH_INC)/*.h
387 $(RMDIR
) $(XDK_PATH_LIB
)
388 # $(RMDIR) $(XDK_PATH_INC)
392 .PHONY
: dk dk_implib dk_clean dk_install
399 $(MAKE
) -C iface
/native
406 $(MAKE
) -C iface
/native
clean
408 iface_native_install
:
413 $(MAKE
) -C iface
/addsys
415 iface_additional_implib
:
417 iface_additional_test
:
419 iface_additional_clean
:
420 $(MAKE
) -C iface
/addsys
clean
422 iface_additional_install
:
424 iface_additional_bootcd
:
426 .PHONY
: iface_native iface_native_implib iface_native_test iface_native_clean \
427 iface_native_install iface_native_bootcd iface_additional \
428 iface_additional_implib iface_additional_test iface_additional_clean \
429 iface_additional_install iface_additional_bootcd
436 $(MAKE
) -C drivers
/bus
/$*
438 $(BUS
:%=%_implib
): %_implib
:
439 $(MAKE
) -C drivers
/bus
/$* implib
441 $(BUS
:%=%_test
): %_test
:
442 $(MAKE
) -C drivers
/bus
/$* test
444 $(BUS
:%=%_clean
): %_clean
:
445 $(MAKE
) -C drivers
/bus
/$* clean
447 $(BUS
:%=%_install
): %_install
:
448 $(MAKE
) -C drivers
/bus
/$* install
450 $(BUS
:%=%_bootcd
): %_bootcd
:
451 $(MAKE
) -C drivers
/bus
/$* bootcd
453 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
454 $(BUS
:%=%_install
) $(BUS
:%=%_bootcd
)
458 # Driver support libraries rules
461 $(MAKE
) -C drivers
/lib
/$*
463 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
464 $(MAKE
) -C drivers
/lib
/$* implib
466 $(DRIVERS_LIB
:%=%_test
): %_test
:
467 $(MAKE
) -C drivers
/lib
/$* test
469 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
470 $(MAKE
) -C drivers
/lib
/$* clean
472 $(DRIVERS_LIB
:%=%_install
): %_install
:
473 $(MAKE
) -C drivers
/lib
/$* install
475 $(DRIVERS_LIB
:%=%_bootcd
): %_bootcd
:
476 $(MAKE
) -C drivers
/lib
/$* bootcd
478 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_test
) \
479 $(DRIVERS_LIB
:%=%_clean
) $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_bootcd
)
483 # Device driver rules
485 $(DEVICE_DRIVERS
): %:
486 $(MAKE
) -C drivers
/dd
/$*
488 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
489 $(MAKE
) -C drivers
/dd
/$* implib
491 $(DEVICE_DRIVERS
:%=%_test
): %_test
:
492 $(MAKE
) -C drivers
/dd
/$* test
494 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
495 $(MAKE
) -C drivers
/dd
/$* clean
497 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
498 $(MAKE
) -C drivers
/dd
/$* install
500 $(DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
501 $(MAKE
) -C drivers
/dd
/$* bootcd
503 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_test
) \
504 $(DEVICE_DRIVERS
:%=%_clean
) $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_bootcd
)
508 # Video device driver rules
511 $(MAKE
) -C drivers
/video
513 VIDEO_DRIVERS_implib
:
514 $(MAKE
) -C drivers
/video implib
517 $(MAKE
) -C drivers
/video
test
520 $(MAKE
) -C drivers
/video
clean
522 VIDEO_DRIVERS_install
:
523 $(MAKE
) -C drivers
/video
install
525 VIDEO_DRIVERS_bootcd
:
526 $(MAKE
) -C drivers
/video bootcd
528 .PHONY
: VIDEO_DRIVERS VIDEO_DRIVERS_implib VIDEO_DRIVERS_test\
529 VIDEO_DRIVERS_clean VIDEO_DRIVERS_install VIDEO_DRIVERS_bootcd
536 $(MAKE
) -C drivers
/input
/$*
538 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
539 $(MAKE
) -C drivers
/input
/$* implib
541 $(INPUT_DRIVERS
:%=%_test
): %_test
:
542 $(MAKE
) -C drivers
/input
/$* test
544 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
545 $(MAKE
) -C drivers
/input
/$* clean
547 $(INPUT_DRIVERS
:%=%_install
): %_install
:
548 $(MAKE
) -C drivers
/input
/$* install
550 $(INPUT_DRIVERS
:%=%_bootcd
): %_bootcd
:
551 $(MAKE
) -C drivers
/input
/$* bootcd
553 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_test
) \
554 $(INPUT_DRIVERS
:%=%_clean
) $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_bootcd
)
557 # Filesystem driver rules
560 $(MAKE
) -C drivers
/fs
/$*
562 $(FS_DRIVERS
:%=%_implib
): %_implib
:
563 $(MAKE
) -C drivers
/fs
/$* implib
565 $(FS_DRIVERS
:%=%_test
): %_test
:
566 $(MAKE
) -C drivers
/fs
/$* test
568 $(FS_DRIVERS
:%=%_clean
): %_clean
:
569 $(MAKE
) -C drivers
/fs
/$* clean
571 $(FS_DRIVERS
:%=%_install
): %_install
:
572 $(MAKE
) -C drivers
/fs
/$* install
574 $(FS_DRIVERS
:%=%_bootcd
): %_bootcd
:
575 $(MAKE
) -C drivers
/fs
/$* bootcd
577 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_test
) \
578 $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_bootcd
)
582 # Network driver rules
585 $(MAKE
) -C drivers
/net
/$*
587 $(NET_DRIVERS
:%=%_implib
): %_implib
:
588 $(MAKE
) -C drivers
/net
/$* implib
590 $(NET_DRIVERS
:%=%_test
): %_test
:
591 $(MAKE
) -C drivers
/net
/$* test
593 $(NET_DRIVERS
:%=%_clean
): %_clean
:
594 $(MAKE
) -C drivers
/net
/$* clean
596 $(NET_DRIVERS
:%=%_install
): %_install
:
597 $(MAKE
) -C drivers
/net
/$* install
599 $(NET_DRIVERS
:%=%_bootcd
): %_bootcd
:
600 $(MAKE
) -C drivers
/net
/$* bootcd
602 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_test
) \
603 $(NET_DRIVERS
:%=%_clean
) $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_bootcd
)
607 # Network device driver rules
609 $(NET_DEVICE_DRIVERS
): %:
610 $(MAKE
) -C drivers
/net
/dd
/$*
612 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
613 $(MAKE
) -C drivers
/net
/dd
/$* implib
615 $(NET_DEVICE_DRIVERS
:%=%_test
): %_test
:
616 $(MAKE
) -C drivers
/net
/dd
/$* test
618 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
619 $(MAKE
) -C drivers
/net
/dd
/$* clean
621 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
622 $(MAKE
) -C drivers
/net
/dd
/$* install
624 $(NET_DEVICE_DRIVERS
:%=%_bootcd
): %_bootcd
:
625 $(MAKE
) -C drivers
/net
/dd
/$* bootcd
627 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) \
628 $(NET_DEVICE_DRIVERS
:%=%_implib
) $(NET_DEVICE_DRIVERS
:%=%_test
) \
629 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_bootcd
)
633 # storage driver rules
635 $(STORAGE_DRIVERS
): %:
636 $(MAKE
) -C drivers
/storage
/$*
638 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
639 $(MAKE
) -C drivers
/storage
/$* implib
641 $(STORAGE_DRIVERS
:%=%_test
): %_test
:
642 $(MAKE
) -C drivers
/storage
/$* test
644 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
645 $(MAKE
) -C drivers
/storage
/$* clean
647 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
648 $(MAKE
) -C drivers
/storage
/$* install
650 $(STORAGE_DRIVERS
:%=%_bootcd
): %_bootcd
:
651 $(MAKE
) -C drivers
/storage
/$* bootcd
653 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) \
654 $(STORAGE_DRIVERS
:%=%_implib
) $(STORAGE_DRIVERS
:%=%_test
) \
655 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_bootcd
)
662 $(MAKE
) -C loaders
/$*
664 $(LOADERS
:%=%_implib
): %_implib
:
666 $(LOADERS
:%=%_test
): %_test
:
668 $(LOADERS
:%=%_clean
): %_clean
:
669 $(MAKE
) -C loaders
/$* clean
671 $(LOADERS
:%=%_install
): %_install
:
672 $(MAKE
) -C loaders
/$* install
674 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_test
) \
675 $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
)
679 # Required system components
685 $(MAKE
) -C ntoskrnl implib
688 $(MAKE
) -C ntoskrnl
test
691 $(MAKE
) -C ntoskrnl
clean
694 $(MAKE
) -C ntoskrnl
install
697 $(MAKE
) -C ntoskrnl bootcd
699 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_test \
700 ntoskrnl_clean ntoskrnl_install ntoskrnl_bootcd
704 # Hardware Abstraction Layer import library
710 $(MAKE
) -C hal
/hal implib
713 $(MAKE
) -C hal
/hal
test
716 $(MAKE
) -C hal
/hal
clean
719 $(MAKE
) -C hal
/hal
install
722 $(MAKE
) -C hal
/hal bootcd
724 .PHONY
: hallib hallib_implib hallib_test hallib_clean \
725 hallib_install hallib_bootcd
729 # Hardware Abstraction Layers
734 $(HALS
:%=%_implib
): %_implib
:
735 $(MAKE
) -C hal
/$* implib
737 $(HALS
:%=%_test
): %_test
:
738 $(MAKE
) -C hal
/$* test
740 $(HALS
:%=%_clean
): %_clean
:
741 $(MAKE
) -C hal
/$* clean
743 $(HALS
:%=%_install
): %_install
:
744 $(MAKE
) -C hal
/$* install
746 $(HALS
:%=%_bootcd
): %_bootcd
:
747 $(MAKE
) -C hal
/$* bootcd
749 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_test
) \
750 $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_bootcd
)
754 # File system libraries
757 $(MAKE
) -C lib
/fslib
/$*
759 $(LIB_FSLIB
:%=%_depends
): %_depends
:
760 $(MAKE
) -C lib
/fslib
/$* depends
762 $(LIB_FSLIB
:%=%_implib
): %_implib
:
763 $(MAKE
) -C lib
/fslib
/$* implib
765 $(LIB_FSLIB
:%=%_test
): %_test
:
766 $(MAKE
) -C lib
/fslib
/$* test
768 $(LIB_FSLIB
:%=%_clean
): %_clean
:
769 $(MAKE
) -C lib
/fslib
/$* clean
771 $(LIB_FSLIB
:%=%_install
): %_install
:
772 $(MAKE
) -C lib
/fslib
/$* install
774 $(LIB_FSLIB
:%=%_bootcd
): %_bootcd
:
775 $(MAKE
) -C lib
/fslib
/$* bootcd
777 .PHONY
: $(LIB_FSLIB
) $(LIB_FSLIB
:%=%_depends
) $(LIB_FSLIB
:%=%_implib
) \
778 $(LIB_FSLIB
:%=%_test
) $(LIB_FSLIB
:%=%_clean
) \
779 $(LIB_FSLIB
:%=%_install
) $(LIB_FSLIB
:%=%_bootcd
)
788 $(LIB_STATIC
:%=%_depends
): %_depends
:
789 $(MAKE
) -C lib
/string depends
791 $(LIB_STATIC
:%=%_implib
): %_implib
:
792 $(MAKE
) -C lib
/$* implib
794 $(LIB_STATIC
:%=%_test
): %_test
:
795 $(MAKE
) -C lib
/$* test
797 $(LIB_STATIC
:%=%_clean
): %_clean
:
798 $(MAKE
) -C lib
/$* clean
800 $(LIB_STATIC
:%=%_install
): %_install
:
801 $(MAKE
) -C lib
/$* install
803 $(LIB_STATIC
:%=%_bootcd
): %_bootcd
:
804 $(MAKE
) -C lib
/$* bootcd
806 .PHONY
: $(LIB_STATIC
) $(LIB_STATIC
:%=%_depends
) $(LIB_STATIC
:%=%_implib
) \
807 $(LIB_STATIC
:%=%_test
) $(LIB_STATIC
:%=%_clean
) \
808 $(LIB_STATIC
:%=%_install
) $(LIB_STATIC
:%=%_bootcd
)
817 $(DLLS
:%=%_depends
): %_depends
:
818 $(MAKE
) -C lib
/$* depends
820 $(DLLS
:%=%_implib
): %_implib
:
821 $(MAKE
) -C lib
/$* implib
823 $(DLLS
:%=%_test
): %_test
:
824 $(MAKE
) -C lib
/$* test
826 $(DLLS
:%=%_clean
): %_clean
:
827 $(MAKE
) -C lib
/$* clean
829 $(DLLS
:%=%_install
): %_install
:
830 $(MAKE
) -C lib
/$* install
832 $(DLLS
:%=%_bootcd
): %_bootcd
:
833 $(MAKE
) -C lib
/$* bootcd
835 .PHONY
: $(DLLS
) $(DLLS
:%=%_depends
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_test
) \
836 $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_bootcd
)
840 # Subsystem support modules
845 $(SUBSYS
:%=%_depends
): %_depends
:
846 $(MAKE
) -C subsys
/$* depends
848 $(SUBSYS
:%=%_implib
): %_implib
:
849 $(MAKE
) -C subsys
/$* implib
851 $(SUBSYS
:%=%_test
): %_test
:
852 $(MAKE
) -C subsys
/$* test
854 $(SUBSYS
:%=%_clean
): %_clean
:
855 $(MAKE
) -C subsys
/$* clean
857 $(SUBSYS
:%=%_install
): %_install
:
858 $(MAKE
) -C subsys
/$* install
860 $(SUBSYS
:%=%_bootcd
): %_bootcd
:
861 $(MAKE
) -C subsys
/$* bootcd
863 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_depends
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_test
) \
864 $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) $(SUBSYS
:%=%_bootcd
)
867 # Regression testsuite
873 $(REGTESTS
:%=%_clean
): %_clean
:
874 $(MAKE
) -C regtests
clean
876 $(REGTESTS
:%=%_install
): %_install
:
877 $(MAKE
) -C regtests
install
879 .PHONY
: $(REGTESTS
) $(REGTESTS
:%=%_depends
) $(SUBSYS
:%=%_clean
) $(REGTESTS
:%=%_install
)
883 # Create an installation
887 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
888 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
889 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
890 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
891 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
892 $(RM
) $(INSTALL_DIR
)/media
/*.
*
893 $(RM
) $(INSTALL_DIR
)/inf
/*.
*
894 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
895 $(RM
) $(INSTALL_DIR
)/*.com
896 $(RM
) $(INSTALL_DIR
)/*.bat
897 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
898 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
899 $(RMDIR
) $(INSTALL_DIR
)/system32
900 $(RMDIR
) $(INSTALL_DIR
)/symbols
901 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
902 $(RMDIR
) $(INSTALL_DIR
)/media
903 $(RMDIR
) $(INSTALL_DIR
)/inf
904 $(RMDIR
) $(INSTALL_DIR
)/bin
905 $(RMDIR
) $(INSTALL_DIR
)
908 $(RMKDIR
) $(INSTALL_DIR
)
909 $(RMKDIR
) $(INSTALL_DIR
)/bin
910 $(RMKDIR
) $(INSTALL_DIR
)/inf
911 $(RMKDIR
) $(INSTALL_DIR
)/media
912 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
913 $(RMKDIR
) $(INSTALL_DIR
)/symbols
914 $(RMKDIR
) $(INSTALL_DIR
)/system32
915 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
916 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
917 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
/etc
920 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
921 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
922 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
923 $(CP
) media
/inf
$(INSTALL_DIR
)/inf
924 $(CP
) media
/fonts
$(INSTALL_DIR
)/media
/fonts
925 $(CP
) media
/nls
$(INSTALL_DIR
)/system32
926 $(CP
) media
/nls
/c_1252.nls
$(INSTALL_DIR
)/system32
/ansi.nls
927 $(CP
) media
/nls
/c_437.nls
$(INSTALL_DIR
)/system32
/oem.nls
928 $(CP
) media
/nls
/l_intl.nls
$(INSTALL_DIR
)/system32
/casemap.nls
929 $(CP
) media
/drivers
/etc
/services \
930 $(INSTALL_DIR
)/system32
/drivers
/etc
/services
932 .PHONY
: install_clean install_dirs install_before
936 find .
-name
"*.[ch]" -print | etags
--language
=c
-
940 echo generating ReactOS NTOSKRNL documentation ...
941 $(MAKE
) -C ntoskrnl docu
943 echo generating ReactOS drivers documentation ...
944 $(MAKE
) -C drivers docu
946 echo generating ReactOS NTDLL documentation ...
947 $(MAKE
) -C lib
/ntdll docu
949 echo generating ReactOS Freetype documentation ...
950 $(MAKE
) -C lib
/freetype docu
952 echo generating ReactOS libs documentation ...
955 echo generating ReactOS WIN32K documentation ...
956 $(MAKE
) -C subsys
/win32k docu
958 echo generating ReactOS apps
+tools documentation ...
961 echo generating ReactOS explorer documentation ...
962 $(MAKE
) -C subsys
/system
/explorer full-docu
964 echo generating remaining ReactOS documentation ...