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/