2 # Copyright (C) 2006 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
11 PKG_VERSION:=53aa807ae41e48fd71653c2d00083a44a8bca14c
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=git://ozlabs.org/home/jk/git/petitboot
17 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
18 PKG_SOURCE_VERSION:=$(PKG_VERSION)
22 include $(INCLUDE_DIR)/package.mk
24 define Package/petitboot
26 CATEGORY:=Boot Loaders
27 TITLE:=A kexec based bootloader
28 URL:=http://ozlabs.org/~jk/projects/petitboot/
29 MAINTAINER:=Geoff Levand <geoffrey.levand@am.sony.com>
30 DEPENDS:=+kexec-tools +libncurses +libtwin +udev +ps3-utils
33 define Package/petitboot/description
34 Petitboot is a Linux kexec based bootloader with both
35 graphical and command-line user interfaces. The OpenWRT
36 Petitboot package has configuration options that can be
37 used to specify which Petitboot components to build, and
38 can also be used to specify that Petitboot should be run
39 automatically at system start-up.
41 Petitboot supports loading Linux kernel and initrd images
42 from any device that can be mounted by Linux. It can
43 handle gzipped images and can also load images from the
44 network using TFTP, NFS, HTTP, HTTPS, and SFTP. Petitboot
45 looks for bootloader config files on mountable devices in
46 the system, and also uses the boot configuration sent to
47 it from a DHCP server.
50 define Package/petitboot/config
51 source "$(SOURCE)/petitboot-config.in"
54 petitboot-config-args-y$(CONFIG_PETITBOOT_CUI) += --without-ncurses
55 petitboot-config-args-y$(CONFIG_PETITBOOT_GUI) += --without-twin
56 petitboot-config-args-y$(CONFIG_PETITBOOT_PS3) += --enable-ps3=no
58 petitboot-cppflags-$(CONFIG_PETITBOOT_DEBUG) += -DDEBUG
59 petitboot-cppflags-y$(CONFIG_PETITBOOT_DEBUG) += -DNDEBUG
61 petitboot-extra-bin-$(CONFIG_PETITBOOT_CUI) += /usr/sbin/pb-cui
62 petitboot-extra-bin-$(CONFIG_PETITBOOT_GUI) += /usr/sbin/pb-twin
63 petitboot-extra-data-$(CONFIG_PETITBOOT_GUI) += /usr/share/petitboot/artwork/*
65 # The platform inittab and/or initrun should check for /usr/sbin/petitboot
66 # and run it on startup if found.
68 petitboot-install-autorun-$(CONFIG_PETITBOOT_AUTORUN_CUI) = \
69 ln -sf pb-cui $(1)/usr/sbin/petitboot
70 petitboot-install-autorun-$(CONFIG_PETITBOOT_AUTORUN_GUI) = \
71 ln -sf pb-twin $(1)/usr/sbin/petitboot
73 CONFIGURE_ARGS += $(petitboot-config-args-y)
75 EXTRA_CPPFLAGS += $(petitboot-cppflags-y)
78 $(call Build/Prepare/Default)
79 (cd $(PKG_BUILD_DIR) && $(BASH) -x ./bootstrap)
82 define Package/petitboot/install
83 $(INSTALL_DIR) $(1)/usr/sbin
85 $(addprefix $(PKG_INSTALL_DIR),$(petitboot-extra-bin-y)) \
86 $(PKG_INSTALL_DIR)/usr/sbin/pb-discover \
87 $(PKG_INSTALL_DIR)/usr/sbin/pb-event \
90 $(INSTALL_DIR) $(1)/usr/share/petitboot/
92 $(addprefix $(PKG_INSTALL_DIR),$(petitboot-extra-data-y)) \
93 $(1)/usr/share/petitboot/
95 $(INSTALL_DIR) $(1)/etc/udev/rules.d
97 $(PKG_BUILD_DIR)/utils/99-petitboot.rules \
98 $(1)/etc/udev/rules.d/
100 $(INSTALL_DIR) $(1)/etc/
101 $(INSTALL_DATA) -T $(PKG_BUILD_DIR)/utils/udhcpc $(1)/etc/udhcpc.user
103 $(INSTALL_DIR) $(1)/etc/init.d
105 ./files/petitboot.init \
106 $(1)/etc/init.d/petitboot
108 $(petitboot-install-autorun-y)
111 $(eval $(call BuildPackage,petitboot))