geoff f8b977d9de petitboot: Update to petitboot to latest
Update the petitboot package to the latest version
in the petitboot git repo.

Add new build config options to allow selection of which of
the petitboot user interface program to run at system boot.


git-svn-id: svn://svn.openwrt.org/openwrt/packages@16762 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-07-10 01:12:10 +00:00

112 lines
3.4 KiB
Makefile

#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=petitboot
PKG_VERSION:=53aa807ae41e48fd71653c2d00083a44a8bca14c
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=git://ozlabs.org/home/jk/git/petitboot
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_INSTALL=1
include $(INCLUDE_DIR)/package.mk
define Package/petitboot
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=A kexec based bootloader
URL:=http://ozlabs.org/~jk/projects/petitboot/
MAINTAINER:=Geoff Levand <geoffrey.levand@am.sony.com>
DEPENDS:=+kexec-tools +libncurses +libtwin +udev +ps3-utils
endef
define Package/petitboot/description
Petitboot is a Linux kexec based bootloader with both
graphical and command-line user interfaces. The OpenWRT
Petitboot package has configuration options that can be
used to specify which Petitboot components to build, and
can also be used to specify that Petitboot should be run
automatically at system start-up.
Petitboot supports loading Linux kernel and initrd images
from any device that can be mounted by Linux. It can
handle gzipped images and can also load images from the
network using TFTP, NFS, HTTP, HTTPS, and SFTP. Petitboot
looks for bootloader config files on mountable devices in
the system, and also uses the boot configuration sent to
it from a DHCP server.
endef
define Package/petitboot/config
source "$(SOURCE)/petitboot-config.in"
endef
petitboot-config-args-y$(CONFIG_PETITBOOT_CUI) += --without-ncurses
petitboot-config-args-y$(CONFIG_PETITBOOT_GUI) += --without-twin
petitboot-config-args-y$(CONFIG_PETITBOOT_PS3) += --enable-ps3=no
petitboot-cppflags-$(CONFIG_PETITBOOT_DEBUG) += -DDEBUG
petitboot-cppflags-y$(CONFIG_PETITBOOT_DEBUG) += -DNDEBUG
petitboot-extra-bin-$(CONFIG_PETITBOOT_CUI) += /usr/sbin/pb-cui
petitboot-extra-bin-$(CONFIG_PETITBOOT_GUI) += /usr/sbin/pb-twin
petitboot-extra-data-$(CONFIG_PETITBOOT_GUI) += /usr/share/petitboot/artwork/*
# The platform inittab and/or initrun should check for /usr/sbin/petitboot
# and run it on startup if found.
petitboot-install-autorun-$(CONFIG_PETITBOOT_AUTORUN_CUI) = \
ln -sf pb-cui $(1)/usr/sbin/petitboot
petitboot-install-autorun-$(CONFIG_PETITBOOT_AUTORUN_GUI) = \
ln -sf pb-twin $(1)/usr/sbin/petitboot
CONFIGURE_ARGS += $(petitboot-config-args-y)
EXTRA_CPPFLAGS += $(petitboot-cppflags-y)
define Build/Prepare
$(call Build/Prepare/Default)
(cd $(PKG_BUILD_DIR) && $(BASH) -x ./bootstrap)
endef
define Package/petitboot/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) \
$(addprefix $(PKG_INSTALL_DIR),$(petitboot-extra-bin-y)) \
$(PKG_INSTALL_DIR)/usr/sbin/pb-discover \
$(PKG_INSTALL_DIR)/usr/sbin/pb-event \
$(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/share/petitboot/
$(INSTALL_DATA) \
$(addprefix $(PKG_INSTALL_DIR),$(petitboot-extra-data-y)) \
$(1)/usr/share/petitboot/
$(INSTALL_DIR) $(1)/etc/udev/rules.d
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/utils/99-petitboot.rules \
$(1)/etc/udev/rules.d/
$(INSTALL_DIR) $(1)/etc/
$(INSTALL_DATA) -T $(PKG_BUILD_DIR)/utils/udhcpc $(1)/etc/udhcpc.user
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) \
./files/petitboot.init \
$(1)/etc/init.d/petitboot
$(petitboot-install-autorun-y)
endef
$(eval $(call BuildPackage,petitboot))