#################################################################
#   Copyright (C) 2009 D-Link Corp./D-Link Systems, Inc.        #
#	------------------------------------------------------		#
#	DESCRIPTION :	The makefile for builing the complete		#
# 					Management Switch image files.	            #
#################################################################
                                                  
CP := cp
RM := rm
CAT := cat
CC := $(CROSS_COMPILE)gcc
DD := dd
OBJDUMP := $(CROSS_COMPILE)objdump

os_dir := os/${OS_PACKAGE}

OS_DIR := ${MGM_PROJECT_BASE_DIR}/${os_dir}
IMAGE_DIR := ${MGM_PROJECT_BASE_DIR}/image
TOOL_DIR := ${MGM_PROJECT_BASE_DIR}/tools

IMGTAG :=  ${TOOL_DIR}/imgtag
GEN_CHECKSUM := ${TOOL_DIR}/genTotalChecksum
IMGHDR := ${TOOL_DIR}/imghdr

MODEL := TPE-4840WS
CUSTOMER_SIGNATURE := 2
BOARD_VERSION := 1
TAG_OS_VERSION := 1
HW_VER := A1
SW_VER := 1.00.05
OUTPUT_OS_UPGRADE := ${MODEL}-${SW_VER}-OS.hex

.PHONY: os

#
# Check if "image" folder exists
#
check-image-folder:
	if [ -d ${IMAGE_DIR} ]; then \
		echo "image folder exists"; \
	else \
		echo "no image folder exists"; \
		mkdir ${IMAGE_DIR}; \
	fi


#
# change tool mod to 777
#
change_tools:
	chmod 777 ${TOOL_DIR}/*

#
# Make OS image and copy ot to image dir
#
os:
	make -w -C ${OS_DIR} oldconfig
	make -w -C ${OS_DIR} dep
	make -w -C ${OS_DIR} uImage
	$(OBJDUMP) -f ${OS_DIR}/vmlinux > ${IMAGE_DIR}/vmlinux.dump
	${CP} -f ${UIMAGE} ${IMAGE_DIR}

os-clean:
	make -w -C ${OS_DIR} clean

#
# Make relevant image information and attach
#
uImage-attach-version-checksum:
	${CP} ${IMAGE_DIR}/uImage ${IMAGE_DIR}/uImage.tag
	${IMGTAG} ${IMAGE_DIR}/uImage.tag ${TAG_OS_VERSION}
	${GEN_CHECKSUM} ${IMAGE_DIR}/uImage.tag ${IMAGE_DIR}/uImage.sum
	${CAT} ${IMAGE_DIR}/uImage.tag ${IMAGE_DIR}/uImage.sum > ${IMAGE_DIR}/uImage.vc
	${RM} ${IMAGE_DIR}/uImage.tag
	${RM} ${IMAGE_DIR}/uImage.sum

#
# Make zimage for update Linux kernel and root file system only
#
# 0.1> pad 0 to vmlinux.bin.gz and store to vmlinux.1m
# 0.2> pad 0 to cramfs and store to cramfs.6m
# 1. copy vmlinux.1m to zimage
# 2. insert cramfs.6m into zimage from offset 1M bytes
# 3. copy zimage to /tftpboot
#
zimage: uImage-attach-version-checksum
	${RM} -f ${IMAGE_DIR}/zimage
	${DD} if=${IMAGE_DIR}/uImage.vc of=${IMAGE_DIR}/zimage bs=1024
	${IMGHDR} ${IMAGE_DIR}/uImage.vc ${IMAGE_DIR}/${OUTPUT_OS_UPGRADE} ${MODEL} os 2 ${CUSTOMER_SIGNATURE} ${BOARD_VERSION} ${IMAGE_DIR}/vmlinux.dump
	${RM} -f ${IMAGE_DIR}/uImage.vc

GPLos:check-image-folder change_tools os zimage
