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
= vga blue ide keyboard null parallel serial vidport
38 # DEVICE_DRIVERS = beep event floppy ide_test mouse sound test test1
41 # FS_DRIVERS = minix ext2 template
43 # ndis tdi tcpip tditest
44 NET_DRIVERS
= ndis tcpip tditest
46 KERNEL_SERVICES
= $(DEVICE_DRIVERS
) $(FS_DRIVERS
) $(NET_DRIVERS
)
48 APPS
= args hello
shell test cat bench apc shm lpc thread event file gditest \
53 all: buildno
$(COMPONENTS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(APPS
)
57 clean: buildno_clean
$(COMPONENTS
:%=%_clean
) $(DLLS
:%=%_clean
) $(LOADERS
:%=%_clean
) \
58 $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) $(APPS
:%=%_clean
)
62 floppy
: make_floppy_dirs autoexec_floppy
$(COMPONENTS
:%=%_floppy
) \
63 $(DLLS
:%=%_floppy
) $(LOADERS
:%=%_floppy
) \
64 $(KERNEL_SERVICES
:%=%_floppy
) $(SUBSYS
:%=%_floppy
) \
67 dist: clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) $(DLLS
:%=%_dist
) \
68 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
72 # Build number generator
74 buildno
: include/reactos
/version.h
78 make
-C apps
/buildno
clean
84 .PHONY
: buildno buildno_clean buildno_floppy buildno_dist
92 $(APPS
:%=%_clean
): %_clean
:
95 $(APPS
:%=%_floppy
): %_floppy
:
96 make
-C apps
/$* floppy
98 $(APPS
:%=%_dist
): %_dist
:
101 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_floppy
) $(APPS
:%=%_dist
)
110 make
-C iface
/native
clean
119 iface_additional_clean
:
120 make
-C iface
/addsys
clean
122 iface_additional_floppy
:
124 iface_additional_dist
:
126 .PHONY
: iface_native iface_native_clean iface_native_floppy \
128 iface_additional iface_additional_clean iface_additional_floppy \
129 iface_additional_dist \
132 # Device driver rules
134 $(DEVICE_DRIVERS
): %:
135 make
-C services
/dd
/$*
137 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
138 make
-C services
/dd
/$* clean
140 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
141 make
-C services
/dd
/$* floppy
143 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
144 make
-C services
/dd
/$* dist
146 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
147 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
150 make
-C services
/fs
/$*
152 $(FS_DRIVERS
:%=%_clean
): %_clean
:
153 make
-C services
/fs
/$* clean
155 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
156 make
-C services
/fs
/$* floppy
158 $(FS_DRIVERS
:%=%_dist
): %_dist
:
159 make
-C services
/fs
/$* dist
161 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
162 $(FS_DRIVERS
:%=%_dist
)
165 make
-C services
/net
/$*
167 $(NET_DRIVERS
:%=%_clean
): %_clean
:
168 make
-C services
/net
/$* clean
170 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_clean
)
180 $(LOADERS
:%=%_clean
): %_clean
:
181 make
-C loaders
/$* clean
183 $(LOADERS
:%=%_floppy
): %_floppy
:
184 make
-C loaders
/$* floppy
186 $(LOADERS
:%=%_dist
): %_dist
:
187 make
-C loaders
/$* dist
189 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
193 # Required system components
200 make
-C ntoskrnl
clean
203 make
-C ntoskrnl floppy
206 make
-C ntoskrnl
dist
208 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
217 $(DLLS
:%=%_clean
): %_clean
:
220 $(DLLS
:%=%_floppy
): %_floppy
:
221 make
-C lib
/$* floppy
223 $(DLLS
:%=%_dist
): %_dist
:
226 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
234 $(SUBSYS
:%=%_clean
): %_clean
:
235 make
-C subsys
/$* clean
237 $(SUBSYS
:%=%_floppy
): %_floppy
:
238 make
-C subsys
/$* floppy
240 $(SUBSYS
:%=%_dist
): %_dist
:
241 make
-C subsys
/$* dist
243 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
247 # Make an install floppy
251 .
/install.sh
/mnt
/hda1
252 .
/install.sh
/mnt
/hda4
257 mkdir
$(FLOPPY_DIR
)\dlls
258 mkdir
$(FLOPPY_DIR
)\apps
259 mkdir
$(FLOPPY_DIR
)\drivers
260 mkdir
$(FLOPPY_DIR
)\subsys
262 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
263 mkdir
$(FLOPPY_DIR
)/subsys
266 .PHONY
: make_floppy_dirs
268 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
270 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
272 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
274 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
278 # Make a distribution saveset
283 - $(RM
) $(DIST_DIR
)\dlls\
*.dll
284 - $(RM
) $(DIST_DIR
)\apps\
*.exe
285 - $(RM
) $(DIST_DIR
)\drivers\
*.sys
286 - $(RM
) $(DIST_DIR
)\subsys\
*.exe
287 - $(RMDIR
) $(DIST_DIR
)\dlls
288 - $(RMDIR
) $(DIST_DIR
)\apps
289 - $(RMDIR
) $(DIST_DIR
)\drivers
290 - $(RMDIR
) $(DIST_DIR
)\subsys
291 - $(RMDIR
) $(DIST_DIR
)
299 mkdir
$(DIST_DIR
)\dlls
300 mkdir
$(DIST_DIR
)\apps
301 mkdir
$(DIST_DIR
)\drivers
302 mkdir
$(DIST_DIR
)\dlls
303 mkdir
$(DIST_DIR
)\subsys
305 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
306 mkdir
$(DIST_DIR
)/subsys
309 .PHONY
: clean_dist_dir make_dist_dirs
315 find .
-name
"*.[ch]" -print | etags
--language
=c
-