10 #HOST = mingw32-windows
15 # Required to run the system
17 COMPONENTS
= iface_native iface_additional ntoskrnl
18 DLLS
= ntdll kernel32 crtdll advapi32 fmifs gdi32
20 SUBSYS
= smss win32k csrss
23 # Select the server(s) you want to build
26 # SERVERS = posix linux os2
29 # Select the loader(s) you want to build
35 # Select the device drivers and filesystems you want
37 DEVICE_DRIVERS
= blue ide keyboard null parallel serial vidport vga
/display vga
/miniport
38 # DEVICE_DRIVERS = beep event floppy ide_test mouse sound test test1
40 # FS_DRIVERS = minix ext2 template
41 KERNEL_SERVICES
= $(DEVICE_DRIVERS
) $(FS_DRIVERS
)
43 APPS
= args hello
shell test cat bench apc shm lpc thread event file gditest
45 all: buildno
$(COMPONENTS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(APPS
)
49 clean: buildno_clean
$(COMPONENTS
:%=%_clean
) $(DLLS
:%=%_clean
) $(LOADERS
:%=%_clean
) \
50 $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) $(APPS
:%=%_clean
)
54 floppy
: make_floppy_dirs autoexec_floppy
$(COMPONENTS
:%=%_floppy
) \
55 $(DLLS
:%=%_floppy
) $(LOADERS
:%=%_floppy
) \
56 $(KERNEL_SERVICES
:%=%_floppy
) $(SUBSYS
:%=%_floppy
) \
59 dist: clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) $(DLLS
:%=%_dist
) \
60 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
64 # Build number generator
66 buildno
: include/reactos
/version.h
70 make
-C apps
/buildno
clean
76 .PHONY
: buildno buildno_clean buildno_floppy buildno_dist
84 $(APPS
:%=%_clean
): %_clean
:
87 $(APPS
:%=%_floppy
): %_floppy
:
88 make
-C apps
/$* floppy
90 $(APPS
:%=%_dist
): %_dist
:
93 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_floppy
) $(APPS
:%=%_dist
)
102 make
-C iface
/native
clean
111 iface_additional_clean
:
112 make
-C iface
/addsys
clean
114 iface_additional_floppy
:
116 iface_additional_dist
:
118 .PHONY
: iface_native iface_native_clean iface_native_floppy \
120 iface_additional iface_additional_clean iface_additional_floppy \
121 iface_additional_dist \
124 # Device driver rules
126 $(DEVICE_DRIVERS
): %:
127 make
-C services
/dd
/$*
129 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
130 make
-C services
/dd
/$* clean
132 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
133 make
-C services
/dd
/$* floppy
135 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
136 make
-C services
/dd
/$* dist
138 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
139 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
142 make
-C services
/fs
/$*
144 $(FS_DRIVERS
:%=%_clean
): %_clean
:
145 make
-C services
/fs
/$* clean
147 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
148 make
-C services
/fs
/$* floppy
150 $(FS_DRIVERS
:%=%_dist
): %_dist
:
151 make
-C services
/fs
/$* dist
153 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
154 $(FS_DRIVERS
:%=%_dist
)
163 $(LOADERS
:%=%_clean
): %_clean
:
164 make
-C loaders
/$* clean
166 $(LOADERS
:%=%_floppy
): %_floppy
:
167 make
-C loaders
/$* floppy
169 $(LOADERS
:%=%_dist
): %_dist
:
170 make
-C loaders
/$* dist
172 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
176 # Required system components
183 make
-C ntoskrnl
clean
186 make
-C ntoskrnl floppy
189 make
-C ntoskrnl
dist
191 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
200 $(DLLS
:%=%_clean
): %_clean
:
203 $(DLLS
:%=%_floppy
): %_floppy
:
204 make
-C lib
/$* floppy
206 $(DLLS
:%=%_dist
): %_dist
:
209 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
217 $(SUBSYS
:%=%_clean
): %_clean
:
218 make
-C subsys
/$* clean
220 $(SUBSYS
:%=%_floppy
): %_floppy
:
221 make
-C subsys
/$* floppy
223 $(SUBSYS
:%=%_dist
): %_dist
:
224 make
-C subsys
/$* dist
226 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
230 # Make an install floppy
234 .
/install.sh
/mnt
/hda1
238 mkdir
$(FLOPPY_DIR
)\dlls
239 mkdir
$(FLOPPY_DIR
)\apps
240 mkdir
$(FLOPPY_DIR
)\drivers
241 mkdir
$(FLOPPY_DIR
)\subsys
243 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
244 mkdir
$(FLOPPY_DIR
)/subsys
247 .PHONY
: make_floppy_dirs
249 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
251 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
253 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
255 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
259 # Make a distribution saveset
264 - $(RM
) $(DIST_DIR
)\dlls\
*.dll
265 - $(RM
) $(DIST_DIR
)\apps\
*.exe
266 - $(RM
) $(DIST_DIR
)\drivers\
*.sys
267 - $(RM
) $(DIST_DIR
)\subsys\
*.exe
268 - $(RMDIR
) $(DIST_DIR
)\dlls
269 - $(RMDIR
) $(DIST_DIR
)\apps
270 - $(RMDIR
) $(DIST_DIR
)\drivers
271 - $(RMDIR
) $(DIST_DIR
)\subsys
272 - $(RMDIR
) $(DIST_DIR
)
280 mkdir
$(DIST_DIR
)\dlls
281 mkdir
$(DIST_DIR
)\apps
282 mkdir
$(DIST_DIR
)\drivers
283 mkdir
$(DIST_DIR
)\dlls
284 mkdir
$(DIST_DIR
)\subsys
286 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
287 mkdir
$(DIST_DIR
)/subsys
290 .PHONY
: clean_dist_dir make_dist_dirs