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
47 all: buildno
$(COMPONENTS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(APPS
)
51 clean: buildno_clean
$(COMPONENTS
:%=%_clean
) $(DLLS
:%=%_clean
) $(LOADERS
:%=%_clean
) \
52 $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) $(APPS
:%=%_clean
)
56 floppy
: make_floppy_dirs autoexec_floppy
$(COMPONENTS
:%=%_floppy
) \
57 $(DLLS
:%=%_floppy
) $(LOADERS
:%=%_floppy
) \
58 $(KERNEL_SERVICES
:%=%_floppy
) $(SUBSYS
:%=%_floppy
) \
61 dist: clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) $(DLLS
:%=%_dist
) \
62 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
66 # Build number generator
68 buildno
: include/reactos
/version.h
72 make
-C apps
/buildno
clean
78 .PHONY
: buildno buildno_clean buildno_floppy buildno_dist
86 $(APPS
:%=%_clean
): %_clean
:
89 $(APPS
:%=%_floppy
): %_floppy
:
90 make
-C apps
/$* floppy
92 $(APPS
:%=%_dist
): %_dist
:
95 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_floppy
) $(APPS
:%=%_dist
)
104 make
-C iface
/native
clean
110 .PHONY
: iface_native iface_native_clean iface_native_floppy \
114 # Device driver rules
116 $(DEVICE_DRIVERS
): %:
117 make
-C services
/dd
/$*
119 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
120 make
-C services
/dd
/$* clean
122 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
123 make
-C services
/dd
/$* floppy
125 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
126 make
-C services
/dd
/$* dist
128 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
129 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
132 make
-C services
/fs
/$*
134 $(FS_DRIVERS
:%=%_clean
): %_clean
:
135 make
-C services
/fs
/$* clean
137 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
138 make
-C services
/fs
/$* floppy
140 $(FS_DRIVERS
:%=%_dist
): %_dist
:
141 make
-C services
/fs
/$* dist
143 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
144 $(FS_DRIVERS
:%=%_dist
)
153 $(LOADERS
:%=%_clean
): %_clean
:
154 make
-C loaders
/$* clean
156 $(LOADERS
:%=%_floppy
): %_floppy
:
157 make
-C loaders
/$* floppy
159 $(LOADERS
:%=%_dist
): %_dist
:
160 make
-C loaders
/$* dist
162 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
166 # Required system components
173 make
-C ntoskrnl
clean
176 make
-C ntoskrnl floppy
179 make
-C ntoskrnl
dist
181 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
190 $(DLLS
:%=%_clean
): %_clean
:
193 $(DLLS
:%=%_floppy
): %_floppy
:
194 make
-C lib
/$* floppy
196 $(DLLS
:%=%_dist
): %_dist
:
199 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
207 $(SUBSYS
:%=%_clean
): %_clean
:
208 make
-C subsys
/$* clean
210 $(SUBSYS
:%=%_floppy
): %_floppy
:
211 make
-C subsys
/$* floppy
213 $(SUBSYS
:%=%_dist
): %_dist
:
214 make
-C subsys
/$* dist
216 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
220 # Make an install floppy
224 .
/install.sh
/mnt
/hda1
228 mkdir
$(FLOPPY_DIR
)\dlls
229 mkdir
$(FLOPPY_DIR
)\apps
230 mkdir
$(FLOPPY_DIR
)\drivers
231 mkdir
$(FLOPPY_DIR
)\subsys
233 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
234 mkdir
$(FLOPPY_DIR
)/subsys
237 .PHONY
: make_floppy_dirs
239 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
241 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
243 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
245 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
249 # Make a distribution saveset
254 $(RM
) $(DIST_DIR
)\dlls\
*.
*
255 $(RM
) $(DIST_DIR
)\apps\
*.
*
256 $(RM
) $(DIST_DIR
)\drivers\
*.
*
257 $(RM
) $(DIST_DIR
)\subsys\
*.
*
258 $(RMDIR
) $(DIST_DIR
)\dlls
259 $(RMDIR
) $(DIST_DIR
)\apps
260 $(RMDIR
) $(DIST_DIR
)\drivers
261 $(RMDIR
) $(DIST_DIR
)\subsys
270 mkdir
$(DIST_DIR
)\dlls
271 mkdir
$(DIST_DIR
)\apps
272 mkdir
$(DIST_DIR
)\drivers
273 mkdir
$(DIST_DIR
)\dlls
274 mkdir
$(DIST_DIR
)\subsys
276 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
277 mkdir
$(DIST_DIR
)/subsys
280 .PHONY
: clean_dist_dir make_dist_dirs