1# Makefile for program source directory in GNU NLS utilities package.
2# Copyright (C) 1995 Free Software Foundation, Inc.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2, or (at your option)
7# any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18PACKAGE = @PACKAGE@
19VERSION = @VERSION@
20
21SHELL = /bin/sh
22@SET_MAKE@
23
24srcdir = @srcdir@
25top_srcdir = @top_srcdir@
26VPATH = @srcdir@
27
28prefix = @prefix@
29exec_prefix = @exec_prefix@
30datadir = $(prefix)/@DATADIRNAME@
31localedir = $(datadir)/locale
32gnulocaledir = $(prefix)/share/locale
33gettextsrcdir = $(prefix)/share/gettext
34subdir = po
35
36INSTALL = @INSTALL@
37INSTALL_DATA = @INSTALL_DATA@
38
39CC = @CC@
40GENCAT = @GENCAT@
41GMSGFMT = @GMSGFMT@
42MSGFMT = @MSGFMT@
43XGETTEXT = @XGETTEXT@
44TUPDATE = tupdate
45
46DEFS = @DEFS@
47CFLAGS = @CFLAGS@
48CPPFLAGS = @CPPFLAGS@
49
50INCLUDES = -I.. -I$(top_srcdir)/intl
51
52COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
53
54SOURCES = cat-id-tbl.c
55POFILES = @POFILES@
56GMOFILES = @GMOFILES@
57DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
58stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
59
60POTFILES = \
61
62CATALOGS = @CATALOGS@
63CATOBJEXT = @CATOBJEXT@
64INSTOBJEXT = @INSTOBJEXT@
65
66.SUFFIXES:
67.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
68
69.c.o:
70	$(COMPILE) $<
71
72.po.pox:
73	$(MAKE) $(PACKAGE).pot
74	$(TUPDATE) $(srcdir)/$(PACKAGE).pot $< > $*.pox
75
76.po.mo:
77	$(MSGFMT) -o $@ $<
78
79.po.gmo:
80	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
81	  && rm -f $$file && $(GMSGFMT) -o $$file $<
82
83.po.cat:
84	sed -f ../intl/po2msg.sed < $< > $*.msg \
85	  && rm -f $@ && $(GENCAT) $@ $*.msg
86
87
88all: cat-id-tbl.c $(CATALOGS)
89
90$(PACKAGE).pot: $(POTFILES)
91	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
92	  --add-comments --keyword=_ --keyword=N_ \
93	  --files-from=$(srcdir)/POTFILES.in
94	if cmp -s $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; then \
95	  rm -f $(PACKAGE).po; \
96	else \
97	  rm -f $(srcdir)/$(PACKAGE).pot \
98	    && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; \
99	fi
100
101cat-id-tbl.c: stamp-cat-id
102stamp-cat-id: $(PACKAGE).pot
103	rm -f cat-id-tbl.tmp.c
104	sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
105		| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp.c
106	if cmp -s cat-id-tbl.tmp.c $(srcdir)/cat-id-tbl.c; then \
107	  rm cat-id-tbl.tmp.c; \
108	else \
109	  echo cat-id-tbl.c changed; \
110	  rm -f $(srcdir)/cat-id-tbl.c; \
111	  mv cat-id-tbl.tmp.c $(srcdir)/cat-id-tbl.c; \
112	fi
113	cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
114
115
116install: install-exec install-data
117install-exec:
118install-data: all
119	$(top_srcdir)/mkinstalldirs $(datadir)
120	catalogs='$(CATALOGS)'; \
121	for cat in $$catalogs; do \
122	  if test "`echo $$cat | sed 's/.*\(\..*\)/\1/'`" = ".gmo"; then \
123	    destdir=$(gnulocaledir); \
124	  else \
125	    destdir=$(localedir); \
126	  fi; \
127	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
128	  dir=$$destdir/$$lang/LC_MESSAGES; \
129	  $(top_srcdir)/mkinstalldirs $$dir; \
130	  if test -r $$cat; then \
131	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
132	  else \
133	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
134	  fi; \
135	done
136
137# This installation goal is only used in GNU gettext.  Packages which
138# only use the library should use install instead.
139install-src: install
140	$(top_srcdir)/mkinstalldirs $(gettextsrcdir)
141	cd $(srcdir) && \
142	  $(INSTALL_DATA) Makefile.in.in $(gettextsrcdir)/po-Makefile.in.in
143
144uninstall:
145	catalogs='$(CATALOGS)'; \
146	for cat in $$catalogs; do \
147	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
148	  rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
149	  rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
150	done
151	rm -f $(gettextsrcdir)/po-Makefile.in.in
152
153check: all
154
155cat-id-tbl.o: ../intl/libgettext.h
156
157TAGS ID:
158
159mostlyclean:
160	rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp.c
161
162clean: mostlyclean
163
164distclean: clean
165	rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat
166
167maintainer-clean: distclean
168	@echo "This command is intended for maintainers to use;"
169	@echo "it deletes files that may require special tools to rebuild."
170
171distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
172dist dist-gettext: update-po $(DISTFILES)
173	for file in $(DISTFILES); do \
174	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
175	    || cp -p $(srcdir)/$$file $(distdir); \
176	done
177
178update-po: Makefile
179	$(MAKE) $(PACKAGE).pot
180	cd $(srcdir); \
181	catalogs='$(CATALOGS)'; \
182	for cat in $$catalogs; do \
183	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
184	  mv $$lang.po $$lang.old.po; \
185	  if $(TUPDATE) $(PACKAGE).pot $$lang.old.po > $$lang.po; then \
186	    rm -f $$lang.old.po; \
187	  else \
188	    echo "tupdate for $$cat failed!"; \
189	    rm -f $$lang.po; \
190	    mv $$lang.old.po $$lang.po; \
191	  fi; \
192	done
193
194POTFILES: POTFILES.in
195	( if test 'x$(srcdir)' != 'x.'; then \
196	    posrcprefix='$(top_srcdir)/'; \
197	  else \
198	    posrcprefix="../"; \
199	  fi; \
200	  sed -e '/^#/d' -e '/^[ 	]*$$/d' \
201	      -e "s@.*@	$$posrcprefix& \\\\@" \
202	      -e '$$s/\(.*\) \\/\1/' < $(srcdir)/POTFILES.in > POTFILES )
203
204Makefile: Makefile.in.in ../config.status POTFILES
205	cd .. && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= ./config.status
206
207# Tell versions [3.59,3.63) of GNU make not to export all variables.
208# Otherwise a system limit (for SysV at least) may be exceeded.
209.NOEXPORT:
210