2da6f86492f37400349e957149bb5622a7c1d3cd
[petitboot] / Makefile
1 PREFIX?=/usr
2 VERSION=0.2
3 PACKAGE=petitboot
4 CC=gcc
5 INSTALL=install
6 TWIN_CFLAGS?=$(shell pkg-config --cflags libtwin)
7 TWIN_LDFLAGS?=$(shell pkg-config --libs libtwin)
8
9 LDFLAGS =
10 CFLAGS = --std=gnu99 -O0 -ggdb -Wall '-DPREFIX="$(PREFIX)"'
11
12 PARSERS = native yaboot kboot
13 ARTWORK = background.jpg cdrom.png hdd.png usbpen.png tux.png cursor.gz
14
15 all: petitboot petitboot-udev-helper
16
17 petitboot: petitboot.o devices.o
18         $(CC) $(LDFLAGS) -o $@ $^
19
20 petitboot: LDFLAGS+=$(TWIN_LDFLAGS)
21 petitboot: CFLAGS+=$(TWIN_CFLAGS)
22
23 petitboot-udev-helper: devices/petitboot-udev-helper.o devices/params.o \
24                 devices/parser.o devices/paths.o devices/yaboot-cfg.o \
25                 $(foreach p,$(PARSERS),devices/$(p)-parser.o)
26         $(CC) $(LDFLAGS) -o $@ $^
27
28 parser-test: devices/parser-test.o devices/params.o devices/parser.o \
29                 devices/paths.o devices/yaboot-cfg.o \
30                 $(foreach p,$(PARSERS),devices/$(p)-parser.o)
31         $(CC) $(LDFLAGS) -o $@ $^
32
33 devices/%: CFLAGS+=-I.
34
35 install: all
36         $(INSTALL) -D petitboot $(DESTDIR)$(PREFIX)/sbin/petitboot
37         $(INSTALL) -D petitboot-udev-helper \
38                 $(DESTDIR)$(PREFIX)/sbin/petitboot-udev-helper
39         $(INSTALL) -Dd $(DESTDIR)$(PREFIX)/share/petitboot/artwork/
40         $(INSTALL) -t $(DESTDIR)$(PREFIX)/share/petitboot/artwork/ \
41                 $(foreach a,$(ARTWORK),artwork/$(a))
42
43 dist:   $(PACKAGE)-$(VERSION).tar.gz
44
45 check:  parser-test
46         devices/parser-test.sh
47
48 distcheck: dist
49         tar -xvf $(PACKAGE)-$(VERSION).tar.gz
50         cd $(PACKAGE)-$(VERSION) && make check
51
52 $(PACKAGE)-$(VERSION).tar.gz: $(PACKAGE)-$(VERSION)
53         tar czvf $@ $^
54
55 $(PACKAGE)-$(VERSION): clean
56         for f in $$(git-ls-files); do \
57                 d=$@/$$(dirname $$f); \
58                 mkdir -p $$d; \
59                 cp -a $$f $$d; \
60         done
61 clean:
62         rm -rf $(PACKAGE)-$(VERSION)
63         rm -f petitboot
64         rm -f petitboot-udev-helper
65         rm -f *.o devices/*.o