include mvRules.mk


CFLAGS += -DMV_88F5181
AFLAGS += -DMV_88F5181

# Objects list

COMMON_OBJS     = $(COMMON_DIR)/mvDebug.o $(COMMON_DIR)/mvCommon.o

OSSERVICES_OBJS    = $(OSSERV_UBOOT)/mvOsUboot.o $(OSSERV_ARCH_DIR)/mvUbootArm.o $(OSSERV_UBOOT)/mvOsSUBoot.o 

BOARD_OBJS      = $(BOARD_FLASH_DIR)/mvFlash.o	\
                  $(BOARD_FLASH_DIR)/mvAmdFlash.o $(BOARD_FLASH_DIR)/mvIntelFlash.o     \
                  $(BOARD_FLASH_DIR)/mvFlashCom.o $(BOARD_ENV_DIR)/mvBoardEnvLib.o      \
                  $(BOARD_ENV_PLAT_DIR)/mvBoardEnvSpec.o $(BOARD_DRAM_DIR)/mvDram.o     \
                  $(BOARD_ETHPHY_DIR)/mvEthPhy.o \
		  $(SATA_CORE_DIR)/mvSata.o $(SATA_CORE_DIR)/mvStorageDev.o $(SATA_CORE_DIR)/mvLog.o 

ifneq ($(MV_TINY_IMAGE), y)
BOARD_OBJS     += $(BOARD_RTC_DIR)/mvDS1339.o $(BOARD_PCI_DIR)/mvPciUtils.o
endif

SOC_OBJS = $(SOC_CPU_IF_DIR)/mvCpuIf.o $(CTRL_ENV_DIR)/mvCtrlEnvLib.o           \
                  $(CTRL_ENV_DIR)/mvCtrlEnvAddrDec.o $(SOC_CNTMR_DIR)/mvCntmr.o        \
                  $(SOC_DEVICE_DIR)/mvDevice.o $(SOC_TWSI_DIR)/mvTwsi.o                 \
                  $(SOC_UART_DIR)/mvUart.o $(SOC_GPP_DIR)/mvGpp.o       \
                  $(SOC_AHB_TO_MBUS_DIR)/mvAhbToMbus.o $(SOC_DRAM_DIR)/mvDramIf.o       \
                  $(SOC_PCI_DIR)/mvPci.o $(SOC_PEX_DIR)/mvPex.o $(SOC_PCIIF_DIR)/mvPciIf.o \
                  $(SOC_IDMA_DIR)/mvIdma.o \
		  $(SOC_CPU_PLAT_DIR)/mvCpuArm.o $(SOC_USB_DIR)/mvUsb.o \
                  $(SOC_SATA_DIR)/mvSataAddrDec.o $(SOC_XOR_DIR)/mvXor.o

ifneq ($(MV_88W8660), y)
SOC_ETH_OBJS	= $(SOC_ETH_DIR)/mvEthDebug.o $(SOC_ETH_DIR)/mvEth.o $(SOC_ETH_DIR)/mvEthAddrDec.o \
		  $(USP_DIR)/mv_egiga.o
else
SOC_ETH_OBJS	= $(UNIMAC)/ethDrv/mvEthAddrDec.o  $(UNIMAC)/ethDrv/mvEthAddrFilter.o  $(UNIMAC)/ethDrv/mvEthernet.o \
		  $(UNIMAC)/mv_uniMac.o
endif

USP_OBJS        = $(USP_DIR)/mv_flash.o $(USP_DIR)/mv_main.o $(USP_DIR)/mv_serial.o     \
                  $(USP_DIR)/mv_pageTable.o $(USP_DIR)/mv_rtc.o $(USP_DIR)/mv_mon_init.o\
                  $(USP_DIR)/mv_pci.o         \
                  $(USP_DIR)/mv_dram.o $(USP_DIR)/mv_ide.o \
		  $(USP_DIR)/mv_fs.o $(USP_DIR)/mv_loadnet.o $(USP_DIR)/mv_cmd.o $(USP_DIR)/mv_protectionUnit.o \
  		  $(USP_DIR)/mv_i2c.o $(USP_DIR)/mv_rtc.o $(USP_DIR)/mv_ext2_boot.o \
                  $(USP_DIR)/nBootloader.o
                  
SOBJS           = ../USP/platform.o ../USP/jump.o	\
                  ../Soc/cpuIf/mvCpuIfInit.o                     \
                  ../Soc/dram/mvDramIfBasicInit.o                \
                  ../Soc/dram/mvDramIfConfig.o                   \
                  ../Soc/twsi/mvTwsiEeprom.o			 \
		  ../USP/nBootstrap.o



OBJS            = $(COMMON_OBJS) $(OSSERVICES_OBJS) $(BOARD_OBJS) $(SOC_OBJS)      \
                  $(USP_OBJS) $(USP_MON_EXT_OBJS) $(SOC_ETH_OBJS)

LIB             = lib$(BOARD).a

# To build u-boot with USB Device "make USB=yd"
ifeq ($(MV_USB), y)
USB_DEV_OBJS	= $(SOC_USB_DEV_DIR)/mvUsbDevMain.o $(SOC_USB_DEV_DIR)/mvUsbDevRecv.o		\
                  $(SOC_USB_DEV_DIR)/mvUsbDevSend.o $(SOC_USB_DEV_DIR)/mvUsbDevUtl.o        \
                  $(SOC_USB_DEV_DIR)/mvUsbHsDevCncl.o $(SOC_USB_DEV_DIR)/mvUsbHsDevMain.o	\
                  $(SOC_USB_DEV_DIR)/mvUsbHsDevUtl.o $(SOC_USB_DEV_DIR)/mvUsbDevCh9.o

USB_DEV_DEMO_OBJS = $(SOC_USB_EXM_DIR)/disk.o $(SOC_USB_EXM_DIR)/mouse.o

CFLAGS          += -I$(SOC_USB_COM_DIR) -I$(SOC_USB_DEV_DIR) -I$(SOC_USB_EXM_DIR) -I$(SOC_USB_API_DIR)
CFLAGS      	+= -DMV_RT_DEBUG #-DMV_USB_VOLTAGE_FIX #-DMV_USB_TRACE_PRINT -DSET_ADDRESS_HARDWARE_ASSISTANCE 
OBJS		    += $(USP_DIR)/mv_usb_dev.o $(USB_DEV_OBJS) $(USB_DEV_DEMO_OBJS)
endif
 

all:    $(LIB)

$(LIB): .depend $(OBJS) $(SOBJS)
	$(AR) crv $@ $(OBJS) $(SOBJS)

#########################################################################

.depend:        Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) $(USB_OBJS:.o=.c)
	$(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) $(USB_OBJS:.o=.c) > $@

sinclude .depend

#########################################################################

