rev to 0.9.
[meego-developer-tools:corewatcher.git] / Makefile
1 VERSION = 0.9
2 #
3 # to build this package, you need to have the following components installed:
4 # dbus-glib-devel libnotify-devel gtk2-devel curl-devel
5 #
6
7 BINDIR=/usr/bin
8 SBINDIR=/usr/sbin
9 LOCALESDIR=/usr/share/locale
10 MANDIR=/usr/share/man/man8
11 CC?=gcc
12
13 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
14
15 MY_CFLAGS := `pkg-config --cflags libnotify gtk+-2.0`
16 #
17 # pkg-config tends to make programs pull in a ton of libraries, not all
18 # are needed. -Wl,--as-needed tells the linker to just drop unused ones,
19 # and that makes the applet load faster and use less memory.
20 #
21 LDF_A := -Wl,--as-needed `pkg-config --libs libnotify gtk+-2.0`
22 LDF_D := -Wl,--as-needed `pkg-config --libs glib-2.0 dbus-glib-1` `curl-config --libs` -Wl,"-z relro" -Wl,"-z now"
23
24 all:    corewatcher corewatcher-applet corewatcher.8.gz
25
26 noui:   corewatcher corewatcher.8.gz
27
28 .c.o:
29         $(CC) $(CFLAGS) $(MY_CFLAGS) -c -o $@ $<
30
31
32 corewatcher:    corewatcher.o submit.o coredump.o configfile.o find_file.o corewatcher.h
33         gcc corewatcher.o submit.o coredump.o configfile.o find_file.o $(LDF_D) -o corewatcher
34         @(cd po/ && $(MAKE))
35
36 corewatcher-applet: corewatcher-applet.o
37         gcc corewatcher-applet.o $(LDF_A)-o corewatcher-applet
38
39 corewatcher.8.gz: corewatcher.8
40         gzip -9 -c $< > $@
41
42 clean:
43         rm -f *~ *.o *.ko DEADJOE corewatcher corewatcher-applet *.out */*~ corewatcher.8.gz
44         @(cd po/ && $(MAKE) $@)
45
46
47 install-system: corewatcher.8.gz
48         -mkdir -p $(DESTDIR)$(MANDIR)
49         -mkdir -p $(DESTDIR)/var/lib/corewatcher
50         -mkdir -p $(DESTDIR)/etc/security/limits.d/
51         -mkdir -p $(DESTDIR)/etc/init.d
52         -mkdir -p $(DESTDIR)/etc/dbus-1/system.d/
53         install -m 0644 95-core.conf $(DESTDIR)/etc/security/limits.d/95-core.conf
54         install -m 0644 corewatcher.conf $(DESTDIR)/etc/corewatcher.conf
55         install -m 0644 corewatcher.dbus $(DESTDIR)/etc/dbus-1/system.d/
56         install -m 0644 corewatcher.8.gz $(DESTDIR)$(MANDIR)/
57         install -m 0744 corewatcher.init $(DESTDIR)/etc/init.d/corewatcher
58         install -m 0644 gdb.command  $(DESTDIR)/var/lib/corewatcher/
59         @(cd po/ && env LOCALESDIR=$(LOCALESDIR) DESTDIR=$(DESTDIR) $(MAKE) install)
60
61 install-corewatcher: corewatcher
62         -mkdir -p $(DESTDIR)$(SBINDIR)
63         install -m 0755 corewatcher $(DESTDIR)$(SBINDIR)/
64
65 install-applet: corewatcher-applet
66         -mkdir -p $(DESTDIR)$(BINDIR)
67         -mkdir -p $(DESTDIR)/etc/xdg/autostart
68         -mkdir -p $(DESTDIR)/usr/share/corewatcher
69         install -m 0755 corewatcher-applet $(DESTDIR)$(BINDIR)/
70         desktop-file-install --mode 0644 --dir=$(DESTDIR)/etc/xdg/autostart/ corewatcher-applet.desktop
71         install -m 0644 icon.png $(DESTDIR)/usr/share/corewatcher/icon.png
72
73 install: install-system install-corewatcher install-applet
74
75 install-noui: install-system install-corewatcher
76
77
78 # This is for translators. To update your po with new strings, do :
79 # svn up ; make uptrans LG=fr # or de, ru, hu, it, ...
80 uptrans:
81         xgettext -C -s -k_ -o po/corewatcher.pot *.c *.h
82         @(cd po/ && env LG=$(LG) $(MAKE) $@)
83
84
85 tests: corewatcher
86         desktop-file-validate *.desktop
87         for i in test/*txt ; do echo -n . ; ./corewatcher --debug $$i > $$i.dbg ; diff -u $$i.out $$i.dbg ; done ; echo
88         [ -e /usr/bin/valgrind ] && for i in test/*txt ; do echo -n . ; valgrind -q --leak-check=full ./corewatcher --debug $$i > $$i.dbg ; diff -u $$i.out $$i.dbg ; done ; echo
89
90 valgrind: corewatcher tests
91         valgrind -q --leak-check=full ./corewatcher --debug test/*.txt
92
93 dist:
94         git tag v$(VERSION)
95         git archive --format=tar --prefix="corewatcher-$(VERSION)/" v$(VERSION) | \
96                 gzip > corewatcher-$(VERSION).tar.gz