Mercurial > projects > xwrited
diff Makefile @ 0:52694b49dcc4
Initial revision
author | Guido Berhoerster <guido+xwrited@berhoerster.name> |
---|---|
date | Sun, 27 Apr 2014 23:07:51 +0200 |
parents | |
children | c53bcdabbba7 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Sun Apr 27 23:07:51 2014 +0200 @@ -0,0 +1,135 @@ +# +# Copyright (C) 2011 Guido Berhoerster <guido+xwrited@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 = xwrited +APP_NAME = org.guido-berhoerster.code.xwrited +VERSION = 1 +DISTNAME := $(PACKAGE)-$(VERSION) + +# gcc, clang, icc +MAKEDEPEND.c = $(CC) -MM $(CFLAGS) $(CPPFLAGS) +# Sun/Solaris Studio +#MAKEDEPEND.c = $(CC) -xM1 $(CFLAGS) $(CPPFLAGS) +# X makedepend +#MAKEDEPEND.c = makedepend -f- -Y -- $(CFLAGS) $(CPPFLAGS) -- +INSTALL := install +INSTALL.exec := $(INSTALL) -D -m 0755 +INSTALL.data := $(INSTALL) -D -m 0644 +PAX := pax +GZIP := gzip +SED := sed +PASTE := paste +MSGFMT := msgfmt +INTLTOOL_UPDATE := intltool-update +INTLTOOL_MERGE := intltool-merge + +DESTDIR ?= +prefix ?= /usr/local +bindir ?= $(prefix)/bin +datadir ?= $(prefix)/share +localedir ?= $(datadir)/locale +sysconfdir ?= /etc +xdgautostartdir ?= $(sysconfdir)/xdg/autostart + +OS_NAME := $(shell uname -s) + +PKGCONFIG_LIBS := dbus-1 glib-2.0 dbus-glib-1 libnotify +EXTRA_LIBS := + +ifeq ($(OS_NAME),Linux) + OBJS_UTMP := xwrited-utmp-utempter.o + EXTRA_LIBS += -lutempter +else ifeq ($(OS_NAME),FreeBSD) + OBJS_UTMP := xwrited-utmp-utempter.o + EXTRA_LIBS += -lutempter +else + OBJS_UTMP := xwrited-utmp-utmpx.o +endif + +OBJS = main.o xwrited-debug.o xwrited-unique.o $(OBJS_UTMP) +AUTOSTART_FILE = $(PACKAGE).desktop +MOFILES := $(patsubst %.po,%.mo,$(wildcard po/*.po)) +POTFILE = po/$(PACKAGE).pot +POSRCS := $(shell $(SED) -e 's/\#.*//' -e '/^[ \t]*$$/d' \ + -e 's/^\[[^]]*\]//' po/POTFILES.in | $(PASTE) -s -d ' ') +CPPFLAGS := $(CPPFLAGS_EXTRA) \ + $(CPPFLAGS_LIBUTEMPTER) \ + $(shell pkg-config --cflags $(PKGCONFIG_LIBS)) \ + -DPACKAGE="\"$(PACKAGE)\"" \ + -DAPP_NAME=\"$(APP_NAME)\" \ + -DVERSION=\"$(VERSION)\" \ + -DLOCALEDIR="\"$(localedir)\"" \ + -DG_LOG_DOMAIN=\"$(PACKAGE)\" +LDLIBS := $(EXTRA_LIBS) \ + $(shell pkg-config --libs $(PKGCONFIG_LIBS)) + +.DEFAULT_TARGET = all + +.PHONY: all clean clobber dist install + +all: $(PACKAGE) $(MOFILES) $(AUTOSTART_FILE) + +$(PACKAGE): $(OBJS) + $(LINK.o) $^ $(LDLIBS) -o $@ + +$(POTFILE): po/POTFILES.in $(POSRCS) + cd po/ && $(INTLTOOL_UPDATE) --pot --gettext-package="$(PACKAGE)" + +pot: $(POTFILE) + +update-po: $(POTFILE) + cd po/ && for lang in $(patsubst po/%.mo,%,$(MOFILES)); do \ + $(INTLTOOL_UPDATE) --dist --gettext-package="$(PACKAGE)" \ + $${lang}; \ + done + +%.o: %.c + $(MAKEDEPEND.c) $< | $(SED) -f deps.sed >$*.d + $(COMPILE.c) -o $@ $< + +%.desktop: %.desktop.in $(MOFILES) + $(INTLTOOL_MERGE) --desktop-style --utf8 po $< $@ + +%.mo: %.po + $(MSGFMT) -o $@ $< + +install: + $(INSTALL.exec) $(PACKAGE) "$(DESTDIR)$(bindir)/$(PACKAGE)" + for lang in $(patsubst po/%.mo,%,$(MOFILES)); do \ + $(INSTALL.data) po/$${lang}.mo \ + "$(DESTDIR)$(localedir)/$${lang}/LC_MESSAGES/$(PACKAGE).mo"; \ + done + $(INSTALL.data) $(AUTOSTART_FILE) \ + "$(DESTDIR)$(xdgautostartdir)/$(notdir $(AUTOSTART_FILE))" + +clean: + rm -f $(PACKAGE) $(OBJS) $(POTFILE) $(MOFILES) $(AUTOSTART_FILE) + +clobber: clean + rm -f $(patsubst %.o,%.d,$(OBJS)) + +dist: clobber + $(PAX) -w -x ustar -s ',.*/\..*,,' -s ',./[^/]*\.tar\.gz,,' \ + -s ',\./,$(DISTNAME)/,' . | $(GZIP) > $(DISTNAME).tar.gz + +-include $(patsubst %.o,%.d,$(OBJS))