From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mediacenter.hi.pengutronix.de ([2001:6f8:1178:2::65]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1S0VNw-00031z-4n for ptxdist@pengutronix.de; Thu, 23 Feb 2012 10:54:48 +0100 Received: from mol by mediacenter.hi.pengutronix.de with local (Exim 4.72) (envelope-from ) id 1S0VNw-0001A1-3i for ptxdist@pengutronix.de; Thu, 23 Feb 2012 10:54:48 +0100 Date: Thu, 23 Feb 2012 10:54:48 +0100 From: Michael Olbrich Message-ID: <20120223095448.GB28597@pengutronix.de> References: <20120221164736.GI29102@pengutronix.de> <1329982272-6194-1-git-send-email-j.weitzel@phytec.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1329982272-6194-1-git-send-email-j.weitzel@phytec.de> Subject: Re: [ptxdist] [RFC] Build MLO from barebox sources Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de On Thu, Feb 23, 2012 at 08:31:12AM +0100, Jan Weitzel wrote: > Build MLO in $(BUILDDIR)/barebox_mlo-* with config PTXCONF_BAREBOX_MLO_CONFIG > Default config is barebox_mlo.config. > > Signed-off-by: Jan Weitzel > --- > platforms/barebox_mlo.in | 19 +++++++ > rules/barebox_mlo.make | 124 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 143 insertions(+), 0 deletions(-) > create mode 100644 platforms/barebox_mlo.in > create mode 100644 rules/barebox_mlo.make > > diff --git a/platforms/barebox_mlo.in b/platforms/barebox_mlo.in > new file mode 100644 > index 0000000..f1e9c78 > --- /dev/null > +++ b/platforms/barebox_mlo.in > @@ -0,0 +1,19 @@ > +## SECTION=bootloader > + > +menuconfig BAREBOX_MLO > + prompt "barebox mlo " > + bool > + depends on BAREBOX > + help > + Build mlo from barebox sources. > + > +if BAREBOX_MLO > + > +config BAREBOX_MLO_CONFIG > + prompt "mlo config file" > + string > + default "barebox_mlo.config" > + help > + This entry specifies the .config file used to compile mlo. > + > +endif > diff --git a/rules/barebox_mlo.make b/rules/barebox_mlo.make > new file mode 100644 > index 0000000..12e8743 > --- /dev/null > +++ b/rules/barebox_mlo.make > @@ -0,0 +1,124 @@ > +# -*-makefile-*- > +# > +# Copyright (C) 2012 Jan Weitzel > +# based on barebox.make > +# > +# See CREDITS for details about who has contributed to this project. > +# > +# For further information about the PTXdist project and license conditions > +# see the README file. > +# > + > +# > +# We provide this package > +# > +PACKAGES-$(PTXCONF_BAREBOX_MLO) += barebox_mlo > + > +# > +# Paths and names > +# > +BAREBOX_MLO_VERSION = $(BAREBOX_VERSION) > +BAREBOX_MLO = barebox_mlo-$(BAREBOX_MLO_VERSION) > +BAREBOX_MLO_DIR = $(BUILDDIR)/$(BAREBOX_MLO) > +BAREBOX_MLO_SOURCE = $(BAREBOX_SOURCE) > +BAREBOX_MLO_LICENSE := GPLv2 > + > +BAREBOX_MLO_CONFIG := $(call remove_quotes, $(PTXDIST_PLATFORMCONFIGDIR)/$(PTXCONF_BAREBOX_MLO_CONFIG)) > + > +# ---------------------------------------------------------------------------- > +# Get > +# ---------------------------------------------------------------------------- > +$(STATEDIR)/barebox_mlo.get: $(STATEDIR)/barebox.get > + @$(call targetinfo) > + @$(call touch) No need for a get stage. The implicit rules and dependencies can handle multiple packages with the same source. > + > +# ---------------------------------------------------------------------------- > +# Extract > +# ---------------------------------------------------------------------------- > +$(STATEDIR)/barebox_mlo.extract: > + @$(call targetinfo) > + @$(call clean, $(BAREBOX_MLO_DIR)) > + @mkdir -p $(BAREBOX_MLO_DIR) > + @$(call extract, BAREBOX_MLO) > + @$(call patchin, BAREBOX, $(BAREBOX_MLO_DIR)) > + @$(call touch) see my other mail. > + > +# ---------------------------------------------------------------------------- > +# Prepare > +# ---------------------------------------------------------------------------- > + > +BAREBOX_MLO_PATH := PATH=$(CROSS_PATH) not needed. > +BAREBOX_MLO_ENV := KCONFIG_NOTIMESTAMP=1 BAREBOX_MLO_CONF_ENV > +BAREBOX_MLO_MAKEVARS := \ > + HOSTCC=$(HOSTCC) \ > + ARCH=$(PTXCONF_BAREBOX_ARCH_STRING) \ > + CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) use BAREBOX_MLO_CONF_OPT here. > +$(STATEDIR)/barebox_mlo.prepare: $(BAREBOX_MLO_CONFIG) > + @$(call targetinfo) > + > + @echo "Using barebox_mlo config file: $(BAREBOX_MLO_CONFIG)" > + @install -m 644 $(BAREBOX_MLO_CONFIG) $(BAREBOX_MLO_DIR)/.config > + > + @$(call ptx/oldconfig, BAREBOX_MLO) > + > + @$(call touch) Please try removing the prepare stage. There is a default oldconfig prepare stage that is used if _CONF_TOOL=kconfig or _CONFIG is set. > + > +# ---------------------------------------------------------------------------- > +# Compile > +# ---------------------------------------------------------------------------- > + > +$(STATEDIR)/barebox_mlo.compile: > + @$(call targetinfo) > + cd $(BAREBOX_MLO_DIR) && $(BAREBOX_MLO_PATH) $(MAKE) $(BAREBOX_MLO_MAKEVARS) > + @$(call touch) The default stage should do the right thing here too. Maybe with BAREBOX_MLO_MAKE_OPT := $(BAREBOX_MLO_CONF_OPT) > + > +# ---------------------------------------------------------------------------- > +# Install > +# ---------------------------------------------------------------------------- > + > +$(STATEDIR)/barebox_mlo.install: > + @$(call targetinfo) > + @$(call touch) > + > +# ---------------------------------------------------------------------------- > +# Target-Install > +# ---------------------------------------------------------------------------- > + > +$(STATEDIR)/barebox_mlo.targetinstall: > + @$(call targetinfo) > +#barebox renamed barebox.bin.ift to MLO, so fall back to barebox.bin.ift # # comment > + @if test -e $(BAREBOX_MLO_DIR)/MLO; then \ > + install -D -m644 $(BAREBOX_MLO_DIR)/MLO $(IMAGEDIR)/MLO ; \ > + else \ > + install -D -m644 $(BAREBOX_MLO_DIR)/barebox.bin.ift $(IMAGEDIR)/MLO ; \ > + fi @ptxd_get_path "$(BAREBOX_MLO_DIR)/MLO" \ "$(BAREBOX_MLO_DIR)/barebox.bin.ift" && \ install -D -m644 "${ptxd_reply}" "$(IMAGEDIR)/MLO" > + > + @$(call touch) > + > +# ---------------------------------------------------------------------------- > +# Clean > +# ---------------------------------------------------------------------------- > + > +$(STATEDIR)/barebox_mlo.clean: > + @$(call targetinfo) > + @$(call clean_pkg, BAREBOX_MLO) > + rm -rf $(IMAGEDIR)/MLO > + > +# ---------------------------------------------------------------------------- > +# oldconfig / menuconfig > +# ---------------------------------------------------------------------------- > + > +barebox_mlo_oldconfig barebox_mlo_menuconfig: $(STATEDIR)/barebox_mlo.extract > + @if test -e $(BAREBOX_MLO_CONFIG); then \ > + cp $(BAREBOX_MLO_CONFIG) $(BAREBOX_MLO_DIR)/.config; \ > + fi > + cd $(BAREBOX_MLO_DIR) && \ > + $(BAREBOX_MLO_PATH) $(BAREBOX_MLO_ENV) $(MAKE) $(BAREBOX_MLO_MAKEVARS) $(subst barebox_mlo_,,$@) > + @if cmp -s $(BAREBOX_MLO_DIR)/.config $(BAREBOX_MLO_CONFIG); then \ > + echo "barebox_mlo configuration unchanged"; \ > + else \ > + cp $(BAREBOX_MLO_DIR)/.config $(BAREBOX_MLO_CONFIG); \ > + fi At some point I'll find a way to make this generic... Michael > + > +# vim: syntax=make > -- > 1.7.0.4 > > > -- > ptxdist mailing list > ptxdist@pengutronix.de > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de