10 #HOST = mingw32-windows
15 # Required to run the system
17 COMPONENTS
= iface_native ntoskrnl
18 DLLS
= ntdll kernel32 crtdll fmifs gdi32 psxdll
19 #DLLS = advapi32 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
47 all: $(COMPONENTS
) $(DLLS
) $(SUBSYS
) $(LOADERS
) $(KERNEL_SERVICES
) $(APPS
)
50 clean: $(COMPONENTS
:%=%_clean
) $(DLLS
:%=%_clean
) $(LOADERS
:%=%_clean
) \
51 $(KERNEL_SERVICES
:%=%_clean
) $(SUBSYS
:%=%_clean
) $(APPS
:%=%_clean
)
54 floppy
: make_floppy_dirs autoexec_floppy
$(COMPONENTS
:%=%_floppy
) \
55 $(DLLS
:%=%_floppy
) $(LOADERS
:%=%_floppy
) \
56 $(KERNEL_SERVICES
:%=%_floppy
) $(SUBSYS
:%=%_floppy
) \
59 dist: clean_dist_dir make_dist_dirs
$(COMPONENTS
:%=%_dist
) $(DLLS
:%=%_dist
) \
60 $(LOADERS
:%=%_dist
) $(KERNEL_SERVICES
:%=%_dist
) $(SUBSYS
:%=%_dist
) \
69 $(APPS
:%=%_clean
): %_clean
:
72 $(APPS
:%=%_floppy
): %_floppy
:
73 make
-C apps
/$* floppy
75 $(APPS
:%=%_dist
): %_dist
:
78 .PHONY
: $(APPS
) $(APPS
:%=%_clean
) $(APPS
:%=%_floppy
) $(APPS
:%=%_dist
)
87 make
-C iface
/native
clean
93 .PHONY
: iface_native iface_native_clean iface_native_floppy \
100 make
-C services
/dd
/$*
102 $(DEVICE_DRIVERS
:%=%_clean
): %_clean
:
103 make
-C services
/dd
/$* clean
105 $(DEVICE_DRIVERS
:%=%_floppy
): %_floppy
:
106 make
-C services
/dd
/$* floppy
108 $(DEVICE_DRIVERS
:%=%_dist
): %_dist
:
109 make
-C services
/dd
/$* dist
111 .PHONY
: $(DEVICE_DRIVERS
) $(DEVICE_DRIVERS
:%=%_clean
) \
112 $(DEVICE_DRIVERS
:%=%_floppy
) $(DEVICE_DRIVERS
:%=%_dist
)
115 make
-C services
/fs
/$*
117 $(FS_DRIVERS
:%=%_clean
): %_clean
:
118 make
-C services
/fs
/$* clean
120 $(FS_DRIVERS
:%=%_floppy
): %_floppy
:
121 make
-C services
/fs
/$* floppy
123 $(FS_DRIVERS
:%=%_dist
): %_dist
:
124 make
-C services
/fs
/$* dist
126 .PHONY
: $(FS_DRIVERS
) $(FS_DRIVERS
:%=%_clean
) $(FS_DRIVERS
:%=%_floppy
) \
127 $(FS_DRIVERS
:%=%_dist
)
136 $(LOADERS
:%=%_clean
): %_clean
:
137 make
-C loaders
/$* clean
139 $(LOADERS
:%=%_floppy
): %_floppy
:
140 make
-C loaders
/$* floppy
142 $(LOADERS
:%=%_dist
): %_dist
:
143 make
-C loaders
/$* dist
145 .PHONY
: $(LOADERS
) $(LOADERS
:%=%_clean
) $(LOADERS
:%=%_floppy
) \
149 # Required system components
156 make
-C ntoskrnl
clean
159 make
-C ntoskrnl floppy
162 make
-C ntoskrnl
dist
164 .PHONY
: ntoskrnl ntoskrnl_clean ntoskrnl_floppy ntoskrnl_dist
173 $(DLLS
:%=%_clean
): %_clean
:
176 $(DLLS
:%=%_floppy
): %_floppy
:
177 make
-C lib
/$* floppy
179 $(DLLS
:%=%_dist
): %_dist
:
182 .PHONY
: $(DLLS
) $(DLLS
:%=%_clean
) $(DLLS
:%=%_floppy
) $(DLLS
:%=%_dist
)
190 $(SUBSYS
:%=%_clean
): %_clean
:
191 make
-C subsys
/$* clean
193 $(SUBSYS
:%=%_floppy
): %_floppy
:
194 make
-C subsys
/$* floppy
196 $(SUBSYS
:%=%_dist
): %_dist
:
197 make
-C subsys
/$* dist
199 .PHONY
: $(SUBSYS
) $(SUBSYS
:%=%_clean
) $(SUBSYS
:%=%_floppy
) \
203 # Make an install floppy
207 .
/install.sh
/mnt
/hda1
211 mkdir
$(FLOPPY_DIR
)\dlls
212 mkdir
$(FLOPPY_DIR
)\apps
213 mkdir
$(FLOPPY_DIR
)\drivers
214 mkdir
$(FLOPPY_DIR
)\subsys
216 mkdir
$(FLOPPY_DIR
)/dlls
$(FLOPPY_DIR
)/apps
$(FLOPPY_DIR
)/drivers
217 mkdir
$(FLOPPY_DIR
)/subsys
220 .PHONY
: make_floppy_dirs
222 autoexec_floppy
: $(FLOPPY_DIR
)/autoexec.bat
224 $(FLOPPY_DIR
)/autoexec.bat
: bootflop.bat
226 $(CP
) bootflop.bat
$(FLOPPY_DIR
)\autoexec.bat
228 $(CP
) bootflop.bat
$(FLOPPY_DIR
)/autoexec.bat
232 # Make a distribution saveset
237 $(RM
) $(DIST_DIR
)\dlls\
*.
*
238 $(RM
) $(DIST_DIR
)\apps\
*.
*
239 $(RM
) $(DIST_DIR
)\drivers\
*.
*
240 $(RM
) $(DIST_DIR
)\subsys\
*.
*
241 $(RMDIR
) $(DIST_DIR
)\dlls
242 $(RMDIR
) $(DIST_DIR
)\apps
243 $(RMDIR
) $(DIST_DIR
)\drivers
244 $(RMDIR
) $(DIST_DIR
)\subsys
253 mkdir
$(DIST_DIR
)\dlls
254 mkdir
$(DIST_DIR
)\apps
255 mkdir
$(DIST_DIR
)\drivers
256 mkdir
$(DIST_DIR
)\dlls
257 mkdir
$(DIST_DIR
)\subsys
259 mkdir
$(DIST_DIR
) $(DIST_DIR
)/dlls
$(DIST_DIR
)/apps
$(DIST_DIR
)/drivers
260 mkdir
$(DIST_DIR
)/subsys
263 .PHONY
: clean_dist_dir make_dist_dirs