diff options
author | EuAndreh <eu@euandre.org> | 2022-01-18 11:40:47 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-01-18 14:02:59 -0300 |
commit | 47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2 (patch) | |
tree | 3d162596d874b4f775da12c843ad3918b593f713 /Makefile | |
parent | Initial empty commit (diff) | |
download | td-47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2.tar.gz td-47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2.tar.xz |
First commit, now with a clean history
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a3a0627 --- /dev/null +++ b/Makefile @@ -0,0 +1,150 @@ +.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 +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/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 + +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)/$(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 + echo FIXME shellcheck + 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) + 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') |