Author: codehelp Date: 2012-02-23 17:39:57 +0000 (Thu, 23 Feb 2012) New Revision: 1842 Added: balloon/branches/menuconfig2/downloads/ Modified: balloon/branches/menuconfig2/package/buildroot/patches/Makefile balloon/branches/menuconfig2/package/kernel/Makefile Log: Add a downloads directory support so that it is possible to repeat a specific build without having to re-download tarballs, even if the previous build has been completely cleaned. Property changes on: balloon/branches/menuconfig2/downloads ___________________________________________________________________ Added: svn:ignore + * Modified: balloon/branches/menuconfig2/package/buildroot/patches/Makefile =================================================================== --- balloon/branches/menuconfig2/package/buildroot/patches/Makefile 2012-02-23 17:27:30 UTC (rev 1841) +++ balloon/branches/menuconfig2/package/buildroot/patches/Makefile 2012-02-23 17:39:57 UTC (rev 1842) @@ -1,6 +1,7 @@ # Title: Makefile # Purpose: Makes buildroot rootfs +DOWNLOADDIR:=$(BUILDDIR)/../downloads/ DISTRODIR:=$(BUILDDIR)/../distro RES=$(BUILDDIR)/buildroot BUILD:=$(RES)/buildroot$(BUILDROOTVER) @@ -66,10 +67,19 @@ $(RES)/unpacked.stamp: mkdir -p $(RES) + if [ ! -f $(DOWNLOADDIR)/buildroot$(BUILDROOTVER).tar.bz2 ]; then \ (cd $(RES) && \ (wget -N $(RELEASESITE)/sources/buildroot/buildroot$(BUILDROOTVER).tar.bz2 && tar -xjf buildroot$(BUILDROOTVER).tar.bz2) || \ (wget -N http://buildroot.uclibc.org/downloads/buildroot$(BUILDROOTVER).tar.bz2 && tar -xjf buildroot$(BUILDROOTVER).tar.bz2) \ - ) + ) \ + else \ + (cd $(RES) && \ + cp -f $(DOWNLOADDIR)buildroot$(BUILDROOTVER).tar.bz2 . && \ + tar -xjf buildroot$(BUILDROOTVER).tar.bz2 && \ + mkdir -p ./buildroot$(BUILDROOTVER)/dl/ && \ + cp -f $(DOWNLOADDIR)dl/* ./buildroot$(BUILDROOTVER)/dl/ \ + ) \ + fi; ln -sf `pwd` $(BUILD)/patches # (cd $(BUILD) && rm -rf target/generic/target_skeleton_balloon3_installer \ # && ((cp -ar target/generic/target_skeleton target/generic/target_skeleton_balloon3_installer) || true )) @@ -110,7 +120,7 @@ (cd $(RES); rm -rf * ) -(cd $(DISTRODIR)/binaries && rm -rf buildroot) -(cd $(DISTRODIR)/sources && rm -rf buildroot) - + dist: rootfs source install -D $(RES)/rootfs.* $(DISTRODIR)/binaries/buildroot/ Modified: balloon/branches/menuconfig2/package/kernel/Makefile =================================================================== --- balloon/branches/menuconfig2/package/kernel/Makefile 2012-02-23 17:27:30 UTC (rev 1841) +++ balloon/branches/menuconfig2/package/kernel/Makefile 2012-02-23 17:39:57 UTC (rev 1842) @@ -10,6 +10,8 @@ #TOPLEVELMAKEFILES=$(shell ls $(CHECKOUT)/Makefile.inc $(CHECKOUT)/Makefile.local) +# directory of pre-downloaded tarballs +DOWNLOADDIR:=$(BUILDDIR)/../downloads/ #directory containing source tarballs and final built binaries RES:=$(BUILDDIR)/kernel #Actual kernel source dir in which build commands are run @@ -162,7 +164,7 @@ cp $(BUILD)/vmlinux $(RES)/vmlinuxInitrd cp $(BUILD)/arch/arm/boot/zImage $(RES)/zImageInitrd -# we could make another tarball as below, but currently direct copy of list in initrd build. +# we could make another tarball as below, but currently direct copy of list in initrd build. # tar --create --gzip --files-from initrdmodules.list --file initrdmodules.tgz lib) # ( export INSTALL_MOD_PATH=../$(RES)/modules && \ @@ -177,7 +179,7 @@ tar --create --gzip --file modules.tgz lib ) mv $(RES)/modules/modules.tgz $(RES)/ -$(RES)/unpacked-$(KERNVER).stamp: +$(RES)/unpacked-$(KERNVER).stamp: mkdir -p $(RES) $(BUILD) # get source from upstream rather than balloonboard.org # (cd $(RES) && wget -N http://kernel.org/pub/linux/kernel/v2.6/linux-$(KERNVER).tar.bz2 \ @@ -198,9 +200,12 @@ # (cd $(RES) && \ # wget --output-file=android-linux.tar.gz http://android.git.kernel.org/?p=kernel/common.git;a=snapshot;h=762476fa24df17914e1a8fab42e12d59da87539a;sf=tgz \ # && tar --extract --gzip --file android-linux.tar.gz) && \ -# touch $(RES)/unpacked-$(KERNVER).stamp +# touch $(RES)/unpacked-$(KERNVER).stamp else + if [ -f $(DOWNLOADDIR)/linux-$(KERNVER).tar.bz2 ]; then \ + cp -f $(DOWNLOADDIR)/linux-$(KERNVER).tar.bz2 $(RES); \ + fi; (cd $(RES) && \ (test -f linux-$(KERNVER).tar.bz2 || \ (wget -N $(RELEASESITE)-bad/sources/kernel/linux-$(KERNVER).tar.bz2 || \ @@ -226,6 +231,9 @@ $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp: $(RES)/unpacked-$(KERNVER).stamp ifeq ($(NEEDS_YAFFS),y) + if [ -f $(DOWNLOADDIR)/yaffs-$(YAFFSCHECKOUT).tar.bz2 ]; then \ + cp -f $(DOWNLOADDIR)/yaffs-$(YAFFSCHECKOUT).tar.bz2 $(RES); \ + fi; ( cd $(RES) && rm -rf yaffs2 && \ (( test -f $(RES)/yaffs-$(YAFFSCHECKOUT).tar.bz2 && tar --extract --bzip2 --file yaffs-$(YAFFSCHECKOUT).tar.bz2 ) || \ ( wget -N $(RELEASESITE)/sources/kernel/yaffs-$(YAFFSCHECKOUT).tar.bz2 && \ @@ -237,12 +245,12 @@ (( [ -e yaffs_vfs_multi.c ] && ./patch-ker.sh c m ../linux-$(KERNVER)) || \ ./patch-ker.sh c ../linux-$(KERNVER) ) && \ cd .. && tar -cjf $(RES)/yaffs-$(YAFFSCHECKOUT).tar.bz2 yaffs2 && rm -rf yaffs2) && \ - touch $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp + touch $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp else - touch $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp + touch $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp endif -#this logic needs to change so that quilt.stamp is time of last quilting +#this logic needs to change so that quilt.stamp is time of last quilting # - if patches/* (or better `quilt series`) has changed then re-quilt # need thought - this brute-force will do for now #quilt push -a returns 2 if it has done it all already - this is not an error @@ -274,7 +282,7 @@ fi touch $(RES)/series.stamp -menuconfig: $(BUILD)/.config +menuconfig: $(BUILD)/.config $(CROSSOPTS) $(MAKE) -C $(BUILD) menuconfig clean: @@ -301,7 +309,7 @@ install -D $(BUILD)/.config $(DISTRODIR)/binaries/kernel/config $(RES)/yaffs-$(YAFFSCHECKOUT).tar.bz2: $(RES)/yaffs-source-$(YAFFSCHECKOUT).stamp - tar --directory $(RES) --create --file $@ yaffs2 + tar --directory $(RES) --create --file $@ yaffs2 source: $(RES)/unpacked-$(KERNVER).stamp $(RES)/yaffs-$(YAFFSCHECKOUT).tar.bz2 mkdir -p $(DISTRODIR)/sources/kernel/