On 11/02/08 14:56 -0500, Ward Vandewege wrote: > The attached patch stores build information in a new deploy/config directory, > which can be saved with a generated image to help with potential > reconstruction of that image at a later point in time. > > There's probably some more information that could be stored - suggestions > welcome. > > THanks, > Ward.
Awesome work Acked-by: Jordan Crouse <[EMAIL PROTECTED]> > -- > Ward Vandewege <[EMAIL PROTECTED]> > Free Software Foundation - Senior System Administrator > > This patch aims to store as much information about the build environment as > possible during the building of a coreboot image, in order to make it easy to > recreate coreboot images at a later point in time. > > It logs a number of things in the new deploy/config directory: > * the buildrom .config file > * config files used for compiling various packages (filo, kernel, uclibc, > busybox) > * the output of 'svn diff', 'svn info', 'svn status' > * the output of 'uname -a' > * a copy of /etc/lsb-release, /etc/debian-version, /etc/redhat-version if > they exist > * the output of '$(CC) --version', '$(MAKE) --version', '$(LD) --version' > > The logging of SVN output can be disabled in kconfig because it means internet > access must be available on the machine used for building the coreboot image. > This setting defaults to on because we already try to download a lot of code > if > we don't have the necessary source packages in sources/. > > Signed-off-by: Ward Vandewege <[EMAIL PROTECTED]> > > Index: Config.in > =================================================================== > --- Config.in (revision 111) > +++ Config.in (working copy) > @@ -32,6 +32,16 @@ > See the entire build output on stdout. Otherwise, it will > be saved off in a series of logs > > +config STORE_SVN_INFO > + bool "Store svn tree information in deployment directory." > + default y > + help > + Store the output of 'svn diff', 'svn status' and 'svn info' in the > + deploy/config/svn/ directory. This means the machine used to build > + the coreboot image will need to have internet access during the build. > + > + If you are not sure, say yes. > + > config MAKE_JOBS > int "Number of make jobs to run simultaneously (experimental)" > default 1 > Index: packages/kernel/kernel.inc > =================================================================== > --- packages/kernel/kernel.inc (revision 111) > +++ packages/kernel/kernel.inc (working copy) > @@ -63,6 +63,8 @@ > endif > @ $(MAKE) $(PARALLEL_MAKE) -C $(KERNEL_SRC_DIR) > ARCH=$(KERNEL_BUILD_ARCH) \ > KERNEL_CC="$(CC)" KERNEL_LD="$(LD)" > $(KERNEL_BUILD_LOG) 2>&1 > + @ mkdir -p $(OUTPUT_DIR)/config/kernel > + @ cp $(KERNEL_SRC_DIR)/.config $(OUTPUT_DIR)/config/kernel/ > > $(OUTPUT_DIR)/bzImage: $(KERNEL_BZIMAGE) > @ install -d $(OUTPUT_DIR) > Index: packages/filo/filo.mk > =================================================================== > --- packages/filo/filo.mk (revision 111) > +++ packages/filo/filo.mk (working copy) > @@ -56,6 +56,8 @@ > @ echo "Using custom config $(PACKAGE_DIR)/filo/conf/$(FILO_CONFIG)" > endif > @ make -C $(FILO_SRC_DIR) filo.elf > $(FILO_BUILD_LOG) 2>&1 > + @ mkdir -p $(OUTPUT_DIR)/config/filo > + @ cp $(FILO_SRC_DIR)/Config $(OUTPUT_DIR)/config/filo/ > > $(FILO_STAMP_DIR) $(FILO_LOG_DIR): > @ mkdir -p $@ > Index: packages/busybox/busybox.mk > =================================================================== > --- packages/busybox/busybox.mk (revision 111) > +++ packages/busybox/busybox.mk (working copy) > @@ -51,7 +51,10 @@ > export LDFLAGS="$(LDFLAGS_orig)";\ > $(MAKE) -C $(BUSYBOX_SRC_DIR) VERBOSE=y \ > LIBRARIES="$(LIBS)" all > $(BUSYBOX_BUILD_LOG) 2>&1) > + @ mkdir -p $(OUTPUT_DIR)/config/busybox > + @ cp $(BUSYBOX_SRC_DIR)/.config $(OUTPUT_DIR)/config/busybox/ > > + > $(INITRD_DIR)/bin/busybox: $(BUSYBOX_SRC_DIR)/busybox | $(BUSYBOX_LOG_DIR) > @ $(MAKE) -C $(BUSYBOX_SRC_DIR) \ > PREFIX=$(INITRD_DIR) install > $(BUSYBOX_INSTALL_LOG) 2>&1 > Index: packages/coreboot-v2/coreboot.inc > =================================================================== > --- packages/coreboot-v2/coreboot.inc (revision 111) > +++ packages/coreboot-v2/coreboot.inc (working copy) > @@ -81,6 +81,30 @@ > @ echo "Building coreboot..." > @ (export CPU_OPT="$(STACKPROTECT)"; \ > make -C $(CBV2_BUILD_DIR) > $(CBV2_BUILD_LOG) 2>&1) > + @ mkdir -p $(OUTPUT_DIR)/config/coreboot-v2/ > + @ cp $(CBV2_BUILD_DIR)/../$(CBV2_CONFIG) > $(OUTPUT_DIR)/config/coreboot-v2/ > + @ cp $(BASE_DIR)/.config $(OUTPUT_DIR)/config/ > + @ mkdir -p $(OUTPUT_DIR)/config/system/ > + @ uname -a >$(OUTPUT_DIR)/config/system/uname-a > + @ if [ -f /etc/lsb-release ]; then \ > + cp /etc/lsb-release $(OUTPUT_DIR)/config/system/; \ > + fi > + @ if [ -f /etc/debian-version ]; then \ > + cp /etc/debian-version $(OUTPUT_DIR)/config/system/; \ > + fi > + @ if [ -f /etc/redhat-version ]; then \ > + cp /etc/redhat-version $(OUTPUT_DIR)/config/system/; \ > + fi > + @ mkdir -p $(OUTPUT_DIR)/config/toolchain/ > + @ $(MAKE) --version >$(OUTPUT_DIR)/config/toolchain/$(MAKE)-version > + @ $(CC) --version >$(OUTPUT_DIR)/config/toolchain/$(CC)-version > + @ $(LD) --version >$(OUTPUT_DIR)/config/toolchain/$(LD)-version > +ifeq ($(CONFIG_STORE_SVN_INFO),y) > + @ mkdir -p $(OUTPUT_DIR)/config/svn/ > + @ svn diff > $(OUTPUT_DIR)/config/svn/svn.diff > + @ svn info > $(OUTPUT_DIR)/config/svn/svn.info > + @ svn status > $(OUTPUT_DIR)/config/svn/svn.status > +endif > > generic-coreboot-clean: > @ echo "Cleaning coreboot..." > Index: packages/uclibc/uclibc.mk > =================================================================== > --- packages/uclibc/uclibc.mk (revision 111) > +++ packages/uclibc/uclibc.mk (working copy) > @@ -56,6 +56,8 @@ > SHARED_LIB_LOADER_PATH="/lib" \ > SHARED_LIB_LOADER_PREFIX="/lib" \ > all > $(UCLIBC_BUILD_LOG) 2>&1) > + @ mkdir -p $(OUTPUT_DIR)/config/uclibc > + @ cp $(UCLIBC_SRC_DIR)/.config $(OUTPUT_DIR)/config/uclibc/ > > $(STAGING_DIR)/lib/libc.a: $(UCLIBC_SRC_DIR)/lib/libc.a > @ $(MAKE) -C $(UCLIBC_SRC_DIR) \ > -- > coreboot mailing list > [email protected] > http://www.coreboot.org/mailman/listinfo/coreboot -- Jordan Crouse Systems Software Development Engineer Advanced Micro Devices, Inc. -- coreboot mailing list [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

