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
38 # DEVICE_DRIVERS = beep event floppy ide_test mouse sound test test1
39 FS_DRIVERS
= vfat minix
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 \
46 all: buildno
$(COMPONENTS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(APPS
)
50 clean: buildno_clean
$(COMPONENTS
:%=%_clean
) $(DLLS
:%=%_clean
) $(LOADERS
:%=%_clean
) \
51 $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) $(APPS
:%=%_clean
)
55 floppy
: make_floppy_dirs autoexec_floppy
$(COMPONENTS
:%=%_floppy
) \
56 $(DLLS
:%=%_floppy
) $(LOADERS
:%=%_floppy
) \
57 $(KERNEL_SERVICES
:%=%_floppy
) $(SUBSYS
:%=%_floppy
) \
60 dist: clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) $(DLLS
:%=%_dist
) \
61 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
65 # Build number generator
67 buildno
: include/reactos
/version.h
71 make
-C apps
/buildno
clean
77 .PHONY
: buildno buildno_clean buildno_floppy buildno_dist
85 $(APPS
:%=%_clean
): %_clean
:
88 $(APPS
:%=%_floppy
): %_floppy
:
89 make
-C apps
/$* floppy
91 $(APPS
:%=%_dist
): %_dist
:
94 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_floppy
) $(APPS
:%=%_dist
)
103 make
-C iface
/native
clean
112 iface_additional_clean
:
113 make
-C iface
/addsys
clean
115 iface_additional_floppy
:
117 iface_additional_dist
:
119 .PHONY
: iface_native iface_native_clean iface_native_floppy \
121 iface_additional iface_additional_clean iface_additional_floppy \
122 iface_additional_dist \
125 # Device driver rules
127 $(DEVICE_DRIVERS
): %:
128 make
-C services
/dd
/$*
130 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
131 make
-C services
/dd
/$* clean
133 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
134 make
-C services
/dd
/$* floppy
136 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
137 make
-C services
/dd
/$* dist
139 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
140 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
143 make
-C services
/fs
/$*
145 $(FS_DRIVERS
:%=%_clean
): %_clean
:
146 make
-C services
/fs
/$* clean
148 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
149 make
-C services
/fs
/$* floppy
151 $(FS_DRIVERS
:%=%_dist
): %_dist
:
152 make
-C services
/fs
/$* dist
154 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
155 $(FS_DRIVERS
:%=%_dist
)
164 $(LOADERS
:%=%_clean
): %_clean
:
165 make
-C loaders
/$* clean
167 $(LOADERS
:%=%_floppy
): %_floppy
:
168 make
-C loaders
/$* floppy
170 $(LOADERS
:%=%_dist
): %_dist
:
171 make
-C loaders
/$* dist
173 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
177 # Required system components
184 make
-C ntoskrnl
clean
187 make
-C ntoskrnl floppy
190 make
-C ntoskrnl
dist
192 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
201 $(DLLS
:%=%_clean
): %_clean
:
204 $(DLLS
:%=%_floppy
): %_floppy
:
205 make
-C lib
/$* floppy
207 $(DLLS
:%=%_dist
): %_dist
:
210 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
218 $(SUBSYS
:%=%_clean
): %_clean
:
219 make
-C subsys
/$* clean
221 $(SUBSYS
:%=%_floppy
): %_floppy
:
222 make
-C subsys
/$* floppy
224 $(SUBSYS
:%=%_dist
): %_dist
:
225 make
-C subsys
/$* dist
227 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
231 # Make an install floppy
235 .
/install.sh
/mnt
/hda1
236 .
/install.sh
/mnt
/hda4
240 mkdir
$(FLOPPY_DIR
)\dlls
241 mkdir
$(FLOPPY_DIR
)\apps
242 mkdir
$(FLOPPY_DIR
)\drivers
243 mkdir
$(FLOPPY_DIR
)\subsys
245 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
246 mkdir
$(FLOPPY_DIR
)/subsys
249 .PHONY
: make_floppy_dirs
251 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
253 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
255 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
257 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
261 # Make a distribution saveset
266 - $(RM
) $(DIST_DIR
)\dlls\
*.dll
267 - $(RM
) $(DIST_DIR
)\apps\
*.exe
268 - $(RM
) $(DIST_DIR
)\drivers\
*.sys
269 - $(RM
) $(DIST_DIR
)\subsys\
*.exe
270 - $(RMDIR
) $(DIST_DIR
)\dlls
271 - $(RMDIR
) $(DIST_DIR
)\apps
272 - $(RMDIR
) $(DIST_DIR
)\drivers
273 - $(RMDIR
) $(DIST_DIR
)\subsys
274 - $(RMDIR
) $(DIST_DIR
)
282 mkdir
$(DIST_DIR
)\dlls
283 mkdir
$(DIST_DIR
)\apps
284 mkdir
$(DIST_DIR
)\drivers
285 mkdir
$(DIST_DIR
)\dlls
286 mkdir
$(DIST_DIR
)\subsys
288 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
289 mkdir
$(DIST_DIR
)/subsys
292 .PHONY
: clean_dist_dir make_dist_dirs