Mercurial > projects > package-update-indicator
comparison Makefile @ 0:6884bb8130ca
Initial revision
author | Guido Berhoerster <guido+pui@berhoerster.name> |
---|---|
date | Sun, 20 May 2018 11:32:57 +0200 |
parents | |
children | 2f04ec9e0506 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:6884bb8130ca |
---|---|
1 # | |
2 # Copyright (C) 2018 Guido Berhoerster <guido+pui@berhoerster.name> | |
3 # | |
4 # Permission is hereby granted, free of charge, to any person obtaining | |
5 # a copy of this software and associated documentation files (the | |
6 # "Software"), to deal in the Software without restriction, including | |
7 # without limitation the rights to use, copy, modify, merge, publish, | |
8 # distribute, sublicense, and/or sell copies of the Software, and to | |
9 # permit persons to whom the Software is furnished to do so, subject to | |
10 # the following conditions: | |
11 # | |
12 # The above copyright notice and this permission notice shall be included | |
13 # in all copies or substantial portions of the Software. | |
14 # | |
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
16 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
17 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
18 # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
19 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
20 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
21 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
22 # | |
23 | |
24 PACKAGE = package-update-indicator | |
25 APPLICATION_ID = org.guido-berhoerster.code.package-update-indicator | |
26 VERSION = 1 | |
27 DISTNAME = $(PACKAGE)-$(VERSION) | |
28 AUTHOR = Guido Berhoerster | |
29 BUG_ADDRESS = guido+pui@berhoerster.name | |
30 | |
31 # gcc, clang, icc, Sun/Solaris Studio | |
32 CC := $(CC) -std=c99 | |
33 COMPILE.c = $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(TARGET_ARCH) -c | |
34 # gcc, clang, icc | |
35 MAKEDEPEND.c = $(CC) -MM $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) | |
36 # Sun/Solaris Studio | |
37 #MAKEDEPEND.c = $(CC) -xM1 $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) | |
38 # X makedepend | |
39 #MAKEDEPEND.c = makedepend -f- -Y -- $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) -- | |
40 LINK.c = $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH) | |
41 LINK.o = $(CC) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH) | |
42 CP := cp | |
43 INSTALL := install | |
44 INSTALL.exec := $(INSTALL) -D -m 0755 | |
45 INSTALL.data := $(INSTALL) -D -m 0644 | |
46 INSTALL.link := $(CP) -f -P | |
47 PAX := pax | |
48 GZIP := gzip | |
49 SED := sed | |
50 GLIB_COMPILE_SCHEMAS := $(shell pkg-config --variable=glib_compile_schemas gio-2.0) | |
51 XSLTPROC := xsltproc | |
52 DOCBOOK5_MANPAGES_STYLESHEET = http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl | |
53 DOCBOOK5_MANPAGES_FLAGS = --stringparam man.authors.section.enabled 0 \ | |
54 --stringparam man.copyright.section.enabled 0 | |
55 MSGFMT = msgfmt | |
56 MSGMERGE = msgmerge | |
57 XGETTEXT = xgettext | |
58 XGETTEXT_OPTIONS = --copyright-holder "$(AUTHOR)" \ | |
59 --package-name '$(PACKAGE)' \ | |
60 --package-version '$(VERSION)' \ | |
61 --msgid-bugs-address '$(BUG_ADDRESS)' \ | |
62 --default-domain '$(PACKAGE)' \ | |
63 --from-code UTF-8 \ | |
64 --keyword=_ \ | |
65 --keyword=N_ \ | |
66 --keyword=C_:1c,2 \ | |
67 --keyword=NC_:1c,2 \ | |
68 --keyword=g_dngettext:2,3 \ | |
69 --add-comments | |
70 | |
71 define generate-manpage-rule = | |
72 %.$1: %.$(addsuffix .xml,$1) docbook-update-source-data.xsl | |
73 $$(XSLTPROC) \ | |
74 --xinclude \ | |
75 --stringparam package $$(PACKAGE) \ | |
76 --stringparam version $$(VERSION) \ | |
77 docbook-update-source-data.xsl $$< | \ | |
78 $$(XSLTPROC) \ | |
79 --xinclude \ | |
80 --output $$@ \ | |
81 $$(DOCBOOK5_MANPAGES_FLAGS) \ | |
82 $$(DOCBOOK5_MANPAGES_STYLESHEET) \ | |
83 - | |
84 endef | |
85 | |
86 DESTDIR ?= | |
87 prefix ?= /usr/local | |
88 bindir ?= $(prefix)/bin | |
89 datadir ?= $(prefix)/share | |
90 mandir ?= $(datadir)/man | |
91 localedir ?= $(datadir)/locale | |
92 sysconfdir ?= /etc | |
93 xdgautostartdir ?= $(sysconfdir)/xdg/autostart | |
94 | |
95 OS_NAME := $(shell uname -s) | |
96 OS_RELEASE := $(shell uname -r) | |
97 | |
98 OBJS = package-update-indicator.o \ | |
99 pui-application.o \ | |
100 pui-backend.o \ | |
101 pui-get-updates.o \ | |
102 pui-types.o | |
103 | |
104 GSETTINGS_SCHEMAS = $(APPLICATION_ID).gschema.xml | |
105 | |
106 AUTOSTART_FILES = $(APPLICATION_ID).desktop | |
107 | |
108 LINGUAS := $(shell sed 's/\#.*//' po/LINGUAS) | |
109 MOFILES := $(patsubst %,po/%.mo,$(LINGUAS)) | |
110 POTFILES_IN := $(shell sed 's/\#.*//' po/POTFILES.in) | |
111 POTFILE = po/$(PACKAGE).pot | |
112 | |
113 MANPAGES = $(PACKAGE).1 | |
114 | |
115 .DEFAULT_TARGET = all | |
116 | |
117 .PHONY: all pot update-po clean clobber dist install | |
118 | |
119 all: $(PACKAGE) $(AUTOSTART_FILES) $(MOFILES) $(MANPAGES) | |
120 | |
121 $(PACKAGE): XCPPFLAGS = -DPACKAGE=\"$(PACKAGE)\" \ | |
122 -DAPPLICATION_ID=\"$(APPLICATION_ID)\" \ | |
123 -DVERSION=\"$(VERSION)\" \ | |
124 -DG_LOG_DOMAIN=\"$(PACKAGE)\" \ | |
125 -DPACKAGE_LOCALE_DIR="\"$(localedir)\"" \ | |
126 -DGETTEXT_PACKAGE=\"$(PACKAGE)\" \ | |
127 -DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE | |
128 $(PACKAGE): XCFLAGS = $(shell pkg-config --cflags gtk+-3.0 \ | |
129 appindicator3-0.1 packagekit-glib2) | |
130 $(PACKAGE): LDLIBS = $(shell pkg-config --libs gtk+-3.0 \ | |
131 appindicator3-0.1 packagekit-glib2) | |
132 | |
133 ifneq ($(findstring $(OS_NAME),FreeBSD DragonFly OpenBSD),) | |
134 $(PACKAGE): XCPPFLAGS += -I/usr/local/include | |
135 $(PACKAGE): XLDFLAGS += -L/usr/local/lib | |
136 else ifeq ($(OS_NAME),NetBSD) | |
137 $(PACKAGE): XCPPFLAGS += -I/usr/pkg/include | |
138 $(PACKAGE): XLDFLAGS += -L/usr/pkg/lib | |
139 endif | |
140 ifeq ($(findstring $(OS_NAME),FreeBSD DragonFly NetBSD OpenBSD),) | |
141 $(PACKAGE): XCPPFLAGS += -D_XOPEN_SOURCE=600 | |
142 endif | |
143 | |
144 $(PACKAGE): $(OBJS) | |
145 $(LINK.o) $^ $(LDLIBS) -o $@ | |
146 | |
147 $(POTFILE): po/POTFILES.in $(POTFILES_IN) | |
148 $(XGETTEXT) $(XGETTEXT_OPTIONS) --files-from $< --output $@ | |
149 | |
150 pot: $(POTFILE) | |
151 | |
152 update-po: $(POTFILE) | |
153 for pofile in $(patsubst %.mo,%.po,$(MOFILES)); do \ | |
154 $(MSGMERGE) --update --backup off $$pofile $<; \ | |
155 done | |
156 | |
157 %.mo: %.po | |
158 $(MSGFMT) --output $@ $< | |
159 | |
160 %.desktop: %.desktop.in | |
161 $(MSGFMT) --desktop --template $< -d po --output $@ | |
162 | |
163 $(foreach section,1 2 3 4 5 6 7 8 9,$(eval $(call generate-manpage-rule,$(section)))) | |
164 | |
165 %.o: %.c | |
166 $(MAKEDEPEND.c) $< | $(SED) -f deps.sed >$*.d | |
167 $(COMPILE.c) -o $@ $< | |
168 | |
169 install: all | |
170 $(INSTALL.exec) $(PACKAGE) "$(DESTDIR)$(bindir)/$(PACKAGE)" | |
171 for schema in $(GSETTINGS_SCHEMAS); do \ | |
172 $(INSTALL.data) $${schema} \ | |
173 $(DESTDIR)$(datadir)/glib-2.0/schemas/$${schema}; \ | |
174 done | |
175 [ -n "$(GSETTINGS_SCHEMAS)" ] && \ | |
176 $(GLIB_COMPILE_SCHEMAS) $(datadir)/glib-2.0/schemas | |
177 for desktop_file in $(AUTOSTART_FILES); do \ | |
178 $(INSTALL.data) $${desktop_file} \ | |
179 $(DESTDIR)$(xdgautostartdir)/$${desktop_file}; \ | |
180 done | |
181 for lang in $(LINGUAS); do \ | |
182 $(INSTALL.data) po/$${lang}.mo \ | |
183 $(DESTDIR)$(localedir)/$${lang}/LC_MESSAGES/$(PACKAGE).mo; \ | |
184 done | |
185 for manpage in $(MANPAGES); do \ | |
186 $(INSTALL.data) $${manpage} \ | |
187 "$(DESTDIR)$(mandir)/man$${manpage##*.}/$${manpage##*/}"; \ | |
188 done | |
189 | |
190 clean: | |
191 rm -f $(PACKAGE) $(OBJS) $(AUTOSTART_FILES) $(POTFILE) $(MOFILES) \ | |
192 $(MANPAGES) | |
193 | |
194 clobber: clean | |
195 rm -f $(patsubst %.o,%.d,$(OBJS)) | |
196 | |
197 dist: clobber | |
198 $(PAX) -w -x ustar -s ',.*/\..*,,' -s ',./[^/]*\.tar\.gz,,' \ | |
199 -s ',^\.$$,,' -s ',\./,$(DISTNAME)/,' . | \ | |
200 $(GZIP) > $(DISTNAME).tar.gz | |
201 | |
202 -include local.mk | |
203 | |
204 -include $(patsubst %.o,%.d,$(OBJS)) |