#
# kboot
#

# Version

include kboot-cl/VERSIONS


# git

GITENV="export http_proxy=http://proxy.sonycity.sony.co.jp:10080/"
GITTREE="http://www.kernel.org/pub/scm/linux/kernel/git/geoff/"

# archive

ARCHIVE_HOST=greenwich.rd.scei.sony.co.jp
ARCHIVE_DIR=/opt/devset/Userland/SOURCES

KERNEL_PACKAGE=linux-$(KERNEL_VERSION).tar.bz2
KERNEL_URL=/export3/snapshot/linux/$(KERNEL_PACKAGE)

KBOOT_DIR=kboot/20070125
KBOOT_PACKAGE=kboot-$(KBOOT_VERSION).tar.gz
KBOOT_URL=http://kboot.sourceforge.net/$(KBOOT_PACKAGE)

BUSYBOX_DIR=busybox/20070125
BUSYBOX_PACKAGE=busybox-$(BUSYBOX_VERSION).tar.bz2

KEXEC_TOOLS_DIR=kexec/20060317
KEXEC_TOOLS_PACKAGE=kexec-tools-$(KEXEC_TOOLS_VERSION).tar.gz

UDEV_DIR=udev/20070125
UDEV_PACKAGE=udev-$(UDEV_VERSION).tar.bz2

DROPBEAR_DIR=dropbear/20060406
DROPBEAR_PACKAGE=dropbear-$(DROPBEAR_VERSION).tar.gz

SCHEDUTILS_DIR=schedutils/20060410
SCHEDUTILS_PACKAGE=schedutils-$(SCHEDUTILS_VERSION).tar.gz

NFS_UTILS_DIR=nfs-utils/20070601
NFS_UTILS_PACKAGE=nfs-utils-$(NFS_UTILS_VERSION).tar.gz

COREUTILS_DIR=coreutils/20060907
COREUTILS_PACKAGE=coreutils-$(COREUTILS_VERSION).tar.bz2

NCURSES_DIR=ncurses/20060917
NCURSES_PACKAGE=ncurses-$(NCURSES_VERSION).tar.gz

UTIL_LINUX_DIR=util-linux/20060917
UTIL_LINUX_PACKAGE=util-linux-$(UTIL_LINUX_VERSION).tar.bz2

GCC_DIR=gcc/20060414
GCC_PACKAGE=gcc-core-$(GCC_VERSION).tar.bz2

BINUTILS_DIR=binutils/20060317
BINUTILS_PACKAGE=binutils-$(BINUTILS_VERSION).tar.bz2

UCLIBC_DIR=uClibc/20060317
UCLIBC_PACKAGE=uClibc-$(UCLIBC_VERSION).tar.bz2

KBD_DIR=kbd/20060317
KBD_PACKAGE=kbd-$(KBD_VERSION).tar.gz


DL=dl


all: download
	cd kboot-$(KBOOT_VERSION) ; make

download: kboot-$(KBOOT_VERSION).ok 
	rm -rf kboot-$(KBOOT_VERSION)/linux-$(KERNEL_VERSION)
	rm -rf kboot-$(KBOOT_VERSION)/$(DL)/$(KERNEL_PACKAGE)
	rm -rf kboot-$(KBOOT_VERSION)/$(DL)/$(KERNEL_PACKAGE).ok
	if [ "$(KERNEL_GREVISION)" = "" ]; then \
		cd kboot-$(KBOOT_VERSION)/$(DL); echo "$(KERNEL_GREVISION)/$(KEXEC_GREVISION)/$(PS3PF_GREVISION)" ; eval $(GITENV) ; git clone $(GITTREE)/ps3-kexec-tools.git kexec-tools ; cd kexec-tools ; git checkout -b work $(KEXEC_GREVISION) ; cd .. ; git clone $(GITTREE)/ps3-utils.git ps3pf_utils ; cd ps3pf_utils ; git checkout -b work $(PS3PF_GREVISION) ; cd .. ; git clone $(GITTREE)/ps3-linux.git linux-$(KERNEL_VERSION) ; cd linux-$(KERNEL_VERSION) ; git checkout -b work $(KERNEL_GREVISION) ; cd .. ; \
	else \
		cd kboot-$(KBOOT_VERSION)/$(DL); echo "$(KERNEL_GREVISION)/$(KEXEC_GREVISION)/$(PS3PF_GREVISION)" ; eval $(GITENV) ; git clone $(GITTREE)/ps3-kexec-tools.git kexec-tools ; cd kexec-tools ; git checkout -b work $(KEXEC_GREVISION) ; cd .. ; git clone $(GITTREE)/ps3-utils.git ps3pf_utils ; cd ps3pf_utils ; git checkout -b work $(PS3PF_GREVISION) ; cd .. ; tar jxf $(KERNEL_URL) ; git clone $(GITTREE)/ps3-linux-patches.git linux-$(KERNEL_VERSION)/patches  ; cd linux-$(KERNEL_VERSION)/patches ; git checkout -b work $(KERNEL_GREVISION) ; cd .. ; quilt push -a ; cd ../.. ; \
	fi
#	mv kboot-$(KBOOT_VERSION)/$(DL)/linux kboot-$(KBOOT_VERSION)/$(DL)/linux-$(KERNEL_VERSION)
	mv kboot-$(KBOOT_VERSION)/$(DL)/kexec-tools kboot-$(KBOOT_VERSION)/$(DL)/kexec-tools-$(KEXEC_TOOLS_VERSION)
	mv kboot-$(KBOOT_VERSION)/$(DL)/ps3pf_utils kboot-$(KBOOT_VERSION)/$(DL)/ps3pf_utils-$(PS3PF_UTILS_VERSION)
	touch download

kboot-$(KBOOT_VERSION).ok: kboot-cl/VERSIONS
	if [ ! -d kboot-$(KBOOT_VERSION) ]; then \
	    if [ -f $(ARCHIVE_DIR)/$(KBOOT_DIR)/$(KBOOT_PACKAGE) ]; then \
		cp $(ARCHIVE_DIR)/$(KBOOT_DIR)/$(KBOOT_PACKAGE) .; \
	    elif [ ! `scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(KBOOT_DIR)/$(KBOOT_PACKAGE) .` ]; then \
		echo "Remote copy"; \
	    else \
		wget -c -O $(KBOOT_PACKAGE) $(KBOOT_URL); \
	    fi; \
	    tar zxvf $(KBOOT_PACKAGE); \
	fi

	mkdir -p kboot-$(KBOOT_VERSION)/$(DL)
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(BUSYBOX_DIR)/$(BUSYBOX_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(BUSYBOX_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(UDEV_DIR)/$(UDEV_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(UDEV_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(DROPBEAR_DIR)/$(DROPBEAR_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(DROPBEAR_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(SCHEDUTILS_DIR)/$(SCHEDUTILS_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(SCHEDUTILS_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(NFS_UTILS_DIR)/$(NFS_UTILS_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(NFS_UTILS_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(COREUTILS_DIR)/$(COREUTILS_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(COREUTILS_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(NCURSES_DIR)/$(NCURSES_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(NCURSES_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(UTIL_LINUX_DIR)/$(UTIL_LINUX_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(UTIL_LINUX_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(GCC_DIR)/$(GCC_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(GCC_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(BINUTILS_DIR)/$(BINUTILS_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(BINUTILS_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(UCLIBC_DIR)/$(UCLIBC_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(UCLIBC_PACKAGE).ok; \
	fi;
	if scp $(ARCHIVE_HOST):$(ARCHIVE_DIR)/$(KBD_DIR)/$(KBD_PACKAGE) kboot-$(KBOOT_VERSION)/$(DL); then \
		touch kboot-$(KBOOT_VERSION)/$(DL)/$(KBD_PACKAGE).ok; \
	fi;
	cp -a kboot-cl/* kboot-$(KBOOT_VERSION)
	touch kboot-$(KBOOT_VERSION).ok


clean:
	rm -rf download
	rm -rf linux
	rm -rf linux-$(KERNEL_VERSION)
	rm -rf $(KBOOT_PACKAGE)
	rm -rf kboot-$(KBOOT_VERSION)
	rm -rf kboot-$(KBOOT_VERSION).ok
