Full memory management support (memory.c & memory.h & mem.S)
[reactos.git] / reactos / makefile.dos
index a9730eb..2c9e3e1 100644 (file)
 #
 # Select your host
 #
-#HOST = djgpp-linux
 #HOST = mingw32-linux
-HOST = djgpp-msdos
-#HOST = mingw32-windows
+#HOST = djgpp-msdos
+HOST = mingw32-windows
 
 include rules.mak
 
 #
 # Required to run the system
 #
-COMPONENTS = iface_native ntoskrnl kernel32 ntdll crtdll mingw32
+COMPONENTS = iface_native ntoskrnl
+#DLLS = ntdll kernel32 crtdll user32 fmifs gdi32
+DLLS = ntdll kernel32 crtdll fmifs gdi32
+#DLLS = crtdll mingw32
+SUBSYS = win32k
 
 #
 # Select the server(s) you want to build
 #
-SERVERS = win32 posix linux os2
+SERVERS = win32
+# SERVERS = posix linux os2
 
 #
 # Select the loader(s) you want to build
 #
 LOADERS = dos
+# LOADERS = boot
 
 #
 # Select the device drivers and filesystems you want
 #
-KERNEL_SERVICES = parallel keyboard blues null mouse serial sound ide test sdisk \
-                  minix vfat
+DEVICE_DRIVERS = blue ide keyboard mouse null parallel serial vidport
+# DEVICE_DRIVERS = beep event floppy ide_test sound test test1
+FS_DRIVERS = vfat
+# FS_DRIVERS = minix ext2 template
+KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS)
+                 
+APPS = args hello shell test cat bench
+# APPS = cmd
 
-APPS = hello shell
+all: $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS)
+.PHONY: all
 
-all: $(COMPONENTS) $(LOADERS) $(KERNEL_SERVICES) $(APPS)
-
-clean: dummy
-       make -C iface/native clean
+clean: $(COMPONENTS:%=%_clean) $(DLLS:%=%_clean) $(LOADERS:%=%_clean) \
+       $(KERNEL_SERVICES:%=%_clean) $(APPS:%=%_clean)
+.PHONY: clean
 
 #
 # Applications
 #
-hello: dummy
-       make -C apps/hello
+$(APPS): %:
+       make -C apps/$*
 
-cmd: dummy
-       make -C apps/cmd
+$(APPS:%=%_clean): %_clean:
+       make -C apps/$* clean
 
-shell: dummy
-       make -C apps/shell
+.PHONY: $(APPS) $(APPS:%=%_clean)
 
 #
 # Interfaces
 #
-iface_native: dummy
+iface_native:
        make -C iface/native
 
+iface_native_clean:
+       make -C iface/native clean
+
+.PHONY: iface_native iface_native_clean
+
 #
 # Device driver rules
 #
-vfat: dummy
-       make -C services/fs/vfat
-       
-sdisk: dummy
-       make -C services/dd/sdisk
-       
-minix: dummy
-       make -C services/fs/minix
-       
-template: dummy
-       make -C services/fs/template
+$(DEVICE_DRIVERS): %:
+       make -C services/dd/$*
 
-ide-test: dummy
-       make -C services/dd/ide-test
+$(DEVICE_DRIVERS:%=%_clean): %_clean:
+       make -C services/dd/$* clean
 
-ide: dummy
-       make -C services/dd/ide 
+.PHONY: $(DEVICE_DRIVERS) $(DEVICE_DRIVERS:%=%_clean)
 
-test: dummy
-       make -C services/dd/test
+$(FS_DRIVERS): %:
+       make -C services/fs/$*
 
-test1: dummy
-       make -C services/dd/test1
+$(FS_DRIVERS:%=%_clean): %_clean:
+       make -C services/fs/$* clean
 
-null: dummy
-       make -C services/dd/null
+.PHONY: $(FS_DRIVERS) $(FS_DRIVERS:%=%_clean)
 
-parallel: dummy
-       make -C services/dd/parallel
-
-keyboard: dummy
-       make -C services/dd/keyboard
+#
+# Kernel loaders
+#
 
-blues: dummy
-       make -C services/dd/blue
+$(LOADERS): %:
+       make -C loaders/$*
 
-mouse: dummy
-       make -C services/dd/mouse
-       
-serial: dummy
-       make -C services/dd/serial
+$(LOADERS:%=%_clean): %_clean:
+       make -C loaders/$* clean
 
-sound: dummy
-       make -C services/dd/sound
+.PHONY: $(LOADERS) $(LOADERS:%=%_clean)
 
 #
-# Kernel loaders
+# Required system components
 #
 
-dos: dummy
-       make -C loaders/dos
+ntoskrnl:
+       make -C ntoskrnl
+
+ntoskrnl_clean:
+       make -C ntoskrnl clean
+
+.PHONY: ntoskrnl ntoskrnl_clean
 
 #
-# Required system components
+# Required DLLs
 #
 
-ntoskrnl: dummy
-       make -C ntoskrnl
+$(DLLS): %:
+       make -C lib/$*
+
+$(DLLS:%=%_clean): %_clean:
+       make -C lib/$* clean
+
+.PHONY: $(DLLS) $(DLLS:%=%_clean)
 
-kernel32: dummy
-       make -C lib/kernel32
+#
+# Kernel Subsystems
+#
+$(SUBSYS): %:
+       make -C subsys/$*
 
-ntdll: dummy
-       make -C lib/ntdll
+$(SUBSYS:%=%_clean): %_clean:
+       make -C lib/$* clean
 
-crtdll: dummy
-       make -C lib/crtdll
+.PHONY: $(SUBSYS) $(SUBSYS:%=%_clean)
 
-mingw32: dummy
-       make -C lib/mingw32
 
-dummy: