aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/scripts/Makefile.am64
-rw-r--r--src/xz/Makefile.am50
-rw-r--r--src/xzdec/Makefile.am55
3 files changed, 127 insertions, 42 deletions
diff --git a/src/scripts/Makefile.am b/src/scripts/Makefile.am
index 29bdbcd7..fe5742d0 100644
--- a/src/scripts/Makefile.am
+++ b/src/scripts/Makefile.am
@@ -25,31 +25,65 @@ links += \
endif
install-exec-hook:
- cd $(DESTDIR)$(bindir) && \
+ cd "$(DESTDIR)$(bindir)" && \
for pair in $(links); do \
target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
- rm -f $$link && \
- $(LN_S) $$target $$link; \
+ rm -f "$$link" && \
+ $(LN_S) "$$target" "$$link"; \
done
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
install-data-hook:
- cd $(DESTDIR)$(mandir)/man1 && \
- for pair in $(links); do \
- target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
- link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
- rm -f $$link.1 && \
- $(LN_S) $$target.1 $$link.1; \
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in $$languages; do \
+ mans= ; \
+ for man in $(dist_man_MANS); do \
+ man="$(top_srcdir)/po4a/man/$$lang/$$man" ; \
+ if test -f "$$man"; then \
+ mans="$$mans $$man"; \
+ fi; \
+ done; \
+ $(MAKE) dist_man_MANS="$$mans" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ done; \
+ for lang in . $$languages; do \
+ for pair in $(links); do \
+ target=`echo $$pair | sed 's/-.*$$//' \
+ | sed '$(transform)'` && \
+ link=`echo $$pair | sed 's/^.*-//' \
+ | sed '$(transform)'` && \
+ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+ if test -f "$$man1dir/$$target.1"; then ( \
+ cd "$$man1dir" && \
+ rm -f "$$link.1" && \
+ $(LN_S) "$$target.1" "$$link.1" \
+ ); fi; \
+ done; \
done
uninstall-hook:
- cd $(DESTDIR)$(bindir) && \
+ cd "$(DESTDIR)$(bindir)" && \
for pair in $(links); do \
link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
- rm -f $$link; \
+ rm -f "$$link"; \
done
- cd $(DESTDIR)$(mandir)/man1 && \
- for pair in $(links); do \
- link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
- rm -f $$link.1; \
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ for pair in $(links); do \
+ target=`echo $$pair | sed 's/-.*$$//' \
+ | sed '$(transform)'` && \
+ link=`echo $$pair | sed 's/^.*-//' \
+ | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$target.1" \
+ "$(DESTDIR)$(mandir)/$$lang/man1/$$link.1"; \
+ done; \
done
diff --git a/src/xz/Makefile.am b/src/xz/Makefile.am
index 0890aad7..4bc64f36 100644
--- a/src/xz/Makefile.am
+++ b/src/xz/Makefile.am
@@ -81,31 +81,53 @@ xzlinks += lzma unlzma lzcat
endif
install-exec-hook:
- cd $(DESTDIR)$(bindir) && \
+ cd "$(DESTDIR)$(bindir)" && \
target=`echo xz | sed '$(transform)'`$(EXEEXT) && \
for name in $(xzlinks); do \
link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
- rm -f $$link && \
- $(LN_S) $$target $$link; \
+ rm -f "$$link" && \
+ $(LN_S) "$$target" "$$link"; \
done
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
install-data-hook:
- cd $(DESTDIR)$(mandir)/man1 && \
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
target=`echo xz | sed '$(transform)'` && \
- for name in $(xzlinks); do \
- link=`echo $$name | sed '$(transform)'` && \
- rm -f $$link.1 && \
- $(LN_S) $$target.1 $$link.1; \
+ for lang in . $$languages; do \
+ man="$(top_srcdir)/po4a/man/$$lang/xz.1" ; \
+ if test -f "$$man"; then \
+ $(MAKE) dist_man_MANS="$$man" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ fi; \
+ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+ if test -f "$$man1dir/$$target.1"; then ( \
+ cd "$$man1dir" && \
+ for name in $(xzlinks); do \
+ link=`echo $$name | sed '$(transform)'` && \
+ rm -f "$$link.1" && \
+ $(LN_S) "$$target.1" "$$link.1"; \
+ done \
+ ); fi; \
done
uninstall-hook:
- cd $(DESTDIR)$(bindir) && \
+ cd "$(DESTDIR)$(bindir)" && \
for name in $(xzlinks); do \
link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
- rm -f $$link; \
+ rm -f "$$link"; \
done
- cd $(DESTDIR)$(mandir)/man1 && \
- for name in $(xzlinks); do \
- link=`echo $$name | sed '$(transform)'` && \
- rm -f $$link.1; \
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ for name in xz $(xzlinks); do \
+ name=`echo $$name | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+ done; \
done
diff --git a/src/xzdec/Makefile.am b/src/xzdec/Makefile.am
index 5ff8e373..90f1e922 100644
--- a/src/xzdec/Makefile.am
+++ b/src/xzdec/Makefile.am
@@ -50,6 +50,7 @@ lzmadec_LDADD = $(xzdec_LDADD)
bin_PROGRAMS =
+lzmadecmanlink =
if COND_XZDEC
bin_PROGRAMS += xzdec
@@ -60,23 +61,51 @@ if COND_LZMADEC
bin_PROGRAMS += lzmadec
# Create the symlink lzmadec.1->xzdec.1 only if xzdec.1 was installed.
-# This is better than creating a dangling symlink, especially
-# because creating the link may fail due to the directory being missing.
-#
-# FIXME: The correct solution would be to install xzdec.1 as lzmadec.1
-# but I don't know what is the sane way to do it and since this is a bit
-# unusual situation anyway, it's not that important.
+# This is better than creating a dangling symlink. The correct solution
+# would be to install xzdec.1 as lzmadec.1 but this code is already too
+# complicated so I won't do it. Installing only lzmadec is a bit unusual
+# situation anyway so it's not that important.
if COND_XZDEC
+lzmadecmanlink += lzmadec
+endif
+endif
+
+if COND_XZDEC
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
install-data-hook:
- cd $(DESTDIR)$(mandir)/man1 && \
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
target=`echo xzdec | sed '$(transform)'` && \
link=`echo lzmadec | sed '$(transform)'` && \
- rm -f $$link.1 && \
- $(LN_S) $$target.1 $$link.1
+ for lang in . $$languages; do \
+ man="$(top_srcdir)/po4a/man/$$lang/xzdec.1" ; \
+ if test -f "$$man"; then \
+ $(MAKE) dist_man_MANS="$$man" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ fi; \
+ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+ if test -f "$$man1dir/$$target.1"; then \
+ if test -n "$(lzmadecmanlink)"; then ( \
+ cd "$$man1dir" && \
+ rm -f "$$link.1" && \
+ $(LN_S) "$$target.1" "$$link.1" \
+ ); fi; \
+ fi; \
+ done
uninstall-hook:
- cd $(DESTDIR)$(mandir)/man1 && \
- link=`echo lzmadec | sed '$(transform)'` && \
- rm -f $$link.1
-endif
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ for name in xzdec $(lzmadecmanlink); do \
+ name=`echo $$name | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+ done; \
+ done
endif