mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-24 10:33:35 +08:00
c13351f6c5
Some people don't want to see the concise "kernel-style" make output. This configure option allows build engines that want to see the full set of commands executed by the makefile to get what they want. Most people will find this more distracting than useful, unless they need to debug the Makefiles. (It is not necessary to rerun configure to enable this verbose make output temprarily; if a developer wants to do a quick debug of a directory's makefile, he or she can simply edit the definition of the $(E) and $(Q) variables in the Makefile; instructions can be found in the MCONFIG file which is included in at the beginning of every Makefile.) Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
373 lines
12 KiB
Makefile
373 lines
12 KiB
Makefile
# Makefile for PO directory in any package using GNU gettext.
|
|
# Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
|
#
|
|
# This file can be copied and used freely without restrictions. It can
|
|
# be used in projects which are not available under the GNU General Public
|
|
# License but which still want to provide support for the GNU gettext
|
|
# functionality.
|
|
# Please note that the actual code of GNU gettext is covered by the GNU
|
|
# General Public License and is *not* in the public domain.
|
|
#
|
|
# Origin: gettext-0.14
|
|
|
|
PACKAGE = @PACKAGE@
|
|
VERSION = @VERSION@
|
|
|
|
SHELL = /bin/sh
|
|
@SET_MAKE@
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
datarootdir = @datarootdir@
|
|
datadir = @datadir@
|
|
localedir = $(datadir)/locale
|
|
gettextsrcdir = $(datadir)/gettext/po
|
|
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
|
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
|
|
|
|
GMSGFMT = @GMSGFMT@
|
|
MSGFMT = @MSGFMT@
|
|
XGETTEXT = @XGETTEXT@
|
|
MSGMERGE = msgmerge
|
|
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
|
MSGINIT = msginit
|
|
MSGCONV = msgconv
|
|
MSGFILTER = msgfilter
|
|
|
|
POFILES = @POFILES@
|
|
GMOFILES = @GMOFILES@
|
|
UPDATEPOFILES = @UPDATEPOFILES@
|
|
DUMMYPOFILES = @DUMMYPOFILES@
|
|
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
|
|
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
|
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
|
|
$(POFILES) $(GMOFILES) \
|
|
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
|
|
|
POTFILES = \
|
|
|
|
CATALOGS = @CATALOGS@
|
|
|
|
# Makevars gets inserted here. (Don't remove this line!)
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
|
|
|
|
.po.mo:
|
|
$(E) "$(MSGFMT) -c -o $@ $<"
|
|
$(Q) $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
|
|
|
.po.gmo:
|
|
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
|
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
|
|
|
.sin.sed:
|
|
sed -e '/^#/d' $< > t-$@
|
|
mv t-$@ $@
|
|
|
|
|
|
all: all-@USE_NLS@
|
|
|
|
all-yes: @MAINTAINER_CMT@stamp-po
|
|
all-no:
|
|
|
|
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
|
# been loosely updated. Its purpose is that when a developer or translator
|
|
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
|
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
|
|
# invocations of "make" will do nothing. This timestamp would not be necessary
|
|
# if updating the $(CATALOGS) would always touch them; however, the rule for
|
|
# $(POFILES) has been designed to not touch files that don't need to be
|
|
# changed.
|
|
stamp-po: $(srcdir)/$(DOMAIN).pot
|
|
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
|
|
@echo "touch stamp-po"
|
|
@echo timestamp > stamp-poT
|
|
@mv stamp-poT stamp-po
|
|
|
|
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
|
# otherwise packages like GCC can not be built if only parts of the source
|
|
# have been downloaded.
|
|
|
|
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
|
|
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
|
|
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed \
|
|
$(srcdir)/at-expand.pl
|
|
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
|
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
|
--files-from=$(srcdir)/POTFILES.in \
|
|
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
|
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
|
|
perl $(srcdir)/at-expand.pl < $(DOMAIN).po > $(DOMAIN).po.new
|
|
mv $(DOMAIN).po $(DOMAIN).po.bak
|
|
mv $(DOMAIN).po.new $(DOMAIN).po
|
|
test ! -f $(DOMAIN).po || { \
|
|
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
|
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
|
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
|
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
|
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
|
else \
|
|
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
|
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
fi; \
|
|
else \
|
|
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
fi; \
|
|
}
|
|
|
|
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
|
|
# every "make" invocation, only create it when it is missing.
|
|
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
|
|
$(srcdir)/$(DOMAIN).pot:
|
|
$(MAKE) $(DOMAIN).pot-update
|
|
|
|
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
|
|
# Note that a PO file is not touched if it doesn't need to be changed.
|
|
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
|
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
|
if test -f "$(srcdir)/$${lang}.po"; then \
|
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
|
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
|
|
else \
|
|
$(MAKE) $${lang}.po-create; \
|
|
fi
|
|
|
|
|
|
install: install-exec install-data
|
|
install-exec:
|
|
install-data: install-data-@USE_NLS@
|
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
for file in $(DISTFILES.common) Makevars.template; do \
|
|
$(INSTALL_DATA) $(srcdir)/$$file \
|
|
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
done; \
|
|
for file in Makevars; do \
|
|
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
done; \
|
|
else \
|
|
: ; \
|
|
fi
|
|
install-data-no: all
|
|
install-data-yes: all
|
|
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
@catalogs='$(CATALOGS)'; \
|
|
for cat in $$catalogs; do \
|
|
cat=`basename $$cat`; \
|
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
|
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
|
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
|
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
if test -n "$$lc"; then \
|
|
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
for file in *; do \
|
|
if test -f $$file; then \
|
|
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
fi; \
|
|
done); \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
else \
|
|
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
:; \
|
|
else \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
fi; \
|
|
fi; \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
|
|
install-strip: install
|
|
|
|
installdirs: installdirs-exec installdirs-data
|
|
installdirs-exec:
|
|
installdirs-data: installdirs-data-@USE_NLS@
|
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
else \
|
|
: ; \
|
|
fi
|
|
installdirs-data-no:
|
|
installdirs-data-yes:
|
|
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
@catalogs='$(CATALOGS)'; \
|
|
for cat in $$catalogs; do \
|
|
cat=`basename $$cat`; \
|
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
if test -n "$$lc"; then \
|
|
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
for file in *; do \
|
|
if test -f $$file; then \
|
|
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
fi; \
|
|
done); \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
else \
|
|
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
:; \
|
|
else \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
fi; \
|
|
fi; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
|
|
# Define this as empty until I found a useful application.
|
|
installcheck:
|
|
|
|
uninstall: uninstall-exec uninstall-data
|
|
uninstall-exec:
|
|
uninstall-data: uninstall-data-@USE_NLS@
|
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
for file in $(DISTFILES.common) Makevars.template; do \
|
|
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
done; \
|
|
else \
|
|
: ; \
|
|
fi
|
|
uninstall-data-no:
|
|
uninstall-data-yes:
|
|
catalogs='$(CATALOGS)'; \
|
|
for cat in $$catalogs; do \
|
|
cat=`basename $$cat`; \
|
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
|
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
done; \
|
|
done
|
|
|
|
check: all
|
|
|
|
info dvi ps pdf html tags TAGS ctags CTAGS ID:
|
|
|
|
mostlyclean:
|
|
rm -f remove-potcdate.sed
|
|
rm -f stamp-poT
|
|
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
|
rm -f $(DOMAIN).po.bak
|
|
rm -fr *.o
|
|
|
|
clean: mostlyclean
|
|
|
|
distclean: clean
|
|
rm -f Makefile Makefile.in POTFILES *.mo
|
|
|
|
maintainer-clean: distclean
|
|
@echo "This command is intended for maintainers to use;"
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
rm -f stamp-po $(GMOFILES)
|
|
|
|
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|
dist distdir:
|
|
$(MAKE) update-po
|
|
@$(MAKE) dist2
|
|
# This is a separate target because 'update-po' must be executed before.
|
|
dist2: $(DISTFILES)
|
|
dists="$(DISTFILES)"; \
|
|
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
dists="$$dists Makevars.template"; \
|
|
fi; \
|
|
if test -f $(srcdir)/ChangeLog; then \
|
|
dists="$$dists ChangeLog"; \
|
|
fi; \
|
|
for i in 0 1 2 3 4 5 6 7 8 9; do \
|
|
if test -f $(srcdir)/ChangeLog.$$i; then \
|
|
dists="$$dists ChangeLog.$$i"; \
|
|
fi; \
|
|
done; \
|
|
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
|
for file in $$dists; do \
|
|
if test -f $$file; then \
|
|
cp -p $$file $(distdir); \
|
|
else \
|
|
cp -p $(srcdir)/$$file $(distdir); \
|
|
fi; \
|
|
done
|
|
|
|
update-po: Makefile
|
|
$(MAKE) $(DOMAIN).pot-update
|
|
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
|
|
$(MAKE) update-gmo
|
|
|
|
# General rule for creating PO files.
|
|
|
|
.nop.po-create:
|
|
@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
|
|
echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
|
|
exit 1
|
|
|
|
# General rule for updating PO files.
|
|
|
|
.nop.po-update:
|
|
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
|
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
|
|
tmpdir=`pwd`; \
|
|
echo "$$lang:"; \
|
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
|
cd $(srcdir); \
|
|
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
|
|
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
|
rm -f $$tmpdir/$$lang.new.po; \
|
|
else \
|
|
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
|
:; \
|
|
else \
|
|
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
|
exit 1; \
|
|
fi; \
|
|
fi; \
|
|
else \
|
|
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
|
rm -f $$tmpdir/$$lang.new.po; \
|
|
fi
|
|
|
|
$(DUMMYPOFILES):
|
|
|
|
update-gmo: Makefile $(GMOFILES)
|
|
@:
|
|
|
|
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
|
|
cd $(top_builddir) \
|
|
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
|
$(SHELL) ./config.status
|
|
|
|
force:
|
|
|
|
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
.NOEXPORT:
|