]> git.ozlabs.org Git - petitboot/blobdiff - Makefile
Version 0.2
[petitboot] / Makefile
index 669e56a8210834994394dad86e7a41a0d318c03f..2da6f86492f37400349e957149bb5622a7c1d3cd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,18 @@
+PREFIX?=/usr
+VERSION=0.2
+PACKAGE=petitboot
 CC=gcc
-TWIN_CFLAGS=$(shell pkg-config --cflags libtwin)
-TWIN_LDFLAGS=$(shell pkg-config --libs libtwin)
+INSTALL=install
+TWIN_CFLAGS?=$(shell pkg-config --cflags libtwin)
+TWIN_LDFLAGS?=$(shell pkg-config --libs libtwin)
 
-LDFLAGS = 
-CFLAGS = -O0 -ggdb -Wall
+LDFLAGS =
+CFLAGS = --std=gnu99 -O0 -ggdb -Wall '-DPREFIX="$(PREFIX)"'
 
-PARSERS = native
+PARSERS = native yaboot kboot
+ARTWORK = background.jpg cdrom.png hdd.png usbpen.png tux.png cursor.gz
 
-all: petitboot udev-helper
+all: petitboot petitboot-udev-helper
 
 petitboot: petitboot.o devices.o
        $(CC) $(LDFLAGS) -o $@ $^
@@ -15,11 +20,46 @@ petitboot: petitboot.o devices.o
 petitboot: LDFLAGS+=$(TWIN_LDFLAGS)
 petitboot: CFLAGS+=$(TWIN_CFLAGS)
 
-udev-helper: devices/udev-helper.o devices/params.o \
+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 udev-helper
+       rm -f petitboot-udev-helper
        rm -f *.o devices/*.o