c54be94159688f2a2dbfba450e454e3f18b90d1d
[petitboot] / Makefile
1 PREFIX?=/usr
2 VERSION=0.0.1
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         mkdir $@ $@/devices
57         cp -a artwork $@
58         cp -a utils $@
59         cp *.[ch] $@
60         cp -a devices/*.{c,h,sh} $@/devices/
61         cp -a devices/parser-tests $@/devices/
62         cp Makefile $@
63         cp TODO COPYING $@
64
65 clean:
66         rm -rf $(PACKAGE)-$(VERSION)
67         rm -f petitboot
68         rm -f petitboot-udev-helper
69         rm -f *.o devices/*.o