9 #HOST = mingw32-windows
16 # Required to run the system
18 COMPONENTS
= iface_native iface_additional ntoskrnl
20 DLLS
= ntdll kernel32 crtdll advapi32 fmifs gdi32 secur32 user32 ws2_32 \
22 SUBSYS
= smss win32k csrss
25 # Select the server(s) you want to build
27 #SERVERS = posix linux os2
31 # Select the loader(s) you want to build
37 # Select the device drivers and filesystems you want
39 #DEVICE_DRIVERS = beep event floppy ide_test mouse sound test test1 parallel serial
40 DEVICE_DRIVERS
= vidport vga blue ide null floppy
42 #INPUT_DRIVERS = keyboard
43 INPUT_DRIVERS
= keyboard mouclass psaux
45 #FS_DRIVERS = vfat minix ext2 template
46 FS_DRIVERS
= vfat ms np
48 #NET_DRIVERS = ndis tdi tcpip tditest wshtcpip afd
49 NET_DRIVERS
= ndis tcpip tditest wshtcpip afd
51 #NET_DEVICE_DRIVERS = ne2000
52 NET_DEVICE_DRIVERS
= ne2000
55 # system applications (required for startup)
57 #SYS_APPS = shell winlogon services
58 SYS_APPS
= shell winlogon services
60 APPS
= args hello
test cat bench apc shm lpc thread event file gditest \
61 pteb consume dump_shared_data vmtest regtest alive mstest nptest \
64 #NET_APPS = ping roshttpd telnet
68 KERNEL_SERVICES
= $(DEVICE_DRIVERS
) $(INPUT_DRIVERS
) $(FS_DRIVERS
) $(NET_DRIVERS
) $(NET_DEVICE_DRIVERS
)
70 all: buildno
$(COMPONENTS
) $(BUS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(SYS_APPS
) $(APPS
) $(NET_APPS
)
74 clean: buildno_clean
$(COMPONENTS
:%=%_clean
) $(BUS
:%=%_clean
) $(DLLS
:%=%_clean
) \
75 $(LOADERS
:%=%_clean
) $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) \
76 $(SYS_APPS
:%=%_clean
) $(APPS
:%=%_clean
) $(NET_APPS
:%=%_clean
)
80 ifeq ($(HOST
),mingw32-linux
)
81 rcopy
$(EXE_POSTFIX
): rcopy.c
82 $(HOST_CC
) -g
-DUNIX_PATHS rcopy.c
-o rcopy
$(EXE_POSTFIX
)
84 ifeq ($(HOST
),mingw32-windows
)
85 rcopy
$(EXE_POSTFIX
): rcopy.c
86 $(HOST_CC
) -g
-DDOS_PATHS rcopy.c
-o rcopy
$(EXE_POSTFIX
)
89 ifeq ($(HOST
),mingw32-linux
)
90 rmkdir
$(EXE_POSTFIX
): rmkdir.c
91 $(HOST_CC
) -g
-DUNIX_PATHS rmkdir.c
-o rmkdir
$(EXE_POSTFIX
)
93 ifeq ($(HOST
),mingw32-windows
)
94 rmkdir
$(EXE_POSTFIX
): rmkdir.c
95 $(HOST_CC
) -g
-DDOS_PATHS rmkdir.c
-o rmkdir
$(EXE_POSTFIX
)
99 install: rcopy
$(EXE_POSTFIX
) rmkdir
$(EXE_POSTFIX
) make_install_dirs autoexec_install \
100 $(COMPONENTS
:%=%_install
) $(BUS
:%=%_install
) \
101 $(DLLS
:%=%_install
) $(LOADERS
:%=%_install
) \
102 $(KERNEL_SERVICES
:%=%_install
) $(SUBSYS
:%=%_install
) \
103 $(SYS_APPS
:%=%_install
) $(APPS
:%=%_install
)
105 dist: rcopy
$(EXE_POSTFIX
) clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) \
106 $(BUS
:%=%_dist
) $(DLLS
:%=%_dist
) \
107 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
108 $(SYS_APPS
:%=%_dist
) $(APPS
:%=%_dist
) $(NET_APPS
:%=%_dist
)
111 # Build number generator
113 buildno
: include/reactos
/version.h
117 make
-C apps
/buildno
clean
123 .PHONY
: buildno buildno_clean buildno_dist buildno_install
126 # System Applications
129 make
-C apps
/system
/$*
131 $(SYS_APPS
:%=%_clean
): %_clean
:
132 make
-C apps
/system
/$* clean
134 $(SYS_APPS
:%=%_dist
): %_dist
:
135 make
-C apps
/system
/$* dist
137 $(SYS_APPS
:%=%_install
): %_install
:
138 make
-C apps
/system
/$* install
140 .PHONY
: $(SYS_APPS
) $(SYS_APPS
:%=%_clean
) $(SYS_APPS
:%=%_install
) $(SYS_APPS
:%=%_dist
)
148 $(APPS
:%=%_clean
): %_clean
:
149 make
-C apps
/$* clean
151 $(APPS
:%=%_dist
): %_dist
:
154 $(APPS
:%=%_install
): %_install
:
155 make
-C apps
/$* install
157 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_install
) $(APPS
:%=%_dist
)
160 # Network applications
165 $(NET_APPS
:%=%_clean
): %_clean
:
166 make
-C apps
/net
/$* clean
168 $(NET_APPS
:%=%_dist
): %_dist
:
169 make
-C apps
/net
/$* dist
171 $(NET_APPS
:%=%_install
): %_install
:
172 make
-C apps
/net
/$* install
174 .PHONY
: $(NET_APPS
) $(NET_APPS
:%=%_clean
) $(NET_APPS
:%=%_install
) $(NET_APPS
:%=%_dist
)
183 make
-C iface
/native
clean
185 iface_native_install
:
192 iface_additional_clean
:
193 make
-C iface
/addsys
clean
195 iface_additional_install
:
197 iface_additional_dist
:
199 .PHONY
: iface_native iface_native_clean iface_native_install \
201 iface_additional iface_additional_clean iface_additional_install \
202 iface_additional_dist
208 make
-C services
/bus
/$*
210 $(BUS
:%=%_clean
): %_clean
:
211 make
-C services
/bus
/$* clean
213 $(BUS
:%=%_install
): %_install
:
214 make
-C services
/bus
/$* install
216 $(BUS
:%=%_dist
): %_dist
:
217 make
-C services
/bus
/$* dist
219 .PHONY
: $(BUS
) $(BUS
:%=%_clean
) \
220 $(BUS
:%=%_install
) $(BUS
:%=%_dist
)
223 # Device driver rules
225 $(DEVICE_DRIVERS
): %:
226 make
-C services
/dd
/$*
228 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
229 make
-C services
/dd
/$* clean
231 $(DEVICE_DRIVERS
:%=%_install
): %_install
:
232 make
-C services
/dd
/$* install
234 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
235 make
-C services
/dd
/$* dist
237 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
238 $(DEVICE_DRIVERS
:%=%_install
) $(DEVICE_DRIVERS
:%=%_dist
)
244 make
-C services
/input
/$*
246 $(INPUT_DRIVERS
:%=%_clean
): %_clean
:
247 make
-C services
/input
/$* clean
249 $(INPUT_DRIVERS
:%=%_install
): %_install
:
250 make
-C services
/input
/$* install
252 $(INPUT_DRIVERS
:%=%_dist
): %_dist
:
253 make
-C services
/input
/$* dist
255 .PHONY
: $(INPUT_DRIVERS
) $(INPUT_DRIVERS
:%=%_clean
) \
256 $(INPUT_DRIVERS
:%=%_install
) $(INPUT_DRIVERS
:%=%_dist
)
259 make
-C services
/fs
/$*
261 $(FS_DRIVERS
:%=%_clean
): %_clean
:
262 make
-C services
/fs
/$* clean
264 $(FS_DRIVERS
:%=%_install
): %_install
:
265 make
-C services
/fs
/$* install
267 $(FS_DRIVERS
:%=%_dist
): %_dist
:
268 make
-C services
/fs
/$* dist
270 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_install
) \
271 $(FS_DRIVERS
:%=%_dist
)
274 # Network driver rules
277 make
-C services
/net
/$*
279 $(NET_DRIVERS
:%=%_clean
): %_clean
:
280 make
-C services
/net
/$* clean
282 $(NET_DRIVERS
:%=%_install
): %_install
:
283 make
-C services
/net
/$* install
285 $(NET_DRIVERS
:%=%_dist
): %_dist
:
286 make
-C services
/net
/$* dist
288 .PHONY
: $(NET_DRIVERS
) $(NET_DRIVERS
:%=%_clean
) $(NET_DRIVERS
:%=%_install
) \
289 $(NET_DRIVERS
:%=%_dist
)
291 $(NET_DEVICE_DRIVERS
): %:
292 make
-C services
/net
/dd
/$*
294 $(NET_DEVICE_DRIVERS
:%=%_clean
): %_clean
:
295 make
-C services
/net
/dd
/$* clean
297 $(NET_DEVICE_DRIVERS
:%=%_install
): %_install
:
298 make
-C services
/net
/dd
/$* install
300 $(NET_DEVICE_DRIVERS
:%=%_dist
): %_dist
:
301 make
-C services
/net
/dd
/$* dist
303 .PHONY
: $(NET_DEVICE_DRIVERS
) $(NET_DEVICE_DRIVERS
:%=%_clean
) \
304 $(NET_DEVICE_DRIVERS
:%=%_install
) $(NET_DEVICE_DRIVERS
:%=%_dist
)
313 $(LOADERS
:%=%_clean
): %_clean
:
314 make
-C loaders
/$* clean
316 $(LOADERS
:%=%_install
): %_install
:
317 make
-C loaders
/$* install
319 $(LOADERS
:%=%_dist
): %_dist
:
320 make
-C loaders
/$* dist
322 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_install
) \
326 # Required system components
333 make
-C ntoskrnl
clean
336 make
-C ntoskrnl
install
339 make
-C ntoskrnl
dist
341 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_install ntoskrnl_dist
350 $(DLLS
:%=%_clean
): %_clean
:
353 $(DLLS
:%=%_install
): %_install
:
354 make
-C lib
/$* install
356 $(DLLS
:%=%_dist
): %_dist
:
359 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_install
) $(DLLS
:%=%_dist
)
368 $(SUBSYS
:%=%_clean
): %_clean
:
369 make
-C subsys
/$* clean
371 $(SUBSYS
:%=%_install
): %_install
:
372 make
-C subsys
/$* install
374 $(SUBSYS
:%=%_dist
): %_dist
:
375 make
-C subsys
/$* dist
377 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_install
) \
381 # Make an install floppy
384 .
/rmkdir
$(FLOPPY_DIR
)/dlls
385 .
/rmkdir
$(FLOPPY_DIR
)/apps
386 .
/rmkdir
$(FLOPPY_DIR
)/drivers
387 .
/rmkdir
$(FLOPPY_DIR
)/subsys
390 .PHONY
: make_install_dirs
392 autoexec_install
: $(FLOPPY_DIR
)/autoexec.bat
394 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
395 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
398 # Make a distribution saveset
403 - $(RM
) $(DIST_DIR
)\dlls\
*.dll
404 - $(RM
) $(DIST_DIR
)\apps\
*.exe
405 - $(RM
) $(DIST_DIR
)\drivers\
*.sys
406 - $(RM
) $(DIST_DIR
)\subsys\
*.exe
407 - $(RMDIR
) $(DIST_DIR
)\dlls
408 - $(RMDIR
) $(DIST_DIR
)\apps
409 - $(RMDIR
) $(DIST_DIR
)\drivers
410 - $(RMDIR
) $(DIST_DIR
)\subsys
411 - $(RMDIR
) $(DIST_DIR
)
416 make_dist_dirs
: .
/rmkdir
418 .
/rmkdir
$(DIST_DIR
)/dlls
419 .
/rmkdir
$(DIST_DIR
)/apps
420 .
/rmkdir
$(DIST_DIR
)/drivers
421 .
/rmkdir
$(DIST_DIR
)/dlls
422 .
/rmkdir
$(DIST_DIR
)/subsys
424 .PHONY
: clean_dist_dir make_dist_dirs
430 find .
-name
"*.[ch]" -print | etags
--language
=c
-