Makefile.in.in revision 1.5
1# Makefile for program source directory in GNU NLS utilities package.
2# Copyright (C) 1995, 1996 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/po
34subdir = po
35
36INSTALL = @INSTALL@
37INSTALL_DATA = @INSTALL_DATA@
38MKINSTALLDIRS = @MKINSTALLDIRS@
39
40CC = @CC@
41GENCAT = @GENCAT@
42GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
43MSGFMT = @MSGFMT@
44XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
45MSGMERGE = PATH=../src:$$PATH msgmerge
46
47DEFS = @DEFS@
48CFLAGS = @CFLAGS@
49CPPFLAGS = @CPPFLAGS@
50
51INCLUDES = -I.. -I$(top_srcdir)/intl
52
53COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
54
55SOURCES = cat-id-tbl.c
56POFILES = @POFILES@
57GMOFILES = @GMOFILES@
58DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
59stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
60
61POTFILES = \
62
63CATALOGS = @CATALOGS@
64CATOBJEXT = @CATOBJEXT@
65INSTOBJEXT = @INSTOBJEXT@
66
67.SUFFIXES:
68.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
69
70.c.o:
71	$(COMPILE) $<
72
73.po.pox:
74	$(MAKE) $(PACKAGE).pot
75	$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
76
77.po.mo:
78	$(MSGFMT) -o $@ $<
79
80#.po.gmo:
81#	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
82#	  && rm -f $$file && $(GMSGFMT) -o $$file $<
83
84.po.cat:
85	sed -f ../intl/po2msg.sed < $< > $*.msg \
86	  && rm -f $@ && $(GENCAT) $@ $*.msg
87
88
89all: all-@USE_NLS@
90
91all-yes: cat-id-tbl.c $(CATALOGS)
92all-no:
93
94$(srcdir)/$(PACKAGE).pot: $(POTFILES)
95	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
96	  --add-comments --keyword=_ --keyword=N_ \
97	  --files-from=$(srcdir)/POTFILES.in
98	if [ ! -s $(PACKAGE).po ] \
99	  || cmp -s $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; then \
100	  rm -f $(PACKAGE).po; \
101	else \
102	  rm -f $(srcdir)/$(PACKAGE).pot \
103	    && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot; \
104	fi
105
106$(srcdir)/cat-id-tbl.c: stamp-cat-id
107$(srcdir)/stamp-cat-id: $(PACKAGE).pot
108	rm -f cat-id-tbl.tmp
109	sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
110		| sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
111	if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
112	  rm cat-id-tbl.tmp; \
113	else \
114	  echo cat-id-tbl.c changed; \
115	  rm -f $(srcdir)/cat-id-tbl.c; \
116	  mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
117	fi
118	cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
119
120
121install: install-exec install-data
122install-exec:
123install-data: install-data-@USE_NLS@
124install-data-no: all
125install-data-yes: all
126	$(MKINSTALLDIRS) $(datadir)
127	@catalogs='$(CATALOGS)'; \
128	for cat in $$catalogs; do \
129	  cat=`basename $$cat`; \
130	  case "$$cat" in \
131	    *.gmo) destdir=$(gnulocaledir);; \
132	    *)     destdir=$(localedir);; \
133	  esac; \
134	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
135	  dir=$$destdir/$$lang/LC_MESSAGES; \
136	    $(MKINSTALLDIRS) $$dir; \
137	  if test -r $$cat; then \
138	    $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
139	    echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
140	  else \
141	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
142	    echo "installing $(srcdir)/$$cat as" \
143		 "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
144	  fi; \
145	  if test -r $$cat.m; then \
146	    $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
147	    echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
148	  else \
149	    if test -r $(srcdir)/$$cat.m ; then \
150	      $(INSTALL_DATA) $(srcdir)/$$cat.m \
151		$$dir/$(PACKAGE)$(INSTOBJEXT).m; \
152	      echo "installing $(srcdir)/$$cat as" \
153		   "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
154	    else \
155	      true; \
156	    fi; \
157	  fi; \
158	done
159	if test "$(PACKAGE)" = "gettext"; then \
160	    $(MKINSTALLDIRS) $(gettextsrcdir); \
161	  cd $(srcdir) && \
162	    $(INSTALL_DATA) Makefile.in.in $(gettextsrcdir)/Makefile.in.in; \
163	else \
164	  : ; \
165	fi
166
167# Define this as empty until I found a useful application.
168installcheck:
169
170uninstall:
171	catalogs='$(CATALOGS)'; \
172	for cat in $$catalogs; do \
173	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
174	  rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
175	  rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
176	  rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
177	  rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
178	done
179	rm -f $(gettextsrcdir)/po-Makefile.in.in
180
181check: all
182
183cat-id-tbl.o: ../intl/libgettext.h
184
185dvi info tags TAGS ID:
186
187mostlyclean:
188	rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
189	rm -fr *.o
190
191clean: mostlyclean
192
193distclean: clean
194	rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
195
196maintainer-clean: distclean
197	@echo "This command is intended for maintainers to use;"
198	@echo "it deletes files that may require special tools to rebuild."
199
200distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
201dist distdir: update-po $(DISTFILES)
202	dists="$(DISTFILES)"; \
203	for file in $$dists; do \
204	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
205	    || cp -p $(srcdir)/$$file $(distdir); \
206	done
207
208update-po: Makefile
209	$(MAKE) $(PACKAGE).pot
210	PATH=`pwd`/../src:$$PATH; \
211	cd $(srcdir); \
212	catalogs='$(CATALOGS)'; \
213	for cat in $$catalogs; do \
214	  lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
215	  mv $$lang.po $$lang.old.po; \
216	  echo "$$lang:"; \
217	  if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
218	    rm -f $$lang.old.po; \
219	  else \
220	    echo "msgmerge for $$cat failed!"; \
221	    rm -f $$lang.po; \
222	    mv $$lang.old.po $$lang.po; \
223	  fi; \
224	done
225
226POTFILES: POTFILES.in
227	( if test 'x$(srcdir)' != 'x.'; then \
228	    posrcprefix='$(top_srcdir)/'; \
229	  else \
230	    posrcprefix="../"; \
231	  fi; \
232	  sed -e '/^#/d' -e '/^[ 	]*$$/d' \
233	      -e "s@.*@	$$posrcprefix& \\\\@" \
234	      -e '$$s/\(.*\) \\/\1/' < $(srcdir)/POTFILES.in > POTFILES )
235
236Makefile: Makefile.in.in ../config.status POTFILES
237	cd .. \
238	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
239	       $(SHELL) ./config.status
240
241# Tell versions [3.59,3.63) of GNU make not to export all variables.
242# Otherwise a system limit (for SysV at least) may be exceeded.
243.NOEXPORT:
244