diff Makefile @ 0:6884bb8130ca

Initial revision
author Guido Berhoerster <guido+pui@berhoerster.name>
date Sun, 20 May 2018 11:32:57 +0200
parents
children 2f04ec9e0506
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Sun May 20 11:32:57 2018 +0200
@@ -0,0 +1,204 @@
+#
+# Copyright (C) 2018 Guido Berhoerster <guido+pui@berhoerster.name>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+PACKAGE =	package-update-indicator
+APPLICATION_ID = org.guido-berhoerster.code.package-update-indicator
+VERSION =	1
+DISTNAME =	$(PACKAGE)-$(VERSION)
+AUTHOR =	Guido Berhoerster
+BUG_ADDRESS =	guido+pui@berhoerster.name
+
+# gcc, clang, icc, Sun/Solaris Studio
+CC :=		$(CC) -std=c99
+COMPILE.c =	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(TARGET_ARCH) -c
+# gcc, clang, icc
+MAKEDEPEND.c =	$(CC) -MM $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS)
+# Sun/Solaris Studio
+#MAKEDEPEND.c =	$(CC) -xM1 $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS)
+# X makedepend
+#MAKEDEPEND.c =	makedepend -f- -Y -- $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) --
+LINK.c =	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH)
+LINK.o =	$(CC) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH)
+CP :=		cp
+INSTALL :=	install
+INSTALL.exec :=	$(INSTALL) -D -m 0755
+INSTALL.data :=	$(INSTALL) -D -m 0644
+INSTALL.link :=	$(CP) -f -P
+PAX :=		pax
+GZIP :=		gzip
+SED :=		sed
+GLIB_COMPILE_SCHEMAS := $(shell pkg-config --variable=glib_compile_schemas gio-2.0)
+XSLTPROC :=	xsltproc
+DOCBOOK5_MANPAGES_STYLESHEET = http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl
+DOCBOOK5_MANPAGES_FLAGS = --stringparam man.authors.section.enabled 0 \
+		--stringparam man.copyright.section.enabled 0
+MSGFMT =	msgfmt
+MSGMERGE =	msgmerge
+XGETTEXT =	xgettext
+XGETTEXT_OPTIONS = --copyright-holder "$(AUTHOR)" \
+		--package-name '$(PACKAGE)' \
+		--package-version '$(VERSION)' \
+		--msgid-bugs-address '$(BUG_ADDRESS)' \
+		--default-domain '$(PACKAGE)' \
+		--from-code UTF-8 \
+		--keyword=_ \
+		--keyword=N_ \
+		--keyword=C_:1c,2 \
+		--keyword=NC_:1c,2 \
+		--keyword=g_dngettext:2,3 \
+		--add-comments
+
+define generate-manpage-rule =
+%.$1: %.$(addsuffix .xml,$1) docbook-update-source-data.xsl
+	$$(XSLTPROC) \
+	    --xinclude \
+	    --stringparam package $$(PACKAGE) \
+	    --stringparam version $$(VERSION) \
+	    docbook-update-source-data.xsl $$< | \
+	    $$(XSLTPROC) \
+	    --xinclude \
+	    --output $$@ \
+	    $$(DOCBOOK5_MANPAGES_FLAGS) \
+	    $$(DOCBOOK5_MANPAGES_STYLESHEET) \
+	    -
+endef
+
+DESTDIR ?=
+prefix ?=	/usr/local
+bindir ?=	$(prefix)/bin
+datadir ?=	$(prefix)/share
+mandir ?=	$(datadir)/man
+localedir ?=	$(datadir)/locale
+sysconfdir ?=	/etc
+xdgautostartdir ?= $(sysconfdir)/xdg/autostart
+
+OS_NAME :=	$(shell uname -s)
+OS_RELEASE :=	$(shell uname -r)
+
+OBJS =		package-update-indicator.o \
+		pui-application.o \
+		pui-backend.o \
+		pui-get-updates.o \
+		pui-types.o
+
+GSETTINGS_SCHEMAS = $(APPLICATION_ID).gschema.xml
+
+AUTOSTART_FILES = $(APPLICATION_ID).desktop
+
+LINGUAS :=	$(shell sed 's/\#.*//' po/LINGUAS)
+MOFILES :=	$(patsubst %,po/%.mo,$(LINGUAS))
+POTFILES_IN :=	$(shell sed 's/\#.*//' po/POTFILES.in)
+POTFILE =	po/$(PACKAGE).pot
+
+MANPAGES =	$(PACKAGE).1
+
+.DEFAULT_TARGET = all
+
+.PHONY: all pot update-po clean clobber dist install
+
+all: $(PACKAGE) $(AUTOSTART_FILES) $(MOFILES) $(MANPAGES)
+
+$(PACKAGE): XCPPFLAGS =	-DPACKAGE=\"$(PACKAGE)\" \
+			-DAPPLICATION_ID=\"$(APPLICATION_ID)\" \
+			-DVERSION=\"$(VERSION)\" \
+			-DG_LOG_DOMAIN=\"$(PACKAGE)\" \
+			-DPACKAGE_LOCALE_DIR="\"$(localedir)\"" \
+			-DGETTEXT_PACKAGE=\"$(PACKAGE)\" \
+			-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE
+$(PACKAGE): XCFLAGS =	$(shell pkg-config --cflags gtk+-3.0 \
+			    appindicator3-0.1 packagekit-glib2)
+$(PACKAGE): LDLIBS =	$(shell pkg-config --libs gtk+-3.0 \
+			    appindicator3-0.1 packagekit-glib2)
+
+ifneq ($(findstring $(OS_NAME),FreeBSD DragonFly OpenBSD),)
+  $(PACKAGE): XCPPFLAGS +=	-I/usr/local/include
+  $(PACKAGE): XLDFLAGS +=	-L/usr/local/lib
+else ifeq ($(OS_NAME),NetBSD)
+  $(PACKAGE): XCPPFLAGS +=	-I/usr/pkg/include
+  $(PACKAGE): XLDFLAGS +=	-L/usr/pkg/lib
+endif
+ifeq ($(findstring $(OS_NAME),FreeBSD DragonFly NetBSD OpenBSD),)
+  $(PACKAGE): XCPPFLAGS +=	-D_XOPEN_SOURCE=600
+endif
+
+$(PACKAGE): $(OBJS)
+	$(LINK.o) $^ $(LDLIBS) -o $@
+
+$(POTFILE): po/POTFILES.in $(POTFILES_IN)
+	$(XGETTEXT) $(XGETTEXT_OPTIONS) --files-from $< --output $@
+
+pot: $(POTFILE)
+
+update-po: $(POTFILE)
+	for pofile in $(patsubst %.mo,%.po,$(MOFILES)); do \
+	    $(MSGMERGE) --update --backup off $$pofile $<; \
+	done
+
+%.mo: %.po
+	$(MSGFMT) --output $@ $<
+
+%.desktop: %.desktop.in
+	$(MSGFMT) --desktop --template $< -d po --output $@
+
+$(foreach section,1 2 3 4 5 6 7 8 9,$(eval $(call generate-manpage-rule,$(section))))
+
+%.o: %.c
+	$(MAKEDEPEND.c) $< | $(SED) -f deps.sed >$*.d
+	$(COMPILE.c) -o $@ $<
+
+install: all
+	$(INSTALL.exec) $(PACKAGE) "$(DESTDIR)$(bindir)/$(PACKAGE)"
+	for schema in $(GSETTINGS_SCHEMAS); do \
+	    $(INSTALL.data) $${schema} \
+	        $(DESTDIR)$(datadir)/glib-2.0/schemas/$${schema}; \
+	done
+	[ -n "$(GSETTINGS_SCHEMAS)" ] && \
+	    $(GLIB_COMPILE_SCHEMAS) $(datadir)/glib-2.0/schemas
+	for desktop_file in $(AUTOSTART_FILES); do \
+	    $(INSTALL.data) $${desktop_file} \
+	        $(DESTDIR)$(xdgautostartdir)/$${desktop_file}; \
+	done
+	for lang in $(LINGUAS); do \
+	   $(INSTALL.data) po/$${lang}.mo \
+	        $(DESTDIR)$(localedir)/$${lang}/LC_MESSAGES/$(PACKAGE).mo; \
+	done
+	for manpage in $(MANPAGES); do \
+	    $(INSTALL.data) $${manpage} \
+	        "$(DESTDIR)$(mandir)/man$${manpage##*.}/$${manpage##*/}"; \
+	done
+
+clean:
+	rm -f $(PACKAGE) $(OBJS) $(AUTOSTART_FILES) $(POTFILE) $(MOFILES) \
+	    $(MANPAGES)
+
+clobber: clean
+	rm -f $(patsubst %.o,%.d,$(OBJS))
+
+dist: clobber
+	$(PAX) -w -x ustar -s ',.*/\..*,,' -s ',./[^/]*\.tar\.gz,,' \
+	    -s ',^\.$$,,' -s ',\./,$(DISTNAME)/,' . | \
+	    $(GZIP) > $(DISTNAME).tar.gz
+
+-include local.mk
+
+-include $(patsubst %.o,%.d,$(OBJS))