diff --git a/reactos/drivers/usb/cromwell/core/makefile b/reactos/drivers/usb/cromwell/core/makefile
index 2a229b5239b..bd9811c8c8b 100644
--- a/reactos/drivers/usb/cromwell/core/makefile
+++ b/reactos/drivers/usb/cromwell/core/makefile
@@ -1,25 +1,5 @@
-PATH_TO_TOP = ../../../..
+# This file is automatically generated.
-TARGET_TYPE = export_driver
-
-TARGET_NAME = usbcore
-
-TARGET_DDKLIBS = ntoskrnl.a
-
-TARGET_CFLAGS = -Wall -I$(PATH_TO_TOP)/ntoskrnl/include -DDEBUG_MODE
-
-TARGET_OBJECTS = \
- message.o hcd.o hcd-pci.o hub.o usb.o config.o urb.o \
- buffer_simple.o usb-debug.o ../sys/ros_wrapper.o \
- ../sys/linuxwrapper.o usbcore.o
-
-TARGET_LIBS = \
- $(PATH_TO_TOP)/dk/nkm/lib/libusbcore.a
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk
-
-# Automatic dependency tracking
-DEP_OBJECTS := $(TARGET_OBJECTS)
-include $(PATH_TO_TOP)/tools/depend.mk
+TOP = ../../../..
+DEFAULT = usbcore
+include $(TOP)/proxy.mak
diff --git a/reactos/drivers/usb/cromwell/core/usbcore.xml b/reactos/drivers/usb/cromwell/core/usbcore.xml
index 2d8aef634ac..81124f84b0e 100644
--- a/reactos/drivers/usb/cromwell/core/usbcore.xml
+++ b/reactos/drivers/usb/cromwell/core/usbcore.xml
@@ -3,6 +3,7 @@
include
+ sys_base
ntoskrnl
hal
message.c
@@ -14,8 +15,6 @@
urb.c
buffer_simple.c
usb-debug.c
- ../sys/ros_wrapper.c
- ../sys/linuxwrapper.c
usbcore.c
usbcore.rc
diff --git a/reactos/drivers/usb/cromwell/host/host.xml b/reactos/drivers/usb/cromwell/host/host.xml
index c8b4605bbe5..0fb9193bcfa 100644
--- a/reactos/drivers/usb/cromwell/host/host.xml
+++ b/reactos/drivers/usb/cromwell/host/host.xml
@@ -4,12 +4,11 @@
include
../linux
+ sys_base
ntoskrnl
hal
usbcore
ohci-hcd.c
- ../sys/ros_wrapper.c
- ../sys/linuxwrapper.c
ohci_main.c
ohci.rc
diff --git a/reactos/drivers/usb/cromwell/host/makefile b/reactos/drivers/usb/cromwell/host/makefile
index f81185fe1e7..f3a7d97a90b 100644
--- a/reactos/drivers/usb/cromwell/host/makefile
+++ b/reactos/drivers/usb/cromwell/host/makefile
@@ -1,20 +1,5 @@
-PATH_TO_TOP = ../../../..
+# This file is automatically generated.
-TARGET_TYPE = export_driver
-
-TARGET_NAME = ohci
-
-TARGET_DDKLIBS = ntoskrnl.a usbcore.a
-
-TARGET_CFLAGS = -Wall -I$(PATH_TO_TOP)/ntoskrnl/include -DDEBUG_MODE
-
-TARGET_OBJECTS = \
- ohci-hcd.o ohci_main.o ../sys/ros_wrapper.o ../sys/linuxwrapper.o
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk
-
-# Automatic dependency tracking
-DEP_OBJECTS := $(TARGET_OBJECTS)
-include $(PATH_TO_TOP)/tools/depend.mk
+TOP = ../../../..
+DEFAULT = ohci
+include $(TOP)/proxy.mak
diff --git a/reactos/drivers/usb/cromwell/sys/sys.xml b/reactos/drivers/usb/cromwell/sys/sys.xml
new file mode 100644
index 00000000000..4cd92675fa4
--- /dev/null
+++ b/reactos/drivers/usb/cromwell/sys/sys.xml
@@ -0,0 +1,7 @@
+
+
+
+ include
+ ros_wrapper.c
+ linuxwrapper.c
+
\ No newline at end of file
diff --git a/reactos/drivers/usb/cromwell/uhci/makefile b/reactos/drivers/usb/cromwell/uhci/makefile
index 02196fed0a2..a60ba75bcde 100644
--- a/reactos/drivers/usb/cromwell/uhci/makefile
+++ b/reactos/drivers/usb/cromwell/uhci/makefile
@@ -1,16 +1,5 @@
-PATH_TO_TOP = ../../../..
+# This file is automatically generated.
-TARGET_TYPE = export_driver
-
-TARGET_NAME = uhci
-
-TARGET_DDKLIBS = ntoskrnl.a usbcore.a
-
-TARGET_CFLAGS = -Wall -I$(PATH_TO_TOP)/ntoskrnl/include -DDEBUG_MODE
-
-TARGET_OBJECTS = \
- uhci-hcd.o uhci_main.o ../sys/ros_wrapper.o ../sys/linuxwrapper.o
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk
+TOP = ../../../..
+DEFAULT = uhci
+include $(TOP)/proxy.mak
diff --git a/reactos/drivers/usb/cromwell/uhci/uhci.xml b/reactos/drivers/usb/cromwell/uhci/uhci.xml
index c9878e41a5b..c7acd5a0603 100644
--- a/reactos/drivers/usb/cromwell/uhci/uhci.xml
+++ b/reactos/drivers/usb/cromwell/uhci/uhci.xml
@@ -4,12 +4,11 @@
include
../linux
+ sys_base
ntoskrnl
hal
usbcore
uhci-hcd.c
- ../sys/ros_wrapper.c
- ../sys/linuxwrapper.c
uhci_main.c
uhci.rc