10 #HOST = mingw32-windows
15 # Required to run the system
17 COMPONENTS
= iface_native ntoskrnl
18 DLLS
= ntdll kernel32 crtdll advapi32 fmifs gdi32
19 #DLLS = mingw32 user32
24 # Select the server(s) you want to build
27 # SERVERS = posix linux os2
30 # Select the loader(s) you want to build
36 # Select the device drivers and filesystems you want
38 DEVICE_DRIVERS
= blue ide keyboard null parallel serial
39 # DEVICE_DRIVERS = beep event floppy ide_test mouse sound test test1
41 # FS_DRIVERS = minix ext2 template
42 KERNEL_SERVICES
= $(DEVICE_DRIVERS
) $(FS_DRIVERS
)
44 APPS
= args hello
shell test cat bench apc shm lpc thread event
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
109 .PHONY
: iface_native iface_native_clean iface_native_floppy \
113 # Device driver rules
115 $(DEVICE_DRIVERS
): %:
116 make
-C services
/dd
/$*
118 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
119 make
-C services
/dd
/$* clean
121 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
122 make
-C services
/dd
/$* floppy
124 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
125 make
-C services
/dd
/$* dist
127 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
128 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
131 make
-C services
/fs
/$*
133 $(FS_DRIVERS
:%=%_clean
): %_clean
:
134 make
-C services
/fs
/$* clean
136 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
137 make
-C services
/fs
/$* floppy
139 $(FS_DRIVERS
:%=%_dist
): %_dist
:
140 make
-C services
/fs
/$* dist
142 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
143 $(FS_DRIVERS
:%=%_dist
)
152 $(LOADERS
:%=%_clean
): %_clean
:
153 make
-C loaders
/$* clean
155 $(LOADERS
:%=%_floppy
): %_floppy
:
156 make
-C loaders
/$* floppy
158 $(LOADERS
:%=%_dist
): %_dist
:
159 make
-C loaders
/$* dist
161 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
165 # Required system components
172 make
-C ntoskrnl
clean
175 make
-C ntoskrnl floppy
178 make
-C ntoskrnl
dist
180 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
189 $(DLLS
:%=%_clean
): %_clean
:
192 $(DLLS
:%=%_floppy
): %_floppy
:
193 make
-C lib
/$* floppy
195 $(DLLS
:%=%_dist
): %_dist
:
198 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
206 $(SUBSYS
:%=%_clean
): %_clean
:
207 make
-C subsys
/$* clean
209 $(SUBSYS
:%=%_floppy
): %_floppy
:
210 make
-C subsys
/$* floppy
212 $(SUBSYS
:%=%_dist
): %_dist
:
213 make
-C subsys
/$* dist
215 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
219 # Make an install floppy
223 .
/install.sh
/mnt
/hda1
227 mkdir
$(FLOPPY_DIR
)\dlls
228 mkdir
$(FLOPPY_DIR
)\apps
229 mkdir
$(FLOPPY_DIR
)\drivers
230 mkdir
$(FLOPPY_DIR
)\subsys
232 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
233 mkdir
$(FLOPPY_DIR
)/subsys
236 .PHONY
: make_floppy_dirs
238 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
240 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
242 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
244 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
248 # Make a distribution saveset
253 $(RM
) $(DIST_DIR
)\dlls\
*.
*
254 $(RM
) $(DIST_DIR
)\apps\
*.
*
255 $(RM
) $(DIST_DIR
)\drivers\
*.
*
256 $(RM
) $(DIST_DIR
)\subsys\
*.
*
257 $(RMDIR
) $(DIST_DIR
)\dlls
258 $(RMDIR
) $(DIST_DIR
)\apps
259 $(RMDIR
) $(DIST_DIR
)\drivers
260 $(RMDIR
) $(DIST_DIR
)\subsys
269 mkdir
$(DIST_DIR
)\dlls
270 mkdir
$(DIST_DIR
)\apps
271 mkdir
$(DIST_DIR
)\drivers
272 mkdir
$(DIST_DIR
)\dlls
273 mkdir
$(DIST_DIR
)\subsys
275 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
276 mkdir
$(DIST_DIR
)/subsys
279 .PHONY
: clean_dist_dir make_dist_dirs