summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile65
-rw-r--r--Makefile.in30
-rw-r--r--bootstrap5
-rw-r--r--configure.ac35
-rw-r--r--install-sh323
-rw-r--r--rules.mk65
6 files changed, 458 insertions, 65 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 2da6f86..0000000
--- a/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-PREFIX?=/usr
-VERSION=0.2
-PACKAGE=petitboot
-CC=gcc
-INSTALL=install
-TWIN_CFLAGS?=$(shell pkg-config --cflags libtwin)
-TWIN_LDFLAGS?=$(shell pkg-config --libs libtwin)
-
-LDFLAGS =
-CFLAGS = --std=gnu99 -O0 -ggdb -Wall '-DPREFIX="$(PREFIX)"'
-
-PARSERS = native yaboot kboot
-ARTWORK = background.jpg cdrom.png hdd.png usbpen.png tux.png cursor.gz
-
-all: petitboot petitboot-udev-helper
-
-petitboot: petitboot.o devices.o
- $(CC) $(LDFLAGS) -o $@ $^
-
-petitboot: LDFLAGS+=$(TWIN_LDFLAGS)
-petitboot: CFLAGS+=$(TWIN_CFLAGS)
-
-petitboot-udev-helper: devices/petitboot-udev-helper.o devices/params.o \
- devices/parser.o devices/paths.o devices/yaboot-cfg.o \
- $(foreach p,$(PARSERS),devices/$(p)-parser.o)
- $(CC) $(LDFLAGS) -o $@ $^
-
-parser-test: devices/parser-test.o devices/params.o devices/parser.o \
- devices/paths.o devices/yaboot-cfg.o \
- $(foreach p,$(PARSERS),devices/$(p)-parser.o)
- $(CC) $(LDFLAGS) -o $@ $^
-
-devices/%: CFLAGS+=-I.
-
-install: all
- $(INSTALL) -D petitboot $(DESTDIR)$(PREFIX)/sbin/petitboot
- $(INSTALL) -D petitboot-udev-helper \
- $(DESTDIR)$(PREFIX)/sbin/petitboot-udev-helper
- $(INSTALL) -Dd $(DESTDIR)$(PREFIX)/share/petitboot/artwork/
- $(INSTALL) -t $(DESTDIR)$(PREFIX)/share/petitboot/artwork/ \
- $(foreach a,$(ARTWORK),artwork/$(a))
-
-dist: $(PACKAGE)-$(VERSION).tar.gz
-
-check: parser-test
- devices/parser-test.sh
-
-distcheck: dist
- tar -xvf $(PACKAGE)-$(VERSION).tar.gz
- cd $(PACKAGE)-$(VERSION) && make check
-
-$(PACKAGE)-$(VERSION).tar.gz: $(PACKAGE)-$(VERSION)
- tar czvf $@ $^
-
-$(PACKAGE)-$(VERSION): clean
- for f in $$(git-ls-files); do \
- d=$@/$$(dirname $$f); \
- mkdir -p $$d; \
- cp -a $$f $$d; \
- done
-clean:
- rm -rf $(PACKAGE)-$(VERSION)
- rm -f petitboot
- rm -f petitboot-udev-helper
- rm -f *.o devices/*.o
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..0da5a4e
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,30 @@
+
+# general package info
+VERSION = @PACKAGE_VERSION@
+PACKAGE = @PACKAGE_NAME@
+
+# toolchain
+CC = @CC@
+LDFLAGS = @LDFLAGS@
+CFLAGS = @CFLAGS@
+DEFS = @DEFS@
+CPPFLAGS = @CPPFLAGS@ $(DEFS)
+
+# dependencies
+twin_CFLAGS = @twin_CFLAGS@
+twin_LDFLAGS = @twin_LIBS@
+
+# other programs
+INSTALL = @INSTALL@
+
+# paths
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+sbindir = @sbindir@
+datarootdir = @datarootdir@
+datadir = @datadir@
+pkgdatadir = ${datadir}/${PACKAGE}
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+include $(top_srcdir)/rules.mk
diff --git a/bootstrap b/bootstrap
new file mode 100644
index 0000000..bf4d77f
--- /dev/null
+++ b/bootstrap
@@ -0,0 +1,5 @@
+#!/bin/sh -ex
+
+aclocal
+autoheader
+autoconf
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..5ef5aa0
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,35 @@
+## configure.ac -- Process this file with autoconf to produce configure
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+AC_INIT([petitboot], [0.2], [Jeremy Kerr <jk@ozlabs.org>])
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_FILES([Makefile])
+
+default_CFLAGS='--std=gnu99 -O2 -Wall -g'
+
+if test "x$CFLAGS" = "x"; then
+ CFLAGS="$default_CFLAGS"
+fi
+
+AC_PROG_CC
+AC_PROG_INSTALL
+
+PKG_CHECK_MODULES([twin], [libtwin])
+
+mkdir devices
+
+AC_OUTPUT
diff --git a/install-sh b/install-sh
new file mode 100644
index 0000000..4d4a951
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,323 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2005-05-14.22
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+chmodcmd="$chmodprog 0755"
+chowncmd=
+chgrpcmd=
+stripcmd=
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c (ignored)
+-d create directories instead of installing files.
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
+--help display this help and exit.
+--version display version info and exit.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+ case $1 in
+ -c) shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t) dstarg=$2
+ shift
+ shift
+ continue;;
+
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
+ break;;
+ esac
+done
+
+if test -z "$1"; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src ;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ src=
+
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dstarg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dstarg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst ;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
+ dst=$dst/`basename "$src"`
+ fi
+ fi
+
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
+
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
+ shift
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
+ fi
+ pathcomp=$pathcomp/
+ done
+ fi
+
+ if test -n "$dir_arg"; then
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+ else
+ dstfile=`basename "$dst"`
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+ # Now rename the file to the real destination.
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+ || {
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+ || {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit 1
+ }
+ else
+ :
+ fi
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ }
+ }
+ fi || { (exit 1); exit 1; }
+done
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+ (exit 0); exit 0
+}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/rules.mk b/rules.mk
new file mode 100644
index 0000000..9239d29
--- /dev/null
+++ b/rules.mk
@@ -0,0 +1,65 @@
+
+VPATH = $(srcdir)
+
+# we need paths to be overridable at build-time
+DEFS += '-DPREFIX="$(prefix)"' '-DPKG_SHARE_DIR="$(pkgdatadir)"'
+
+parsers = native yaboot kboot
+artwork = background.jpg cdrom.png hdd.png usbpen.png tux.png cursor.gz
+
+petitboot_objs = petitboot.o devices.o
+
+parser_objs = devices/params.o devices/parser.o devices/paths.o \
+ devices/yaboot-cfg.o \
+ $(foreach p,$(parsers),devices/$(p)-parser.o)
+
+petitboot_udev_helper_objs = devices/petitboot-udev-helper.o $(parser_objs)
+parser_test_objs = parser-test.o $(parser_objs)
+
+all: petitboot petitboot-udev-helper
+
+petitboot: LDFLAGS+=$(twin_LDFLAGS)
+petitboot: CFLAGS+=$(twin_CFLAGS)
+
+petitboot: $(petitboot_objs)
+ $(LINK.o) -o $@ $^
+
+petitboot-udev-helper: $(petitboot_udev_helper_objs)
+ $(LINK.o) -o $@ $^
+
+parser-test: $(parser_test_objs)
+ $(LINK.o) -o $@ $^
+
+petitboot-udev-helper: CFLAGS+=-I$(top_srcdir)
+
+install: all
+ $(INSTALL) -D petitboot $(DESTDIR)$(sbindir)/petitboot
+ $(INSTALL) -D petitboot-udev-helper \
+ $(DESTDIR)$(sbindir)/petitboot-udev-helper
+ $(INSTALL) -Dd $(DESTDIR)$(pkgdatadir)/artwork/
+ $(INSTALL) -t $(DESTDIR)$(pkgdatadir)/artwork/ \
+ $(foreach a,$(artwork),$(top_srcdir)/artwork/$(a))
+
+dist: $(PACKAGE)-$(VERSION).tar.gz
+
+check: parser-test
+ devices/parser-test.sh
+
+distcheck: dist
+ tar -xvf $(PACKAGE)-$(VERSION).tar.gz
+ cd $(PACKAGE)-$(VERSION) && make check
+
+$(PACKAGE)-$(VERSION).tar.gz: $(PACKAGE)-$(VERSION)
+ tar czvf $@ $^
+
+$(PACKAGE)-$(VERSION): clean
+ for f in $$(git-ls-files); do \
+ d=$@/$$(dirname $$f); \
+ mkdir -p $$d; \
+ cp -a $$f $$d; \
+ done
+clean:
+ rm -rf $(PACKAGE)-$(VERSION)
+ rm -f petitboot
+ rm -f petitboot-udev-helper
+ rm -f *.o devices/*.o
OpenPOWER on IntegriCloud