diff a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,17 @@
 # SPDX-License-Identifier: GPL-2.0-only
 EXTRA_CFLAGS += -Werror -DCONFIG_MT76_LEDS
-obj-m := mt76.o
+obj-m += mt76.o
+obj-$(CONFIG_MT76_CORE) += mt76.o
 obj-$(CONFIG_MT76_USB) += mt76-usb.o
+obj-$(CONFIG_MT7603E) += mt7603/
 obj-$(CONFIG_MT76x02_LIB) += mt76x02-lib.o
 obj-$(CONFIG_MT76x02_USB) += mt76x02-usb.o
+obj-$(CONFIG_MT76x2_COMMON) += mt76x2/
+obj-$(CONFIG_MT76x0_COMMON) += mt76x0/
+obj-$(CONFIG_MT7615_COMMON) += mt7615/
+obj-$(CONFIG_MT7615E) += mt7615/
+obj-$(CONFIG_MT7663U) += mt7615/
+###obj-$(CONFIG_MT7915E) += mt7915/
 
 mt76-y := \
 	mmio.o util.o trace.o dma.o mac80211.o debugfs.o eeprom.o \
@@ -24,8 +31,60 @@
 
 mt76x02-usb-y := mt76x02_usb_mcu.o mt76x02_usb_core.o
 
-obj-$(CONFIG_MT76x0_COMMON) += mt76x0/
-obj-$(CONFIG_MT76x2_COMMON) += mt76x2/
-obj-$(CONFIG_MT7603E) += mt7603/
-obj-$(CONFIG_MT7615_COMMON) += mt7615/
-obj-$(CONFIG_MT7915E) += mt7915/
+mt7615e-y := mt7615e.o pci.o init.o dma.o eeprom.o main.o mcu.o mac.o debugfs.o
+
+mt7663u-y := mt7663u.o usb.o usb_mcu.o usb_init.o
+
+###mt7915e-y := mt7915e.o pci.o init.o dma.o eeprom.o main.o mcu.o mac.o debugfs.o
+
+SHELL := /bin/sh
+CC = gcc
+KVER  := $(shell uname -r)
+#KVER  :=
+KSRC := /lib/modules/$(KVER)/build
+#KSRC := /work/linux-src/linux-stable
+FIRMWAREDIR := /lib/firmware/
+PWD := $(shell pwd)
+CLR_MODULE_FILES := *.mod.c *.mod *.o .*.cmd *.ko *~ .tmp_versions* modules.order Module.symvers
+SYMBOL_FILE := Module.symvers
+# Handle the move of the entire rtlwifi tree
+ifneq ("","$(wildcard /lib/modules/$(KVER)/kernel/3rdparty/mt76xx)")
+MODDESTDIR := /lib/modules/$(KVER)/kernel/3rdparty/mt76xx
+else
+MODDESTDIR := /lib/modules/$(KVER)/kernel/3rdparty/mt76xx
+endif
+
+all:
+	$(MAKE) -C $(KSRC) M=$(PWD) modules
+install: all
+	@mkdir -p $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76-usb.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x02-lib.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x02-usb.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt7603/mt7603e.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x0/mt76x0-common.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x0/mt76x0e.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x0/mt76x0u.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x2/mt76x2-common.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x2/mt76x2e.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt76x2/mt76x2u.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt7615/mt7615-common.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt7615/mt7615e.ko  $(MODDESTDIR)
+	@install -p -D -m 644 ./mt7615/mt7663u.ko  $(MODDESTDIR)
+###	@install -p -D -m 644 ./mt7915/mt7915e.ko  $(MODDESTDIR)
+	@xz -f $(MODDESTDIR)/*.ko
+	@depmod -a
+
+uninstall:
+	@modprobe -r mt7*
+	@rm -f $(MODDESTDIR)/*
+	@depmod -a
+	@echo "Uninstall mt76 SUCCESS"
+
+clean:
+	@rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~ .cache.mk
+	@rm -fr mt7*/*.mod.c mt7*/*.mod mt7*/*.o mt7*/.*.cmd mt7*/*.ko mt*/*~
+	@rm -fr .tmp_versions
+	@rm -fr Modules.symvers
+	@rm -fr Module.symvers

--- a/mt7615/Makefile
+++ b/mt7615/Makefile
@@ -1,16 +1,24 @@
 #SPDX-License-Identifier: ISC
 
 EXTRA_CFLAGS += -DCONFIG_MT76_LEDS
+
+obj-m := mt7615-common.o
+obj-m += mt7615e.o
+obj-m += mt7663u.o
+
 obj-$(CONFIG_MT7615_COMMON) += mt7615-common.o
 obj-$(CONFIG_MT7615E) += mt7615e.o
 obj-$(CONFIG_MT7663U) += mt7663u.o
 
 CFLAGS_trace.o := -I$(src)
 
-mt7615-common-y := main.o init.o mcu.o eeprom.o mac.o \
-		   debugfs.o trace.o
+mt7615-common-y := \
+			main.o init.o mcu.o eeprom.o mac.o \
+			debugfs.o trace.o
 
-mt7615e-y := pci.o pci_init.o dma.o pci_mac.o mmio.o
+mt7615e-y := \
+			pci.o pci_init.o dma.o pci_mac.o mmio.o
 mt7615e-$(CONFIG_MT7622_WMAC) += soc.o
 
-mt7663u-y := usb.o usb_mcu.o usb_init.o
+mt7663u-y := \
+			usb.o usb_mcu.o usb_init.o


--- a/mt7915/Makefile
+++ b/mt7915/Makefile
@@ -1,6 +1,9 @@
 #SPDX-License-Identifier: ISC
+
+obj-m += mt7915e.o
 
 obj-$(CONFIG_MT7915E) += mt7915e.o
 
-mt7915e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \
-	     debugfs.o
+mt7915e-y := \
+			pci.o init.o dma.o eeprom.o main.o mcu.o mac.o debugfs.o
+


