1 # Makefile for help2man
3 # Copyright (C) 2012 Free Software Foundation, Inc.
5 # Copying and distribution of this file, with or without modification,
6 # are permitted in any medium without royalty provided the copyright
7 # notice and this notice are preserved. This file is offered as-is,
8 # without any warranty.
10 # Written by Brendan O'Dea <bod@debian.org>
14 exec_prefix = @exec_prefix@
18 pkglibdir = $(libdir)/help2man
19 datarootdir = @datarootdir@
23 localedir = $(datadir)/locale
25 export SHELL = @SHELL@
26 export VPATH = .:$(srcdir)
29 LINGUAS = $(basename $(notdir $(wildcard $(srcdir)/po/*.po)))
35 INSTALL_PROGRAM = @INSTALL_PROGRAM@
36 INSTALL_SCRIPT = @INSTALL_SCRIPT@
37 INSTALL_DATA = @INSTALL_DATA@
38 INSTALL_INFO = @INSTALL_INFO@
41 MKINSTALLDIRS = $(srcdir)/mkinstalldirs
44 preload = bindtextdomain
47 vpath_file = $$($(PERL) -e 'print +(grep -f, map "$$_/$$ARGV[0]", \
48 map +(length) ? $$_ : ".", split ":", $$ENV{VPATH} || ".")[0]' $(1))
50 all: $(target) man info @extra_make_all@
52 install: all install_base @extra_make_install@
54 $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
55 $(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir)
56 $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man1
57 $(MKINSTALLDIRS) $(DESTDIR)$(infodir)
59 install_base: install_dirs
60 $(INSTALL_SCRIPT) $(target) $(DESTDIR)$(bindir)
61 $(INSTALL_DATA) $(call vpath_file,$(target).1) $(DESTDIR)$(mandir)/man1
62 $(INSTALL_DATA) $(call vpath_file,$(target).info) \
63 $(DESTDIR)$(infodir)/$(target).info
65 if test -f $(DESTDIR)$(infodir)/dir; \
67 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) \
68 $(DESTDIR)$(infodir)/$(target).info; \
71 install_preload: install_dirs preload
72 $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir)
74 install_l10n: install_dirs msg_l10n man_l10n
75 for lang in $(LINGUAS); \
77 $(MKINSTALLDIRS) $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
78 $(INSTALL_DATA) $(call vpath_file,po/$$lang.gmo) \
79 $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(target).mo; \
80 $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/$$lang/man1; \
81 $(INSTALL_DATA) $(call vpath_file,$(target).$$lang.1) \
82 $(DESTDIR)$(mandir)/$$lang/man1/$(target).1; \
86 rm -f $(DESTDIR)$(bindir)/$(target) \
87 $(DESTDIR)$(pkglibdir)/$(preload).so \
88 $(DESTDIR)$(mandir)/man1/$(target).1 \
89 $(DESTDIR)$(mandir)/*/man1/$(target).1 \
90 $(DESTDIR)$(localedir)/*/LC_MESSAGES/$(target).mo \
91 $(DESTDIR)$(infodir)/$(target).info
93 if test -f $(DESTDIR)$(infodir)/dir; \
95 $(INSTALL_INFO) --delete --info-dir=$(DESTDIR)$(infodir) \
100 -rm -f $(target) $(target).h2m $(target).*.h2m $(preload).so *.tmp[0-9]*
104 rm -f $(target).dvi $(target).aux $(target).cp $(target).cps \
105 $(target).fn $(target).ky $(target).log $(target).pg $(target).toc \
106 $(target).tp $(target).vr po/*.po~
108 distclean: mostlyclean
109 -rm -rf config.cache config.log config.status Makefile autom4te.cache
112 rm -f $(target).info $(target).1 $(target).*.1 po/*.gmo
114 maintainer-clean: realclean
115 rm -f $(srcdir)/configure
117 $(target): $(srcdir)/$(target).PL
118 $(PERL) $? @extra_extract_args@
120 $(target).h2m: $(srcdir)/$(target).h2m.PL
123 preload: $(preload).so
124 $(preload).so: $(srcdir)/$(preload).c
125 $(CC) $(CFLAGS) -o $@ -fPIC -shared $? $(LIBS)
128 $(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL
129 $(MAKE) $(target) $(target).h2m
130 ./$(target) --include=$(target).h2m --output=$@ ./$(target)
132 msg_l10n: $(addprefix po/,$(addsuffix .gmo,$(LINGUAS)))
133 po/%.gmo: $(srcdir)/po/%.po
134 test -d po || mkdir po
137 localetmp/%/LC_MESSAGES/$(target).mo: po/%.gmo
138 lang=$(patsubst localetmp/%/LC_MESSAGES/$(target).mo,%,$@); \
139 $(MKINSTALLDIRS) localetmp/$$lang/LC_MESSAGES && \
140 $(INSTALL_DATA) po/$$lang.gmo localetmp/$$lang/LC_MESSAGES/$(target).mo
142 man_l10n: $(addprefix $(target).,$(addsuffix .1,$(LINGUAS)))
143 $(target).%.1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL \
145 lang=$(patsubst $(target).%.1,%,$@); \
146 $(MAKE) $(target) $(preload).so \
147 localetmp/$$lang/LC_MESSAGES/$(target).mo $(target).$$lang.h2m; \
148 LD_PRELOAD=./$(preload).so LOCALEDIR=localetmp TEXTDOMAIN=help2man \
149 ./$(target) --include=$(call vpath_file,$(target).$$lang.h2m) \
150 --output=$@ ./$(target)
152 $(target).%.h2m: $(srcdir)/$(target).h2m.PL $(srcdir)/po/%.po
153 lang=$(patsubst $(target).%.h2m,%,$@); \
154 locale=$$(echo $$lang $$lang | \
155 sed -n "/^$$lang"'\s/{s/^\S\+\s\+//p; q}' $(srcdir)/locales -); \
156 $(MAKE) localetmp/$$lang/LC_MESSAGES/$(target).mo; \
157 $(PERL) $(srcdir)/$(target).h2m.PL --locale="$$locale" \
158 --message-dir=localetmp --output=$@
161 $(target).info: $(srcdir)/$(target).texi
165 $(target).dvi: $(srcdir)/$(target).texi
168 Makefile: $(srcdir)/Makefile.in
171 update-po: $(srcdir)/po/$(target).pot
172 for lang in $(LINGUAS); \
174 echo -n "Updating $$lang "; \
175 msgmerge -U $(srcdir)/po/$$lang.po $(srcdir)/po/$(target).pot; \
178 $(srcdir)/po/$(target).pot: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL
180 xgettext -L Perl -k_ -kN_ -cTranslators: \
181 --msgid-bugs-address="Brendan O'Dea <bug-help2man@gnu.org>" -o $@ \
182 $(target) $(srcdir)/$(target).h2m.PL
184 .PHONY: all clean distclean preload man msg_l10n man_l10n info dvi install \
185 install_base install_preload install_l10n mostlyclean realclean \