Build MLO in $(BUILDDIR)/barebox_mlo-* with config PTXCONF_BAREBOX_MLO_CONFIG
Default config is barebox_mlo.config.

Signed-off-by: Jan Weitzel <j.weit...@phytec.de>
---
 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 <j.weit...@phytec.de>
+#       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)
+
+# ----------------------------------------------------------------------------
+# 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)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+BAREBOX_MLO_PATH       := PATH=$(CROSS_PATH)
+BAREBOX_MLO_ENV        := KCONFIG_NOTIMESTAMP=1
+BAREBOX_MLO_MAKEVARS := \
+       HOSTCC=$(HOSTCC) \
+       ARCH=$(PTXCONF_BAREBOX_ARCH_STRING) \
+       CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE)
+
+$(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)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/barebox_mlo.compile:
+       @$(call targetinfo)
+       cd $(BAREBOX_MLO_DIR) && $(BAREBOX_MLO_PATH) $(MAKE) 
$(BAREBOX_MLO_MAKEVARS)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# 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
+       @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
+
+       @$(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
+
+# vim: syntax=make
-- 
1.7.0.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to