untested implementation of the registry
[reactos.git] / reactos / makefile.dos
1 #
2 # Global makefile
3 #
4
5 #
6 # Select your host
7 #
8 #HOST = mingw32-linux
9 #HOST = djgpp-msdos
10 HOST = mingw32-windows
11
12 include rules.mak
13
14 #
15 # Required to run the system
16 #
17 COMPONENTS = iface_native ntoskrnl
18 DLLS = ntdll kernel32 crtdll user32 fmifs gdi32
19 #DLLS = crtdll mingw32
20 SUBSYS = win32k
21
22 #
23 # Select the server(s) you want to build
24 #
25 SERVERS = win32
26 # SERVERS = posix linux os2
27
28 #
29 # Select the loader(s) you want to build
30 #
31 LOADERS = dos
32 # LOADERS = boot
33
34 #
35 # Select the device drivers and filesystems you want
36 #
37 DEVICE_DRIVERS = blue ide keyboard mouse null parallel serial vidport
38 # DEVICE_DRIVERS = beep event floppy ide_test sound test test1
39 FS_DRIVERS = vfat
40 # FS_DRIVERS = minix ext2 template
41 KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS)
42
43 APPS = args hello shell test cat bench
44 # APPS = cmd
45
46 all: $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS)
47 .PHONY: all
48
49 clean: $(COMPONENTS:%=%_clean) $(DLLS:%=%_clean) $(LOADERS:%=%_clean) \
50 $(KERNEL_SERVICES:%=%_clean) $(APPS:%=%_clean)
51 .PHONY: clean
52
53 #
54 # Applications
55 #
56 $(APPS): %:
57 make -C apps/$*
58
59 $(APPS:%=%_clean): %_clean:
60 make -C apps/$* clean
61
62 .PHONY: $(APPS) $(APPS:%=%_clean)
63
64 #
65 # Interfaces
66 #
67 iface_native:
68 make -C iface/native
69
70 iface_native_clean:
71 make -C iface/native clean
72
73 .PHONY: iface_native iface_native_clean
74
75 #
76 # Device driver rules
77 #
78 $(DEVICE_DRIVERS): %:
79 make -C services/dd/$*
80
81 $(DEVICE_DRIVERS:%=%_clean): %_clean:
82 make -C services/dd/$* clean
83
84 .PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_clean)
85
86 $(FS_DRIVERS): %:
87 make -C services/fs/$*
88
89 $(FS_DRIVERS:%=%_clean): %_clean:
90 make -C services/fs/$* clean
91
92 .PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_clean)
93
94 #
95 # Kernel loaders
96 #
97
98 $(LOADERS): %:
99 make -C loaders/$*
100
101 $(LOADERS:%=%_clean): %_clean:
102 make -C loaders/$* clean
103
104 .PHONY: $(LOADERS) $(LOADERS:%=%_clean)
105
106 #
107 # Required system components
108 #
109
110 ntoskrnl:
111 make -C ntoskrnl
112
113 ntoskrnl_clean:
114 make -C ntoskrnl clean
115
116 .PHONY: ntoskrnl ntoskrnl_clean
117
118 #
119 # Required DLLs
120 #
121
122 $(DLLS): %:
123 make -C lib/$*
124
125 $(DLLS:%=%_clean): %_clean:
126 make -C lib/$* clean
127
128 .PHONY: $(DLLS) $(DLLS:%=%_clean)
129
130 #
131 # Kernel Subsystems
132 #
133 $(SUBSYS): %:
134 make -C subsys/$*
135
136 $(SUBSYS:%=%_clean): %_clean:
137 make -C lib/$* clean
138
139 .PHONY: $(SUBSYS) $(SUBSYS:%=%_clean)
140
141