Started work on second stage setup.
[reactos.git] / reactos / Makefile
1 #
2 # Global makefile
3 #
4
5 PATH_TO_TOP = .
6
7 #
8 # Define to build ReactOS external targets
9 #
10 ifeq ($(ROS_BUILD_EXT),)
11 ROS_BUILD_EXT = no
12 else
13 ROS_BUILD_EXT = yes
14 endif
15
16 include $(PATH_TO_TOP)/rules.mak
17
18 # Required to run the system
19 COMPONENTS = iface_native iface_additional hallib ntoskrnl
20
21 # Hardware Abstraction Layers
22 # halx86
23 HALS = halx86
24
25 # Bus drivers
26 # acpi isapnp pci
27 BUS = acpi isapnp pci
28
29 # Filesystem libraries
30 # vfatlib
31 LIB_FSLIB = vfatlib
32
33 # User and kernel mode libraries
34 # advapi32 crtdll fmifs gdi32 kernel32 libpcap packet msafd msvcrt ntdll ole32
35 # oleaut32 epsapi psapi rpcrt4 secur32 shell32 user32 version ws2help ws2_32 wsock32 wshirda
36 DLLS = rosrtl advapi32 crtdll fmifs freetype gdi32 kernel32 packet msafd msvcrt ntdll \
37 epsapi psapi secur32 syssetup user32 version winedbgc winspool ws2help ws2_32 \
38 wsock32 wshirda zlib
39
40 SUBSYS = smss win32k csrss ntvdm
41
42 #
43 # Select the server(s) you want to build
44 #
45 #SERVERS = posix linux os2
46 SERVERS = win32
47
48 # Boot loaders
49 # dos
50 LOADERS = dos
51
52 # Driver support libraries
53 #bzip2 zlib
54 DRIVERS_LIB = bzip2
55
56 # Kernel mode device drivers
57 # Obsolete: ide
58 # beep blue floppy null parallel ramdrv serenum serial vga videoprt
59 DEVICE_DRIVERS = beep blue floppy null serial vga videoprt
60
61 # Kernel mode input drivers
62 # keyboard mouclass psaux sermouse
63 INPUT_DRIVERS = keyboard mouclass psaux
64
65 # Kernel mode file system drivers
66 # cdfs ext2 fs_rec ms np vfat
67 FS_DRIVERS = cdfs fs_rec ms np vfat mup ntfs
68
69 # Kernel mode networking drivers
70 # afd ndis npf tcpip tdi wshtcpip
71 NET_DRIVERS = afd ndis npf tcpip tdi wshtcpip
72
73 # Kernel mode networking device drivers
74 # ne2000
75 NET_DEVICE_DRIVERS = ne2000
76
77 # Kernel mode storage drivers
78 # atapi cdrom class2 disk scsiport
79 STORAGE_DRIVERS = atapi cdrom class2 disk scsiport
80
81 # System applications
82 # autochk cmd format gstart services setup usetup winlogon
83 SYS_APPS = autochk cmd format gstart services setup usetup winlogon
84
85 # System services
86 # rpcss eventlog
87 SYS_SVC = rpcss eventlog
88
89 APPS = tests testsets utils
90
91
92 # External (sub)systems for ReactOS
93 # rosapps wine posix os2 (requires c++) java (non-existant)
94 EXTERNALS = rosapps wine posix os2
95
96 ifeq ($(ROS_BUILD_EXT),yes)
97 EXT_MODULES = $(EXTERNALS)
98 else
99 EXT_MODULES =
100 endif
101
102 KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS) \
103 $(NET_DRIVERS) $(NET_DEVICE_DRIVERS) $(STORAGE_DRIVERS)
104
105 all: tools dk implib $(COMPONENTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
106 $(LOADERS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
107 $(APPS) $(EXT_MODULES)
108
109 #config: $(TOOLS:%=%_config)
110
111 depends: $(LIB_FSLIB:%=%_depends) $(DLLS:%=%_depends) $(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
112 $(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
113
114 implib: $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
115 $(LIB_FSLIB:%=%_implib) $(DLLS:%=%_implib) $(LOADERS:%=%_implib) \
116 $(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
117 $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
118 $(APPS:%=%_implib) $(EXT_MODULES:%=%_implib)
119
120 clean: tools dk_clean $(HALS:%=%_clean) \
121 $(COMPONENTS:%=%_clean) $(BUS:%=%_clean) $(LIB_FSLIB:%=%_clean) $(DLLS:%=%_clean) \
122 $(LOADERS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) $(SUBSYS:%=%_clean) \
123 $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
124 $(NET_APPS:%=%_clean) \
125 $(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) \
126 clean_after tools_clean
127
128 clean_after:
129 $(RM) $(PATH_TO_TOP)/include/roscfg.h
130
131 install: tools install_dirs install_before \
132 $(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
133 $(LIB_FSLIB:%=%_install) $(DLLS:%=%_install) $(LOADERS:%=%_install) \
134 $(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
135 $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
136 $(APPS:%=%_install) $(EXT_MODULES:%=%_install)
137
138 dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
139 $(HALS:%=%_dist) $(COMPONENTS:%=%_dist) $(BUS:%=%_dist) $(LIB_FSLIB:%=%_dist) \
140 $(DLLS:%=%_dist) $(LOADERS:%=%_dist) $(KERNEL_DRIVERS:%=%_dist) $(SUBSYS:%=%_dist) \
141 $(SYS_APPS:%=%_dist) $(SYS_SVC:%=%_dist) \
142 $(NET_APPS:%=%_dist) \
143 $(APPS:%=%_dist) $(EXT_MODULES:%=%_dist)
144
145 bootcd_directory_layout:
146 $(RMKDIR) $(BOOTCD_DIR)
147 $(RMKDIR) $(BOOTCD_DIR)/bootdisk
148 $(RMKDIR) $(BOOTCD_DIR)/install
149 $(RMKDIR) $(BOOTCD_DIR)/reactos
150 $(RMKDIR) $(BOOTCD_DIR)/reactos/system32
151 $(RMKDIR) $(BOOTCD_DIR)/loader
152
153 bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
154 $(LIB_FSLIB:%=%_bootcd) $(DLLS:%=%_bootcd) $(KERNEL_DRIVERS:%=%_bootcd) \
155 $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
156
157 bootcd: all bootcd_directory_layout bootcd_bootstrap_files
158 $(MAKE) install INSTALL_DIR=$(BOOTCD_DIR)/install INSTALL_SYMBOLS=no BOOTCD_INSTALL=yes
159
160 .PHONY: all depends implib clean clean_before install dist bootcd_directory_layout \
161 bootcd_bootstrap_files bootcd
162
163
164 #
165 # System Applications
166 #
167 $(SYS_APPS): %:
168 $(MAKE) -C subsys/system/$*
169
170 $(SYS_APPS:%=%_implib): %_implib:
171 $(MAKE) -C subsys/system/$* implib
172
173 $(SYS_APPS:%=%_clean): %_clean:
174 $(MAKE) -C subsys/system/$* clean
175
176 $(SYS_APPS:%=%_dist): %_dist:
177 $(MAKE) -C subsys/system/$* dist
178
179 $(SYS_APPS:%=%_install): %_install:
180 $(MAKE) -C subsys/system/$* install
181
182 $(SYS_APPS:%=%_bootcd): %_bootcd:
183 $(MAKE) -C subsys/system/$* bootcd
184
185 .PHONY: $(SYS_APPS) $(SYS_APPS:%=%_implib) $(SYS_APPS:%=%_clean) $(SYS_APPS:%=%_install) $(SYS_APPS:%=%_dist) $(SYS_APPS:%=%_bootcd)
186
187 #
188 # System Services
189 #
190 $(SYS_SVC): %:
191 $(MAKE) -C services/$*
192
193 $(SYS_SVC:%=%_depends): %_depends:
194 $(MAKE) -C services/$* depends
195
196 $(SYS_SVC:%=%_implib): %_implib:
197 $(MAKE) -C services/$* implib
198
199 $(SYS_SVC:%=%_clean): %_clean:
200 $(MAKE) -C services/$* clean
201
202 $(SYS_SVC:%=%_dist): %_dist:
203 $(MAKE) -C services/$* dist
204
205 $(SYS_SVC:%=%_install): %_install:
206 $(MAKE) -C services/$* install
207
208 .PHONY: $(SYS_SVC) $(SYS_SVC:%=%_depends) $(SYS_SVC:%=%_implib) $(SYS_SVC:%=%_clean) $(SYS_SVC:%=%_install) $(SYS_SVC:%=%_dist)
209
210
211 #
212 # Applications
213 #
214 #
215 # Extra (optional system) Applications
216 #
217 $(APPS): %:
218 $(MAKE) -C apps/$*
219
220 $(APPS:%=%_implib): %_implib:
221 $(MAKE) -C apps/$* implib
222
223 $(APPS:%=%_clean): %_clean:
224 $(MAKE) -C apps/$* clean
225
226 $(APPS:%=%_dist): %_dist:
227 $(MAKE) -C apps/$* dist
228
229 $(APPS:%=%_install): %_install:
230 $(MAKE) -C apps/$* install
231
232 .PHONY: $(APPS) $(APPS:%=%_implib) $(APPS:%=%_clean) $(APPS:%=%_install) $(APPS:%=%_dist)
233
234
235 #
236 # External ports and subsystem personalities
237 #
238 $(EXTERNALS): %:
239 $(MAKE) -C $(ROOT_PATH)/$*
240
241 $(EXTERNALS:%=%_depends): %_depends:
242 $(MAKE) -C $(ROOT_PATH)/$* depends
243
244 $(EXTERNALS:%=%_implib): %_implib:
245 $(MAKE) -C $(ROOT_PATH)/$* implib
246
247 $(EXTERNALS:%=%_clean): %_clean:
248 $(MAKE) -C $(ROOT_PATH)/$* clean
249
250 $(EXTERNALS:%=%_dist): %_dist:
251 $(MAKE) -C $(ROOT_PATH)/$* dist
252
253 $(EXTERNALS:%=%_install): %_install:
254 $(MAKE) -C $(ROOT_PATH)/$* install
255
256 .PHONY: $(EXTERNALS) $(EXTERNALS:%=%_depends) $(EXTERNALS:%=%_implib) $(EXTERNALS:%=%_clean) $(EXTERNALS:%=%_install) $(EXTERNALS:%=%_dist)
257
258
259 #
260 # Tools
261 #
262 tools:
263 $(MAKE) -C tools
264
265 tools_implib:
266
267 tools_clean:
268 $(MAKE) -C tools clean
269
270 tools_install:
271
272 tools_dist:
273
274 .PHONY: tools tools_implib tools_clean tools_install tools_dist
275
276
277 #
278 # Developer Kits
279 #
280 dk:
281 $(RMKDIR) $(DK_PATH)
282 $(RMKDIR) $(DDK_PATH)
283 $(RMKDIR) $(DDK_PATH_LIB)
284 $(RMKDIR) $(DDK_PATH_INC)
285 $(RMKDIR) $(SDK_PATH)
286 $(RMKDIR) $(SDK_PATH_LIB)
287 $(RMKDIR) $(SDK_PATH_INC)
288 $(RMKDIR) $(XDK_PATH)
289 $(RMKDIR) $(XDK_PATH_LIB)
290 $(RMKDIR) $(XDK_PATH_INC)
291
292 dk_implib:
293
294 # WARNING! Be very sure that there are no important files
295 # in these directories before cleaning them!!!
296 dk_clean:
297 $(RM) $(DDK_PATH_LIB)/*.a
298 # $(RM) $(DDK_PATH_INC)/*.h
299 $(RMDIR) $(DDK_PATH_LIB)
300 # $(RMDIR) $(DDK_PATH_INC)
301 $(RM) $(SDK_PATH_LIB)/*.a
302 # $(RM) $(SDK_PATH_INC)/*.h
303 $(RMDIR) $(SDK_PATH_LIB)
304 # $(RMDIR) $(SDK_PATH_INC)
305 $(RM) $(XDK_PATH_LIB)/*.a
306 # $(RM) $(XDK_PATH_INC)/*.h
307 $(RMDIR) $(XDK_PATH_LIB)
308 # $(RMDIR) $(XDK_PATH_INC)
309
310 dk_install:
311
312 dk_dist:
313
314 .PHONY: dk dk_implib dk_clean dk_install dk_dist
315
316
317 #
318 # Interfaces
319 #
320 iface_native:
321 $(MAKE) -C iface/native
322
323 iface_native_implib:
324
325 iface_native_clean:
326 $(MAKE) -C iface/native clean
327
328 iface_native_install:
329
330 iface_native_dist:
331
332 iface_native_bootcd:
333
334 iface_additional:
335 $(MAKE) -C iface/addsys
336
337 iface_additional_implib:
338
339 iface_additional_clean:
340 $(MAKE) -C iface/addsys clean
341
342 iface_additional_install:
343
344 iface_additional_dist:
345
346 iface_additional_bootcd:
347
348 .PHONY: iface_native iface_native_implib iface_native_clean iface_native_install \
349 iface_native_dist iface_native_bootcd \
350 iface_additional iface_additional_implib iface_additional_clean \
351 iface_additional_install iface_additional_dist iface_additional_bootcd
352
353 #
354 # Bus driver rules
355 #
356 $(BUS): %:
357 $(MAKE) -C drivers/bus/$*
358
359 $(BUS:%=%_implib): %_implib:
360 $(MAKE) -C drivers/bus/$* implib
361
362 $(BUS:%=%_clean): %_clean:
363 $(MAKE) -C drivers/bus/$* clean
364
365 $(BUS:%=%_install): %_install:
366 $(MAKE) -C drivers/bus/$* install
367
368 $(BUS:%=%_dist): %_dist:
369 $(MAKE) -C drivers/bus/$* dist
370
371 $(BUS:%=%_bootcd): %_bootcd:
372 $(MAKE) -C drivers/bus/$* bootcd
373
374 .PHONY: $(BUS) $(BUS:%=%_implib) $(BUS:%=%_clean) \
375 $(BUS:%=%_install) $(BUS:%=%_dist) $(BUS:%=%_bootcd)
376
377 #
378 # Driver support libraries rules
379 #
380 $(DRIVERS_LIB): %:
381 $(MAKE) -C drivers/lib/$*
382
383 $(DRIVERS_LIB:%=%_implib): %_implib:
384 $(MAKE) -C drivers/lib/$* implib
385
386 $(DRIVERS_LIB:%=%_clean): %_clean:
387 $(MAKE) -C drivers/lib/$* clean
388
389 $(DRIVERS_LIB:%=%_install): %_install:
390 $(MAKE) -C drivers/lib/$* install
391
392 $(DRIVERS_LIB:%=%_dist): %_dist:
393 $(MAKE) -C drivers/lib/$* dist
394
395 $(DRIVERS_LIB:%=%_bootcd): %_bootcd:
396 $(MAKE) -C drivers/lib/$* bootcd
397
398 .PHONY: $(DRIVERS_LIB) $(DRIVERS_LIB:%=%_implib) $(DRIVERS_LIB:%=%_clean) \
399 $(DRIVERS_LIB:%=%_install) $(DRIVERS_LIB:%=%_dist) $(DRIVERS_LIB:%=%_bootcd)
400
401 #
402 # Device driver rules
403 #
404 $(DEVICE_DRIVERS): %:
405 $(MAKE) -C drivers/dd/$*
406
407 $(DEVICE_DRIVERS:%=%_implib): %_implib:
408 $(MAKE) -C drivers/dd/$* implib
409
410 $(DEVICE_DRIVERS:%=%_clean): %_clean:
411 $(MAKE) -C drivers/dd/$* clean
412
413 $(DEVICE_DRIVERS:%=%_install): %_install:
414 $(MAKE) -C drivers/dd/$* install
415
416 $(DEVICE_DRIVERS:%=%_dist): %_dist:
417 $(MAKE) -C drivers/dd/$* dist
418
419 $(DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
420 $(MAKE) -C drivers/dd/$* bootcd
421
422 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_implib) $(DEVICE_DRIVERS:%=%_clean) \
423 $(DEVICE_DRIVERS:%=%_install) $(DEVICE_DRIVERS:%=%_dist) $(DEVICE_DRIVERS:%=%_bootcd)
424
425 #
426 # Input driver rules
427 #
428 $(INPUT_DRIVERS): %:
429 $(MAKE) -C drivers/input/$*
430
431 $(INPUT_DRIVERS:%=%_implib): %_implib:
432 $(MAKE) -C drivers/input/$* implib
433
434 $(INPUT_DRIVERS:%=%_clean): %_clean:
435 $(MAKE) -C drivers/input/$* clean
436
437 $(INPUT_DRIVERS:%=%_install): %_install:
438 $(MAKE) -C drivers/input/$* install
439
440 $(INPUT_DRIVERS:%=%_dist): %_dist:
441 $(MAKE) -C drivers/input/$* dist
442
443 $(INPUT_DRIVERS:%=%_bootcd): %_bootcd:
444 $(MAKE) -C drivers/input/$* bootcd
445
446 .PHONY: $(INPUT_DRIVERS) $(INPUT_DRIVERS:%=%_implib) $(INPUT_DRIVERS:%=%_clean)\
447 $(INPUT_DRIVERS:%=%_install) $(INPUT_DRIVERS:%=%_dist) $(INPUT_DRIVERS:%=%_bootcd)
448
449 $(FS_DRIVERS): %:
450 $(MAKE) -C drivers/fs/$*
451
452 $(FS_DRIVERS:%=%_implib): %_implib:
453 $(MAKE) -C drivers/fs/$* implib
454
455 $(FS_DRIVERS:%=%_clean): %_clean:
456 $(MAKE) -C drivers/fs/$* clean
457
458 $(FS_DRIVERS:%=%_install): %_install:
459 $(MAKE) -C drivers/fs/$* install
460
461 $(FS_DRIVERS:%=%_dist): %_dist:
462 $(MAKE) -C drivers/fs/$* dist
463
464 $(FS_DRIVERS:%=%_bootcd): %_bootcd:
465 $(MAKE) -C drivers/fs/$* bootcd
466
467 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_implib) $(FS_DRIVERS:%=%_clean) \
468 $(FS_DRIVERS:%=%_install) $(FS_DRIVERS:%=%_dist) $(FS_DRIVERS:%=%_bootcd)
469
470 #
471 # Network driver rules
472 #
473 $(NET_DRIVERS): %:
474 $(MAKE) -C drivers/net/$*
475
476 $(NET_DRIVERS:%=%_implib): %_implib:
477 $(MAKE) -C drivers/net/$* implib
478
479 $(NET_DRIVERS:%=%_clean): %_clean:
480 $(MAKE) -C drivers/net/$* clean
481
482 $(NET_DRIVERS:%=%_install): %_install:
483 $(MAKE) -C drivers/net/$* install
484
485 $(NET_DRIVERS:%=%_dist): %_dist:
486 $(MAKE) -C drivers/net/$* dist
487
488 $(NET_DRIVERS:%=%_bootcd): %_bootcd:
489 $(MAKE) -C drivers/net/$* bootcd
490
491 .PHONY: $(NET_DRIVERS) $(NET_DRIVERS:%=%_implib) $(NET_DRIVERS:%=%_clean) \
492 $(NET_DRIVERS:%=%_install) $(NET_DRIVERS:%=%_dist) $(NET_DRIVERS:%=%_bootcd)
493
494 $(NET_DEVICE_DRIVERS): %:
495 $(MAKE) -C drivers/net/dd/$*
496
497 $(NET_DEVICE_DRIVERS:%=%_implib): %_implib:
498 $(MAKE) -C drivers/net/dd/$* implib
499
500 $(NET_DEVICE_DRIVERS:%=%_clean): %_clean:
501 $(MAKE) -C drivers/net/dd/$* clean
502
503 $(NET_DEVICE_DRIVERS:%=%_install): %_install:
504 $(MAKE) -C drivers/net/dd/$* install
505
506 $(NET_DEVICE_DRIVERS:%=%_dist): %_dist:
507 $(MAKE) -C drivers/net/dd/$* dist
508
509 $(NET_DEVICE_DRIVERS:%=%_bootcd): %_bootcd:
510 $(MAKE) -C drivers/net/dd/$* bootcd
511
512 .PHONY: $(NET_DEVICE_DRIVERS) $(NET_DEVICE_DRIVERS:%=%_clean) $(NET_DEVICE_DRIVERS:%=%_implib) \
513 $(NET_DEVICE_DRIVERS:%=%_install) $(NET_DEVICE_DRIVERS:%=%_dist) $(NET_DEVICE_DRIVERS:%=%_bootcd)
514
515 #
516 # storage driver rules
517 #
518 $(STORAGE_DRIVERS): %:
519 $(MAKE) -C drivers/storage/$*
520
521 $(STORAGE_DRIVERS:%=%_implib): %_implib:
522 $(MAKE) -C drivers/storage/$* implib
523
524 $(STORAGE_DRIVERS:%=%_clean): %_clean:
525 $(MAKE) -C drivers/storage/$* clean
526
527 $(STORAGE_DRIVERS:%=%_install): %_install:
528 $(MAKE) -C drivers/storage/$* install
529
530 $(STORAGE_DRIVERS:%=%_dist): %_dist:
531 $(MAKE) -C drivers/storage/$* dist
532
533 $(STORAGE_DRIVERS:%=%_bootcd): %_bootcd:
534 $(MAKE) -C drivers/storage/$* bootcd
535
536 .PHONY: $(STORAGE_DRIVERS) $(STORAGE_DRIVERS:%=%_clean) $(STORAGE_DRIVERS:%=%_implib) \
537 $(STORAGE_DRIVERS:%=%_install) $(STORAGE_DRIVERS:%=%_dist) $(STORAGE_DRIVERS:%=%_bootcd)
538
539 #
540 # Kernel loaders
541 #
542
543 $(LOADERS): %:
544 $(MAKE) -C loaders/$*
545
546 $(LOADERS:%=%_implib): %_implib:
547
548 $(LOADERS:%=%_clean): %_clean:
549 $(MAKE) -C loaders/$* clean
550
551 $(LOADERS:%=%_install): %_install:
552 $(MAKE) -C loaders/$* install
553
554 $(LOADERS:%=%_dist): %_dist:
555 $(MAKE) -C loaders/$* dist
556
557 .PHONY: $(LOADERS) $(LOADERS:%=%_implib) $(LOADERS:%=%_clean) $(LOADERS:%=%_install) \
558 $(LOADERS:%=%_dist)
559
560 #
561 # Required system components
562 #
563
564 ntoskrnl:
565 $(MAKE) -C ntoskrnl
566
567 ntoskrnl_implib:
568 $(MAKE) -C ntoskrnl implib
569
570 ntoskrnl_clean:
571 $(MAKE) -C ntoskrnl clean
572
573 ntoskrnl_install:
574 $(MAKE) -C ntoskrnl install
575
576 ntoskrnl_dist:
577 $(MAKE) -C ntoskrnl dist
578
579 ntoskrnl_bootcd:
580 $(MAKE) -C ntoskrnl bootcd
581
582 .PHONY: ntoskrnl ntoskrnl_implib ntoskrnl_clean ntoskrnl_install ntoskrnl_dist ntoskrnl_bootcd
583
584 #
585 # Hardware Abstraction Layer import library
586 #
587
588 hallib:
589 $(MAKE) -C hal/hal
590
591 hallib_implib:
592 $(MAKE) -C hal/hal implib
593
594 hallib_clean:
595 $(MAKE) -C hal/hal clean
596
597 hallib_install:
598 $(MAKE) -C hal/hal install
599
600 hallib_dist:
601 $(MAKE) -C hal/hal dist
602
603 hallib_bootcd:
604 $(MAKE) -C hal/hal bootcd
605
606 .PHONY: hallib hallib_implib hallib_clean hallib_install hallib_dist hallib_bootcd
607
608 #
609 # Hardware Abstraction Layers
610 #
611
612 $(HALS): %:
613 $(MAKE) -C hal/$*
614
615 $(HALS:%=%_implib): %_implib:
616 $(MAKE) -C hal/$* implib
617
618 $(HALS:%=%_clean): %_clean:
619 $(MAKE) -C hal/$* clean
620
621 $(HALS:%=%_install): %_install:
622 $(MAKE) -C hal/$* install
623
624 $(HALS:%=%_dist): %_dist:
625 $(MAKE) -C hal/$* dist
626
627 $(HALS:%=%_bootcd): %_bootcd:
628 $(MAKE) -C hal/$* bootcd
629
630 .PHONY: $(HALS) $(HALS:%=%_implib) $(HALS:%=%_clean) $(HALS:%=%_install) $(HALS:%=%_dist) $(HALS:%=%_bootcd)
631
632 #
633 # File system libraries
634 #
635
636 $(LIB_FSLIB): %:
637 $(MAKE) -C lib/fslib/$*
638
639 $(LIB_FSLIB:%=%_depends): %_depends:
640 $(MAKE) -C lib/fslib/$* depends
641
642 $(LIB_FSLIB:%=%_implib): %_implib:
643 $(MAKE) -C lib/fslib/$* implib
644
645 $(LIB_FSLIB:%=%_clean): %_clean:
646 $(MAKE) -C lib/fslib/$* clean
647
648 $(LIB_FSLIB:%=%_install): %_install:
649 $(MAKE) -C lib/fslib/$* install
650
651 $(LIB_FSLIB:%=%_dist): %_dist:
652 $(MAKE) -C lib/fslib/$* dist
653
654 $(LIB_FSLIB:%=%_bootcd): %_bootcd:
655 $(MAKE) -C lib/fslib/$* bootcd
656
657 .PHONY: $(LIB_FSLIB) $(LIB_FSLIB:%=%_depends) $(LIB_FSLIB:%=%_implib) $(LIB_FSLIB:%=%_clean) \
658 $(LIB_FSLIB:%=%_install) $(LIB_FSLIB:%=%_dist) $(LIB_FSLIB:%=%_bootcd)
659
660 #
661 # Required DLLs
662 #
663
664 $(DLLS): %:
665 $(MAKE) -C lib/$*
666
667 $(DLLS:%=%_depends): %_depends:
668 $(MAKE) -C lib/$* depends
669
670 $(DLLS:%=%_implib): %_implib:
671 $(MAKE) -C lib/$* implib
672
673 $(DLLS:%=%_clean): %_clean:
674 $(MAKE) -C lib/$* clean
675
676 $(DLLS:%=%_install): %_install:
677 $(MAKE) -C lib/$* install
678
679 $(DLLS:%=%_dist): %_dist:
680 $(MAKE) -C lib/$* dist
681
682 $(DLLS:%=%_bootcd): %_bootcd:
683 $(MAKE) -C lib/$* bootcd
684
685 .PHONY: $(DLLS) $(DLLS:%=%_depends) $(DLLS:%=%_implib) $(DLLS:%=%_clean) $(DLLS:%=%_install) $(DLLS:%=%_dist) $(DLLS:%=%_bootcd)
686
687 #
688 # Subsystem support modules
689 #
690
691 $(SUBSYS): %:
692 $(MAKE) -C subsys/$*
693
694 $(SUBSYS:%=%_depends): %_depends:
695 $(MAKE) -C subsys/$* depends
696
697 $(SUBSYS:%=%_implib): %_implib:
698 $(MAKE) -C subsys/$* implib
699
700 $(SUBSYS:%=%_clean): %_clean:
701 $(MAKE) -C subsys/$* clean
702
703 $(SUBSYS:%=%_install): %_install:
704 $(MAKE) -C subsys/$* install
705
706 $(SUBSYS:%=%_dist): %_dist:
707 $(MAKE) -C subsys/$* dist
708
709 $(SUBSYS:%=%_bootcd): %_bootcd:
710 $(MAKE) -C subsys/$* bootcd
711
712 .PHONY: $(SUBSYS) $(SUBSYS:%=%_depends) $(SUBSYS:%=%_implib) $(SUBSYS:%=%_clean) $(SUBSYS:%=%_install) \
713 $(SUBSYS:%=%_dist) $(SUBSYS:%=%_bootcd)
714
715 #
716 # Create an installation
717 #
718
719 install_clean:
720 $(RM) $(INSTALL_DIR)/system32/drivers/*.*
721 $(RM) $(INSTALL_DIR)/system32/config/*.*
722 $(RM) $(INSTALL_DIR)/system32/*.*
723 $(RM) $(INSTALL_DIR)/symbols/*.*
724 $(RM) $(INSTALL_DIR)/media/fonts/*.*
725 $(RM) $(INSTALL_DIR)/media/*.*
726 $(RM) $(INSTALL_DIR)/bin/*.*
727 $(RM) $(INSTALL_DIR)/*.com
728 $(RM) $(INSTALL_DIR)/*.bat
729 $(RMDIR) $(INSTALL_DIR)/system32/drivers
730 $(RMDIR) $(INSTALL_DIR)/system32/config
731 $(RMDIR) $(INSTALL_DIR)/system32
732 $(RMDIR) $(INSTALL_DIR)/symbols
733 $(RMDIR) $(INSTALL_DIR)/media/fonts
734 $(RMDIR) $(INSTALL_DIR)/media
735 $(RMDIR) $(INSTALL_DIR)/bin
736 $(RMDIR) $(INSTALL_DIR)
737
738 ifneq ($(BOOTCD_INSTALL),)
739
740 install_dirs:
741 $(RMKDIR) $(INSTALL_DIR)
742
743 install_before:
744 # $(CP) bootdata/autorun.inf $(INSTALL_DIR)/../autorun.inf
745 $(CP) bootdata/readme.txt $(INSTALL_DIR)/../readme.txt
746 $(RLINE) bootdata/hivecls.inf $(INSTALL_DIR)/hivecls.inf
747 $(RLINE) bootdata/hivedef.inf $(INSTALL_DIR)/hivedef.inf
748 $(RLINE) bootdata/hivesft.inf $(INSTALL_DIR)/hivesft.inf
749 $(RLINE) bootdata/hivesys.inf $(INSTALL_DIR)/hivesys.inf
750 $(RLINE) bootdata/txtsetup.sif $(INSTALL_DIR)/txtsetup.sif
751 $(CP) system.hiv $(INSTALL_DIR)/system.hiv
752 $(CP) media/fonts/helb____.ttf $(INSTALL_DIR)/helb____.ttf
753 $(CP) media/fonts/timr____.ttf $(INSTALL_DIR)/timr____.ttf
754
755 else # BOOTCD_INSTALL
756
757 install_dirs:
758 $(RMKDIR) $(INSTALL_DIR)
759 $(RMKDIR) $(INSTALL_DIR)/bin
760 $(RMKDIR) $(INSTALL_DIR)/media
761 $(RMKDIR) $(INSTALL_DIR)/media/fonts
762 $(RMKDIR) $(INSTALL_DIR)/symbols
763 $(RMKDIR) $(INSTALL_DIR)/system32
764 $(RMKDIR) $(INSTALL_DIR)/system32/config
765 $(RMKDIR) $(INSTALL_DIR)/system32/drivers
766
767 install_before:
768 $(CP) bootc.lst $(INSTALL_DIR)/bootc.lst
769 $(CP) boot.bat $(INSTALL_DIR)/boot.bat
770 $(CP) aboot.bat $(INSTALL_DIR)/aboot.bat
771 $(CP) system.hiv $(INSTALL_DIR)/system32/config/system.hiv
772 $(CP) media/fonts/helb____.ttf $(INSTALL_DIR)/media/fonts/helb____.ttf
773 $(CP) media/fonts/timr____.ttf $(INSTALL_DIR)/media/fonts/timr____.ttf
774
775 endif # BOOTCD_INSTALL
776
777 .PHONY: install_clean install_dirs install_before
778
779
780 #
781 # Make a distribution saveset
782 #
783
784 dist_clean:
785 $(RM) $(DIST_DIR)/symbols/*.sym
786 $(RM) $(DIST_DIR)/drivers/*.sys
787 $(RM) $(DIST_DIR)/subsys/*.exe
788 $(RM) $(DIST_DIR)/dlls/*.dll
789 $(RM) $(DIST_DIR)/apps/*.exe
790 $(RM) $(DIST_DIR)/*.exe
791 $(RMDIR) $(DIST_DIR)/symbols
792 $(RMDIR) $(DIST_DIR)/subsys
793 $(RMDIR) $(DIST_DIR)/drivers
794 $(RMDIR) $(DIST_DIR)/dlls
795 $(RMDIR) $(DIST_DIR)/apps
796 $(RMDIR) $(DIST_DIR)
797
798 dist_dirs:
799 $(RMKDIR) $(DIST_DIR)
800 $(RMKDIR) $(DIST_DIR)/apps
801 $(RMKDIR) $(DIST_DIR)/dlls
802 $(RMKDIR) $(DIST_DIR)/drivers
803 $(RMKDIR) $(DIST_DIR)/subsys
804 $(RMKDIR) $(DIST_DIR)/symbols
805
806 .PHONY: dist_clean dist_dirs
807
808
809 etags:
810 find . -name "*.[ch]" -print | etags --language=c -
811
812 # EOF
813