.POSIX: DATE = 1970-01-01 VERSION = 0.1.0 NAME = td MAILING_LIST = public-inbox TRANSLATIONS = pt fr eo es CONTRIBLANGS = PREFIX = /usr/local BINDIR = $(PREFIX)/bin LIBEXECDIR = $(PREFIX)/libexec/$(NAME) SHAREDIR = $(PREFIX)/share LOCALEDIR = $(SHAREDIR)/locale MANDIR = $(SHAREDIR)/man DATADIR = $(SHAREDIR)/$(NAME) .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' \ -e 's:@DATADIR@:$(DATADIR):g' \ < $< > $@ if [ -x $< ]; then chmod +x $@; fi manpages.en.in = \ doc/td.en.1.in \ doc/tdrc.en.5.in \ doc/td.tutorial.en.7.in \ doc/td.recipes.en.7.in \ doc/td.why.en.7.in manpages.in = $(manpages.en.in) \ doc/td.pt.1.in \ doc/td.fr.1.in \ doc/td.eo.1.in \ doc/td.es.1.in \ doc/tdrc.pt.5.in \ doc/tdrc.fr.5.in \ doc/tdrc.eo.5.in \ doc/tdrc.es.5.in \ doc/td.tutorial.pt.7.in \ doc/td.tutorial.fr.7.in \ doc/td.tutorial.eo.7.in \ doc/td.tutorial.es.7.in \ doc/td.recipes.pt.7.in \ doc/td.recipes.fr.7.in \ doc/td.recipes.eo.7.in \ doc/td.recipes.es.7.in \ doc/td.why.pt.7.in \ doc/td.why.fr.7.in \ doc/td.why.eo.7.in \ doc/td.why.es.7.in manpages = $(manpages.in:.in=) locale-files.sh = \ src/locale/en.sh \ src/locale/pt.sh \ src/locale/fr.sh \ src/locale/eo.sh \ src/locale/es.sh all: src/td src/locale/load-messages.sh $(locale-files.sh) $(manpages) src/locale/template.sh: src/td env TD_DUMP_TRANSLATABLE_STRINGS=1 ./src/td > $@ $(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/config.sh sh tests/workflow.sh sh tests/linting.sh clean: rm -rf \ public/ $(manpages) README.*.md CHANGELOG.*.md messages.mo \ src/td src/locale/load-messages.sh \ src/locale/template.sh $(locale-files.sh) install: all mkdir -p \ $(DESTDIR)$(BINDIR) \ $(DESTDIR)$(LIBEXECDIR) \ $(DESTDIR)$(LOCALEDIR) \ $(DESTDIR)$(DATADIR) cp src/$(NAME) $(DESTDIR)$(BINDIR) cp src/locale/load-messages.sh $(DESTDIR)$(LIBEXECDIR) 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 cp src/style.css $(DESTDIR)$(DATADIR) sh doc/manpages.sh -ip $(DESTDIR)$(MANDIR) $(manpages) uninstall: rm -f \ $(DESTDIR)$(BINDIR)/$(NAME) \ $(DESTDIR)$(LIBEXECDIR)/load-messages.sh \ $(DESTDIR)$(DATADIR)/style.css 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/td.in src/locale/load-messages.sh sh aux/assert-shellcheck.sh sh aux/workflow/assert-todos.sh \ "$$(find `git ls-files` -not -name td.in)" 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) env ASSERT_NO_MISSING_TRANSLATIONS=1 sh aux/workflow/repocheck.sh 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 TODOs.md $(manpages) sh aux/workflow/public.sh -l '$(TRANSLATIONS) $(CONTRIBLANGS) en' \ -n '$(NAME)' -m '$(MAILING_LIST)' -o public sh doc/manpages.sh -Ho public $(manpages) spellcheck: public sh aux/workflow/assert-spelling.sh -l '$(TRANSLATIONS) en' \ $$(find public -type f -name '*.html')