#
# Makefile to build linux
#

include makefile.envars

CHECKOUT_PREFIX ?= svn://svn.atc.amit.com.tw
COMPO_URL := $(CHECKOUT_PREFIX)/Sahara/KernelRTL2418/trunk
COMPO_REV := -r 185
COMPO_DIR := $(COMPO_BASE)

ifdef FULL_COPY
USE_SVN_UP := yes
include makefile.compo
else
all: build install
endif

#

TARGET_PREFIX := $(TARGET)-
COMMON_OPTION := ARCH=mips CROSS_COMPILE=$(TARGET_PREFIX)

ifeq ("$(ROOT_RD_LEVEL)","1")
COMMON_OPTION += ROOT_RD_LEVEL=1
endif
ifeq ("$(WANPORT_4)","1")
COMMON_OPTION += WAN_TO_PORT4=1
endif

start_time := $(shell date)

#

IMAGE_DIR := ../image
PRIV_TOOLS := ../tools/priv

#

.PHONY: prepared

build: prepared
	CORNER_DE_PRJROOT=${TOPDIR} PATH=${TOPDIR}/linux/bin:${PATH}; \
	make ${COMMON_OPTION} -C $(COMPO_DIR) dep; \
	make ${COMMON_OPTION} -C $(COMPO_DIR); \
	make ${COMMON_OPTION} -C $(COMPO_DIR)/rtkload; \
	mkdir -p ../image; \
	cp $(COMPO_DIR)/rtkload/nfjrom ${TOPDIR}/image/bzImage;
	cp $(COMPO_DIR)/rtkload/vmlinux_img.gz ${TOPDIR}/image/vmlinux_img.lzma;
	rm -irf ${TOPDIR}/image/linux.bin;
#	make ${COMMON_OPTION} -C $(COMPO_DIR) bzImage
#	make ${COMMON_OPTION} -C $(COMPO_DIR) modules

prepared: $(COMPO_DIR)/.tag.config $(COMPO_DIR)/.tag.oldconfig

$(COMPO_DIR)/.tag.config:
	cp Config $(COMPO_DIR)/.config
	touch $@

$(COMPO_DIR)/.tag.oldconfig: 
	make ${COMMON_OPTION} -C $(COMPO_DIR) oldconfig
	touch $@

.PHONY: ins_modules ins_image

install: # ins_modules ins_image
	@echo "*********************************************************************"
	@echo "* Done! $(start_time) ~ `date` *"
	@echo "*********************************************************************"

ins_modules:
	rm -fr $(INSTALL_ROOT)
#make ${COMMON_OPTION} INSTALL_MOD_PATH=$(INSTALL_ROOT) -C $(COMPO_DIR) _modinst_
	make ${COMMON_OPTION} INSTALL_MOD_PATH=$(INSTALL_ROOT) -C $(COMPO_DIR) modules_install
	rm -f $(INSTALL_ROOT)/lib/modules/*/build $(INSTALL_ROOT)/lib/modules/*/source
	ln -sf `ls $(INSTALL_ROOT)/lib/modules`/kernel $(INSTALL_ROOT)/lib/modules/kernel

ins_image:
	mkdir -p ../image
	cp $(COMPO_DIR)/arch/i386/boot/bzImage ../image
ifdef FULL_COPY
	$(PRIV_TOOLS)/bin/binman --s kernel.bms --d $(IMAGE_DIR)
	ls -l ../image/bzImage
else
	cd ../image; $(PRIV_TOOLS)/bin/binboy @linux -r "$(ROM_ID)"
endif

clean:
	@if test -f $(COMPO_DIR)/Makefile; then \
		make ${COMMON_OPTION} -C $(COMPO_DIR)/rtkload clean; \
		make ${COMMON_OPTION} -C $(COMPO_DIR) clean; \
		rm -f ${TOPDIR}/nfjrom; \
		rm -f $(COMPO_DIR)/.tag.config $(COMPO_DIR)/.tag.oldconfig; \
	fi

#

distclean:
	rm -fr $(INSTALL_ROOT)
	#rm -fr $(COMPO_DIR)

menuconfig: prepared
	make ${COMMON_OPTION} -C $(COMPO_DIR) menuconfig
