8 # Define to build WINE modules
10 ifeq ($(ROS_BUILD_WINE
),)
16 include $(PATH_TO_TOP
)/rules.mak
18 # Required to run the system
19 COMPONENTS
= iface_native iface_additional hallib ntoskrnl
22 # Hardware Abstraction Layers
31 # advapi32 crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll ole32
32 # oleaut32 psapi rpcrt4 secur32 shell32 user32 version ws2help ws2_32 wsock32 wshirda
33 DLLS
= advapi32 crtdll fmifs gdi32 kernel32 packet msafd msvcrt ntdll \
34 secur32 user32 version winmm ws2help ws2_32 wshirda
35 SUBSYS
= smss win32k csrss ntvdm
38 # Select the server(s) you want to build
40 #SERVERS = posix linux os2
47 # Driver support libraries
49 DRIVERS_LIB
= bzip2 zlib
51 # Kernel mode device drivers
53 # beep blue floppy null parallel ramdrv serenum serial vga vidport
54 DEVICE_DRIVERS
= beep blue floppy null serial vga vidport
56 # Kernel mode input drivers
57 # keyboard mouclass psaux sermouse
58 INPUT_DRIVERS
= keyboard mouclass psaux
60 # Kernel mode file system drivers
61 # cdfs ext2 fs_rec ms np vfat
62 FS_DRIVERS
= cdfs fs_rec ms np vfat mup ntfs
64 # Kernel mode networking drivers
65 # afd ndis npf tcpip tdi wshtcpip
66 NET_DRIVERS
= afd ndis packet tcpip tdi wshtcpip
68 # Kernel mode networking device drivers
70 NET_DEVICE_DRIVERS
= ne2000
72 # Kernel mode storage drivers
73 # atapi cdrom class2 disk scsiport
74 STORAGE_DRIVERS
= atapi cdrom class2 disk scsiport
77 # autochk lsass services shell winlogon
78 SYS_APPS
= autochk services
shell winlogon gstart usetup
82 SYS_SVC
= rpcss eventlog
85 # alive apc args atomtest bench consume copymove count dump_shared_data
86 # event file gditest hello isotest lpc mstest mutex nptest
87 # pteb regtest sectest shm simple thread vmtest winhello
88 TEST_APPS
= alive apc args atomtest bench consume copymove count dump_shared_data \
89 event file gditest hello isotest lpc mstest mutex nptest \
90 pteb regtest sectest shm simple thread tokentest vmtest winhello dibtest
93 # cabman cat net objdir partinfo pice ps sc stats
94 UTIL_APPS
= cat objdir partinfo sc stats
96 ifeq ($(ROS_BUILD_WINE
),yes
)
98 # invoke wine global makefile here ?
103 KERNEL_DRIVERS
= $(DRIVERS_LIB
) $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) \
104 $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
) $(STORAGE_DRIVERS
)
106 all: tools dk implib
$(COMPONENTS
) $(HALS
) $(BUS
) $(DLLS
) $(SUBSYS
) \
107 $(LOADERS
) $(KERNEL_DRIVERS
) $(SYS_APPS
) $(SYS_SVC
) $(TEST_APPS
) \
110 implib
: $(COMPONENTS
:%=%_implib
) $(HALS
:%=%_implib
) $(BUS
:%=%_implib
) \
111 $(DLLS
:%=%_implib
) $(LOADERS
:%=%_implib
) \
112 $(KERNEL_DRIVERS
:%=%_implib
) $(SUBSYS
:%=%_implib
) \
113 $(SYS_APPS
:%=%_implib
) $(SYS_SVC
:%=%_implib
) \
114 $(TEST_APPS
:%=%_implib
) $(UTIL_APPS
:%=%_implib
)
116 clean: tools dk_clean
$(HALS
:%=%_clean
) \
117 $(COMPONENTS
:%=%_clean
) $(BUS
:%=%_clean
) $(DLLS
:%=%_clean
) \
118 $(LOADERS
:%=%_clean
) $(KERNEL_DRIVERS
:%=%_clean
) $(SUBSYS
:%=%_clean
) \
119 $(SYS_APPS
:%=%_clean
) $(SYS_SVC
:%=%_clean
) $(TEST_APPS
:%=%_clean
) \
120 $(UTIL_APPS
:%=%_clean
) $(NET_APPS
:%=%_clean
) \
121 clean_after tools_clean
124 $(RM
) $(PATH_TO_TOP
)/include/roscfg.h
126 install: tools install_dirs install_before \
127 $(COMPONENTS
:%=%_install
) $(HALS
:%=%_install
) $(BUS
:%=%_install
) \
128 $(DLLS
:%=%_install
) $(LOADERS
:%=%_install
) \
129 $(KERNEL_DRIVERS
:%=%_install
) $(SUBSYS
:%=%_install
) \
130 $(SYS_APPS
:%=%_install
) $(SYS_SVC
:%=%_install
) \
131 $(TEST_APPS
:%=%_install
) $(UTIL_APPS
:%=%_install
)
133 dist: $(TOOLS_PATH
)/rcopy
$(EXE_POSTFIX
) dist_clean dist_dirs \
134 $(HALS
:%=%_dist
) $(COMPONENTS
:%=%_dist
) $(BUS
:%=%_dist
) $(DLLS
:%=%_dist
) \
135 $(LOADERS
:%=%_dist
) $(KERNEL_DRIVERS
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
136 $(SYS_APPS
:%=%_dist
) $(SYS_SVC
:%=%_dist
) $(TEST_APPS
:%=%_dist
) \
137 $(UTIL_APPS
:%=%_dist
) $(NET_APPS
:%=%_dist
)
139 .PHONY
: all implib
clean clean_before
install dist
143 # System Applications
146 make
-C subsys
/system
/$*
148 $(SYS_APPS
:%=%_implib
): %_implib
:
149 make
-C subsys
/system
/$* implib
151 $(SYS_APPS
:%=%_clean
): %_clean
:
152 make
-C subsys
/system
/$* clean
154 $(SYS_APPS
:%=%_dist
): %_dist
:
155 make
-C subsys
/system
/$* dist
157 $(SYS_APPS
:%=%_install
): %_install
:
158 make
-C subsys
/system
/$* install
160 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_implib
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_dist
)
168 $(SYS_SVC
:%=%_implib
): %_implib
:
169 make
-C services
/$* implib
171 $(SYS_SVC
:%=%_clean
): %_clean
:
172 make
-C services
/$* clean
174 $(SYS_SVC
:%=%_dist
): %_dist
:
175 make
-C services
/$* dist
177 $(SYS_SVC
:%=%_install
): %_install
:
178 make
-C services
/$* install
180 .PHONY
: $(SYS_SVC
) $(SYS_SVC
:%=%_implib
) $(SYS_SVC
:%=%_clean
) $(SYS_SVC
:%=%_install
) $(SYS_SVC
:%=%_dist
)
187 make
-C apps
/tests
/$*
189 $(TEST_APPS
:%=%_implib
): %_implib
:
190 make
-C apps
/tests
/$* implib
192 $(TEST_APPS
:%=%_clean
): %_clean
:
193 make
-C apps
/tests
/$* clean
195 $(TEST_APPS
:%=%_dist
): %_dist
:
196 make
-C apps
/tests
/$* dist
198 $(TEST_APPS
:%=%_install
): %_install
:
199 make
-C apps
/tests
/$* install
201 .PHONY
: $(TEST_APPS
) $(TEST_APPS
:%=%_implib
) $(TEST_APPS
:%=%_clean
) $(TEST_APPS
:%=%_install
) $(TEST_APPS
:%=%_dist
)
205 # Utility Applications
208 make
-C apps
/utils
/$*
210 $(UTIL_APPS
:%=%_implib
): %_implib
:
211 make
-C apps
/utils
/$* implib
213 $(UTIL_APPS
:%=%_clean
): %_clean
:
214 make
-C apps
/utils
/$* clean
216 $(UTIL_APPS
:%=%_dist
): %_dist
:
217 make
-C apps
/utils
/$* dist
219 $(UTIL_APPS
:%=%_install
): %_install
:
220 make
-C apps
/utils
/$* install
222 .PHONY
: $(UTIL_APPS
) $(UTIL_APPS
:%=%_implib
) $(UTIL_APPS
:%=%_clean
) $(UTIL_APPS
:%=%_install
) $(UTIL_APPS
:%=%_dist
)
240 .PHONY
: tools tools_implib tools_clean tools_install tools_dist
248 $(RMKDIR
) $(DDK_PATH
)
249 $(RMKDIR
) $(DDK_PATH_LIB
)
250 $(RMKDIR
) $(DDK_PATH_INC
)
251 $(RMKDIR
) $(SDK_PATH
)
252 $(RMKDIR
) $(SDK_PATH_LIB
)
253 $(RMKDIR
) $(SDK_PATH_INC
)
254 $(RMKDIR
) $(XDK_PATH
)
255 $(RMKDIR
) $(XDK_PATH_LIB
)
256 $(RMKDIR
) $(XDK_PATH_INC
)
260 # WARNING! Be very sure that there are no important files
261 # in these directories before cleaning them!!!
263 $(RM
) $(DDK_PATH_LIB
)/*.a
264 # $(RM) $(DDK_PATH_INC)/*.h
265 $(RMDIR
) $(DDK_PATH_LIB
)
266 # $(RMDIR) $(DDK_PATH_INC)
267 $(RM
) $(SDK_PATH_LIB
)/*.a
268 # $(RM) $(SDK_PATH_INC)/*.h
269 $(RMDIR
) $(SDK_PATH_LIB
)
270 # $(RMDIR) $(SDK_PATH_INC)
271 $(RM
) $(XDK_PATH_LIB
)/*.a
272 # $(RM) $(XDK_PATH_INC)/*.h
273 $(RMDIR
) $(XDK_PATH_LIB
)
274 # $(RMDIR) $(XDK_PATH_INC)
280 .PHONY
: dk dk_implib dk_clean dk_install dk_dist
292 make
-C iface
/native
clean
294 iface_native_install
:
301 iface_additional_implib
:
303 iface_additional_clean
:
304 make
-C iface
/addsys
clean
306 iface_additional_install
:
308 iface_additional_dist
:
310 .PHONY
: iface_native iface_native_implib iface_native_clean iface_native_install \
312 iface_additional iface_additional_implib iface_additional_clean \
313 iface_additional_install iface_additional_dist
319 make
-C drivers
/bus
/$*
321 $(BUS
:%=%_implib
): %_implib
:
322 make
-C drivers
/bus
/$* implib
324 $(BUS
:%=%_clean
): %_clean
:
325 make
-C drivers
/bus
/$* clean
327 $(BUS
:%=%_install
): %_install
:
328 make
-C drivers
/bus
/$* install
330 $(BUS
:%=%_dist
): %_dist
:
331 make
-C drivers
/bus
/$* dist
333 .PHONY
: $(BUS
) $(BUS
:%=%_implib
) $(BUS
:%=%_clean
) \
334 $(BUS
:%=%_install
) $(BUS
:%=%_dist
)
337 # Driver support libraries rules
340 make
-C drivers
/lib
/$*
342 $(DRIVERS_LIB
:%=%_implib
): %_implib
:
343 make
-C drivers
/lib
/$* implib
345 $(DRIVERS_LIB
:%=%_clean
): %_clean
:
346 make
-C drivers
/lib
/$* clean
348 $(DRIVERS_LIB
:%=%_install
): %_install
:
349 make
-C drivers
/lib
/$* install
351 $(DRIVERS_LIB
:%=%_dist
): %_dist
:
352 make
-C drivers
/lib
/$* dist
354 .PHONY
: $(DRIVERS_LIB
) $(DRIVERS_LIB
:%=%_implib
) $(DRIVERS_LIB
:%=%_clean
) \
355 $(DRIVERS_LIB
:%=%_install
) $(DRIVERS_LIB
:%=%_dist
)
358 # Device driver rules
360 $(DEVICE_DRIVERS
): %:
361 make
-C drivers
/dd
/$*
363 $(DEVICE_DRIVERS
:%=%_implib
): %_implib
:
364 make
-C drivers
/dd
/$* implib
366 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
367 make
-C drivers
/dd
/$* clean
369 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
370 make
-C drivers
/dd
/$* install
372 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
373 make
-C drivers
/dd
/$* dist
375 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_implib
) $(DEVICE_DRIVERS
:%=%_clean
) \
376 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_dist
)
382 make
-C drivers
/input
/$*
384 $(INPUT_DRIVERS
:%=%_implib
): %_implib
:
385 make
-C drivers
/input
/$* implib
387 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
388 make
-C drivers
/input
/$* clean
390 $(INPUT_DRIVERS
:%=%_install
): %_install
:
391 make
-C drivers
/input
/$* install
393 $(INPUT_DRIVERS
:%=%_dist
): %_dist
:
394 make
-C drivers
/input
/$* dist
396 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_implib
) $(INPUT_DRIVERS
:%=%_clean
)\
397 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_dist
)
400 make
-C drivers
/fs
/$*
402 $(FS_DRIVERS
:%=%_implib
): %_implib
:
403 make
-C drivers
/fs
/$* implib
405 $(FS_DRIVERS
:%=%_clean
): %_clean
:
406 make
-C drivers
/fs
/$* clean
408 $(FS_DRIVERS
:%=%_install
): %_install
:
409 make
-C drivers
/fs
/$* install
411 $(FS_DRIVERS
:%=%_dist
): %_dist
:
412 make
-C drivers
/fs
/$* dist
414 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_implib
) $(FS_DRIVERS
:%=%_clean
) \
415 $(FS_DRIVERS
:%=%_install
) $(FS_DRIVERS
:%=%_dist
)
418 # Network driver rules
421 make
-C drivers
/net
/$*
423 $(NET_DRIVERS
:%=%_implib
): %_implib
:
424 make
-C drivers
/net
/$* implib
426 $(NET_DRIVERS
:%=%_clean
): %_clean
:
427 make
-C drivers
/net
/$* clean
429 $(NET_DRIVERS
:%=%_install
): %_install
:
430 make
-C drivers
/net
/$* install
432 $(NET_DRIVERS
:%=%_dist
): %_dist
:
433 make
-C drivers
/net
/$* dist
435 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_implib
) $(NET_DRIVERS
:%=%_clean
) \
436 $(NET_DRIVERS
:%=%_install
) $(NET_DRIVERS
:%=%_dist
)
438 $(NET_DEVICE_DRIVERS
): %:
439 make
-C drivers
/net
/dd
/$*
441 $(NET_DEVICE_DRIVERS
:%=%_implib
): %_implib
:
442 make
-C drivers
/net
/dd
/$* implib
444 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
445 make
-C drivers
/net
/dd
/$* clean
447 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
448 make
-C drivers
/net
/dd
/$* install
450 $(NET_DEVICE_DRIVERS
:%=%_dist
): %_dist
:
451 make
-C drivers
/net
/dd
/$* dist
453 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) $(NET_DEVICE_DRIVERS
:%=%_implib
) \
454 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_dist
)
457 # storage driver rules
459 $(STORAGE_DRIVERS
): %:
460 make
-C drivers
/storage
/$*
462 $(STORAGE_DRIVERS
:%=%_implib
): %_implib
:
463 make
-C drivers
/storage
/$* implib
465 $(STORAGE_DRIVERS
:%=%_clean
): %_clean
:
466 make
-C drivers
/storage
/$* clean
468 $(STORAGE_DRIVERS
:%=%_install
): %_install
:
469 make
-C drivers
/storage
/$* install
471 $(STORAGE_DRIVERS
:%=%_dist
): %_dist
:
472 make
-C drivers
/storage
/$* dist
474 .PHONY
: $(STORAGE_DRIVERS
) $(STORAGE_DRIVERS
:%=%_clean
) \
475 $(STORAGE_DRIVERS
:%=%_install
) $(STORAGE_DRIVERS
:%=%_dist
)
484 $(LOADERS
:%=%_implib
): %_implib
:
486 $(LOADERS
:%=%_clean
): %_clean
:
487 make
-C loaders
/$* clean
489 $(LOADERS
:%=%_install
): %_install
:
490 make
-C loaders
/$* install
492 $(LOADERS
:%=%_dist
): %_dist
:
493 make
-C loaders
/$* dist
495 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_implib
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
) \
499 # Required system components
506 make
-C ntoskrnl implib
509 make
-C ntoskrnl
clean
512 make
-C ntoskrnl
install
515 make
-C ntoskrnl
dist
517 .PHONY
: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist
520 # Hardware Abstraction Layer import library
527 make
-C hal
/hal implib
530 make
-C hal
/hal
clean
533 make
-C hal
/hal
install
538 .PHONY
: hallib hallib_implib hallib_clean hallib_install hallib_dist
541 # Hardware Abstraction Layers
547 $(HALS
:%=%_implib
): %_implib
:
548 make
-C hal
/$* implib
550 $(HALS
:%=%_clean
): %_clean
:
553 $(HALS
:%=%_install
): %_install
:
554 make
-C hal
/$* install
556 $(HALS
:%=%_dist
): %_dist
:
559 .PHONY
: $(HALS
) $(HALS
:%=%_implib
) $(HALS
:%=%_clean
) $(HALS
:%=%_install
) $(HALS
:%=%_dist
)
568 $(DLLS
:%=%_implib
): %_implib
:
569 make
-C lib
/$* implib
571 $(DLLS
:%=%_clean
): %_clean
:
574 $(DLLS
:%=%_install
): %_install
:
575 make
-C lib
/$* install
577 $(DLLS
:%=%_dist
): %_dist
:
580 .PHONY
: $(DLLS
) $(DLLS
:%=%_implib
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_dist
)
583 # Subsystem support modules
589 $(SUBSYS
:%=%_implib
): %_implib
:
590 make
-C subsys
/$* implib
592 $(SUBSYS
:%=%_clean
): %_clean
:
593 make
-C subsys
/$* clean
595 $(SUBSYS
:%=%_install
): %_install
:
596 make
-C subsys
/$* install
598 $(SUBSYS
:%=%_dist
): %_dist
:
599 make
-C subsys
/$* dist
601 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_implib
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
605 # Create an installation
609 $(RM
) $(INSTALL_DIR
)/system32
/drivers
/*.
*
610 $(RM
) $(INSTALL_DIR
)/system32
/config
/*.
*
611 $(RM
) $(INSTALL_DIR
)/system32
/*.
*
612 $(RM
) $(INSTALL_DIR
)/symbols
/*.
*
613 $(RM
) $(INSTALL_DIR
)/media
/fonts
/*.
*
614 $(RM
) $(INSTALL_DIR
)/media
/*.
*
615 $(RM
) $(INSTALL_DIR
)/bin
/*.
*
616 $(RM
) $(INSTALL_DIR
)/*.com
617 $(RM
) $(INSTALL_DIR
)/*.bat
618 $(RMDIR
) $(INSTALL_DIR
)/system32
/drivers
619 $(RMDIR
) $(INSTALL_DIR
)/system32
/config
620 $(RMDIR
) $(INSTALL_DIR
)/system32
621 $(RMDIR
) $(INSTALL_DIR
)/symbols
622 $(RMDIR
) $(INSTALL_DIR
)/media
/fonts
623 $(RMDIR
) $(INSTALL_DIR
)/media
624 $(RMDIR
) $(INSTALL_DIR
)/bin
625 $(RMDIR
) $(INSTALL_DIR
)
628 $(RMKDIR
) $(INSTALL_DIR
)
629 $(RMKDIR
) $(INSTALL_DIR
)/bin
630 $(RMKDIR
) $(INSTALL_DIR
)/media
631 $(RMKDIR
) $(INSTALL_DIR
)/media
/fonts
632 $(RMKDIR
) $(INSTALL_DIR
)/symbols
633 $(RMKDIR
) $(INSTALL_DIR
)/system32
634 $(RMKDIR
) $(INSTALL_DIR
)/system32
/config
635 $(RMKDIR
) $(INSTALL_DIR
)/system32
/drivers
638 $(CP
) bootc.lst
$(INSTALL_DIR
)/bootc.lst
639 $(CP
) boot.bat
$(INSTALL_DIR
)/boot.bat
640 $(CP
) aboot.bat
$(INSTALL_DIR
)/aboot.bat
641 $(CP
) system.hiv
$(INSTALL_DIR
)/system32
/config
/system.hiv
642 $(CP
) media
/fonts
/helb____.ttf
$(INSTALL_DIR
)/media
/fonts
/helb____.ttf
643 $(CP
) media
/fonts
/timr____.ttf
$(INSTALL_DIR
)/media
/fonts
/timr____.ttf
645 .PHONY
: install_clean install_dirs install_before
649 # Make a distribution saveset
653 $(RM
) $(DIST_DIR
)/symbols
/*.sym
654 $(RM
) $(DIST_DIR
)/drivers
/*.sys
655 $(RM
) $(DIST_DIR
)/subsys
/*.exe
656 $(RM
) $(DIST_DIR
)/dlls
/*.dll
657 $(RM
) $(DIST_DIR
)/apps
/*.exe
658 $(RM
) $(DIST_DIR
)/*.exe
659 $(RMDIR
) $(DIST_DIR
)/symbols
660 $(RMDIR
) $(DIST_DIR
)/subsys
661 $(RMDIR
) $(DIST_DIR
)/drivers
662 $(RMDIR
) $(DIST_DIR
)/dlls
663 $(RMDIR
) $(DIST_DIR
)/apps
667 $(RMKDIR
) $(DIST_DIR
)
668 $(RMKDIR
) $(DIST_DIR
)/apps
669 $(RMKDIR
) $(DIST_DIR
)/dlls
670 $(RMKDIR
) $(DIST_DIR
)/drivers
671 $(RMKDIR
) $(DIST_DIR
)/subsys
672 $(RMKDIR
) $(DIST_DIR
)/symbols
674 .PHONY
: dist_clean dist_dirs
678 find .
-name
"*.[ch]" -print | etags
--language
=c
-