petitboot: Update to petitboot to latest
[openwrt/svn-archive/archive.git] / utils / petitboot / Makefile
1 #
2 # Copyright (C) 2006 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=petitboot
11 PKG_VERSION:=53aa807ae41e48fd71653c2d00083a44a8bca14c
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=git://ozlabs.org/home/jk/git/petitboot
16 PKG_SOURCE_PROTO:=git
17 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
18 PKG_SOURCE_VERSION:=$(PKG_VERSION)
19
20 PKG_INSTALL=1
21
22 include $(INCLUDE_DIR)/package.mk
23
24 define Package/petitboot
25 SECTION:=boot
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
31 endef
32
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.
40
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.
48 endef
49
50 define Package/petitboot/config
51 source "$(SOURCE)/petitboot-config.in"
52 endef
53
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
57
58 petitboot-cppflags-$(CONFIG_PETITBOOT_DEBUG) += -DDEBUG
59 petitboot-cppflags-y$(CONFIG_PETITBOOT_DEBUG) += -DNDEBUG
60
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/*
64
65 # The platform inittab and/or initrun should check for /usr/sbin/petitboot
66 # and run it on startup if found.
67
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
72
73 CONFIGURE_ARGS += $(petitboot-config-args-y)
74
75 EXTRA_CPPFLAGS += $(petitboot-cppflags-y)
76
77 define Build/Prepare
78 $(call Build/Prepare/Default)
79 (cd $(PKG_BUILD_DIR) && $(BASH) -x ./bootstrap)
80 endef
81
82 define Package/petitboot/install
83 $(INSTALL_DIR) $(1)/usr/sbin
84 $(INSTALL_BIN) \
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 \
88 $(1)/usr/sbin/
89
90 $(INSTALL_DIR) $(1)/usr/share/petitboot/
91 $(INSTALL_DATA) \
92 $(addprefix $(PKG_INSTALL_DIR),$(petitboot-extra-data-y)) \
93 $(1)/usr/share/petitboot/
94
95 $(INSTALL_DIR) $(1)/etc/udev/rules.d
96 $(INSTALL_DATA) \
97 $(PKG_BUILD_DIR)/utils/99-petitboot.rules \
98 $(1)/etc/udev/rules.d/
99
100 $(INSTALL_DIR) $(1)/etc/
101 $(INSTALL_DATA) -T $(PKG_BUILD_DIR)/utils/udhcpc $(1)/etc/udhcpc.user
102
103 $(INSTALL_DIR) $(1)/etc/init.d
104 $(INSTALL_BIN) \
105 ./files/petitboot.init \
106 $(1)/etc/init.d/petitboot
107
108 $(petitboot-install-autorun-y)
109 endef
110
111 $(eval $(call BuildPackage,petitboot))