merged in MDL fix and a makefile mod from the 0.1.4 release branch. This represents...
[reactos.git] / reactos / Makefile
1 # $Id: Makefile,v 1.175 2003/10/15 22:16:43 vizzini Exp $
2 #
3 # Global makefile
4 #
5
6 PATH_TO_TOP = .
7
8 #
9 # Define to build ReactOS external targets
10 #
11 ifeq ($(ROS_BUILD_EXT),)
12 ROS_BUILD_EXT = no
13 else
14 ROS_BUILD_EXT = yes
15 endif
16
17 include $(PATH_TO_TOP)/rules.mak
18
19 # Required to run the system
20 COMPONENTS = iface_native iface_additional hallib ntoskrnl
21
22 # Hardware Abstraction Layers
23 # halx86
24 HALS = halx86
25
26 # Bus drivers
27 # acpi isapnp pci
28 BUS = acpi isapnp pci
29
30 # Filesystem libraries
31 # vfatlib
32 LIB_FSLIB = vfatlib
33
34 # Static libraries
35 LIB_STATIC = string rosrtl epsapi zlib
36
37 # User mode libraries
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
43
44 SUBSYS = smss win32k csrss ntvdm
45
46 #
47 # Select the server(s) you want to build
48 #
49 #SERVERS = posix linux os2
50 SERVERS = win32
51
52 # Boot loaders
53 # dos
54 LOADERS = dos
55
56 # Driver support libraries
57 #bzip2 zlib
58 DRIVERS_LIB = bzip2
59
60 # Kernel mode device drivers
61 # Obsolete: ide
62 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
63 DEVICE_DRIVERS = beep blue debugout floppy null serial vga videoprt bootvid
64
65 # Kernel mode input drivers
66 INPUT_DRIVERS = keyboard mouclass psaux sermouse
67
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
71
72 # Kernel mode networking drivers
73 # afd ndis npf tcpip tdi wshtcpip
74 NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
75
76 # Kernel mode networking device drivers
77 # ne2000 pcnet
78 NET_DEVICE_DRIVERS = ne2000 pcnet
79
80 # Kernel mode storage drivers
81 # atapi cdrom class2 disk scsiport
82 STORAGE_DRIVERS = atapi cdrom class2 disk scsiport diskdump
83
84 # System applications
85 # autochk cmd format gstart services setup usetup welcome winlogon
86 SYS_APPS = autochk cmd format gstart services setup usetup welcome winlogon
87
88 # System services
89 # rpcss eventlog
90 SYS_SVC = rpcss eventlog
91
92 APPS = tests testsets utils
93
94
95 # External (sub)systems for ReactOS
96 # rosapps wine posix os2 (requires c++) java (non-existant)
97 EXTERNALS = rosapps wine posix os2
98
99 ifeq ($(ROS_BUILD_EXT),yes)
100 EXT_MODULES = $(EXTERNALS)
101 else
102 EXT_MODULES =
103 endif
104
105 KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
106 $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
107
108 # Regression tests
109 REGTESTS = regtests
110
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)
114
115 #config: $(TOOLS:%=%_config)
116
117 depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
118 $(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
119
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)
125
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
133
134 clean_after:
135 $(RM) $(PATH_TO_TOP)/include/roscfg.h
136
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)
143
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)
150
151 FREELDR_DIR = ../freeldr
152
153 freeldr:
154 $(MAKE) -C $(FREELDR_DIR)
155
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
170
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)
174
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
187
188 bootcd_basic: all bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
189
190 bootcd_makecd:
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
195
196 ubootcd_unattend:
197 $(CP) bootdata/unattend.inf $(BOOTCD_DIR)/reactos/unattend.inf
198
199 bootcd: bootcd_basic bootcd_makecd
200
201 ubootcd: bootcd_basic ubootcd_unattend bootcd_makecd
202
203 registry: tools
204 $(TOOLS_PATH)/mkhive/mkhive$(EXE_POSTFIX) bootdata $(INSTALL_DIR)/system32/config
205
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
208
209
210 #
211 # System Applications
212 #
213 $(SYS_APPS): %:
214 $(MAKE) -C subsys/system/$*
215
216 $(SYS_APPS:%=%_implib): %_implib:
217 $(MAKE) -C subsys/system/$* implib
218
219 $(SYS_APPS:%=%_clean): %_clean:
220 $(MAKE) -C subsys/system/$* clean
221
222 $(SYS_APPS:%=%_dist): %_dist:
223 $(MAKE) -C subsys/system/$* dist
224
225 $(SYS_APPS:%=%_install): %_install:
226 $(MAKE) -C subsys/system/$* install
227
228 $(SYS_APPS:%=%_bootcd): %_bootcd:
229 $(MAKE) -C subsys/system/$* bootcd
230
231 .PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist) $(SYS_APPS:%=%_bootcd)
232
233 #
234 # System Services
235 #
236 $(SYS_SVC): %:
237 $(MAKE) -C services/$*
238
239 $(SYS_SVC:%=%_depends): %_depends:
240 $(MAKE) -C services/$* depends
241
242 $(SYS_SVC:%=%_implib): %_implib:
243 $(MAKE) -C services/$* implib
244
245 $(SYS_SVC:%=%_clean): %_clean:
246 $(MAKE) -C services/$* clean
247
248 $(SYS_SVC:%=%_dist): %_dist:
249 $(MAKE) -C services/$* dist
250
251 $(SYS_SVC:%=%_install): %_install:
252 $(MAKE) -C services/$* install
253
254 .PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
255
256
257 #
258 # Applications
259 #
260 #
261 # Extra (optional system) Applications
262 #
263 $(APPS): %:
264 $(MAKE) -C apps/$*
265
266 $(APPS:%=%_implib): %_implib:
267 $(MAKE) -C apps/$* implib
268
269 $(APPS:%=%_clean): %_clean:
270 $(MAKE) -C apps/$* clean
271
272 $(APPS:%=%_dist): %_dist:
273 $(MAKE) -C apps/$* dist
274
275 $(APPS:%=%_install): %_install:
276 $(MAKE) -C apps/$* install
277
278 .PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install) $(APPS:%=%_dist)
279
280
281 #
282 # External ports and subsystem personalities
283 #
284 $(EXTERNALS): %:
285 $(MAKE) -C $(ROOT_PATH)/$*
286
287 $(EXTERNALS:%=%_depends): %_depends:
288 $(MAKE) -C $(ROOT_PATH)/$* depends
289
290 $(EXTERNALS:%=%_implib): %_implib:
291 $(MAKE) -C $(ROOT_PATH)/$* implib
292
293 $(EXTERNALS:%=%_clean): %_clean:
294 $(MAKE) -C $(ROOT_PATH)/$* clean
295
296 $(EXTERNALS:%=%_dist): %_dist:
297 $(MAKE) -C $(ROOT_PATH)/$* dist
298
299 $(EXTERNALS:%=%_install): %_install:
300 $(MAKE) -C $(ROOT_PATH)/$* install
301
302 .PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) $(EXTERNALS:%=%_dist)
303
304
305 #
306 # Tools
307 #
308 tools:
309 $(MAKE) -C tools
310
311 tools_implib:
312
313 tools_clean:
314 $(MAKE) -C tools clean
315
316 tools_install:
317
318 tools_dist:
319
320 .PHONY: tools tools_implib tools_clean tools_install tools_dist
321
322
323 #
324 # Developer Kits
325 #
326 dk:
327 $(RMKDIR) $(DK_PATH)
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)
337
338 dk_implib:
339
340 # WARNING! Be very sure that there are no important files
341 # in these directories before cleaning them!!!
342 dk_clean:
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)
355
356 dk_install:
357
358 dk_dist:
359
360 .PHONY: dk dk_implib dk_clean dk_install dk_dist
361
362
363 #
364 # Interfaces
365 #
366 iface_native:
367 $(MAKE) -C iface/native
368
369 iface_native_implib:
370
371 iface_native_clean:
372 $(MAKE) -C iface/native clean
373
374 iface_native_install:
375
376 iface_native_dist:
377
378 iface_native_bootcd:
379
380 iface_additional:
381 $(MAKE) -C iface/addsys
382
383 iface_additional_implib:
384
385 iface_additional_clean:
386 $(MAKE) -C iface/addsys clean
387
388 iface_additional_install:
389
390 iface_additional_dist:
391
392 iface_additional_bootcd:
393
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
398
399 #
400 # Bus driver rules
401 #
402 $(BUS): %:
403 $(MAKE) -C drivers/bus/$*
404
405 $(BUS:%=%_implib): %_implib:
406 $(MAKE) -C drivers/bus/$* implib
407
408 $(BUS:%=%_clean): %_clean:
409 $(MAKE) -C drivers/bus/$* clean
410
411 $(BUS:%=%_install): %_install:
412 $(MAKE) -C drivers/bus/$* install
413
414 $(BUS:%=%_dist): %_dist:
415 $(MAKE) -C drivers/bus/$* dist
416
417 $(BUS:%=%_bootcd): %_bootcd:
418 $(MAKE) -C drivers/bus/$* bootcd
419
420 .PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
421 $(BUS:%=%_install) $(BUS:%=%_dist) $(BUS:%=%_bootcd)
422
423 #
424 # Driver support libraries rules
425 #
426 $(DRIVERS_LIB): %:
427 $(MAKE) -C drivers/lib/$*
428
429 $(DRIVERS_LIB:%=%_implib): %_implib:
430 $(MAKE) -C drivers/lib/$* implib
431
432 $(DRIVERS_LIB:%=%_clean): %_clean:
433 $(MAKE) -C drivers/lib/$* clean
434
435 $(DRIVERS_LIB:%=%_install): %_install:
436 $(MAKE) -C drivers/lib/$* install
437
438 $(DRIVERS_LIB:%=%_dist): %_dist:
439 $(MAKE) -C drivers/lib/$* dist
440
441 $(DRIVERS_LIB:%=%_bootcd): %_bootcd:
442 $(MAKE) -C drivers/lib/$* bootcd
443
444 .PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
445 $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist) $(DRIVERS_LIB:%=%_bootcd)
446
447 #
448 # Device driver rules
449 #
450 $(DEVICE_DRIVERS): %:
451 $(MAKE) -C drivers/dd/$*
452
453 $(DEVICE_DRIVERS:%=%_implib): %_implib:
454 $(MAKE) -C drivers/dd/$* implib
455
456 $(DEVICE_DRIVERS:%=%_clean): %_clean:
457 $(MAKE) -C drivers/dd/$* clean
458
459 $(DEVICE_DRIVERS:%=%_install): %_install:
460 $(MAKE) -C drivers/dd/$* install
461
462 $(DEVICE_DRIVERS:%=%_dist): %_dist:
463 $(MAKE) -C drivers/dd/$* dist
464
465 $(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
466 $(MAKE) -C drivers/dd/$* bootcd
467
468 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
469 $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist) $(DEVICE_DRIVERS:%=%_bootcd)
470
471 #
472 # Input driver rules
473 #
474 $(INPUT_DRIVERS): %:
475 $(MAKE) -C drivers/input/$*
476
477 $(INPUT_DRIVERS:%=%_implib): %_implib:
478 $(MAKE) -C drivers/input/$* implib
479
480 $(INPUT_DRIVERS:%=%_clean): %_clean:
481 $(MAKE) -C drivers/input/$* clean
482
483 $(INPUT_DRIVERS:%=%_install): %_install:
484 $(MAKE) -C drivers/input/$* install
485
486 $(INPUT_DRIVERS:%=%_dist): %_dist:
487 $(MAKE) -C drivers/input/$* dist
488
489 $(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
490 $(MAKE) -C drivers/input/$* bootcd
491
492 .PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
493 $(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist) $(INPUT_DRIVERS:%=%_bootcd)
494
495 $(FS_DRIVERS): %:
496 $(MAKE) -C drivers/fs/$*
497
498 $(FS_DRIVERS:%=%_implib): %_implib:
499 $(MAKE) -C drivers/fs/$* implib
500
501 $(FS_DRIVERS:%=%_clean): %_clean:
502 $(MAKE) -C drivers/fs/$* clean
503
504 $(FS_DRIVERS:%=%_install): %_install:
505 $(MAKE) -C drivers/fs/$* install
506
507 $(FS_DRIVERS:%=%_dist): %_dist:
508 $(MAKE) -C drivers/fs/$* dist
509
510 $(FS_DRIVERS:%=%_bootcd): %_bootcd:
511 $(MAKE) -C drivers/fs/$* bootcd
512
513 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
514 $(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist) $(FS_DRIVERS:%=%_bootcd)
515
516 #
517 # Network driver rules
518 #
519 $(NET_DRIVERS): %:
520 $(MAKE) -C drivers/net/$*
521
522 $(NET_DRIVERS:%=%_implib): %_implib:
523 $(MAKE) -C drivers/net/$* implib
524
525 $(NET_DRIVERS:%=%_clean): %_clean:
526 $(MAKE) -C drivers/net/$* clean
527
528 $(NET_DRIVERS:%=%_install): %_install:
529 $(MAKE) -C drivers/net/$* install
530
531 $(NET_DRIVERS:%=%_dist): %_dist:
532 $(MAKE) -C drivers/net/$* dist
533
534 $(NET_DRIVERS:%=%_bootcd): %_bootcd:
535 $(MAKE) -C drivers/net/$* bootcd
536
537 .PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
538 $(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist) $(NET_DRIVERS:%=%_bootcd)
539
540 $(NET_DEVICE_DRIVERS): %:
541 $(MAKE) -C drivers/net/dd/$*
542
543 $(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
544 $(MAKE) -C drivers/net/dd/$* implib
545
546 $(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
547 $(MAKE) -C drivers/net/dd/$* clean
548
549 $(NET_DEVICE_DRIVERS:%=%_install): %_install:
550 $(MAKE) -C drivers/net/dd/$* install
551
552 $(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
553 $(MAKE) -C drivers/net/dd/$* dist
554
555 $(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
556 $(MAKE) -C drivers/net/dd/$* bootcd
557
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)
560
561 #
562 # storage driver rules
563 #
564 $(STORAGE_DRIVERS): %:
565 $(MAKE) -C drivers/storage/$*
566
567 $(STORAGE_DRIVERS:%=%_implib): %_implib:
568 $(MAKE) -C drivers/storage/$* implib
569
570 $(STORAGE_DRIVERS:%=%_clean): %_clean:
571 $(MAKE) -C drivers/storage/$* clean
572
573 $(STORAGE_DRIVERS:%=%_install): %_install:
574 $(MAKE) -C drivers/storage/$* install
575
576 $(STORAGE_DRIVERS:%=%_dist): %_dist:
577 $(MAKE) -C drivers/storage/$* dist
578
579 $(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
580 $(MAKE) -C drivers/storage/$* bootcd
581
582 .PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
583 $(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist) $(STORAGE_DRIVERS:%=%_bootcd)
584
585 #
586 # Kernel loaders
587 #
588
589 $(LOADERS): %:
590 $(MAKE) -C loaders/$*
591
592 $(LOADERS:%=%_implib): %_implib:
593
594 $(LOADERS:%=%_clean): %_clean:
595 $(MAKE) -C loaders/$* clean
596
597 $(LOADERS:%=%_install): %_install:
598 $(MAKE) -C loaders/$* install
599
600 $(LOADERS:%=%_dist): %_dist:
601 $(MAKE) -C loaders/$* dist
602
603 .PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
604 $(LOADERS:%=%_dist)
605
606 #
607 # Required system components
608 #
609
610 ntoskrnl:
611 $(MAKE) -C ntoskrnl
612
613 ntoskrnl_implib:
614 $(MAKE) -C ntoskrnl implib
615
616 ntoskrnl_clean:
617 $(MAKE) -C ntoskrnl clean
618
619 ntoskrnl_install:
620 $(MAKE) -C ntoskrnl install
621
622 ntoskrnl_dist:
623 $(MAKE) -C ntoskrnl dist
624
625 ntoskrnl_bootcd:
626 $(MAKE) -C ntoskrnl bootcd
627
628 .PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
629
630 #
631 # Hardware Abstraction Layer import library
632 #
633
634 hallib:
635 $(MAKE) -C hal/hal
636
637 hallib_implib:
638 $(MAKE) -C hal/hal implib
639
640 hallib_clean:
641 $(MAKE) -C hal/hal clean
642
643 hallib_install:
644 $(MAKE) -C hal/hal install
645
646 hallib_dist:
647 $(MAKE) -C hal/hal dist
648
649 hallib_bootcd:
650 $(MAKE) -C hal/hal bootcd
651
652 .PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
653
654 #
655 # Hardware Abstraction Layers
656 #
657
658 $(HALS): %:
659 $(MAKE) -C hal/$*
660
661 $(HALS:%=%_implib): %_implib:
662 $(MAKE) -C hal/$* implib
663
664 $(HALS:%=%_clean): %_clean:
665 $(MAKE) -C hal/$* clean
666
667 $(HALS:%=%_install): %_install:
668 $(MAKE) -C hal/$* install
669
670 $(HALS:%=%_dist): %_dist:
671 $(MAKE) -C hal/$* dist
672
673 $(HALS:%=%_bootcd): %_bootcd:
674 $(MAKE) -C hal/$* bootcd
675
676 .PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist) $(HALS:%=%_bootcd)
677
678 #
679 # File system libraries
680 #
681
682 $(LIB_FSLIB): %:
683 $(MAKE) -C lib/fslib/$*
684
685 $(LIB_FSLIB:%=%_depends): %_depends:
686 $(MAKE) -C lib/fslib/$* depends
687
688 $(LIB_FSLIB:%=%_implib): %_implib:
689 $(MAKE) -C lib/fslib/$* implib
690
691 $(LIB_FSLIB:%=%_clean): %_clean:
692 $(MAKE) -C lib/fslib/$* clean
693
694 $(LIB_FSLIB:%=%_install): %_install:
695 $(MAKE) -C lib/fslib/$* install
696
697 $(LIB_FSLIB:%=%_dist): %_dist:
698 $(MAKE) -C lib/fslib/$* dist
699
700 $(LIB_FSLIB:%=%_bootcd): %_bootcd:
701 $(MAKE) -C lib/fslib/$* bootcd
702
703 .PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
704 $(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_dist) $(LIB_FSLIB:%=%_bootcd)
705
706 #
707 # Static libraries
708 #
709
710 $(LIB_STATIC): %:
711 $(MAKE) -C lib/$*
712
713 $(LIB_STATIC:%=%_depends): %_depends:
714 $(MAKE) -C lib/string depends
715
716 $(LIB_STATIC:%=%_implib): %_implib:
717 $(MAKE) -C lib/$* implib
718
719 $(LIB_STATIC:%=%_clean): %_clean:
720 $(MAKE) -C lib/$* clean
721
722 $(LIB_STATIC:%=%_install): %_install:
723 $(MAKE) -C lib/$* install
724
725 $(LIB_STATIC:%=%_dist): %_dist:
726 $(MAKE) -C lib/$* dist
727
728 $(LIB_STATIC:%=%_bootcd): %_bootcd:
729 $(MAKE) -C lib/$* bootcd
730
731 .PHONY: $(LIB_STATIC) $(LIB_STATIC:%=%_depends) $(LIB_STATIC:%=%_implib) $(LIB_STATIC:%=%_clean) \
732 $(LIB_STATIC:%=%_install) $(LIB_STATIC:%=%_dist) $(LIB_STATIC:%=%_bootcd)
733
734 #
735 # Required DLLs
736 #
737
738 $(DLLS): %:
739 $(MAKE) -C lib/$*
740
741 $(DLLS:%=%_depends): %_depends:
742 $(MAKE) -C lib/$* depends
743
744 $(DLLS:%=%_implib): %_implib:
745 $(MAKE) -C lib/$* implib
746
747 $(DLLS:%=%_clean): %_clean:
748 $(MAKE) -C lib/$* clean
749
750 $(DLLS:%=%_install): %_install:
751 $(MAKE) -C lib/$* install
752
753 $(DLLS:%=%_dist): %_dist:
754 $(MAKE) -C lib/$* dist
755
756 $(DLLS:%=%_bootcd): %_bootcd:
757 $(MAKE) -C lib/$* bootcd
758
759 .PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist) $(DLLS:%=%_bootcd)
760
761 #
762 # Subsystem support modules
763 #
764
765 $(SUBSYS): %:
766 $(MAKE) -C subsys/$*
767
768 $(SUBSYS:%=%_depends): %_depends:
769 $(MAKE) -C subsys/$* depends
770
771 $(SUBSYS:%=%_implib): %_implib:
772 $(MAKE) -C subsys/$* implib
773
774 $(SUBSYS:%=%_clean): %_clean:
775 $(MAKE) -C subsys/$* clean
776
777 $(SUBSYS:%=%_install): %_install:
778 $(MAKE) -C subsys/$* install
779
780 $(SUBSYS:%=%_dist): %_dist:
781 $(MAKE) -C subsys/$* dist
782
783 $(SUBSYS:%=%_bootcd): %_bootcd:
784 $(MAKE) -C subsys/$* bootcd
785
786 .PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
787 $(SUBSYS:%=%_dist) $(SUBSYS:%=%_bootcd)
788
789 #
790 # Regression testsuite
791 #
792
793 $(REGTESTS): %:
794 $(MAKE) -C regtests
795
796 $(REGTESTS:%=%_clean): %_clean:
797 $(MAKE) -C regtests clean
798
799 $(REGTESTS:%=%_install): %_install:
800 $(MAKE) -C regtests install
801
802 .PHONY: $(REGTESTS) $(REGTESTS:%=%_depends) $(SUBSYS:%=%_clean) $(REGTESTS:%=%_install)
803
804
805 #
806 # Create an installation
807 #
808
809 install_clean:
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)
827
828 ifneq ($(BOOTCD_INSTALL),)
829
830 install_dirs:
831 $(RMKDIR) $(INSTALL_DIR)
832
833 install_before:
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)
844
845 else # !BOOTCD_INSTALL
846
847 install_dirs:
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
856
857 install_before:
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
866
867 endif # BOOTCD_INSTALL
868
869 .PHONY: install_clean install_dirs install_before
870
871
872 #
873 # Make a distribution saveset
874 #
875
876 dist_clean:
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
888 $(RMDIR) $(DIST_DIR)
889
890 dist_dirs:
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
897
898 .PHONY: dist_clean dist_dirs
899
900 etags:
901 find . -name "*.[ch]" -print | etags --language=c -
902
903 # EOF
904