Summary Files Commits Branches @commit @diff @stats
path: root / Makefile
diff options
context:
space:
mode:
Commit59f1c5d4dbcebc48d1d408dba0be2959d7970167 (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-02-04 09:14:42 +0100
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-02-04 09:14:42 +0100
Files98e92b3ace336ba236e9d5e07c15648d070378c0 /Makefile
goodwolf-59f1c5d4dbcebc48d1d408dba0be2959d7970167.tar
goodwolf-59f1c5d4dbcebc48d1d408dba0be2959d7970167.tar.gz
goodwolf-59f1c5d4dbcebc48d1d408dba0be2959d7970167.zip
Parent9765887719fd5c3f784d30084111243caf90f16f (diff)
Parenteb974dcccdbcb35fa067ace053bc1fac7406b768 (diff)
Merge branch 'release-0.5' v0.5.0-rc.1
1 files changed, 50 insertions, 22 deletions
-rw-r--r--Makefile72
diff --git a/Makefile b/Makefile
index 0a58cda..c6092c6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,43 +1,69 @@
.POSIX:
+# POSIX Makefile with extensions common to *BSD and GNU such as:
+# - Usage of backticks for shell evaluation
+# - Usage of ?= for defining variables when not already defined
+# - Usage of += for appending to a variable
-PREFIX = /usr/local
-BINDIR = $(PREFIX)/bin
-MANDIR = $(PREFIX)/share/man
-DATADIR = $(PREFIX)/share/badwolf
-APPSDIR = $(PREFIX)/share/applications
-PACKAGE = Badwolf
+PACKAGE = Badwolf
+VERSION = 0.5.0-rc.1
+VERSION_FULL = $(VERSION)`./version.sh`
-DEPS = gtk+-3.0 webkit2gtk-4.0
-OBJS = keybindings.o badwolf.o
+PREFIX ?= /usr/local
+BINDIR ?= $(PREFIX)/bin
+MANDIR ?= $(PREFIX)/share/man
+DOCDIR ?= $(PREFIX)/share/doc/badwolf-$(VERSION)
+DATADIR ?= $(PREFIX)/share/badwolf
+APPSDIR ?= $(PREFIX)/share/applications
+
+CC ?= cc
+DBG ?=
+PKGCONFIG ?= pkg-config
+MSGFMT ?= msgfmt
+
+CFLAGS ?= -g -Wall -Wextra -Wconversion -Wsign-conversion -O2
+
+DEPS = gtk+-3.0 webkit2gtk-4.0 libsoup-2.4
+SRCS = uri.c uri_test.c keybindings.c badwolf.c
+OBJS = uri.o keybindings.o badwolf.o
+OBJS_test = uri_test.o
EXE = badwolf
-TRANS = fr.mo
+EXE_test = uri_test
+TRANS = fr.mo pt_BR.mo
+DOCS = usr.bin.badwolf README.md KnowledgeBase.md
-CC = cc
-CFLAGS = -g -Wall -Wextra -Wconversion -Wsign-conversion
-CDEPS = `pkg-config --cflags $(DEPS)` -DDATADIR=\"$(DATADIR)\" -DPACKAGE=\"$(PACKAGE)\" -D_DEFAULT_SOURCE -DVERSION=\"$(shell ./version.sh)\"
-LIBS = `pkg-config --libs $(DEPS)`
+CFLAGS += -DDATADIR=\"$(DATADIR)\" -DPACKAGE=\"$(PACKAGE)\" -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION_FULL)\"
+CFLAGS += `$(PKGCONFIG) --cflags $(DEPS)`
+LIBS = `$(PKGCONFIG) --libs $(DEPS)`
all: $(EXE) $(TRANS)
-po/messages.pot: badwolf.c
- xgettext --keyword=_ --language=C -o $@ --add-comments --sort-output -j --copyright-holder="Haelwenn (lanodan) Monnier <contact+badwolf-copyright@hacktivis.me>" --package-name="$(PACKAGE)" --package-version="$(shell ./version.sh)" --msgid-bugs-address="contact+badwolf-msgid@hacktivis.me" badwolf.c
+po/messages.pot: $(SRCS)
+ xgettext --keyword=_ --language=C --from-code=UTF-8 -o $@ --add-comments --sort-output --copyright-holder="Badwolf Authors <https://hacktivis.me/projects/badwolf>" --package-name="$(PACKAGE)" --package-version="$(VERSION_FULL)" --msgid-bugs-address="contact+badwolf-msgid@hacktivis.me" $(SRCS)
po/%.po: po/messages.pot
- msgmerge --update $@ $<
+ msgmerge --update --backup=off $@ $<
${TRANS}: po/${@:.mo=.po}
mkdir -p locale/${@:.mo=}/LC_MESSAGES
- msgfmt -o locale/${@:.mo=}/LC_MESSAGES/$(PACKAGE).mo po/${@:.mo=.po}
+ $(MSGFMT) -o locale/${@:.mo=}/LC_MESSAGES/$(PACKAGE).mo po/${@:.mo=.po}
badwolf: $(OBJS)
$(CC) -std=c11 -o $@ $(OBJS) $(LDFLAGS) $(LIBS)
.c:
- $(CC) -std=c11 $(CFLAGS) $(CDEPS) $(LDFLAGS) $(LIBS) -o $@ $<
+ $(CC) -std=c11 $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ $<
.c.o:
- $(CC) -std=c11 $(CFLAGS) $(CDEPS) -c -o $@ $<
+ $(CC) -std=c11 $(CFLAGS) -c -o $@ $<
+uri_test: uri.o uri_test.o
+ $(CC) -std=c11 -o $@ uri.o uri_test.o $(LDFLAGS) $(LIBS)
+ $(DBG) ./$@
+
+.PHONY: test
+test: $(EXE_test)
+
+.PHONY: install
install: all
mkdir -p $(DESTDIR)$(BINDIR)
cp -p badwolf $(DESTDIR)$(BINDIR)/badwolf
@@ -47,11 +73,13 @@ install: all
cp -r locale/ $(DESTDIR)$(DATADIR)
mkdir -p $(DESTDIR)$(APPSDIR)
cp -p badwolf.desktop $(DESTDIR)$(APPSDIR)/
+ mkdir -p $(DESTDIR)$(DOCDIR)
+ cp -p $(DOCS) $(DESTDIR)$(DOCDIR)/
+ @printf '\nNote: An example AppArmor profile has been installed at '$(DOCDIR)/usr.bin.badwolf'\n'
+.PHONY: clean
clean:
- rm -fr locale $(OBJS) $(EXE)
+ rm -fr locale $(OBJS) $(OBJS_test) $(EXE) $(EXE_test)
format: *.c *.h
clang-format -style=file -assume-filename=.clang-format -i *.c *.h
-
-.PHONY: clean install