.POSIX: DATE = 2022-01-16 VERSION = 0.3.1 NAME = git-permalink MAILING_LIST = public-inbox TRANSLATIONS = pt fr eo CONTRIBLANGS = PREFIX = /usr/local BINDIR = $(PREFIX)/bin LIBEXECDIR = $(PREFIX)/libexec SHAREDIR = $(PREFIX)/share LOCALEDIR = $(SHAREDIR)/locale MANDIR = $(SHAREDIR)/man .SUFFIXES: .SUFFIXES: .in .in: sed \ -e 's:@VERSION@:$(VERSION):g' \ -e 's:@DATE@:$(DATE):g' \ -e 's:@NAME@:$(NAME):g' \ -e 's:@LIBEXECDIR@:$(LIBEXECDIR):g' \ -e 's:@LOCALEDIR@:$(LOCALEDIR):g' \ < $< > $@ if [ -x $< ]; then chmod +x $@; fi manpages.en.in = \ doc/git-permalink.en.1.in manpages.in = $(manpages.en.in) \ doc/git-permalink.pt.1.in \ doc/git-permalink.fr.1.in \ doc/git-permalink.eo.1.in manpages = $(manpages.in:.in=) locale-files.sh = \ src/locale/en.sh \ src/locale/pt.sh \ src/locale/fr.sh \ src/locale/eo.sh all: src/git-permalink src/locale/load-messages.sh \ $(locale-files.sh) $(manpages) src/locale/template.sh: src/git-permalink env GIT_PERMALINK_DUMP_TRANSLATABLE_STRINGS=1 ./src/git-permalink > $@ $(locale-files.sh): src/locale/template.sh sed "s/@LANG@/`basename $@ .sh`/g" < src/locale/template.sh > $@ check: all sh tests/cli-opts.sh sh tests/remotes.sh clean: rm -rf \ public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \ tests/destdirs/ tests/prefix/ tests/remotes/ \ src/git-permalink src/locale/load-messages.sh \ src/locale/template.sh $(locale-files.sh) install: all mkdir -p \ '$(DESTDIR)$(BINDIR)' \ '$(DESTDIR)$(LIBEXECDIR)/$(NAME)' \ '$(DESTDIR)$(LOCALEDIR)' cp src/$(NAME) '$(DESTDIR)$(BINDIR)' cp src/locale/load-messages.sh '$(DESTDIR)$(LIBEXECDIR)/$(NAME)' for l in $(TRANSLATIONS) en $(CONTRIBLANGS); do \ mkdir -p '$(DESTDIR)$(LOCALEDIR)/'$$l'/LC_MESSAGES/$(NAME)'; \ cp \ src/locale/$$l.sh src/locale/*.$$l.txt \ '$(DESTDIR)$(LOCALEDIR)/'$$l'/LC_MESSAGES/$(NAME)'; \ done sh doc/manpages.sh -ip '$(DESTDIR)$(MANDIR)' $(manpages) uninstall: rm -f \ '$(DESTDIR)$(BINDIR)/$(NAME)' \ '$(DESTDIR)$(LIBEXECDIR)/$(NAME)/load-messages.sh' for l in $(TRANSLATIONS) en $(CONTRIBLANGS); do \ rm -f '$(DESTDIR)$(LOCALEDIR)/'$$l'/LC_MESSAGES/$(NAME)'/*; \ done sh doc/manpages.sh -up '$(DESTDIR)$(MANDIR)' $(manpages) # # Personal workflow targets # dev-check: check public shellcheck src/git-permalink.in sh aux/assert-shellcheck.sh sh aux/workflow/assert-todos.sh sh aux/workflow/assert-changelog.sh -n '$(NAME)' $(EXTRA_VERSION) sh aux/workflow/assert-readme.sh -n '$(NAME)' -m '$(MAILING_LIST)' \ $(EXTRA_VERSION) sh aux/workflow/assert-manpages.sh -n '$(NAME)' -m '$(MAILING_LIST)' \ -l '$(TRANSLATIONS) en' $(manpages.en.in) sh aux/workflow/repocheck.sh -x1 -l1 -f30 dist: sh aux/workflow/dist.sh -d '$(DATE)' -V '$(VERSION)' -n '$(NAME)' \ -m '$(MAILING_LIST)' README.en.md: README.md ln -fs $? $@ CHANGELOG.en.md: CHANGELOG.md ln -fs $? $@ l10n-gen: README.en.md CHANGELOG.en.md $(manpages.en.in) sh aux/workflow/l10n.sh -l '$(TRANSLATIONS)' -L '$(CONTRIBLANGS)' $? \ src/locale/*.en.txt public: l10n-gen all TODOs.md $(manpages) sh aux/workflow/public.sh -l '$(TRANSLATIONS) $(CONTRIBLANGS) en' \ -n '$(NAME)' -m '$(MAILING_LIST)' -o public sh aux/workflow/manpages2html.sh -o public $(manpages) spellcheck: public sh aux/workflow/assert-spelling.sh -l '$(TRANSLATIONS) en' \ $$(find public -type f -name '*.html')