# # Global makefile # # # Select your host # #HOST = djgpp-linux #HOST = mingw32-linux HOST = djgpp-msdos #HOST = mingw32-windows include rules.mak # # Required to run the system # LIBRARIES = kernel32 ntdll crtdll mingw32 COMPONENTS = iface_native ntoskrnl $(LIBRARIES) .PHONY: $(COMPONENTS) $(COMPONENTS:%=%_clean) # # Select the server(s) you want to build # SERVERS = win32 posix linux os2 .PHONY: $(SERVERS) $(SERVERS:%=%_clean) # # Select the loader(s) you want to build # LOADERS = dos .PHONY: $(LOADERS) $(LOADERS:%=%_clean) # # Select the device drivers and filesystems you want # DD_SERVICES = blue ide keyboard mouse null parallel sdisk serial sound test FS_SERVICES = minix vfat ext2 KERNEL_SERVICES = $(DD_SERVICES) $(FS_SERVICES) .PHONY: $(KERNEL_SERVICES) $(KERNEL_SERVICES:%=%_clean) APPS = hello shell # args .PHONY: $(APPS:%=%) $(APPS:%=%_clean) all: $(COMPONENTS) $(LOADERS) $(KERNEL_SERVICES) $(APPS) .PHONY: all clean: $(COMPONENTS:%=%_clean) $(LOADERS:%=%_clean) \ $(KERNEL_SERVICES:%=%_clean) $(APPS:%=%_clean) .PHONY: clean # # Applications # $(APPS): %: make -C apps/$* $(APPS:%=%_clean): %_clean: make -C apps/$* clean # # Interfaces # iface_native: make -C iface/native iface_native_clean: make -C iface/native clean # # Device driver rules # $(DD_SERVICES): %: make -C services/dd/$* $(DD_SERVICES:%=%_clean): %_clean: make -C services/dd/$* clean $(FS_SERVICES): %: make -C services/fs/$* $(FS_SERVICES:%=%_clean): %_clean: make -C services/fs/$* clean # # Kernel loaders # $(LOADERS): %: make -C loaders/$* $(LOADERS:%=%_clean): %_clean: make -C loaders/$* clean # # Libraries # $(LIBRARIES): %: make -C lib/$* $(LIBRARIES:%=%_clean): %_clean: make -C lib/$* clean # # Required system components # ntoskrnl: make -C ntoskrnl ntoskrnl_clean: make -C ntoskrnl clean