File: Makefile

package info (click to toggle)
cbatticon 1.6.9-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 268 kB
  • sloc: ansic: 828; makefile: 93; sh: 1
file content (124 lines) | stat: -rw-r--r-- 3,294 bytes parent folder | download
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# options

### verbosity: 0 for off, 1 for on (default: off)
V = 0

### whether to link against gtk3 or gtk2 (default: gtk3)
WITH_GTK3 = 1

### libnotify support: 0 for off, 1 for on (default: on)
WITH_NOTIFY = 1

# programs

CC ?= gcc
MSGFMT = msgfmt
PKG_CONFIG ?= pkg-config
RM = rm -f
GETTEXT=xgettext
INSTALL = install
INSTALL_BIN = $(INSTALL) -m755
INSTALL_DATA = $(INSTALL) -m644

# variables

PACKAGE_NAME = cbatticon
VERSION = $(shell grep CBATTICON_VERSION_NUMBER cbatticon.c | awk '{print $$3}')
PREFIX ?= /usr
BINDIR = $(PREFIX)/bin
DOCDIR = $(PREFIX)/share/doc/$(PACKAGE_NAME)-$(VERSION)
MANDIR = $(PREFIX)/share/man/man1
NLSDIR = $(PREFIX)/share/locale
LANGUAGES = bs de el fr he hr id ja pt_BR ru sr tr zh_TW

BIN = $(PACKAGE_NAME)
SOURCEFILES := $(wildcard *.c)
OBJECTS := $(patsubst %.c,%.o,$(SOURCEFILES))
SOURCECATALOGS := $(wildcard *.po)
TRANSLATIONS := $(patsubst %.po,%.mo,$(SOURCECATALOGS))

# flags and libs

ifeq ($(V),0)
VERBOSE=@
else
VERBOSE=
endif

ifeq ($(WITH_NOTIFY),1)
CPPFLAGS += -DWITH_NOTIFY
endif
CPPFLAGS += -DNLSDIR=\"$(NLSDIR)\"

CFLAGS ?= -O2
CFLAGS += -Wall -Wno-format -Wno-deprecated-declarations -std=c99
CFLAGS += $(shell $(PKG_CONFIG) --cflags $(PKG_DEPS))

ifeq ($(WITH_GTK3), 0)
PKG_DEPS = gtk+-2.0
else
PKG_DEPS = gtk+-3.0
endif

ifeq ($(WITH_NOTIFY),1)
PKG_DEPS += libnotify
endif

LIBS += $(shell $(PKG_CONFIG) --libs $(PKG_DEPS)) -lm

# targets

all: $(BIN) $(TRANSLATIONS)

$(BIN): $(OBJECTS)
	@echo -e '\033[0;35mLinking executable $@\033[0m'
	$(VERBOSE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)

$(OBJECTS): $(SOURCEFILES)
	@echo -e '\033[0;32mBuilding object $@\033[0m'
	$(VERBOSE) $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

$(TRANSLATIONS): %.mo: %.po
	@echo -e '\033[0;36mCompiling messages catalog $@\033[0m'
	$(VERBOSE) $(MSGFMT) -o $@ $<

install: $(BIN) $(TRANSLATIONS)
	@echo -e '\033[0;33mInstalling $(PACKAGE_NAME)\033[0m'
	$(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(BINDIR)"
	$(VERBOSE) $(INSTALL_BIN) $(BIN) "$(DESTDIR)$(BINDIR)"/
	$(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(DOCDIR)"
	$(VERBOSE) $(INSTALL_DATA) README "$(DESTDIR)$(DOCDIR)"/
	$(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(MANDIR)"
	$(VERBOSE) $(INSTALL_DATA) cbatticon.1 "$(DESTDIR)$(MANDIR)"/
	$(VERBOSE) for language in $(LANGUAGES); \
	do \
		$(INSTALL) -d "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES; \
		$(INSTALL_DATA) $$language.mo "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES/$(PACKAGE_NAME).mo; \
	done

uninstall:
	@echo -e '\033[0;33mUninstalling $(PACKAGE_NAME)\033[0m'
	$(VERBOSE) $(RM) "$(DESTDIR)$(BINDIR)"/$(BIN)
	$(VERBOSE) $(RM) "$(DESTDIR)$(DOCDIR)"/README
	$(VERBOSE) $(RM) "$(DESTDIR)$(MANDIR)"/cbatticon.1
	$(VERBOSE) for language in $(LANGUAGES); \
	do \
		$(VERBOSE) $(RM) "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES/$(PACKAGE_NAME).mo; \
	done

clean:
	@echo -e '\033[0;33mCleaning up source directory\033[0m'
	$(VERBOSE) $(RM) $(BIN) $(OBJECTS) $(TRANSLATIONS)

translation-refresh-pot:
	$(VERBOSE) $(GETTEXT) --default-domain=$(PACKAGE_NAME) --add-comments \
		--keyword=_ --keyword=N_ --keyword=g_dngettext:2,3 $(SOURCEFILES) \
		--output=$(PACKAGE_NAME).pot

translation-status:
	$(VERBOSE) for catalog in $(SOURCECATALOGS); \
	do \
		$(MSGFMT) -v --statistics -o /dev/null $$catalog; \
	done

.PHONY: install uninstall clean translation-status