-
Notifications
You must be signed in to change notification settings - Fork 10
/
Makefile
90 lines (64 loc) · 3.08 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#
# to build this package, you need to have the following components installed:
# dbus-glib-devel libnotify-devel gtk2-devel curl-devel
#
BINDIR=/usr/bin
SBINDIR=/usr/sbin
LOCALESDIR=/usr/share/locale
MANDIR=/usr/share/man/man8
CC?=gcc
CFLAGS := -O2 -g -fstack-protector -D_FORTIFY_SOURCE=2 -Wall -W -Wstrict-prototypes -Wundef -fno-common -Werror-implicit-function-declaration -Wdeclaration-after-statement -Wformat -Wformat-security -Werror=format-security
MY_CFLAGS := `pkg-config --cflags libnotify gtk+-2.0`
#
# pkg-config tends to make programs pull in a ton of libraries, not all
# are needed. -Wl,--as-needed tells the linker to just drop unused ones,
# and that makes the applet load faster and use less memory.
#
LDF_A := -Wl,--as-needed `pkg-config --libs libnotify gtk+-2.0`
LDF_D := -Wl,--as-needed `pkg-config --libs glib-2.0 dbus-glib-1` `curl-config --libs` -Wl,"-z relro" -Wl,"-z now"
all: kerneloops kerneloops-applet kerneloops.8.gz
noui: kerneloops kerneloops.8.gz
.c.o:
$(CC) $(CFLAGS) $(MY_CFLAGS) -c -o $@ $<
kerneloops: kerneloops.o submit.o dmesg.o configfile.o kerneloops.h
gcc kerneloops.o submit.o dmesg.o configfile.o $(LDF_D) -o kerneloops
@(cd po/ && $(MAKE))
kerneloops-applet: kerneloops-applet.o
gcc kerneloops-applet.o $(LDF_A)-o kerneloops-applet
kerneloops.8.gz: kerneloops.8
gzip -9 -c $< > $@
clean:
rm -f *~ *.o *.ko DEADJOE kerneloops kerneloops-applet *.out */*~ kerneloops.8.gz test/*.dbg
@(cd po/ && $(MAKE) $@)
dist: clean
rm -rf .git .gitignore push.sh .*~ */*~ test/*dbg
install-system: kerneloops.8.gz
-mkdir -p $(DESTDIR)$(MANDIR)
-mkdir -p $(DESTDIR)/etc/dbus-1/system.d/
install -m 0644 kerneloops.conf $(DESTDIR)/etc/kerneloops.conf
install -m 0644 kerneloops.dbus $(DESTDIR)/etc/dbus-1/system.d/
install -m 0644 kerneloops.8.gz $(DESTDIR)$(MANDIR)/
@(cd po/ && env LOCALESDIR=$(LOCALESDIR) DESTDIR=$(DESTDIR) $(MAKE) install)
install-kerneloops: kerneloops
-mkdir -p $(DESTDIR)$(SBINDIR)
install -m 0755 kerneloops $(DESTDIR)$(SBINDIR)/
install-applet: kerneloops-applet
-mkdir -p $(DESTDIR)$(BINDIR)
-mkdir -p $(DESTDIR)/etc/xdg/autostart
-mkdir -p $(DESTDIR)/usr/share/kerneloops
install -m 0755 kerneloops-applet $(DESTDIR)$(BINDIR)/
desktop-file-install --mode 0644 --dir=$(DESTDIR)/etc/xdg/autostart/ kerneloops-applet.desktop
install -m 0644 icon.png $(DESTDIR)/usr/share/kerneloops/icon.png
install: install-system install-kerneloops install-applet
install-noui: install-system install-kerneloops
# This is for translators. To update your po with new strings, do :
# svn up ; make uptrans LG=fr # or de, ru, hu, it, ...
uptrans:
xgettext -C -s -k_ -o po/kerneloops.pot *.c *.h
@(cd po/ && env LG=$(LG) $(MAKE) $@)
tests: kerneloops
desktop-file-validate *.desktop
for i in test/*txt ; do echo -n . ; ./kerneloops --debug $$i > $$i.dbg ; diff -u $$i.out $$i.dbg ; done ; echo
[ -e /usr/bin/valgrind ] && for i in test/*txt ; do echo -n . ; valgrind -q --leak-check=full ./kerneloops --debug $$i > $$i.dbg ; diff -u $$i.out $$i.dbg ; done ; echo
valgrind: kerneloops tests
valgrind -q --leak-check=full ./kerneloops --debug test/*.txt