* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
@ 2011-05-16 20:21 Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 01/21] Makefile.package.in: Makes it possible to override the default extract commands Thomas Petazzoni
` (22 more replies)
0 siblings, 23 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
Hello,
This is not a pull request. This is stuff I'm preparing for the next
Buildroot release, and which I'm posting now to let everybody now that
I'm working on this, and to get early comments. Feedback is therefore
very welcome.
Basically, the idea is that we have a package infrastructure, and
features such as Git/Mercurial download, or usage of an existing
source tree should be added at the level of the package infrastructure
and not specifically for each package.
Unfortunately, some of the packages that would most benefit from those
new infrastructure features are the bootloader and kernel, since it's
typically the software components that have to be modified/tuned
during the course of an embedded Linux project.
Therefore, this series converts all bootloaders makefiles and the
kernel makefile to the package infrastructure. It also does a few
other related things.
More improvements are probably needed at the infrastructure level
(like changing the BR2_PACKAGE_<pkg> test to know if a target needs to
be added to TARGETS or not), but hopefully, you'll get the general
idea and have some feedback/ideas.
Thanks for your review,
Thomas
The following changes since commit 5c88d720f99ce6374a2a9b6afcb93ff627f464fa:
Merge branch 'for-2011.05/new-codesourcery-toolchain' of http://free-electrons.com/~thomas/buildroot (2011-05-13 15:30:37 +0200)
are available in the git repository at:
http://free-electrons.com/~thomas/buildroot.git for-2011.08/bootloaders
Allan W. Nielsen (1):
Makefile.package.in: Makes it possible to override the default extract commands
Thomas Petazzoni (20):
Fix quoting in default extract command
linux: make it possible to install the kernel in /boot
linux: use the defconfig mechanism after tuning the config
package: add infrastructure to install things in images/
package: fix patching procedure for host packages
barebox: use = instead of := and re-indent
barebox: convert to GENTARGETS
at91bootstrap: use = instead of := and indent properly
at91bootstrap: convert to GENTARGETS
at91dataflashboot: use = instead of := and indent
at91dataflashboot: convert to GENTARGETS
syslinux: convert to GENTARGETS
grub: convert to AUTOTARGETS
grub2: remove package
u-boot: convert to GENTARGETS
uboot-mkimage: new package
linux: rename LINUX26 to LINUX
linux: indent and align some definitions
package: add support for post-download hooks
linux: convert to the GENTARGETS infrastructure
boot/Config.in | 1 -
boot/at91bootstrap/at91bootstrap.mk | 57 ++----
boot/at91dataflashboot/Config.in | 24 +--
boot/at91dataflashboot/at91dataflashboot.mk | 44 ++---
boot/barebox/barebox.mk | 68 +++----
boot/grub/grub.500-build-fix.patch | 14 ++
boot/grub/grub.mk | 102 ++++------
boot/grub2/Config.in | 9 -
boot/grub2/grub2.mk | 93 ---------
boot/syslinux/Config.in | 14 +-
boot/syslinux/syslinux.mk | 50 ++---
boot/u-boot/Config.in | 5 -
boot/u-boot/u-boot.mk | 218 +++++++-------------
linux/Config.in | 8 +
linux/linux.mk | 203 ++++++++++---------
package/Makefile.package.in | 56 ++++--
.../uboot-mkimage-2011.03-drop-configh.patch | 0
package/uboot-mkimage/uboot-mkimage.mk | 16 ++
18 files changed, 387 insertions(+), 595 deletions(-)
create mode 100644 boot/grub/grub.500-build-fix.patch
delete mode 100644 boot/grub2/Config.in
delete mode 100644 boot/grub2/grub2.mk
rename boot/u-boot/u-boot-2011.03-drop-configh.patch => package/uboot-mkimage/uboot-mkimage-2011.03-drop-configh.patch (100%)
create mode 100644 package/uboot-mkimage/uboot-mkimage.mk
Thanks,
--
Thomas Petazzoni
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 01/21] Makefile.package.in: Makes it possible to override the default extract commands
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 02/21] Fix quoting in default extract command Thomas Petazzoni
` (21 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
From: Allan W. Nielsen <a@awn.dk>
When using GENTARGETS (or macroes depending on it), there is no way of
specifying a custom extraction procedure. When using the patch one can
simply define $(PACKAGE_NAME)_EXTRACT_CMDS which will override the
default. If non is defined it will fall back to the default extract
procedure.
An example could look like this:
---
package/Makefile.package.in | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index bf4e1b4..9949b58 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -243,8 +243,7 @@ endif
$(BUILD_DIR)/%/.stamp_extracted:
@$(call MESSAGE,"Extracting")
$(Q)mkdir -p $(@D)
- $(Q)$(if $($(PKG)_SOURCE),$(INFLATE$(suffix $($(PKG)_SOURCE))) $(DL_DIR)/$($(PKG)_SOURCE) | \
- $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -)
+ $($(PKG)_EXTRACT_CMDS)
# some packages have messed up permissions inside
$(Q)chmod -R ug+rw $(@D)
$(foreach hook,$($(PKG)_POST_EXTRACT_HOOKS),$(call $(hook))$(sep))
@@ -425,6 +424,10 @@ $(2)_TARGET_UNINSTALL = $$($(2)_DIR)/.stamp_uninstalled
$(2)_TARGET_CLEAN = $$($(2)_DIR)/.stamp_cleaned
$(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned
+# default extract command
+$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \
+ $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
+
# post-steps hooks
$(2)_POST_EXTRACT_HOOKS ?=
$(2)_POST_PATCH_HOOKS ?=
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 02/21] Fix quoting in default extract command
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 01/21] Makefile.package.in: Makes it possible to override the default extract commands Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 03/21] linux: make it possible to install the kernel in /boot Thomas Petazzoni
` (20 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/Makefile.package.in | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index 9949b58..0a4c220 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -425,7 +425,8 @@ $(2)_TARGET_CLEAN = $$($(2)_DIR)/.stamp_cleaned
$(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned
# default extract command
-$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \
+$(2)_EXTRACT_CMDS ?= \
+ $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
# post-steps hooks
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 03/21] linux: make it possible to install the kernel in /boot
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 01/21] Makefile.package.in: Makes it possible to override the default extract commands Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 02/21] Fix quoting in default extract command Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 04/21] linux: use the defconfig mechanism after tuning the config Thomas Petazzoni
` (19 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/Config.in | 8 ++++++++
linux/linux.mk | 3 +++
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/linux/Config.in b/linux/Config.in
index ea04c7d..356756e 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -153,6 +153,14 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME
Specify the kernel make target to build the kernel that you
need.
+config BR2_LINUX_KERNEL_INSTALL_TARGET
+ bool "Install kernel image to /boot in target"
+ depends on BR2_i386 || BR_x86_64
+ help
+ Select this option to have the kernel image installed to
+ /boot in the target root filesystem, as is typically done on
+ x86/x86_64 systems.
+
endif # BR2_LINUX_KERNEL
endmenu
diff --git a/linux/linux.mk b/linux/linux.mk
index 43ca87b..2bb32cb 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -158,6 +158,9 @@ $(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured $(LINUX26_DIR)/
$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
@$(call MESSAGE,"Installing kernel")
cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
+ifeq ($(BR2_LINUX_KERNEL_INSTALL_TARGET),y)
+ install -m 0644 -D $(LINUX26_IMAGE_PATH) $(TARGET_DIR)/boot/$(LINUX26_IMAGE_NAME)
+endif
# Install modules and remove symbolic links pointing to build
# directories, not relevant on the target
@if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 04/21] linux: use the defconfig mechanism after tuning the config
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (2 preceding siblings ...)
2011-05-16 20:21 ` [Buildroot] [PATCH 03/21] linux: make it possible to install the kernel in /boot Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 05/21] package: add infrastructure to install things in images/ Thomas Petazzoni
` (18 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
Currently, the kernel configuration mechanism works as follows for
custom configuration files:
* Copy the custom config file to buildroot_defconfig in the kernel
tree
* Run "make buildroot_defconfig"
* Remove the buildroot_defconfig
* Tune the .config depending on some Buildroot options (EABI, MDEV,
etc.)
* Run oldconfig
And for a defconfig-based configuration:
* Run "make XXX_defconfig"
* Tune the .config depending on some Buildroot options (EABI, MDEV,
etc.)
* Run oldconfig
The problem is that the tuning done on the .config file can lead to
have new options available for which no value has been set. Therefore,
the "oldconfig" at the end of the process will hang the build process,
waiting for the user to confirm what should be done.
Instead, we would like the kernel to automatically select the default
value for those options.
Therefore, the configuration process when a configuration file is
given is now the following one :
* Copy the custom config file to buildroot_defconfig in the kernel
tree
* Tune the buildroot_defconfig depending on some Buildroot options
(EABI, MDEV, etc.)
* Run "make buildroot_defconfig"
* Remove the buildroot_defconfig
And similarly, for defconfig-based configuration, the process is now
the following one:
* Copy the defconfig file to buildroot_defconfig in the kernel tree
* Tune the buildroot_defconfig depending on some Buildroot options
(EABI, MDEV, etc.)
* Run "make buildroot_defconfig"
* Remove the buildroot_defconfig
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/linux.mk | 40 ++++++++++++++++++++++++----------------
1 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index 2bb32cb..d142ab2 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -105,21 +105,28 @@ $(LINUX26_DIR)/.stamp_patched: $(LINUX26_DIR)/.stamp_extracted
done
$(Q)touch $@
+# As we are tweaking the kernel configuration file, we want to run a
+# silent oldconfig pass on the configuration file after having done
+# our tweaks. The normal 'oldconfig' target prompts the user for new
+# values that appeared, which hangs the build. Therefore, what we do
+# is that we create a new defconfig file called buildroot_defconfig,
+# which we tweak, and then use as the basis for the kernel
+# configuration. This temporary defconfig file is removed right after.
+KERNEL_DEFCONFIG_NAME = buildroot_defconfig
+KERNEL_DEFCONFIG_PATH = $(KERNEL_ARCH_PATH)/configs/$(KERNEL_DEFCONFIG_NAME)
# Configuration
$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched
@$(call MESSAGE,"Configuring kernel")
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
- $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
+ cp $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig $(KERNEL_DEFCONFIG_PATH)
else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
- cp $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
- $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) buildroot_defconfig
- rm $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
+ cp $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(KERNEL_DEFCONFIG_PATH)
endif
ifeq ($(BR2_ARM_EABI),y)
- $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH))
else
- $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH))
endif
ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
# As the kernel gets compiled before root filesystems are
@@ -127,21 +134,22 @@ ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
# replaced later by the real list, and the kernel will be
# rebuilt using the linux26-rebuild-with-initramfs target.
touch $(BINARIES_DIR)/rootfs.initramfs
- $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD,$(@D)/.config)
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"$(BINARIES_DIR)/rootfs.initramfs\",$(@D)/.config)
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0,$(@D)/.config)
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0,$(@D)/.config)
- $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(@D)/.config)
- $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(@D)/.config)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"$(BINARIES_DIR)/rootfs.initramfs\",$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(KERNEL_DEFCONFIG_PATH))
endif
ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
- $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(@D)/.config)
- $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(@D)/.config)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(KERNEL_DEFCONFIG_PATH))
endif
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
- $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(@D)/.config)
+ $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(KERNEL_DEFCONFIG_PATH))
endif
- $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig
+ $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(KERNEL_DEFCONFIG_NAME)
+ rm $(KERNEL_DEFCONFIG_PATH)
$(Q)touch $@
# Compilation. We make sure the kernel gets rebuilt when the
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 05/21] package: add infrastructure to install things in images/
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (3 preceding siblings ...)
2011-05-16 20:21 ` [Buildroot] [PATCH 04/21] linux: use the defconfig mechanism after tuning the config Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 06/21] package: fix patching procedure for host packages Thomas Petazzoni
` (17 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
This will allow the bootloader makefiles and the kernel makefile to
rely on the GENTARGETS infrastructure.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/Makefile.package.in | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index 0a4c220..6126e6b 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -304,6 +304,13 @@ $(BUILD_DIR)/%/.stamp_staging_installed:
$(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@
+# Install to images dir
+$(BUILD_DIR)/%/.stamp_images_installed:
+ @$(call MESSAGE,'Installing to images directory')
+ $($(PKG)_INSTALL_IMAGES_CMDS)
+ $(foreach hook,$($(PKG)_POST_INSTALL_IMAGES_HOOKS),$(call $(hook))$(sep))
+ $(Q)touch $@
+
# Install to target dir
$(BUILD_DIR)/%/.stamp_target_installed:
@$(call MESSAGE,"Installing to target")
@@ -408,12 +415,14 @@ endif
$(2)_DEPENDENCIES ?=
$(2)_INSTALL_STAGING ?= NO
+$(2)_INSTALL_IMAGES ?= NO
$(2)_INSTALL_TARGET ?= YES
$(2)_DIR_PREFIX = $(if $(4),$(4),$(TOP_SRCDIR)/package)
# define sub-target stamps
$(2)_TARGET_INSTALL_TARGET = $$($(2)_DIR)/.stamp_target_installed
$(2)_TARGET_INSTALL_STAGING = $$($(2)_DIR)/.stamp_staging_installed
+$(2)_TARGET_INSTALL_IMAGES = $$($(2)_DIR)/.stamp_images_installed
$(2)_TARGET_INSTALL_HOST = $$($(2)_DIR)/.stamp_host_installed
$(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built
$(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured
@@ -438,6 +447,7 @@ $(2)_POST_BUILD_HOOKS ?=
$(2)_POST_INSTALL_HOOKS ?=
$(2)_POST_INSTALL_STAGING_HOOKS ?=
$(2)_POST_INSTALL_TARGET_HOOKS ?=
+$(2)_POST_INSTALL_IMAGES_HOOKS ?=
# human-friendly targets and target sequencing
$(1): $(1)-install
@@ -445,7 +455,7 @@ $(1): $(1)-install
ifeq ($$($(2)_TYPE),host)
$(1)-install: $(1)-install-host
else
-$(1)-install: $(1)-install-staging $(1)-install-target
+$(1)-install: $(1)-install-staging $(1)-install-target $(1)-install-images
endif
ifeq ($$($(2)_INSTALL_TARGET),YES)
@@ -462,6 +472,13 @@ else
$(1)-install-staging:
endif
+ifeq ($$($(2)_INSTALL_IMAGES),YES)
+$(1)-install-images: $(1)-build \
+ $$($(2)_TARGET_INSTALL_IMAGES)
+else
+$(1)-install-images:
+endif
+
$(1)-install-host: $(1)-build $$($(2)_TARGET_INSTALL_HOST)
$(1)-build: $(1)-configure \
@@ -493,6 +510,7 @@ $(1)-dirclean: $$($(2)_TARGET_DIRCLEAN)
# uppercase package variable prefix
$$($(2)_TARGET_INSTALL_TARGET): PKG=$(2)
$$($(2)_TARGET_INSTALL_STAGING): PKG=$(2)
+$$($(2)_TARGET_INSTALL_IMAGES): PKG=$(2)
$$($(2)_TARGET_INSTALL_HOST): PKG=$(2)
$$($(2)_TARGET_BUILD): PKG=$(2)
$$($(2)_TARGET_CONFIGURE): PKG=$(2)
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 06/21] package: fix patching procedure for host packages
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (4 preceding siblings ...)
2011-05-16 20:21 ` [Buildroot] [PATCH 05/21] package: add infrastructure to install things in images/ Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 07/21] barebox: use = instead of := and re-indent Thomas Petazzoni
` (16 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
The patching procedure was using $($(NOHOSTPKG)_NAME) to find the name
of the package without the host- prefix for host packages, which is
needed to find the package directory and the prefix of the patches.
However, this $($(NOHOSTPKG)_NAME) variable is empty when there is
only an host variant for the package and no target variant for it.
Therefore, instead of using this $($(NOHOSTPKG)_NAME) variable, we now
use a new $(RAWNAME) variable, which is always the name of the package
without the host- prefix, even for host packages.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/Makefile.package.in | 26 ++++++++++++--------------
1 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index 6126e6b..cdcb5e5 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -251,23 +251,21 @@ $(BUILD_DIR)/%/.stamp_extracted:
# Patch
#
-# The NOHOSTPKG variable is the uppercased package name, without the
-# HOST_ prefix, even for host packages. This allows to find the
-# patches in the package directory, because $($(NOHOSTPKG)_NAME)
-# expands to the package directory name.
-#
-$(BUILD_DIR)/%/.stamp_patched: NAMEVER = $($(NOHOSTPKG)_NAME)-$($(PKG)_VERSION)
+# The RAWNAME variable is the lowercased package name, which allows to
+# find the package directory (typically package/<pkgname>) and the
+# prefix of the patches
+$(BUILD_DIR)/%/.stamp_patched: NAMEVER = $(RAWNAME)-$($(PKG)_VERSION)
$(BUILD_DIR)/%/.stamp_patched:
- @$(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)")
+ @$(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$(RAWNAME)")
$(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
$(Q)( \
- if test -d $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME); then \
- if test "$(wildcard $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME)/$(NAMEVER)*.patch*)"; then \
- toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME) $(NAMEVER)\*.patch $(NAMEVER)\*.patch.$(ARCH) || exit 1; \
+ if test -d $($(PKG)_DIR_PREFIX)/$(RAWNAME); then \
+ if test "$(wildcard $($(PKG)_DIR_PREFIX)/$(RAWNAME)/$(NAMEVER)*.patch*)"; then \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$(RAWNAME) $(NAMEVER)\*.patch $(NAMEVER)\*.patch.$(ARCH) || exit 1; \
else \
- toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME) $($(NOHOSTPKG)_NAME)\*.patch $($(NOHOSTPKG)_NAME)\*.patch.$(ARCH) || exit 1; \
- if test -d $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME)/$(NAMEVER); then \
- toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME)/$(NAMEVER) \*.patch \*.patch.$(ARCH) || exit 1; \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$(RAWNAME) $(RAWNAME)\*.patch $(RAWNAME)\*.patch.$(ARCH) || exit 1; \
+ if test -d $($(PKG)_DIR_PREFIX)/$(RAWNAME)/$(NAMEVER); then \
+ toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$(RAWNAME)/$(NAMEVER) \*.patch \*.patch.$(ARCH) || exit 1; \
fi; \
fi; \
fi; \
@@ -515,7 +513,7 @@ $$($(2)_TARGET_INSTALL_HOST): PKG=$(2)
$$($(2)_TARGET_BUILD): PKG=$(2)
$$($(2)_TARGET_CONFIGURE): PKG=$(2)
$$($(2)_TARGET_PATCH): PKG=$(2)
-$$($(2)_TARGET_PATCH): NOHOSTPKG=$(3)
+$$($(2)_TARGET_PATCH): RAWNAME=$(subst host-,,$(1))
$$($(2)_TARGET_EXTRACT): PKG=$(2)
$$($(2)_TARGET_SOURCE): PKG=$(2)
$$($(2)_TARGET_UNINSTALL): PKG=$(2)
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 07/21] barebox: use = instead of := and re-indent
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (5 preceding siblings ...)
2011-05-16 20:21 ` [Buildroot] [PATCH 06/21] package: fix patching procedure for host packages Thomas Petazzoni
@ 2011-05-16 20:21 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 08/21] barebox: convert to GENTARGETS Thomas Petazzoni
` (15 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:21 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/barebox/barebox.mk | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index 7a2e02e..5a4f36a 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -4,12 +4,13 @@
#
#############################################################
-BAREBOX_VERSION:=2011.04.0
-BAREBOX_SOURCE:=barebox-$(BAREBOX_VERSION).tar.bz2
-BAREBOX_SITE:=http://www.barebox.org/download/
-BAREBOX_DIR:=$(BUILD_DIR)/barebox-$(BAREBOX_VERSION)
-BAREBOX_CAT:=$(BZCAT)
-BAREBOX_BOARD_DEFCONFIG:=$(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))
+BAREBOX_VERSION = 2011.04.0
+BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
+BAREBOX_SITE = http://www.barebox.org/download/
+BAREBOX_DIR = $(BUILD_DIR)/barebox-$(BAREBOX_VERSION)
+BAREBOX_CAT = $(BZCAT)
+
+BAREBOX_BOARD_DEFCONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))
ifeq ($(KERNEL_ARCH),i386)
BAREBOX_ARCH=x86
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 08/21] barebox: convert to GENTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (6 preceding siblings ...)
2011-05-16 20:21 ` [Buildroot] [PATCH 07/21] barebox: use = instead of := and re-indent Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 09/21] at91bootstrap: use = instead of := and indent properly Thomas Petazzoni
` (14 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/barebox/barebox.mk | 59 +++++++++++++++++++++-------------------------
1 files changed, 27 insertions(+), 32 deletions(-)
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index 5a4f36a..1a6dfbc 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -7,8 +7,11 @@
BAREBOX_VERSION = 2011.04.0
BAREBOX_SOURCE = barebox-$(BAREBOX_VERSION).tar.bz2
BAREBOX_SITE = http://www.barebox.org/download/
-BAREBOX_DIR = $(BUILD_DIR)/barebox-$(BAREBOX_VERSION)
-BAREBOX_CAT = $(BZCAT)
+
+BAREBOX_INSTALL_IMAGES = YES
+ifneq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
+BAREBOX_INSTALL_TARGET = NO
+endif
BAREBOX_BOARD_DEFCONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_BOARD_DEFCONFIG))
@@ -22,41 +25,33 @@ endif
BAREBOX_MAKE_FLAGS = ARCH=$(BAREBOX_ARCH) CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)"
-$(DL_DIR)/$(BAREBOX_SOURCE):
- $(call DOWNLOAD,$(BAREBOX_SITE),$(BAREBOX_SOURCE))
-
-$(BAREBOX_DIR)/.unpacked: $(DL_DIR)/$(BAREBOX_SOURCE)
- mkdir -p $(@D)
- $(INFLATE$(suffix $(BAREBOX_SOURCE))) $(DL_DIR)/$(BAREBOX_SOURCE) \
- | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
- touch $@
+define BAREBOX_CONFIGURE_CMDS
+ $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D) $(BAREBOX_BOARD_DEFCONFIG)_defconfig
+endef
-$(BAREBOX_DIR)/.patched: $(BAREBOX_DIR)/.unpacked
- toolchain/patch-kernel.sh $(BAREBOX_DIR) boot/barebox \
- barebox-$(BAREBOX_VERSION)-\*.patch \
- barebox-$(BAREBOX_VERSION)-\*.patch.$(ARCH)
- touch $@
-
-$(BAREBOX_DIR)/.configured: $(BAREBOX_DIR)/.patched
- $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR) $(BAREBOX_BOARD_DEFCONFIG)_defconfig
- touch $@
+ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
+define BAREBOX_BUILD_BAREBOXENV_CMDS
+ $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(@D)/bareboxenv \
+ $(@D)/scripts/bareboxenv.c
+endef
+endif
-$(BAREBOX_DIR)/.built: $(BAREBOX_DIR)/.configured
- $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(BAREBOX_DIR)
- touch $@
+define BAREBOX_BUILD_CMDS
+ $(BAREBOX_BUILD_BAREBOXENV_CMDS)
+ $(MAKE) $(BAREBOX_MAKE_FLAGS) -C $(@D)
+endef
-$(BAREBOX_DIR)/.installed: $(BAREBOX_DIR)/.built
- cp $(BAREBOX_DIR)/barebox.bin $(BINARIES_DIR)
- touch $@
+define BAREBOX_INSTALL_IMAGES_CMDS
+ cp $(@D)/barebox.bin $(BINARIES_DIR)
+endef
-# bareboxenv for the target
-$(TARGET_DIR)/usr/bin/bareboxenv: $(BAREBOX_DIR)/.configured
- mkdir -p $(@D)
- $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $@ \
- $(BAREBOX_DIR)/scripts/bareboxenv.c
+ifeq ($(BR2_TARGET_BAREBOX_BAREBOXENV),y)
+define BAREBOX_INSTALL_TARGET_CMDS
+ cp $(@D)/bareboxenv $(TARGET_DIR)/usr/bin
+endef
+endif
-barebox: $(BAREBOX_DIR)/.installed \
- $(if $(BR2_TARGET_BAREBOX_BAREBOXENV),$(TARGET_DIR)/usr/bin/bareboxenv)
+$(eval $(call GENTARGETS,boot,barebox))
ifeq ($(BR2_TARGET_BAREBOX),y)
TARGETS+=barebox
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 09/21] at91bootstrap: use = instead of := and indent properly
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (7 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 08/21] barebox: convert to GENTARGETS Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 10/21] at91bootstrap: convert to GENTARGETS Thomas Petazzoni
` (13 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/at91bootstrap/at91bootstrap.mk | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/boot/at91bootstrap/at91bootstrap.mk b/boot/at91bootstrap/at91bootstrap.mk
index 3d4308e..052d1bd 100644
--- a/boot/at91bootstrap/at91bootstrap.mk
+++ b/boot/at91bootstrap/at91bootstrap.mk
@@ -3,17 +3,17 @@
# at91bootstrap
#
#############################################################
-AT91BOOTSTRAP_VERSION:=1.16
-AT91BOOTSTRAP_NAME:=AT91Bootstrap$(AT91BOOTSTRAP_VERSION)
-AT91BOOTSTRAP_SITE:=http://www.atmel.com/dyn/resources/prod_documents/
-AT91BOOTSTRAP_SOURCE:=$(AT91BOOTSTRAP_NAME).zip
-AT91BOOTSTRAP_DIR:=$(BUILD_DIR)/at91bootstrap-$(AT91BOOTSTRAP_VERSION)
+AT91BOOTSTRAP_VERSION = 1.16
+AT91BOOTSTRAP_NAME = AT91Bootstrap$(AT91BOOTSTRAP_VERSION)
+AT91BOOTSTRAP_SITE = http://www.atmel.com/dyn/resources/prod_documents/
+AT91BOOTSTRAP_SOURCE = $(AT91BOOTSTRAP_NAME).zip
+AT91BOOTSTRAP_DIR = $(BUILD_DIR)/at91bootstrap-$(AT91BOOTSTRAP_VERSION)
-AT91BOOTSTRAP_BOARD:=$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))
-AT91BOOTSTRAP_MEMORY:=$(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY))
-AT91BOOTSTRAP_BINARY:=$(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin
-AT91BOOTSTRAP_BUILD_DIR:=$(AT91BOOTSTRAP_DIR)/board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY)
-AT91BOOTSTRAP_TARGET:=$(AT91BOOTSTRAP_BUILD_DIR)/$(AT91BOOTSTRAP_BINARY)
+AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))
+AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY))
+AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin
+AT91BOOTSTRAP_BUILD_DIR = $(AT91BOOTSTRAP_DIR)/board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY)
+AT91BOOTSTRAP_TARGET = $(AT91BOOTSTRAP_BUILD_DIR)/$(AT91BOOTSTRAP_BINARY)
$(DL_DIR)/$(AT91BOOTSTRAP_SOURCE):
$(call DOWNLOAD,$(AT91BOOTSTRAP_SITE),$(AT91BOOTSTRAP_SOURCE))
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 10/21] at91bootstrap: convert to GENTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (8 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 09/21] at91bootstrap: use = instead of := and indent properly Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 11/21] at91dataflashboot: use = instead of := and indent Thomas Petazzoni
` (12 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/at91bootstrap/at91bootstrap.mk | 53 ++++++++++++-----------------------
1 files changed, 18 insertions(+), 35 deletions(-)
diff --git a/boot/at91bootstrap/at91bootstrap.mk b/boot/at91bootstrap/at91bootstrap.mk
index 052d1bd..48fa4e0 100644
--- a/boot/at91bootstrap/at91bootstrap.mk
+++ b/boot/at91bootstrap/at91bootstrap.mk
@@ -4,49 +4,32 @@
#
#############################################################
AT91BOOTSTRAP_VERSION = 1.16
-AT91BOOTSTRAP_NAME = AT91Bootstrap$(AT91BOOTSTRAP_VERSION)
AT91BOOTSTRAP_SITE = http://www.atmel.com/dyn/resources/prod_documents/
-AT91BOOTSTRAP_SOURCE = $(AT91BOOTSTRAP_NAME).zip
-AT91BOOTSTRAP_DIR = $(BUILD_DIR)/at91bootstrap-$(AT91BOOTSTRAP_VERSION)
+AT91BOOTSTRAP_SOURCE = AT91Bootstrap$(AT91BOOTSTRAP_VERSION).zip
-AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))
-AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY))
-AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin
-AT91BOOTSTRAP_BUILD_DIR = $(AT91BOOTSTRAP_DIR)/board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY)
-AT91BOOTSTRAP_TARGET = $(AT91BOOTSTRAP_BUILD_DIR)/$(AT91BOOTSTRAP_BINARY)
+AT91BOOTSTRAP_BOARD = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_BOARD))
+AT91BOOTSTRAP_MEMORY = $(call qstrip,$(BR2_TARGET_AT91BOOTSTRAP_MEMORY))
+AT91BOOTSTRAP_MAKE_SUBDIR = board/$(AT91BOOTSTRAP_BOARD)/$(AT91BOOTSTRAP_MEMORY)
+AT91BOOTSTRAP_BINARY = $(AT91BOOTSTRAP_MAKE_SUBDIR)/$(AT91BOOTSTRAP_MEMORY)_$(AT91BOOTSTRAP_BOARD).bin
-$(DL_DIR)/$(AT91BOOTSTRAP_SOURCE):
- $(call DOWNLOAD,$(AT91BOOTSTRAP_SITE),$(AT91BOOTSTRAP_SOURCE))
+AT91BOOTSTRAP_INSTALL_IMAGES = YES
+AT91BOOTSTRAP_INSTALL_TARGET = NO
-$(AT91BOOTSTRAP_DIR)/.unpacked: $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE)
- mkdir -p $(BUILD_DIR)
+define AT91BOOTSTRAP_EXTRACT_CMDS
unzip -d $(BUILD_DIR) $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE)
- mv $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION) $(AT91BOOTSTRAP_DIR)
- touch $@
+ mv $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)/* $(@D)
+ rmdir $(BUILD_DIR)/Bootstrap-v$(AT91BOOTSTRAP_VERSION)
+endef
-$(AT91BOOTSTRAP_DIR)/.patched: $(AT91BOOTSTRAP_DIR)/.unpacked
- toolchain/patch-kernel.sh $(AT91BOOTSTRAP_DIR) boot/at91bootstrap/ at91bootstrap-$(AT91BOOTSTRAP_VERSION)\*.patch
- touch $@
+define AT91BOOTSTRAP_BUILD_CMDS
+ $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) -C $(@D)/$(AT91BOOTSTRAP_MAKE_SUBDIR)
+endef
-$(AT91BOOTSTRAP_TARGET): $(AT91BOOTSTRAP_DIR)/.patched
- $(MAKE) CROSS_COMPILE=$(TARGET_CROSS) \
- -C $(AT91BOOTSTRAP_BUILD_DIR)
+define AT91BOOTSTRAP_INSTALL_IMAGES_CMDS
+ cp $(@D)/$(AT91BOOTSTRAP_BINARY) $(BINARIES_DIR)
+endef
-$(BINARIES_DIR)/$(AT91BOOTSTRAP_BINARY): $(AT91BOOTSTRAP_TARGET)
- mkdir -p $(dir $@)
- cp $^ $@
-
-at91bootstrap: $(BINARIES_DIR)/$(AT91BOOTSTRAP_BINARY)
-
-at91bootstrap-source: $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE)
-
-at91bootstrap-unpacked: $(AT91BOOTSTRAP_DIR)/.unpacked
-
-at91bootstrap-clean:
- make -C $(AT91BOOTSTRAP_BUILD_DIR) clean
-
-at91bootstrap-dirclean:
- rm -rf $(AT91BOOTSTRAP_DIR)
+$(eval $(call GENTARGETS,boot,at91bootstrap))
#############################################################
#
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 11/21] at91dataflashboot: use = instead of := and indent
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (9 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 10/21] at91bootstrap: convert to GENTARGETS Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 12/21] at91dataflashboot: convert to GENTARGETS Thomas Petazzoni
` (11 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/at91dataflashboot/at91dataflashboot.mk | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/boot/at91dataflashboot/at91dataflashboot.mk b/boot/at91dataflashboot/at91dataflashboot.mk
index 32591f7..f6e9b67 100644
--- a/boot/at91dataflashboot/at91dataflashboot.mk
+++ b/boot/at91dataflashboot/at91dataflashboot.mk
@@ -3,12 +3,12 @@
# DataFlashBoot
#
#############################################################
-DATAFLASHBOOT_VERSION:=1.05
-DATAFLASHBOOT_NAME:=DataflashBoot-$(DATAFLASHBOOT_VERSION)
-DATAFLASHBOOT_SITE:=ftp://www.at91.com/pub/buildroot/
-DATAFLASHBOOT_SOURCE:=$(DATAFLASHBOOT_NAME).tar.bz2
-DATAFLASHBOOT_DIR:=$(BUILD_DIR)/at91dataflashboot-$(DATAFLASHBOOT_VERSION)
-DATAFLASHBOOT_BINARY:=$(DATAFLASHBOOT_NAME).bin
+DATAFLASHBOOT_VERSION = 1.05
+DATAFLASHBOOT_NAME = DataflashBoot-$(DATAFLASHBOOT_VERSION)
+DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot/
+DATAFLASHBOOT_SOURCE = $(DATAFLASHBOOT_NAME).tar.bz2
+DATAFLASHBOOT_DIR = $(BUILD_DIR)/at91dataflashboot-$(DATAFLASHBOOT_VERSION)
+DATAFLASHBOOT_BINARY = $(DATAFLASHBOOT_NAME).bin
$(DL_DIR)/$(DATAFLASHBOOT_SOURCE):
$(call DOWNLOAD,$(DATAFLASHBOOT_SITE),$(DATAFLASHBOOT_SOURCE))
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 12/21] at91dataflashboot: convert to GENTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (10 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 11/21] at91dataflashboot: use = instead of := and indent Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 13/21] syslinux: " Thomas Petazzoni
` (10 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
This commit converts the at91dataflashboot bootloader build process to
GENTARGETS. It also does the following changes :
* As the package directory name is at91dataflashboot, the
configuration options and make variables are renamed to
AT91DATAFLASHBOOT instead of DATAFLASHBOOT.
* Since the board selection in Kconfig wasn't used anywhere, get rid
of it. at91dataflashboot is only for AT91RM9200 apparently anyway.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/at91dataflashboot/Config.in | 24 +--------------
boot/at91dataflashboot/at91dataflashboot.mk | 44 ++++++++------------------
2 files changed, 15 insertions(+), 53 deletions(-)
diff --git a/boot/at91dataflashboot/Config.in b/boot/at91dataflashboot/Config.in
index 25b9723..88cd058 100644
--- a/boot/at91dataflashboot/Config.in
+++ b/boot/at91dataflashboot/Config.in
@@ -1,25 +1,3 @@
-menuconfig BR2_TARGET_DATAFLASHBOOT
+menuconfig BR2_TARGET_AT91DATAFLASHBOOT
depends on BR2_arm
bool "AT91 DataFlashBoot"
-
-if BR2_TARGET_DATAFLASHBOOT
-
-choice
- prompt "Target Architecture"
- default BR2_TARGET_DATAFLASHBOOT_AT91RM9200
- help
- Select Chip for which Dataflash boot should be built
- Currently only AT91RM9200 Supported
-
-config BR2_TARGET_DATAFLASHBOOT_AT91RM9200
- bool "AT91RM9200"
-
-config BR2_TARGET_DATAFLASHBOOT_AT91SAM9261
- bool "AT91SAM9261"
-
-config BR2_TARGET_DATAFLASHBOOT_AT91SAM9261S
- bool "AT91SAM9261S"
-
-endchoice
-
-endif # BR2_TARGET_DATAFLASHBOOT
diff --git a/boot/at91dataflashboot/at91dataflashboot.mk b/boot/at91dataflashboot/at91dataflashboot.mk
index f6e9b67..d27e9f3 100644
--- a/boot/at91dataflashboot/at91dataflashboot.mk
+++ b/boot/at91dataflashboot/at91dataflashboot.mk
@@ -3,44 +3,28 @@
# DataFlashBoot
#
#############################################################
-DATAFLASHBOOT_VERSION = 1.05
-DATAFLASHBOOT_NAME = DataflashBoot-$(DATAFLASHBOOT_VERSION)
-DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot/
-DATAFLASHBOOT_SOURCE = $(DATAFLASHBOOT_NAME).tar.bz2
-DATAFLASHBOOT_DIR = $(BUILD_DIR)/at91dataflashboot-$(DATAFLASHBOOT_VERSION)
-DATAFLASHBOOT_BINARY = $(DATAFLASHBOOT_NAME).bin
+AT91DATAFLASHBOOT_VERSION = 1.05
+AT91DATAFLASHBOOT_SOURCE = DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).tar.bz2
+AT91DATAFLASHBOOT_SITE = ftp://www.at91.com/pub/buildroot/
-$(DL_DIR)/$(DATAFLASHBOOT_SOURCE):
- $(call DOWNLOAD,$(DATAFLASHBOOT_SITE),$(DATAFLASHBOOT_SOURCE))
+AT91DATAFLASHBOOT_INSTALL_TARGET = NO
+AT91DATAFLASHBOOT_INSTALL_IMAGES = YES
-$(DATAFLASHBOOT_DIR)/.unpacked: $(DL_DIR)/$(DATAFLASHBOOT_SOURCE)
- mkdir -p $(@D)
- $(BZCAT) $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
- touch $@
+define AT91DATAFLASHBOOT_BUILD_CMDS
+ make -C $(@D) CROSS_COMPILE=$(TARGET_CROSS)
+endef
-$(DATAFLASHBOOT_DIR)/.patched: $(DATAFLASHBOOT_DIR)/.unpacked
- toolchain/patch-kernel.sh $(@D) boot/at91dataflashboot \
- at91dataflashboot-$(DATAFLASHBOOT_VERSION)-\*.patch
- touch $@
+define AT91DATAFLASHBOOT_INSTALL_IMAGES_CMDS
+ cp $(@D)/DataflashBoot-$(AT91DATAFLASHBOOT_VERSION).bin $(BINARIES_DIR)
+endef
-$(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY): $(DATAFLASHBOOT_DIR)/.patched
- ls $(DATAFLASHBOOT_DIR)/.unpacked
- make -C $(DATAFLASHBOOT_DIR) CROSS_COMPILE=$(TARGET_CROSS)
-
-dataflashboot-clean:
- make -C $(DATAFLASHBOOT_DIR) clean
-
-dataflashboot-dirclean:
- rm -rf $(DATAFLASHBOOT_DIR)
-
-dataflash: $(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY)
- cp $(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY) $(BINARIES_DIR)
+$(eval $(call GENTARGETS,boot,at91dataflashboot))
#############################################################
#
# Toplevel Makefile options
#
#############################################################
-ifeq ($(BR2_TARGET_DATAFLASHBOOT),y)
-TARGETS+=dataflash
+ifeq ($(BR2_TARGET_AT91DATAFLASHBOOT),y)
+TARGETS+=at91dataflashboot
endif
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 13/21] syslinux: convert to GENTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (11 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 12/21] at91dataflashboot: convert to GENTARGETS Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 14/21] grub: convert to AUTOTARGETS Thomas Petazzoni
` (9 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Moreover, the installation of pxelinux and/or isolinux is now selected
to suboptions, as we traditionally do for other packages. This allows
to have a single option (BR2_TARGET_SYSLINUX) that enables the
syslinux package.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/syslinux/Config.in | 14 ++++++++----
boot/syslinux/syslinux.mk | 50 +++++++++++++++-----------------------------
2 files changed, 26 insertions(+), 38 deletions(-)
diff --git a/boot/syslinux/Config.in b/boot/syslinux/Config.in
index 5650f91..60f3b8f 100644
--- a/boot/syslinux/Config.in
+++ b/boot/syslinux/Config.in
@@ -5,8 +5,12 @@ config BR2_TARGET_SYSLINUX
The syslinux bootloader for x86 systems.
This includes: syslinux, pxelinux, extlinux.
-config BR2_TARGET_PXELINUX
- bool "pxelinux"
- depends on BR2_i386 || BR2_x86_64
- help
- The pxelinux loader for x86 systems.
+config BR2_TARGET_SYSLINUX_ISOLINUX
+ bool "Install isolinux"
+ depends on BR2_TARGET_SYSLINUX
+ default y
+
+config BR2_TARGET_SYSLINUX_PXELINUX
+ bool "Install pxelinux"
+ depends on BR2_TARGET_SYSLINUX
+ default y
diff --git a/boot/syslinux/syslinux.mk b/boot/syslinux/syslinux.mk
index 192e905..d1b2907 100644
--- a/boot/syslinux/syslinux.mk
+++ b/boot/syslinux/syslinux.mk
@@ -4,42 +4,29 @@
#
#############################################################
-SYSLINUX_VERSION:=3.85
-SYSLINUX_DIR=$(BUILD_DIR)/syslinux-$(SYSLINUX_VERSION)
-SYSLINUX_SOURCE=syslinux-$(SYSLINUX_VERSION).tar.bz2
-SYSLINUX_CAT:=$(BZCAT)
-SYSLINUX_SITE=$(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/3.xx/
+SYSLINUX_VERSION = 3.85
+SYSLINUX_SOURCE = syslinux-$(SYSLINUX_VERSION).tar.bz2
+SYSLINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux/3.xx/
-$(DL_DIR)/$(SYSLINUX_SOURCE):
- $(call DOWNLOAD,$(SYSLINUX_SITE),$(SYSLINUX_SOURCE))
+SYSLINUX_INSTALL_TARGET = NO
+SYSLINUX_INSTALL_IMAGES = YES
-syslinux-source: $(DL_DIR)/$(SYSLINUX_SOURCE)
+SYSLINUX_DEPENDENCIES = host-nasm
-$(SYSLINUX_DIR)/.unpacked: $(DL_DIR)/$(SYSLINUX_SOURCE) $(SYSLINUX_PATCH)
- mkdir -p $(@D)
- $(SYSLINUX_CAT) $(DL_DIR)/$(SYSLINUX_SOURCE) | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(@D) boot/syslinux/ \*.patch
- touch -c $@
+define SYSLINUX_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC)" AR="$(HOSTAR)" -C $(@D)
+endef
-$(SYSLINUX_DIR)/.compiled: $(SYSLINUX_DIR)/.unpacked
- $(TARGET_MAKE_ENV) $(MAKE) CC="$(HOSTCC)" AR="$(HOSTAR)" -C $(SYSLINUX_DIR)
- touch -c $@
+SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += isolinux.bin
+SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += pxelinux.bin
-$(BINARIES_DIR)/isolinux.bin: $(SYSLINUX_DIR)/.compiled
- cp -a $(SYSLINUX_DIR)/core/isolinux.bin $@
+define SYSLINUX_INSTALL_IMAGES_CMDS
+ for i in $(SYSLINUX_IMAGES-y); do \
+ $(INSTALL) -D -m 0755 $(@D)/core/$$i $(BINARIES_DIR)/`basename $$i`; \
+ done
+endef
-$(BINARIES_DIR)/pxelinux.bin: $(SYSLINUX_DIR)/.compiled
- cp -a $(SYSLINUX_DIR)/core/pxelinux.bin $@
-
-syslinux: host-nasm $(BINARIES_DIR)/isolinux.bin
-pxelinux: host-nasm $(BINARIES_DIR)/pxelinux.bin
-
-pxelinux-clean syslinux-clean:
- rm -f $(BINARIES_DIR)/isolinux.bin $(BINARIES_DIR)/pxelinux.bin
- -$(MAKE) -C $(SYSLINUX_DIR) clean
-
-pxelinux-dirclean syslinux-dirclean:
- rm -rf $(SYSLINUX_DIR)
+$(eval $(call GENTARGETS,boot,syslinux))
#############################################################
#
@@ -49,6 +36,3 @@ pxelinux-dirclean syslinux-dirclean:
ifeq ($(BR2_TARGET_SYSLINUX),y)
TARGETS+=syslinux
endif
-ifeq ($(BR2_TARGET_PXELINUX),y)
-TARGETS+=pxelinux
-endif
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 14/21] grub: convert to AUTOTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (12 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 13/21] syslinux: " Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 15/21] grub2: remove package Thomas Petazzoni
` (8 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/grub/grub.500-build-fix.patch | 14 +++++
boot/grub/grub.mk | 102 ++++++++++++++----------------------
2 files changed, 53 insertions(+), 63 deletions(-)
create mode 100644 boot/grub/grub.500-build-fix.patch
diff --git a/boot/grub/grub.500-build-fix.patch b/boot/grub/grub.500-build-fix.patch
new file mode 100644
index 0000000..b096b7b
--- /dev/null
+++ b/boot/grub/grub.500-build-fix.patch
@@ -0,0 +1,14 @@
+--- grub-0.97.orig/netboot/main.c 2004-05-21 00:19:33.000000000 +0200
++++ grub-0.97/netboot/main.c 2007-07-20 02:31:28.000000000 +0200
+@@ -54,9 +54,9 @@
+
+ static int vendorext_isvalid;
+ static unsigned long netmask;
+-static struct bootpd_t bootp_data;
++struct bootpd_t bootp_data;
+ static unsigned long xid;
+-static unsigned char *end_of_rfc1533 = NULL;
++unsigned char *end_of_rfc1533 = NULL;
+
+ #ifndef NO_DHCP_SUPPORT
+ #endif /* NO_DHCP_SUPPORT */
diff --git a/boot/grub/grub.mk b/boot/grub/grub.mk
index 9461d1c..4938416 100644
--- a/boot/grub/grub.mk
+++ b/boot/grub/grub.mk
@@ -3,23 +3,17 @@
# grub
#
#############################################################
-GRUB_SOURCE:=grub_0.97.orig.tar.gz
-GRUB_PATCH:=grub_0.97-35.diff.gz
-GRUB_SITE:=http://snapshot.debian.org/archive/debian/20080329T000000Z/pool/main/g/grub/
-GRUB_PATCH_SITE:=$(GRUB_SITE)
-GRUB_CAT:=$(ZCAT)
-GRUB_DIR:=$(BUILD_DIR)/grub-0.97
-GRUB_BINARY:=grub/grub
-GRUB_TARGET_BINARY:=sbin/grub
-GRUB_SPLASHIMAGE=$(TOPDIR)/boot/grub/splash.xpm.gz
+GRUB_VERSION = 0.97
+GRUB_SOURCE = grub_$(GRUB_VERSION).orig.tar.gz
+GRUB_PATCH = grub_$(GRUB_VERSION)-35.diff.gz
+GRUB_SITE = http://snapshot.debian.org/archive/debian/20080329T000000Z/pool/main/g/grub/
GRUB_CFLAGS=-DSUPPORT_LOOPDEV
ifeq ($(BR2_LARGEFILE),)
GRUB_CFLAGS+=-U_FILE_OFFSET_BITS
endif
-
GRUB_CONFIG-$(BR2_TARGET_GRUB_SPLASH) += --enable-graphics
GRUB_CONFIG-$(BR2_TARGET_GRUB_DISKLESS) += --enable-diskless
GRUB_CONFIG-$(BR2_TARGET_GRUB_3c595) += --enable-3c595
@@ -44,69 +38,51 @@ GRUB_CONFIG-$(BR2_TARGET_GRUB_undi) += --enable-undi
GRUB_CONFIG-$(BR2_TARGET_GRUB_via_rhine) += --enable-via-rhine
GRUB_CONFIG-$(BR2_TARGET_GRUB_w89c840) += --enable-w89c840
-$(DL_DIR)/$(GRUB_SOURCE):
- $(call DOWNLOAD,$(GRUB_SITE),$(GRUB_SOURCE))
-
-$(DL_DIR)/$(GRUB_PATCH):
- $(call DOWNLOAD,$(GRUB_PATCH_SITE),$(GRUB_PATCH))
+define GRUB_DEBIAN_PATCHES
+ # Apply the patches from the Debian patch
+ (cd $(@D) ; for f in `cat debian/patches/00list | grep -v ^#` ; do \
+ cat debian/patches/$$f | patch -p1 ; \
+ done)
+endef
-grub-source: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
+GRUB_POST_PATCH_HOOKS += GRUB_DEBIAN_PATCHES
-$(GRUB_DIR)/.unpacked: $(DL_DIR)/$(GRUB_SOURCE) $(DL_DIR)/$(GRUB_PATCH)
- $(GRUB_CAT) $(DL_DIR)/$(GRUB_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- toolchain/patch-kernel.sh $(GRUB_DIR) $(DL_DIR) $(GRUB_PATCH)
- for i in `grep -v "^#" $(GRUB_DIR)/debian/patches/00list`; do \
- cat $(GRUB_DIR)/debian/patches/$$i | patch -p1 -d $(GRUB_DIR); \
- done
- toolchain/patch-kernel.sh $(GRUB_DIR) boot/grub grub.\*.patch{,.bz2}
- touch $@
+GRUB_CONF_ENV = \
+ CFLAGS="$(TARGET_CFLAGS) $(GRUB_CFLAGS)"
-$(GRUB_DIR)/.configured: $(GRUB_DIR)/.unpacked
- (cd $(GRUB_DIR); rm -rf config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS)" \
- CPPFLAGS="$(GRUB_CFLAGS)" \
- ./configure $(QUIET) \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=/ \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --disable-auto-linux-mem-opt \
- $(GRUB_CONFIG-y) \
- )
- touch $@
+GRUB_CONF_OPT = \
+ --disable-auto-linux-mem-opt \
+ $(GRUB_CONFIG-y)
-$(GRUB_DIR)/$(GRUB_BINARY): $(GRUB_DIR)/.configured
- $(MAKE) CC="$(TARGET_CC)" -C $(GRUB_DIR)
- rm -f $(GRUB_DIR)/$(GRUB_BINARY)
- $(MAKE) CC="$(TARGET_CC)" CFLAGS+=-static -C $(GRUB_DIR)/grub grub
- mkdir -p $(dir $(STAGING_DIR)/$(GRUB_TARGET_BINARY))
- mv $(GRUB_DIR)/$(GRUB_BINARY) $(STAGING_DIR)/$(GRUB_TARGET_BINARY).static
- $(MAKE) CC="$(TARGET_CC)" -C $(GRUB_DIR)/grub
+define GRUB_INSTALL_STAGING_CMDS
+ install -m 0755 -D $(@D)/grub/grub $(STAGING_DIR)/sbin/grub
+endef
-$(GRUB_DIR)/.installed: $(GRUB_DIR)/$(GRUB_BINARY)
- cp $(GRUB_DIR)/$(GRUB_BINARY) $(TARGET_DIR)/$(GRUB_TARGET_BINARY)
- test -d $(TARGET_DIR)/boot/grub || mkdir -p $(TARGET_DIR)/boot/grub
- cp $(GRUB_DIR)/stage1/stage1 $(GRUB_DIR)/stage2/*1_5 $(GRUB_DIR)/stage2/stage2 $(TARGET_DIR)/boot/grub/
ifeq ($(BR2_TARGET_GRUB_SPLASH),y)
- test -f $(TARGET_DIR)/boot/grub/$(GRUB_SPLASHIMAGE) || \
- cp $(GRUB_SPLASHIMAGE) $(TARGET_DIR)/boot/grub/
+define GRUB_INSTALL_SPLASH
+ cp boot/grub/splash.xpm.gz $(TARGET_DIR)/boot/grub/
+endef
endif
- touch $@
-grub: $(GRUB_DIR)/.installed
+define GRUB_INSTALL_TARGET_CMDS
+ install -m 0755 -D $(@D)/grub/grub $(TARGET_DIR)/sbin/grub
+ mkdir -p $(TARGET_DIR)/boot/grub
+ cp $(@D)/stage1/stage1 $(TARGET_DIR)/boot/grub
+ cp $(@D)/stage2/*1_5 $(TARGET_DIR)/boot/grub
+ cp $(@D)/stage2/stage2 $(TARGET_DIR)/boot/grub
+ $(GRUB_INSTALL_SPLASH)
+endef
+
+define GRUB_UNINSTALL_STAGING_CMDS
+ rm -f $(STAGING_DIR)/sbin/grub
+endef
-grub-clean:
- $(MAKE) DESTDIR=$(TARGET_DIR) CC="$(TARGET_CC)" -C $(GRUB_DIR) uninstall
- -$(MAKE) -C $(GRUB_DIR) clean
- rm -f $(TARGET_DIR)/boot/grub/$(GRUB_SPLASHIMAGE) \
- $(TARGET_DIR)/sbin/$(GRUB_BINARY) \
- $(TARGET_DIR)/boot/grub/{stage{1,2},*1_5}
+define GRUB_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/sbin/grub
+ rm -rf $(TARGET_DIR)/boot/grub
+endef
-grub-dirclean:
- rm -rf $(GRUB_DIR)
+$(eval $(call AUTOTARGETS,boot,grub))
#############################################################
#
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 15/21] grub2: remove package
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (13 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 14/21] grub: convert to AUTOTARGETS Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 16/21] u-boot: convert to GENTARGETS Thomas Petazzoni
` (7 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Grub 2 has been marked BROKEN in June 2010, and nobody cared to fix it
since then.
At that time, it was marked broken because the build process needed a
Ruby interpreter available on the host, and it's really a pain that
building a bootloader needs such a thing.
I've tried to upgrade the package to Grub2 1.99-rcX, and now it does
not need a Ruby interpreter anymore, but instead requires a tool
called "autogen", which itself needs the Guile Scheme interpreter.
Since we haven't heard any complaints about Grub2 being marked broken,
and since it's such a pain to package, let's get rid of it. Of course,
anybody interested in Grub2 is invited to contribute a working
package.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/Config.in | 1 -
boot/grub2/Config.in | 9 -----
boot/grub2/grub2.mk | 93 --------------------------------------------------
3 files changed, 0 insertions(+), 103 deletions(-)
delete mode 100644 boot/grub2/Config.in
delete mode 100644 boot/grub2/grub2.mk
diff --git a/boot/Config.in b/boot/Config.in
index 6bcc98a..67ab8ac 100644
--- a/boot/Config.in
+++ b/boot/Config.in
@@ -2,7 +2,6 @@ menu "Bootloaders"
source "boot/barebox/Config.in"
source "boot/grub/Config.in"
-source "boot/grub2/Config.in"
source "boot/syslinux/Config.in"
source "boot/u-boot/Config.in"
source "boot/at91bootstrap/Config.in"
diff --git a/boot/grub2/Config.in b/boot/grub2/Config.in
deleted file mode 100644
index 1301b5b..0000000
--- a/boot/grub2/Config.in
+++ /dev/null
@@ -1,9 +0,0 @@
-config BR2_TARGET_GRUB2
- bool "grub2"
- # Only supports PC, Mac (Power, x86 and x86-64), Pegasos
- depends on BR2_i386 || BR2_powerpc
- # Build process is broken (./configure doesn't work, Ruby
- # required, etc.)
- depends on BROKEN
- help
- The GRand Unified Bootloader for x86 systems, take #2.
diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk
deleted file mode 100644
index f939d9a..0000000
--- a/boot/grub2/grub2.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#############################################################
-#
-# grub2
-#
-# TODO
-#
-# * grub2's autogen uses ruby, which isn't part of the core Debian
-# installation. So either decide it is a requirement for Buildroot,
-# or build it for the host.
-#
-# * improve the installation procedure. For the moment, it just
-# installs everything in $(TARGET_DIR).
-#
-#############################################################
-GRUB2_SOURCE:=grub2_1.98.orig.tar.gz
-GRUB2_PATCH:=grub2_1.98-1.diff.gz
-GRUB2_SITE=$(BR2_DEBIAN_MIRROR)/debian/pool/main/g/grub2
-GRUB2_PATCH_SITE:=$(GRUB2_SITE)
-GRUB2_CAT:=$(ZCAT)
-GRUB2_DIR:=$(BUILD_DIR)/grub-1.98
-
-GRUB2_CFLAGS=-DSUPPORT_LOOPDEV
-ifeq ($(BR2_LARGEFILE),)
-GRUB2_CFLAGS+=-U_FILE_OFFSET_BITS
-endif
-
-$(DL_DIR)/$(GRUB2_SOURCE):
- $(call DOWNLOAD,$(GRUB2_SITE),$(GRUB2_SOURCE))
-
-$(DL_DIR)/$(GRUB2_PATCH):
- $(call DOWNLOAD,$(GRUB2_PATCH_SITE),$(GRUB2_PATCH))
-
-grub2-source: $(DL_DIR)/$(GRUB2_SOURCE) $(DL_DIR)/$(GRUB2_PATCH)
-
-$(GRUB2_DIR)/.unpacked: $(DL_DIR)/$(GRUB2_SOURCE) $(DL_DIR)/$(GRUB2_PATCH)
- mkdir -p $(@D)
- $(GRUB2_CAT) $(DL_DIR)/$(GRUB2_SOURCE) | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) -xvf -
- toolchain/patch-kernel.sh $(@D) $(DL_DIR) $(GRUB2_PATCH)
- for i in `grep -v "^#" $(@D)/debian/patches/00list`; do \
- cat $(@D)/debian/patches/$$i | patch -p1 -d $(@D); \
- done
- toolchain/patch-kernel.sh $(@D) boot/grub2 grub-\*.patch
- touch $@
-
-$(GRUB2_DIR)/.configured: $(GRUB2_DIR)/.unpacked
- (cd $(GRUB2_DIR); rm -rf config.cache; \
- $(TARGET_CONFIGURE_OPTS) ; \
- ./autogen.sh ; \
- $(TARGET_CONFIGURE_OPTS) \
- $(TARGET_CONFIGURE_ARGS) \
- CPPFLAGS="$(GRUB2_CFLAGS)" \
- grub_cv_i386_check_nested_functions=no \
- ./configure $(QUIET) \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --prefix=/ \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --disable-grub-mkfont \
- --disable-grub-fstest \
- --disable-grub-emu-usb \
- --disable-werror \
- $(DISABLE_LARGEFILE) \
- $(GRUB2_CONFIG-y) \
- )
- touch $@
-
-$(GRUB2_DIR)/.compiled: $(GRUB2_DIR)/.configured
- $(MAKE) CC="$(TARGET_CC)" -C $(@D)
- touch $@
-
-$(GRUB2_DIR)/.installed: $(GRUB2_DIR)/.compiled
- $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
- touch $@
-
-grub2: host-automake host-autoconf $(GRUB2_DIR)/.installed
-
-grub2-clean:
- $(MAKE) DESTDIR=$(TARGET_DIR) CC="$(TARGET_CC)" -C $(GRUB2_DIR) uninstall
- -$(MAKE) -C $(GRUB2_DIR) clean
-
-grub2-dirclean:
- rm -rf $(GRUB2_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_TARGET_GRUB2),y)
-TARGETS+=grub2
-endif
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 16/21] u-boot: convert to GENTARGETS
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (14 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 15/21] grub2: remove package Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 17/21] uboot-mkimage: new package Thomas Petazzoni
` (6 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
The feature of building mkimage for the target is removed, it wasn't
building with current U-Boot, and doesn't make a lot of sense (mkimage
is needed only to prepare a kernel image, or an U-Boot script).
The feature of building mkimage for the host is moved to a proper
package. It duplicates a few things (U-Boot URL, etc.) but it makes
things a lot cleaner than having it handled by boot/u-boot/u-boot.mk.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
boot/u-boot/Config.in | 5 -
boot/u-boot/u-boot.mk | 218 +++++++++++++++++--------------------------------
2 files changed, 74 insertions(+), 149 deletions(-)
diff --git a/boot/u-boot/Config.in b/boot/u-boot/Config.in
index 00a4a5f..aada346 100644
--- a/boot/u-boot/Config.in
+++ b/boot/u-boot/Config.in
@@ -77,11 +77,6 @@ config BR2_TARGET_UBOOT_FORMAT_LDR
endchoice
-config BR2_TARGET_UBOOT_TOOL_MKIMAGE
- bool "mkimage tool in target"
- help
- Install mkimage tool in target.
-
config BR2_TARGET_UBOOT_TOOL_ENV
bool "fw_printenv tool in target"
help
diff --git a/boot/u-boot/u-boot.mk b/boot/u-boot/u-boot.mk
index 047f2c8..215b1c7 100644
--- a/boot/u-boot/u-boot.mk
+++ b/boot/u-boot/u-boot.mk
@@ -3,43 +3,31 @@
# U-Boot
#
#############################################################
-U_BOOT_VERSION:=$(call qstrip,$(BR2_TARGET_UBOOT_VERSION))
-U_BOOT_BOARD_NAME:=$(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME))
-
-# U-Boot may not be selected in the configuration, but mkimage might
-# be needed to build/prepare a kernel image. In this case, we just
-# pick some random stable U-Boot version that will be used just to
-# build mkimage.
-ifeq ($(U_BOOT_VERSION),)
-U_BOOT_VERSION=2011.03
-endif
+U_BOOT_VERSION = $(call qstrip,$(BR2_TARGET_UBOOT_VERSION))
+U_BOOT_BOARD_NAME = $(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME))
+
+U_BOOT_INSTALL_IMAGES = YES
ifeq ($(U_BOOT_VERSION),custom)
# Handle custom U-Boot tarballs as specified by the configuration
-U_BOOT_TARBALL=$(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION))
-U_BOOT_SITE:=$(dir $(U_BOOT_TARBALL))
-U_BOOT_SOURCE:=$(notdir $(U_BOOT_TARBALL))
+U_BOOT_TARBALL = $(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION))
+U_BOOT_SITE = $(dir $(U_BOOT_TARBALL))
+U_BOOT_SOURCE = $(notdir $(U_BOOT_TARBALL))
else
# Handle stable official U-Boot versions
-U_BOOT_SITE:=ftp://ftp.denx.de/pub/u-boot
-U_BOOT_SOURCE:=u-boot-$(U_BOOT_VERSION).tar.bz2
+U_BOOT_SITE = ftp://ftp.denx.de/pub/u-boot
+U_BOOT_SOURCE = u-boot-$(U_BOOT_VERSION).tar.bz2
endif
-U_BOOT_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION)
-U_BOOT_CAT:=$(BZCAT)
-
ifeq ($(BR2_TARGET_UBOOT_FORMAT_KWB),y)
-U_BOOT_BIN:=u-boot.kwb
-U_BOOT_MAKE_OPT:=$(U_BOOT_BIN)
+U_BOOT_BIN = u-boot.kwb
+U_BOOT_MAKE_TARGET = $(U_BOOT_BIN)
else ifeq ($(BR2_TARGET_UBOOT_FORMAT_LDR),y)
-U_BOOT_BIN:=u-boot.ldr
+U_BOOT_BIN = u-boot.ldr
else
-U_BOOT_BIN:=u-boot.bin
+U_BOOT_BIN = u-boot.bin
endif
-MKIMAGE:=$(HOST_DIR)/usr/bin/mkimage
-
-U_BOOT_TARGETS:=$(BINARIES_DIR)/$(U_BOOT_BIN) $(MKIMAGE)
U_BOOT_ARCH=$(KERNEL_ARCH)
# u-boot in the past used arch=ppc for powerpc
@@ -47,139 +35,81 @@ ifneq ($(findstring x2010.03,x$(U_BOOT_VERSION)),)
U_BOOT_ARCH=$(KERNEL_ARCH:powerpc=ppc)
endif
-U_BOOT_INC_CONF_FILE:=$(U_BOOT_DIR)/include/config.h
-
-ifeq ($(BR2_TARGET_UBOOT_TOOL_MKIMAGE),y)
-U_BOOT_TARGETS+=$(TARGET_DIR)/usr/bin/mkimage
-endif
-ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y)
-U_BOOT_TARGETS+=$(TARGET_DIR)/usr/sbin/fw_printenv
-endif
-
U_BOOT_CONFIGURE_OPTS += CONFIG_NOSOFTFLOAT=1
-
-# Define a helper function
+U_BOOT_MAKE_OPTS += \
+ CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
+ ARCH=$(U_BOOT_ARCH)
+
+# Helper function to fill the U-Boot config.h file.
+# Argument 1: option name
+# Argument 2: option value
+# If the option value is empty, this function does nothing.
define insert_define
- at echo "#ifdef $(strip $(1))" >> $(U_BOOT_INC_CONF_FILE)
- at echo "#undef $(strip $(1))" >> $(U_BOOT_INC_CONF_FILE)
- at echo "#endif" >> $(U_BOOT_INC_CONF_FILE)
- at echo '#define $(strip $(1)) $(call qstrip,$(2))' >> $(U_BOOT_INC_CONF_FILE)
+$(if $(call qstrip,$(2)),
+ @echo "#ifdef $(strip $(1))" >> $(@D)/include/config.h
+ @echo "#undef $(strip $(1))" >> $(@D)/include/config.h
+ @echo "#endif" >> $(@D)/include/config.h
+ @echo '#define $(strip $(1)) $(call qstrip,$(2))' >> $(@D)/include/config.h)
endef
-$(DL_DIR)/$(U_BOOT_SOURCE):
- $(call DOWNLOAD,$(U_BOOT_SITE),$(U_BOOT_SOURCE))
-
-$(U_BOOT_DIR)/.unpacked: $(DL_DIR)/$(U_BOOT_SOURCE)
- mkdir -p $(@D)
- $(INFLATE$(suffix $(U_BOOT_SOURCE))) $(DL_DIR)/$(U_BOOT_SOURCE) \
- | tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
- touch $@
-
-$(U_BOOT_DIR)/.patched: $(U_BOOT_DIR)/.unpacked
- toolchain/patch-kernel.sh $(U_BOOT_DIR) boot/u-boot \
- u-boot-$(U_BOOT_VERSION)-\*.patch \
- u-boot-$(U_BOOT_VERSION)-\*.patch.$(ARCH)
ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR)),)
- toolchain/patch-kernel.sh $(U_BOOT_DIR) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) u-boot-$(U_BOOT_VERSION)-\*.patch
-endif
- touch $@
+define U_BOOT_APPLY_CUSTOM_PATCHES
+ toolchain/patch-kernel.sh $(@D) $(BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR) \
+ u-boot-$(U_BOOT_VERSION)-\*.patch
+endef
-$(U_BOOT_DIR)/.configured: $(U_BOOT_DIR)/.patched
-ifeq ($(U_BOOT_BOARD_NAME),)
- $(error NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting)
+U_BOOT_POST_PATCH_HOOKS += U_BOOT_APPLY_CUSTOM_PATCHES
endif
- $(TARGET_CONFIGURE_OPTS) \
- $(U_BOOT_CONFIGURE_OPTS) \
- $(MAKE) -C $(U_BOOT_DIR) \
- CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(U_BOOT_ARCH) \
+
+define U_BOOT_CONFIGURE_CMDS
+ $(TARGET_CONFIGURE_OPTS) $(U_BOOT_CONFIGURE_OPTS) \
+ $(MAKE) -C $(@D) $(U_BOOT_MAKE_OPTS) \
$(U_BOOT_BOARD_NAME)_config
- touch $@
-
-$(U_BOOT_DIR)/.header_modified: $(U_BOOT_DIR)/.configured
- # Modify configuration header in $(U_BOOT_INC_CONF_FILE)
-ifdef BR2_TARGET_UBOOT_NETWORK
- @echo >> $(U_BOOT_INC_CONF_FILE)
- @echo "/* Add a wrapper around the values Buildroot sets. */" >> $(U_BOOT_INC_CONF_FILE)
- @echo "#ifndef __BR2_ADDED_CONFIG_H" >> $(U_BOOT_INC_CONF_FILE)
- @echo "#define __BR2_ADDED_CONFIG_H" >> $(U_BOOT_INC_CONF_FILE)
- $(call insert_define, DATE, $(DATE))
- $(call insert_define, CONFIG_LOAD_SCRIPTS, 1)
-ifneq ($(strip $(BR2_TARGET_UBOOT_IPADDR)),"")
- $(call insert_define, CONFIG_IPADDR, $(BR2_TARGET_UBOOT_IPADDR))
-endif
-ifneq ($(strip $(BR2_TARGET_UBOOT_GATEWAY)),"")
- $(call insert_define, CONFIG_GATEWAYIP, $(BR2_TARGET_UBOOT_GATEWAY))
-endif
-ifneq ($(strip $(BR2_TARGET_UBOOT_NETMASK)),"")
- $(call insert_define, CONFIG_NETMASK, $(BR2_TARGET_UBOOT_NETMASK))
-endif
-ifneq ($(strip $(BR2_TARGET_UBOOT_SERVERIP)),"")
- $(call insert_define, CONFIG_SERVERIP, $(BR2_TARGET_UBOOT_SERVERIP))
-endif
-ifneq ($(strip $(BR2_TARGET_UBOOT_ETHADDR)),"")
- $(call insert_define, CONFIG_ETHADDR, $(BR2_TARGET_UBOOT_ETHADDR))
-endif
-ifneq ($(strip $(BR2_TARGET_UBOOT_ETH1ADDR)),"")
- $(call insert_define, CONFIG_ETH1ADDR, $(BR2_TARGET_UBOOT_ETH1ADDR))
-endif
- @echo "#endif /* __BR2_ADDED_CONFIG_H */" >> $(U_BOOT_INC_CONF_FILE)
-endif # BR2_TARGET_UBOOT_NETWORK
- touch $@
-
-# Build U-Boot itself
-$(U_BOOT_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/.header_modified
- $(TARGET_CONFIGURE_OPTS) \
- $(U_BOOT_CONFIGURE_OPTS) \
- $(MAKE) CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" ARCH=$(U_BOOT_ARCH) \
- $(U_BOOT_MAKE_OPT) -C $(U_BOOT_DIR)
-
-# Copy the result to the images/ directory
-$(BINARIES_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/$(U_BOOT_BIN)
- rm -f $(BINARIES_DIR)/$(U_BOOT_BIN)
- cp -dpf $(U_BOOT_DIR)/$(U_BOOT_BIN) $(BINARIES_DIR)/
-
-# Build just mkimage for the host. It might have already been built by
-# the U-Boot build procedure, but mkimage may also be needed even if
-# U-Boot isn't selected in the configuration, to generate a kernel
-# uImage.
-$(MKIMAGE): $(U_BOOT_DIR)/.patched
- mkdir -p $(@D)
- $(MAKE) -C $(U_BOOT_DIR) CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(U_BOOT_ARCH) tools
- cp -dpf $(U_BOOT_DIR)/tools/mkimage $(@D)
-
-# Build manually mkimage for the target
-$(TARGET_DIR)/usr/bin/mkimage: $(U_BOOT_DIR)/.configured
- mkdir -p $(@D)
- $(TARGET_CC) -I$(U_BOOT_DIR)/include -I$(U_BOOT_DIR)/tools \
- -DUSE_HOSTCC -o $@ \
- $(U_BOOT_DIR)/common/image.c \
- $(wildcard $(addprefix $(U_BOOT_DIR)/tools/,default_image.c \
- fit_image.c imximage.c kwbimage.c mkimage.c)) \
- $(addprefix $(U_BOOT_DIR)/lib*/,crc32.c md5.c sha1.c) \
- $(U_BOOT_DIR)/tools/os_support.c \
- $(wildcard $(U_BOOT_DIR)/libfdt/fdt*.c $(U_BOOT_DIR)/lib/libfdt/fdt*.c)
-
-# Build manually fw_printenv for the target
-$(TARGET_DIR)/usr/sbin/fw_printenv: $(U_BOOT_DIR)/.configured
- $(TARGET_CONFIGURE_OPTS) \
- $(MAKE) HOSTCC="$(TARGET_CC)" -C $(U_BOOT_DIR) env
- $(INSTALL) -m 0755 -D $(U_BOOT_DIR)/tools/env/fw_printenv $@
- ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
+ @echo >> $(@D)/include/config.h
+ @echo "/* Add a wrapper around the values Buildroot sets. */" >> $(@D)/include/config.h
+ @echo "#ifndef __BR2_ADDED_CONFIG_H" >> $(@D)/include/config.h
+ @echo "#define __BR2_ADDED_CONFIG_H" >> $(@D)/include/config.h
+ $(call insert_define,DATE,$(DATE))
+ $(call insert_define,CONFIG_LOAD_SCRIPTS,1)
+ $(call insert_define,CONFIG_IPADDR,$(BR2_TARGET_UBOOT_IPADDR))
+ $(call insert_define,CONFIG_GATEWAYIP,$(BR2_TARGET_UBOOT_GATEWAY))
+ $(call insert_define,CONFIG_NETMASK,$(BR2_TARGET_UBOOT_NETMASK))
+ $(call insert_define,CONFIG_SERVERIP,$(BR2_TARGET_UBOOT_SERVERIP))
+ $(call insert_define,CONFIG_ETHADDR,$(BR2_TARGET_UBOOT_ETHADDR))
+ $(call insert_define,CONFIG_ETH1ADDR,$(BR2_TARGET_UBOOT_ETH1ADDR))
+ @echo "#endif /* __BR2_ADDED_CONFIG_H */" >> $(@D)/include/config.h
+endef
-u-boot: $(U_BOOT_TARGETS)
+ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y)
+define U_BOOT_BUILD_TARGET_ENV_UTILS
+ $(TARGET_CONFIGURE_OPTS) $(MAKE) HOSTCC="$(TARGET_CC)" -C $(@D) env
+endef
+endif
-u-boot-clean:
- -$(MAKE) -C $(U_BOOT_DIR) clean
- rm -f $(MKIMAGE)
+define U_BOOT_BUILD_CMDS
+ $(TARGET_CONFIGURE_OPTS) $(U_BOOT_CONFIGURE_OPTS) \
+ $(MAKE) -C $(@D) $(U_BOOT_MAKE_OPTS) \
+ $(U_BOOT_MAKE_TARGET)
+ $(U_BOOT_BUILD_TARGET_ENV_UTILS)
+endef
-u-boot-dirclean:
- rm -rf $(U_BOOT_DIR)
+define U_BOOT_INSTALL_IMAGES_CMDS
+ cp -dpf $(@D)/$(U_BOOT_BIN) $(BINARIES_DIR)/
+endef
-u-boot-source: $(DL_DIR)/$(U_BOOT_SOURCE)
+ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y)
+define U_BOOT_INSTALL_TARGET_ENV_UTILS
+ $(INSTALL) -m 0755 -D $(@D)/tools/env/fw_printenv \
+ $(TARGET_DIR)/usr/sbin/fw_printenv
+ ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
+endef
+endif
-u-boot-unpacked: $(U_BOOT_DIR)/.patched
+define U_BOOT_INSTALL_TARGET_CMDS
+ $(U_BOOT_INSTALL_TARGET_ENV_UTILS)
+endef
-u-boot-configured: $(U_BOOT_DIR)/.header_modified
+$(eval $(call GENTARGETS,boot,u-boot))
#############################################################
#
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 17/21] uboot-mkimage: new package
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (15 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 16/21] u-boot: convert to GENTARGETS Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 18/21] linux: rename LINUX26 to LINUX Thomas Petazzoni
` (5 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
The mkimage for the host is now built by a package, so that
boot/u-boot/u-boot.mk is no longer responsible for doing this. It
makes things a lot easier to handle, as linux/linux.mk now simply
depends on host-uboot-mkimage.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/linux.mk | 2 +-
.../uboot-mkimage-2011.03-drop-configh.patch | 0
package/uboot-mkimage/uboot-mkimage.mk | 16 ++++++++++++++++
3 files changed, 17 insertions(+), 1 deletions(-)
rename boot/u-boot/u-boot-2011.03-drop-configh.patch => package/uboot-mkimage/uboot-mkimage-2011.03-drop-configh.patch (100%)
create mode 100644 package/uboot-mkimage/uboot-mkimage.mk
diff --git a/linux/linux.mk b/linux/linux.mk
index d142ab2..a59a237 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -40,7 +40,7 @@ LINUX26_IMAGE_NAME=vmImage
else
LINUX26_IMAGE_NAME=uImage
endif
-LINUX26_DEPENDENCIES+=$(MKIMAGE)
+LINUX26_DEPENDENCIES+=host-uboot-mkimage
else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y)
LINUX26_IMAGE_NAME=bzImage
else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y)
diff --git a/boot/u-boot/u-boot-2011.03-drop-configh.patch b/package/uboot-mkimage/uboot-mkimage-2011.03-drop-configh.patch
similarity index 100%
rename from boot/u-boot/u-boot-2011.03-drop-configh.patch
rename to package/uboot-mkimage/uboot-mkimage-2011.03-drop-configh.patch
diff --git a/package/uboot-mkimage/uboot-mkimage.mk b/package/uboot-mkimage/uboot-mkimage.mk
new file mode 100644
index 0000000..055348c
--- /dev/null
+++ b/package/uboot-mkimage/uboot-mkimage.mk
@@ -0,0 +1,16 @@
+UBOOT_MKIMAGE_VERSION = 2011.03
+UBOOT_MKIMAGE_SOURCE = u-boot-$(UBOOT_MKIMAGE_VERSION).tar.bz2
+UBOOT_MKIMAGE_SITE = ftp://ftp.denx.de/pub/u-boot
+
+define HOST_UBOOT_MKIMAGE_BUILD_CMDS
+ $(MAKE) -C $(@D) \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
+ ARCH=$(U_BOOT_ARCH) \
+ tools
+endef
+
+define HOST_UBOOT_MKIMAGE_INSTALL_CMDS
+ install -m 0755 -D $(@D)/tools/mkimage $(HOST_DIR)/usr/bin
+endef
+
+$(eval $(call GENTARGETS,package,uboot-mkimage,host))
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 18/21] linux: rename LINUX26 to LINUX
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (16 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 17/21] uboot-mkimage: new package Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 19/21] linux: indent and align some definitions Thomas Petazzoni
` (4 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/linux.mk | 108 ++++++++++++++++++++++++++++----------------------------
1 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index a59a237..0aab92d 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -3,22 +3,22 @@
# Linux kernel 2.6 target
#
###############################################################################
-LINUX26_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
+LINUX_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
-# Compute LINUX26_SOURCE and LINUX26_SITE from the configuration
-ifeq ($(LINUX26_VERSION),custom)
-LINUX26_TARBALL:=$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
-LINUX26_SITE:=$(dir $(LINUX26_TARBALL))
-LINUX26_SOURCE:=$(notdir $(LINUX26_TARBALL))
+# Compute LINUX_SOURCE and LINUX_SITE from the configuration
+ifeq ($(LINUX_VERSION),custom)
+LINUX_TARBALL:=$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
+LINUX_SITE:=$(dir $(LINUX_TARBALL))
+LINUX_SOURCE:=$(notdir $(LINUX_TARBALL))
else
-LINUX26_SOURCE:=linux-$(LINUX26_VERSION).tar.bz2
-LINUX26_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
+LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2
+LINUX_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
endif
-LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION)
-LINUX26_PATCH=$(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
+LINUX_DIR:=$(BUILD_DIR)/linux-$(LINUX_VERSION)
+LINUX_PATCH=$(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
-LINUX26_MAKE_FLAGS = \
+LINUX_MAKE_FLAGS = \
HOSTCC="$(HOSTCC)" \
HOSTCFLAGS="$(HOSTCFLAGS)" \
ARCH=$(KERNEL_ARCH) \
@@ -28,27 +28,27 @@ LINUX26_MAKE_FLAGS = \
# Get the real Linux version, which tells us where kernel modules are
# going to be installed in the target filesystem.
-LINUX26_VERSION_PROBED = $(shell $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease)
+LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y)
-LINUX26_IMAGE_NAME=$(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME))
+LINUX_IMAGE_NAME=$(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME))
else
ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
ifeq ($(KERNEL_ARCH),blackfin)
# a uImage, but with a different file name
-LINUX26_IMAGE_NAME=vmImage
+LINUX_IMAGE_NAME=vmImage
else
-LINUX26_IMAGE_NAME=uImage
+LINUX_IMAGE_NAME=uImage
endif
-LINUX26_DEPENDENCIES+=host-uboot-mkimage
+LINUX_DEPENDENCIES+=host-uboot-mkimage
else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y)
-LINUX26_IMAGE_NAME=bzImage
+LINUX_IMAGE_NAME=bzImage
else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y)
-LINUX26_IMAGE_NAME=zImage
+LINUX_IMAGE_NAME=zImage
else ifeq ($(BR2_LINUX_KERNEL_VMLINUX_BIN),y)
-LINUX26_IMAGE_NAME=vmlinux.bin
+LINUX_IMAGE_NAME=vmlinux.bin
else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y)
-LINUX26_IMAGE_NAME=vmlinux
+LINUX_IMAGE_NAME=vmlinux
endif
endif
@@ -57,44 +57,44 @@ endif
# for bzImage, arch/i386 and arch/x86_64 do not exist when copying the
# defconfig file.
ifeq ($(KERNEL_ARCH),i386)
-KERNEL_ARCH_PATH=$(LINUX26_DIR)/arch/x86
+KERNEL_ARCH_PATH=$(LINUX_DIR)/arch/x86
else ifeq ($(KERNEL_ARCH),x86_64)
-KERNEL_ARCH_PATH=$(LINUX26_DIR)/arch/x86
+KERNEL_ARCH_PATH=$(LINUX_DIR)/arch/x86
else
-KERNEL_ARCH_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)
+KERNEL_ARCH_PATH=$(LINUX_DIR)/arch/$(KERNEL_ARCH)
endif
ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y)
-LINUX26_IMAGE_PATH=$(LINUX26_DIR)/$(LINUX26_IMAGE_NAME)
+LINUX_IMAGE_PATH=$(LINUX_DIR)/$(LINUX_IMAGE_NAME)
else
ifeq ($(KERNEL_ARCH),avr32)
-LINUX26_IMAGE_PATH=$(KERNEL_ARCH_PATH)/boot/images/$(LINUX26_IMAGE_NAME)
+LINUX_IMAGE_PATH=$(KERNEL_ARCH_PATH)/boot/images/$(LINUX_IMAGE_NAME)
else
-LINUX26_IMAGE_PATH=$(KERNEL_ARCH_PATH)/boot/$(LINUX26_IMAGE_NAME)
+LINUX_IMAGE_PATH=$(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME)
endif
endif # BR2_LINUX_KERNEL_VMLINUX
# Download
-$(LINUX26_DIR)/.stamp_downloaded:
+$(LINUX_DIR)/.stamp_downloaded:
@$(call MESSAGE,"Downloading kernel")
- $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
- $(foreach patch,$(filter ftp://% http://%,$(LINUX26_PATCH)),\
+ $(call DOWNLOAD,$(LINUX_SITE),$(LINUX_SOURCE))
+ $(foreach patch,$(filter ftp://% http://%,$(LINUX_PATCH)),\
$(call DOWNLOAD,$(dir $(patch)),$(notdir $(patch)))$(sep))
mkdir -p $(@D)
touch $@
# Extraction
-$(LINUX26_DIR)/.stamp_extracted: $(LINUX26_DIR)/.stamp_downloaded
+$(LINUX_DIR)/.stamp_extracted: $(LINUX_DIR)/.stamp_downloaded
@$(call MESSAGE,"Extracting kernel")
mkdir -p $(@D)
- $(Q)$(INFLATE$(suffix $(LINUX26_SOURCE))) $(DL_DIR)/$(LINUX26_SOURCE) | \
+ $(Q)$(INFLATE$(suffix $(LINUX_SOURCE))) $(DL_DIR)/$(LINUX_SOURCE) | \
tar -C $(@D) $(TAR_STRIP_COMPONENTS)=1 $(TAR_OPTIONS) -
$(Q)touch $@
# Patch
-$(LINUX26_DIR)/.stamp_patched: $(LINUX26_DIR)/.stamp_extracted
+$(LINUX_DIR)/.stamp_patched: $(LINUX_DIR)/.stamp_extracted
@$(call MESSAGE,"Patching kernel")
- for p in $(LINUX26_PATCH) ; do \
+ for p in $(LINUX_PATCH) ; do \
if echo $$p | grep -q -E "^ftp://|^http://" ; then \
toolchain/patch-kernel.sh $(@D) $(DL_DIR) `basename $$p` ; \
elif test -d $$p ; then \
@@ -116,7 +116,7 @@ KERNEL_DEFCONFIG_NAME = buildroot_defconfig
KERNEL_DEFCONFIG_PATH = $(KERNEL_ARCH_PATH)/configs/$(KERNEL_DEFCONFIG_NAME)
# Configuration
-$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched
+$(LINUX_DIR)/.stamp_configured: $(LINUX_DIR)/.stamp_patched
@$(call MESSAGE,"Configuring kernel")
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
cp $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig $(KERNEL_DEFCONFIG_PATH)
@@ -148,62 +148,62 @@ endif
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
$(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(KERNEL_DEFCONFIG_PATH))
endif
- $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(KERNEL_DEFCONFIG_NAME)
+ $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DEFCONFIG_NAME)
rm $(KERNEL_DEFCONFIG_PATH)
$(Q)touch $@
# Compilation. We make sure the kernel gets rebuilt when the
# configuration has changed.
-$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured $(LINUX26_DIR)/.config
+$(LINUX_DIR)/.stamp_compiled: $(LINUX_DIR)/.stamp_configured $(LINUX_DIR)/.config
@$(call MESSAGE,"Compiling kernel")
- $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_IMAGE_NAME)
- @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \
- $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) modules ; \
+ $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
+ @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX_DIR)/.config) != 0 ] ; then \
+ $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \
fi
$(Q)touch $@
# Installation
-$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
+$(LINUX_DIR)/.stamp_installed: $(LINUX_DIR)/.stamp_compiled
@$(call MESSAGE,"Installing kernel")
- cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
+ cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
ifeq ($(BR2_LINUX_KERNEL_INSTALL_TARGET),y)
- install -m 0644 -D $(LINUX26_IMAGE_PATH) $(TARGET_DIR)/boot/$(LINUX26_IMAGE_NAME)
+ install -m 0644 -D $(LINUX_IMAGE_PATH) $(TARGET_DIR)/boot/$(LINUX_IMAGE_NAME)
endif
# Install modules and remove symbolic links pointing to build
# directories, not relevant on the target
- @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \
- $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) \
+ @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX_DIR)/.config) != 0 ] ; then \
+ $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) \
DEPMOD="$(HOST_DIR)/usr/sbin/depmod" modules_install ; \
- rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build ; \
- rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source ; \
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ; \
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source ; \
fi
$(Q)touch $@
-linux linux26: host-module-init-tools $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed
+linux linux26: host-module-init-tools $(LINUX_DEPENDENCIES) $(LINUX_DIR)/.stamp_installed
-linux-menuconfig linux-xconfig linux-gconfig linux-nconfig linux26-menuconfig linux26-xconfig linux26-gconfig linux26-nconfig: dirs $(LINUX26_DIR)/.stamp_configured
- $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \
+linux-menuconfig linux-xconfig linux-gconfig linux-nconfig linux26-menuconfig linux26-xconfig linux26-gconfig linux26-nconfig: dirs $(LINUX_DIR)/.stamp_configured
+ $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
$(subst linux-,,$(subst linux26-,,$@))
# Support for rebuilding the kernel after the initramfs file list has
# been generated in $(BINARIES_DIR)/rootfs.initramfs.
-$(LINUX26_DIR)/.stamp_initramfs_rebuilt: $(LINUX26_DIR)/.stamp_installed $(BINARIES_DIR)/rootfs.initramfs
+$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_installed $(BINARIES_DIR)/rootfs.initramfs
@$(call MESSAGE,"Rebuilding kernel with initramfs")
# Remove the previously generated initramfs which was empty,
# to make sure the kernel will actually regenerate it.
$(RM) -f $(@D)/usr/initramfs_data.cpio*
# Build the kernel.
- $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_IMAGE_NAME)
+ $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
# Copy the kernel image to its final destination
- cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
+ cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
$(Q)touch $@
# The initramfs building code must make sure this target gets called
# after it generated the initramfs list of files.
-linux-rebuild-with-initramfs linux26-rebuild-with-initramfs: $(LINUX26_DIR)/.stamp_initramfs_rebuilt
+linux-rebuild-with-initramfs linux26-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_initramfs_rebuilt
ifeq ($(BR2_LINUX_KERNEL),y)
-TARGETS+=linux26
+TARGETS+=linux
endif
# Checks to give errors that the user can understand
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 19/21] linux: indent and align some definitions
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (17 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 18/21] linux: rename LINUX26 to LINUX Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 20/21] package: add support for post-download hooks Thomas Petazzoni
` (3 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/linux.mk | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index 0aab92d..eea84b5 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -7,16 +7,16 @@ LINUX_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
# Compute LINUX_SOURCE and LINUX_SITE from the configuration
ifeq ($(LINUX_VERSION),custom)
-LINUX_TARBALL:=$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
-LINUX_SITE:=$(dir $(LINUX_TARBALL))
-LINUX_SOURCE:=$(notdir $(LINUX_TARBALL))
+LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
+LINUX_SITE = $(dir $(LINUX_TARBALL))
+LINUX_SOURCE = $(notdir $(LINUX_TARBALL))
else
-LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2
-LINUX_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
+LINUX_SOURCE = linux-$(LINUX_VERSION).tar.bz2
+LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
endif
-LINUX_DIR:=$(BUILD_DIR)/linux-$(LINUX_VERSION)
-LINUX_PATCH=$(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
+LINUX_DIR = $(BUILD_DIR)/linux-$(LINUX_VERSION)
+LINUX_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
LINUX_MAKE_FLAGS = \
HOSTCC="$(HOSTCC)" \
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 20/21] package: add support for post-download hooks
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (18 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 19/21] linux: indent and align some definitions Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 21/21] linux: convert to the GENTARGETS infrastructure Thomas Petazzoni
` (2 subsequent siblings)
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
This will be needed for the Linux kernel package, which needs to
download patches in a custom way.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/Makefile.package.in | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index cdcb5e5..ff0fd9f 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -234,6 +234,7 @@ ifeq ($(DL_MODE),DOWNLOAD)
endif
$(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE),$($(PKG)_SOURCE)))
$(if $($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE),$($(PKG)_PATCH)))
+ $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
ifeq ($(DL_MODE),DOWNLOAD)
$(Q)mkdir -p $(@D)
$(Q)touch $@
@@ -437,6 +438,7 @@ $(2)_EXTRACT_CMDS ?= \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
# post-steps hooks
+$(2)_POST_DOWNLOAD_HOOKS ?=
$(2)_POST_EXTRACT_HOOKS ?=
$(2)_POST_PATCH_HOOKS ?=
$(2)_PRE_CONFIGURE_HOOKS ?=
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [PATCH 21/21] linux: convert to the GENTARGETS infrastructure
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (19 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 20/21] package: add support for post-download hooks Thomas Petazzoni
@ 2011-05-16 20:22 ` Thomas Petazzoni
2011-05-27 22:16 ` [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Luca Ceresoli
2011-05-30 19:53 ` Alper Yıldırım
22 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-16 20:22 UTC (permalink / raw)
To: buildroot
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
linux/linux.mk | 110 ++++++++++++++++++++++++++-----------------------------
1 files changed, 52 insertions(+), 58 deletions(-)
diff --git a/linux/linux.mk b/linux/linux.mk
index eea84b5..1aea237 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -15,8 +15,10 @@ LINUX_SOURCE = linux-$(LINUX_VERSION).tar.bz2
LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
endif
-LINUX_DIR = $(BUILD_DIR)/linux-$(LINUX_VERSION)
-LINUX_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
+LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
+
+LINUX_INSTALL_IMAGES = YES
+LINUX_DEPENDENCIES += host-module-init-tools
LINUX_MAKE_FLAGS = \
HOSTCC="$(HOSTCC)" \
@@ -74,27 +76,16 @@ LINUX_IMAGE_PATH=$(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME)
endif
endif # BR2_LINUX_KERNEL_VMLINUX
-# Download
-$(LINUX_DIR)/.stamp_downloaded:
- @$(call MESSAGE,"Downloading kernel")
- $(call DOWNLOAD,$(LINUX_SITE),$(LINUX_SOURCE))
- $(foreach patch,$(filter ftp://% http://%,$(LINUX_PATCH)),\
+define LINUX_DOWNLOAD_PATCHES
+ @$(call MESSAGE,"Download additional patches")
+ $(foreach patch,$(filter ftp://% http://%,$(LINUX_PATCHES)),\
$(call DOWNLOAD,$(dir $(patch)),$(notdir $(patch)))$(sep))
- mkdir -p $(@D)
- touch $@
-
-# Extraction
-$(LINUX_DIR)/.stamp_extracted: $(LINUX_DIR)/.stamp_downloaded
- @$(call MESSAGE,"Extracting kernel")
- mkdir -p $(@D)
- $(Q)$(INFLATE$(suffix $(LINUX_SOURCE))) $(DL_DIR)/$(LINUX_SOURCE) | \
- tar -C $(@D) $(TAR_STRIP_COMPONENTS)=1 $(TAR_OPTIONS) -
- $(Q)touch $@
+endef
+
+LINUX_POST_DOWNLOAD_HOOKS += LINUX_DOWNLOAD_PATCHES
-# Patch
-$(LINUX_DIR)/.stamp_patched: $(LINUX_DIR)/.stamp_extracted
- @$(call MESSAGE,"Patching kernel")
- for p in $(LINUX_PATCH) ; do \
+define LINUX_APPLY_PATCHES
+ for p in $(LINUX_PATCHES) ; do \
if echo $$p | grep -q -E "^ftp://|^http://" ; then \
toolchain/patch-kernel.sh $(@D) $(DL_DIR) `basename $$p` ; \
elif test -d $$p ; then \
@@ -103,7 +94,9 @@ $(LINUX_DIR)/.stamp_patched: $(LINUX_DIR)/.stamp_extracted
toolchain/patch-kernel.sh $(@D) `dirname $$p` `basename $$p` ; \
fi \
done
- $(Q)touch $@
+endef
+
+LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
# As we are tweaking the kernel configuration file, we want to run a
# silent oldconfig pass on the configuration file after having done
@@ -115,60 +108,59 @@ $(LINUX_DIR)/.stamp_patched: $(LINUX_DIR)/.stamp_extracted
KERNEL_DEFCONFIG_NAME = buildroot_defconfig
KERNEL_DEFCONFIG_PATH = $(KERNEL_ARCH_PATH)/configs/$(KERNEL_DEFCONFIG_NAME)
-# Configuration
-$(LINUX_DIR)/.stamp_configured: $(LINUX_DIR)/.stamp_patched
- @$(call MESSAGE,"Configuring kernel")
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
- cp $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig $(KERNEL_DEFCONFIG_PATH)
+KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
- cp $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(KERNEL_DEFCONFIG_PATH)
+KERNEL_SOURCE_CONFIG = $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
endif
-ifeq ($(BR2_ARM_EABI),y)
- $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH))
-else
- $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH))
-endif
-ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
+
+define LINUX_CONFIGURE_CMDS
+ cp $(KERNEL_SOURCE_CONFIG) $(KERNEL_DEFCONFIG_PATH)
+ $(if $(BR2_ARM_EABI),
+ $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH)),
+ $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(KERNEL_DEFCONFIG_PATH)))
# As the kernel gets compiled before root filesystems are
# built, we create a fake initramfs file list. It'll be
# replaced later by the real list, and the kernel will be
# rebuilt using the linux26-rebuild-with-initramfs target.
- touch $(BINARIES_DIR)/rootfs.initramfs
- $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD,$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"$(BINARIES_DIR)/rootfs.initramfs\",$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0,$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0,$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(KERNEL_DEFCONFIG_PATH))
-endif
-ifneq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
- $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(KERNEL_DEFCONFIG_PATH))
- $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(KERNEL_DEFCONFIG_PATH))
-endif
-ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
- $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(KERNEL_DEFCONFIG_PATH))
-endif
+ $(if $(BR2_TARGET_ROOTFS_INITRAMFS),
+ touch $(BINARIES_DIR)/rootfs.initramfs
+ $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"$(BINARIES_DIR)/rootfs.initramfs\",$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_UID,0,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_ROOT_GID,0,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_DISABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_NONE,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(KERNEL_DEFCONFIG_PATH)))
+ $(if $(BR2_ROOTFS_DEVICE_CREATION_STATIC),,
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS,$(KERNEL_DEFCONFIG_PATH))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_DEVTMPFS_MOUNT,$(KERNEL_DEFCONFIG_PATH)))
+ $(if $(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),
+ $(call KCONFIG_SET_OPT,CONFIG_UEVENT_HELPER_PATH,\"/sbin/mdev\",$(KERNEL_DEFCONFIG_PATH)))
$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) $(KERNEL_DEFCONFIG_NAME)
rm $(KERNEL_DEFCONFIG_PATH)
- $(Q)touch $@
+endef
# Compilation. We make sure the kernel gets rebuilt when the
# configuration has changed.
-$(LINUX_DIR)/.stamp_compiled: $(LINUX_DIR)/.stamp_configured $(LINUX_DIR)/.config
- @$(call MESSAGE,"Compiling kernel")
+define LINUX_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
@if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX_DIR)/.config) != 0 ] ; then \
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \
fi
- $(Q)touch $@
+endef
-# Installation
-$(LINUX_DIR)/.stamp_installed: $(LINUX_DIR)/.stamp_compiled
- @$(call MESSAGE,"Installing kernel")
+define LINUX_INSTALL_IMAGES_CMDS
cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+endef
+
ifeq ($(BR2_LINUX_KERNEL_INSTALL_TARGET),y)
+define LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET
install -m 0644 -D $(LINUX_IMAGE_PATH) $(TARGET_DIR)/boot/$(LINUX_IMAGE_NAME)
+endef
endif
+
+define LINUX_INSTALL_TARGET_CMDS
+ $(LINUX_INSTALL_KERNEL_IMAGE_TO_TARGET)
# Install modules and remove symbolic links pointing to build
# directories, not relevant on the target
@if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX_DIR)/.config) != 0 ] ; then \
@@ -177,17 +169,18 @@ endif
rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ; \
rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source ; \
fi
- $(Q)touch $@
+endef
-linux linux26: host-module-init-tools $(LINUX_DEPENDENCIES) $(LINUX_DIR)/.stamp_installed
+$(eval $(call GENTARGETS,,linux))
linux-menuconfig linux-xconfig linux-gconfig linux-nconfig linux26-menuconfig linux26-xconfig linux26-gconfig linux26-nconfig: dirs $(LINUX_DIR)/.stamp_configured
$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
$(subst linux-,,$(subst linux26-,,$@))
+ rm -f $(LINUX_DIR)/.stamp_{built,target_installed,images_installed}
# Support for rebuilding the kernel after the initramfs file list has
# been generated in $(BINARIES_DIR)/rootfs.initramfs.
-$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_installed $(BINARIES_DIR)/rootfs.initramfs
+$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.initramfs
@$(call MESSAGE,"Rebuilding kernel with initramfs")
# Remove the previously generated initramfs which was empty,
# to make sure the kernel will actually regenerate it.
@@ -202,6 +195,7 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_installed $(BINARIES_
# after it generated the initramfs list of files.
linux-rebuild-with-initramfs linux26-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_initramfs_rebuilt
+
ifeq ($(BR2_LINUX_KERNEL),y)
TARGETS+=linux
endif
--
1.7.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (20 preceding siblings ...)
2011-05-16 20:22 ` [Buildroot] [PATCH 21/21] linux: convert to the GENTARGETS infrastructure Thomas Petazzoni
@ 2011-05-27 22:16 ` Luca Ceresoli
2011-05-30 20:27 ` Thomas Petazzoni
2011-05-30 19:53 ` Alper Yıldırım
22 siblings, 1 reply; 27+ messages in thread
From: Luca Ceresoli @ 2011-05-27 22:16 UTC (permalink / raw)
To: buildroot
Hi Thomas,
Thomas Petazzoni wrote:
> Hello,
>
> This is not a pull request. This is stuff I'm preparing for the next
> Buildroot release, and which I'm posting now to let everybody now that
> I'm working on this, and to get early comments. Feedback is therefore
> very welcome.
>
> Basically, the idea is that we have a package infrastructure, and
> features such as Git/Mercurial download, or usage of an existing
> source tree should be added at the level of the package infrastructure
> and not specifically for each package.
>
> Unfortunately, some of the packages that would most benefit from those
> new infrastructure features are the bootloader and kernel, since it's
> typically the software components that have to be modified/tuned
> during the course of an embedded Linux project.
>
> Therefore, this series converts all bootloaders makefiles and the
> kernel makefile to the package infrastructure. It also does a few
> other related things.
>
> More improvements are probably needed at the infrastructure level
> (like changing the BR2_PACKAGE_<pkg> test to know if a target needs to
> be added to TARGETS or not), but hopefully, you'll get the general
> idea and have some feedback/ideas.
Thank you for your big work. I appreciate it very much.
I currently build my bootloaders and kernel outside buildroot just
because I need to fetch them from local git repositories.
Bringing them in buildroot would significantly simplify my build system.
I tested your patchset and it worked perfectly. I had to hack linux.mk
and u-boot.mk because the git download method is not yet
implemented, but it was straightforward in the package infrastructure.
This way I got both the bootloader and the kernel working on my board.
I look forward to see your next patchset and test it. Will it implement
a git download option in menuconfig?
Luca
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
` (21 preceding siblings ...)
2011-05-27 22:16 ` [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Luca Ceresoli
@ 2011-05-30 19:53 ` Alper Yıldırım
2011-05-30 20:34 ` Thomas Petazzoni
22 siblings, 1 reply; 27+ messages in thread
From: Alper Yıldırım @ 2011-05-30 19:53 UTC (permalink / raw)
To: buildroot
Hello Thomas,
Thanks for the comprehensive work. I have a suggestion, maybe you can also
implement this within the context of your work.
In our project, we have some local applications, hosted under local git
repositories. We are currently using the package infrastructure with git. If
we give a commit id or tag name everything is fine but in some use cases we
want to build the latest commit (HEAD) with buildroot. In that case, giving
HEAD as the version is not sufficient, since buildroot checks the dl dir for
pkgname-HEAD.tar.gz and finds it there after first build. Currently we
manually delete this file and force buildroot to clone the repo again. In my
opinion this is not the proper way.
My suggestion is:
For the first build, clone the git repo to the build directory and for the
next builds make a git pull in the build directory.
It would be nice to have such an option in buildroot.
Cheers,
Alper
On Mon, May 16, 2011 at 11:21 PM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> This is not a pull request. This is stuff I'm preparing for the next
> Buildroot release, and which I'm posting now to let everybody now that
> I'm working on this, and to get early comments. Feedback is therefore
> very welcome.
>
> Basically, the idea is that we have a package infrastructure, and
> features such as Git/Mercurial download, or usage of an existing
> source tree should be added at the level of the package infrastructure
> and not specifically for each package.
>
> Unfortunately, some of the packages that would most benefit from those
> new infrastructure features are the bootloader and kernel, since it's
> typically the software components that have to be modified/tuned
> during the course of an embedded Linux project.
>
> Therefore, this series converts all bootloaders makefiles and the
> kernel makefile to the package infrastructure. It also does a few
> other related things.
>
> More improvements are probably needed at the infrastructure level
> (like changing the BR2_PACKAGE_<pkg> test to know if a target needs to
> be added to TARGETS or not), but hopefully, you'll get the general
> idea and have some feedback/ideas.
>
> Thanks for your review,
>
> Thomas
>
> The following changes since commit
> 5c88d720f99ce6374a2a9b6afcb93ff627f464fa:
>
> Merge branch 'for-2011.05/new-codesourcery-toolchain' of
> http://free-electrons.com/~thomas/buildroot (2011-05-13 15:30:37 +0200)
>
> are available in the git repository at:
>
> http://free-electrons.com/~thomas/buildroot.git for-2011.08/bootloaders
>
> Allan W. Nielsen (1):
> Makefile.package.in: Makes it possible to override the default
> extract commands
>
> Thomas Petazzoni (20):
> Fix quoting in default extract command
> linux: make it possible to install the kernel in /boot
> linux: use the defconfig mechanism after tuning the config
> package: add infrastructure to install things in images/
> package: fix patching procedure for host packages
> barebox: use = instead of := and re-indent
> barebox: convert to GENTARGETS
> at91bootstrap: use = instead of := and indent properly
> at91bootstrap: convert to GENTARGETS
> at91dataflashboot: use = instead of := and indent
> at91dataflashboot: convert to GENTARGETS
> syslinux: convert to GENTARGETS
> grub: convert to AUTOTARGETS
> grub2: remove package
> u-boot: convert to GENTARGETS
> uboot-mkimage: new package
> linux: rename LINUX26 to LINUX
> linux: indent and align some definitions
> package: add support for post-download hooks
> linux: convert to the GENTARGETS infrastructure
>
> boot/Config.in | 1 -
> boot/at91bootstrap/at91bootstrap.mk | 57 ++----
> boot/at91dataflashboot/Config.in | 24 +--
> boot/at91dataflashboot/at91dataflashboot.mk | 44 ++---
> boot/barebox/barebox.mk | 68 +++----
> boot/grub/grub.500-build-fix.patch | 14 ++
> boot/grub/grub.mk | 102 ++++------
> boot/grub2/Config.in | 9 -
> boot/grub2/grub2.mk | 93 ---------
> boot/syslinux/Config.in | 14 +-
> boot/syslinux/syslinux.mk | 50 ++---
> boot/u-boot/Config.in | 5 -
> boot/u-boot/u-boot.mk | 218
> +++++++-------------
> linux/Config.in | 8 +
> linux/linux.mk | 203
> ++++++++++---------
> package/Makefile.package.in | 56 ++++--
> .../uboot-mkimage-2011.03-drop-configh.patch | 0
> package/uboot-mkimage/uboot-mkimage.mk | 16 ++
> 18 files changed, 387 insertions(+), 595 deletions(-)
> create mode 100644 boot/grub/grub.500-build-fix.patch
> delete mode 100644 boot/grub2/Config.in
> delete mode 100644 boot/grub2/grub2.mk
> rename boot/u-boot/u-boot-2011.03-drop-configh.patch =>
> package/uboot-mkimage/uboot-mkimage-2011.03-drop-configh.patch (100%)
> create mode 100644 package/uboot-mkimage/uboot-mkimage.mk
>
> Thanks,
> --
> Thomas Petazzoni
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20110530/cd3bfc27/attachment.html>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
2011-05-27 22:16 ` [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Luca Ceresoli
@ 2011-05-30 20:27 ` Thomas Petazzoni
0 siblings, 0 replies; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-30 20:27 UTC (permalink / raw)
To: buildroot
Hello Luca,
On Sat, 28 May 2011 00:16:12 +0200
Luca Ceresoli <luca@lucaceresoli.net> wrote:
> Thank you for your big work. I appreciate it very much.
> I currently build my bootloaders and kernel outside buildroot just
> because I need to fetch them from local git repositories.
> Bringing them in buildroot would significantly simplify my build system.
>
> I tested your patchset and it worked perfectly.
Great, thanks! Nice to see that it worked for you. It's definitely
useful having others testing the proposed features.
> I had to hack linux.mk and u-boot.mk because the git download method is
> not yet implemented, but it was straightforward in the package infrastructure.
> This way I got both the bootloader and the kernel working on my board.
>
> I look forward to see your next patchset and test it. Will it implement
> a git download option in menuconfig?
Yes, it implements a git download option in menuconfig for the kernel
and for u-boot.
Regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
2011-05-30 19:53 ` Alper Yıldırım
@ 2011-05-30 20:34 ` Thomas Petazzoni
2011-06-08 20:11 ` Alper Yıldırım
0 siblings, 1 reply; 27+ messages in thread
From: Thomas Petazzoni @ 2011-05-30 20:34 UTC (permalink / raw)
To: buildroot
G?nayd?n Alper!
On Mon, 30 May 2011 22:53:11 +0300
Alper Y?ld?r?m <yildirimalper@gmail.com> wrote:
> Thanks for the comprehensive work. I have a suggestion, maybe you can also
> implement this within the context of your work.
> In our project, we have some local applications, hosted under local git
> repositories. We are currently using the package infrastructure with git. If
> we give a commit id or tag name everything is fine but in some use cases we
> want to build the latest commit (HEAD) with buildroot. In that case, giving
> HEAD as the version is not sufficient, since buildroot checks the dl dir for
> pkgname-HEAD.tar.gz and finds it there after first build. Currently we
> manually delete this file and force buildroot to clone the repo again. In my
> opinion this is not the proper way.
>
> My suggestion is:
> For the first build, clone the git repo to the build directory and for the
> next builds make a git pull in the build directory.
>
> It would be nice to have such an option in buildroot.
I think I understand your workflow and your need. However, I
unfortunately don't think your proposal works properly: the next time
you will do "make clean", the build directory of your package will have
disappeared, so Buildroot won't know that it should do a "git pull",
and will use again the pkgname-HEAD.tar.gz file from the dl directory.
Or maybe I misunderstood your proposal ?
In your case, wouldn't it be better to not let Buildroot download your
custom applications from Git, but rather give Buildroot the path to a
directory where you have the source of code of the applications ? This
way, you can handle this directory however you want in terms of
revision control: Buildroot will never remove it.
What do you think of the proposal I've sent on May, 18th ? See
http://lists.busybox.net/pipermail/buildroot/2011-May/043320.html.
Thanks for your suggestion!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders
2011-05-30 20:34 ` Thomas Petazzoni
@ 2011-06-08 20:11 ` Alper Yıldırım
0 siblings, 0 replies; 27+ messages in thread
From: Alper Yıldırım @ 2011-06-08 20:11 UTC (permalink / raw)
To: buildroot
Hi Thomas,
D?sol? pour la r?ponse tardive
2011/5/30 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>
> G?nayd?n Alper!
>
> On Mon, 30 May 2011 22:53:11 +0300
> Alper Y?ld?r?m <yildirimalper@gmail.com> wrote:
>
> > Thanks for the comprehensive work. I have a suggestion, maybe you can also
> > implement this within the context of your work.
> > In our project, we have some local applications, hosted under local git
> > repositories. We are currently using the package infrastructure with git. If
> > we give a commit id or tag name everything is fine but in some use cases we
> > want to build the latest commit (HEAD) with buildroot. In that case, giving
> > HEAD as the version is not sufficient, since buildroot checks the dl dir for
> > pkgname-HEAD.tar.gz and finds it there after first build. Currently we
> > manually delete this file and force buildroot to clone the repo again. In my
> > opinion this is not the proper way.
> >
> > My suggestion is:
> > For the first build, clone the git repo to the build directory and for the
> > next builds make a git pull in the build directory.
> >
> > It would be nice to have such an option in buildroot.
>
> I think I understand your workflow and your need. However, I
> unfortunately don't think your proposal works properly: the next time
> you will do "make clean", the build directory of your package will have
> disappeared, so Buildroot won't know that it should do a "git pull",
> and will use again the pkgname-HEAD.tar.gz file from the dl directory.
> Or maybe I misunderstood your proposal ?
>
> In your case, wouldn't it be better to not let Buildroot download your
> custom applications from Git, but rather give Buildroot the path to a
> directory where you have the source of code of the applications ? This
> way, you can handle this directory however you want in terms of
> ?revision control: Buildroot will never remove it.
>
> What do you think of the proposal I've sent on May, 18th ? See
> http://lists.busybox.net/pipermail/buildroot/2011-May/043320.html.
I read your proposal. It totally implements what we want from buildroot.
It will definitely solve our "buildroot usage" problems.
I will write my comments to that thread.
Thanks for your support.
Cheers
Alper
> Thanks for your suggestion!
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2011-06-08 20:11 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-16 20:21 [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 01/21] Makefile.package.in: Makes it possible to override the default extract commands Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 02/21] Fix quoting in default extract command Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 03/21] linux: make it possible to install the kernel in /boot Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 04/21] linux: use the defconfig mechanism after tuning the config Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 05/21] package: add infrastructure to install things in images/ Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 06/21] package: fix patching procedure for host packages Thomas Petazzoni
2011-05-16 20:21 ` [Buildroot] [PATCH 07/21] barebox: use = instead of := and re-indent Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 08/21] barebox: convert to GENTARGETS Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 09/21] at91bootstrap: use = instead of := and indent properly Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 10/21] at91bootstrap: convert to GENTARGETS Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 11/21] at91dataflashboot: use = instead of := and indent Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 12/21] at91dataflashboot: convert to GENTARGETS Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 13/21] syslinux: " Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 14/21] grub: convert to AUTOTARGETS Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 15/21] grub2: remove package Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 16/21] u-boot: convert to GENTARGETS Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 17/21] uboot-mkimage: new package Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 18/21] linux: rename LINUX26 to LINUX Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 19/21] linux: indent and align some definitions Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 20/21] package: add support for post-download hooks Thomas Petazzoni
2011-05-16 20:22 ` [Buildroot] [PATCH 21/21] linux: convert to the GENTARGETS infrastructure Thomas Petazzoni
2011-05-27 22:16 ` [Buildroot] [RFC] Review request for branch for-2011.08/bootloaders Luca Ceresoli
2011-05-30 20:27 ` Thomas Petazzoni
2011-05-30 19:53 ` Alper Yıldırım
2011-05-30 20:34 ` Thomas Petazzoni
2011-06-08 20:11 ` Alper Yıldırım
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox