1# Makefile for program source directory in GNU NLS utilities package. 2# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu> 3# Copyright (C) 2003-2022 Free Software Foundation, Inc. 4# 5# This file may be copied and used freely without restrictions. It can 6# be used in projects which are not available under the GNU Public License 7# but which still want to provide support for the GNU gettext functionality. 8# Please note that the actual code is *not* freely available. 9 10PACKAGE = @PACKAGE@ 11VERSION = @VERSION@ 12 13SHELL = /bin/sh 14@SET_MAKE@ 15 16srcdir = @srcdir@ 17top_srcdir = @top_srcdir@ 18VPATH = @srcdir@ 19top_builddir = @top_builddir@ 20 21prefix = @prefix@ 22exec_prefix = @exec_prefix@ 23datadir = @datadir@ 24localedir = @localedir@ 25gnulocaledir = @datarootdir@/locale 26gettextsrcdir = @datarootdir@/gettext/po 27subdir = po 28 29DESTDIR = 30 31INSTALL = @INSTALL@ 32INSTALL_DATA = @INSTALL_DATA@ 33MKINSTALLDIRS = @MKINSTALLDIRS@ 34 35CC = @CC@ 36GENCAT = @GENCAT@ 37GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ 38MSGFMT = @MSGFMT@ 39XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ 40MSGMERGE = PATH=../src:$$PATH msgmerge 41 42DEFS = @DEFS@ 43CFLAGS = @CFLAGS@ 44CPPFLAGS = @CPPFLAGS@ 45 46INCLUDES = -I.. -I$(top_srcdir)/intl 47 48COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) 49 50SOURCES = cat-id-tbl.c 51POFILES = @POFILES@ 52GMOFILES = @GMOFILES@ 53DISTFILES = ChangeLog Makefile.in.in SRC-POTFILES.in BLD-POTFILES.in $(PACKAGE).pot \ 54stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) 55 56SRC-POTFILES = \ 57 58BLD-POTFILES = \ 59 60CATALOGS = @CATALOGS@ 61CATOBJEXT = @CATOBJEXT@ 62INSTOBJEXT = @INSTOBJEXT@ 63 64.SUFFIXES: 65.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat 66 67.c.o: 68 $(COMPILE) $< 69 70.po.pox: 71 $(MAKE) $(PACKAGE).pot 72 $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox 73 74.po.mo: 75 $(MSGFMT) -o $@ $< 76 77.po.gmo: 78 file=`echo $* | sed 's,.*/,,'`.gmo \ 79 && rm -f $$file && $(GMSGFMT) -o $$file $< 80 81.po.cat: 82 sed -f ../intl/po2msg.sed < $< > $*.msg \ 83 && rm -f $@ && $(GENCAT) $@ $*.msg 84 85 86all: all-@USE_NLS@ 87 88all-yes: $(CATALOGS) @MAINT@ $(PACKAGE).pot 89all-no: 90 91$(srcdir)/$(PACKAGE).pot: $(SRC-POTFILES) $(BLD-POTFILES) 92 $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ 93 --add-comments --keyword=_ --keyword=N_ \ 94 --msgid-bugs-address=https://sourceware.org/bugzilla/ \ 95 --files-from=$(srcdir)/SRC-POTFILES.in 96 $(XGETTEXT) --default-domain=$(PACKAGE) --directory=.. \ 97 --add-comments --keyword=_ --keyword=N_ \ 98 --join-existing \ 99 --msgid-bugs-address=https://sourceware.org/bugzilla/ \ 100 --files-from=$(srcdir)/BLD-POTFILES.in 101 rm -f $(srcdir)/$(PACKAGE).pot 102 mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot 103 104$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: 105$(srcdir)/stamp-cat-id: $(PACKAGE).pot 106 rm -f cat-id-tbl.tmp 107 sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ 108 | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp 109 if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ 110 rm cat-id-tbl.tmp; \ 111 else \ 112 echo cat-id-tbl.c changed; \ 113 rm -f $(srcdir)/cat-id-tbl.c; \ 114 mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ 115 fi 116 cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id 117 118 119install: install-exec install-data 120install-exec: 121install-info: 122install-html: 123install-pdf: 124install-data: install-data-@USE_NLS@ 125install-data-no: all 126install-data-yes: all 127 if test -r $(MKINSTALLDIRS); then \ 128 $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ 129 else \ 130 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ 131 fi 132 @catalogs='$(CATALOGS)'; \ 133 for cat in $$catalogs; do \ 134 cat=`basename $$cat`; \ 135 case "$$cat" in \ 136 *.gmo) destdir=$(gnulocaledir);; \ 137 *) destdir=$(localedir);; \ 138 esac; \ 139 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ 140 dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ 141 if test -r $(MKINSTALLDIRS); then \ 142 $(MKINSTALLDIRS) $$dir; \ 143 else \ 144 $(top_srcdir)/mkinstalldirs $$dir; \ 145 fi; \ 146 if test -r $$cat; then \ 147 $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ 148 echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ 149 else \ 150 $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ 151 echo "installing $(srcdir)/$$cat as" \ 152 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ 153 fi; \ 154 if test -r $$cat.m; then \ 155 $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ 156 echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ 157 else \ 158 if test -r $(srcdir)/$$cat.m ; then \ 159 $(INSTALL_DATA) $(srcdir)/$$cat.m \ 160 $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ 161 echo "installing $(srcdir)/$$cat as" \ 162 "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ 163 else \ 164 true; \ 165 fi; \ 166 fi; \ 167 done 168 if test "$(PACKAGE)" = "gettext"; then \ 169 if test -r $(MKINSTALLDIRS); then \ 170 $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ 171 else \ 172 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ 173 fi; \ 174 $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ 175 $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ 176 else \ 177 : ; \ 178 fi 179 180# Define this as empty until I found a useful application. 181installcheck: 182 183uninstall: 184 catalogs='$(CATALOGS)'; \ 185 for cat in $$catalogs; do \ 186 cat=`basename $$cat`; \ 187 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ 188 rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ 189 rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ 190 rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ 191 rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ 192 done 193 rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in 194 195check: all 196 197cat-id-tbl.o: ../intl/libgettext.h 198 199html dvi pdf ps info tags TAGS ID: 200 201mostlyclean: 202 rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp 203 rm -fr *.o 204 205clean: mostlyclean 206 207distclean: clean 208 rm -f Makefile Makefile.in *.mo *.msg *.cat *.cat.m 209 rm -f SRC-POTFILES BLD-POTFILES 210 211maintainer-clean: distclean 212 @echo "This command is intended for maintainers to use;" 213 @echo "it deletes files that may require special tools to rebuild." 214 rm -f $(GMOFILES) SRC-POTFILES.in BLD-POTFILES.in 215 216distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) 217dist distdir: update-po $(DISTFILES) 218 dists="$(DISTFILES)"; \ 219 for file in $$dists; do \ 220 ln $(srcdir)/$$file $(distdir) 2> /dev/null \ 221 || cp -p $(srcdir)/$$file $(distdir); \ 222 done 223 224update-po: Makefile 225 $(MAKE) $(PACKAGE).pot 226 PATH=`pwd`/../src:$$PATH; \ 227 cd $(srcdir); \ 228 catalogs='$(CATALOGS)'; \ 229 for cat in $$catalogs; do \ 230 cat=`basename $$cat`; \ 231 lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ 232 mv $$lang.po $$lang.old.po; \ 233 echo "$$lang:"; \ 234 if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ 235 rm -f $$lang.old.po; \ 236 else \ 237 echo "msgmerge for $$cat failed!"; \ 238 rm -f $$lang.po; \ 239 mv $$lang.old.po $$lang.po; \ 240 fi; \ 241 done 242 243SRC-POTFILES: SRC-POTFILES.in 244 ( if test 'x$(srcdir)' != 'x.'; then \ 245 posrcprefix='$(top_srcdir)/'; \ 246 else \ 247 posrcprefix="../"; \ 248 fi; \ 249 rm -f $@-t $@ \ 250 && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ 251 -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ 252 | sed -e '$$s/\\$$//') > $@-t \ 253 && chmod a-w $@-t \ 254 && mv $@-t $@ ) 255 256BLD-POTFILES: BLD-POTFILES.in 257 rm -f $@-t $@ \ 258 && sed -e '/^#/d' -e '/^[ ]*$$/d' \ 259 -e "s@.*@ ../& \\\\@" < $(srcdir)/$@.in \ 260 | sed -e '$$s/\\$$//' > $@-t \ 261 && chmod a-w $@-t \ 262 && mv $@-t $@ 263 264SRC-POTFILES.in: @MAINT@ ../Makefile 265 cd .. && $(MAKE) po/SRC-POTFILES.in 266 267BLD-POTFILES.in: @MAINT@ ../Makefile 268 cd .. && $(MAKE) po/BLD-POTFILES.in 269 270Makefile: Make-in ../config.status SRC-POTFILES BLD-POTFILES 271 cd .. \ 272 && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \ 273 CONFIG_HEADERS= $(SHELL) ./config.status 274 275# Tell versions [3.59,3.63) of GNU make not to export all variables. 276# Otherwise a system limit (for SysV at least) may be exceeded. 277.NOEXPORT: 278