diff options
Diffstat (limited to 'Makefile.in')
-rw-r--r-- | Makefile.in | 120 |
1 files changed, 109 insertions, 11 deletions
diff --git a/Makefile.in b/Makefile.in index 0967124..8c61d46 100644 --- a/Makefile.in +++ b/Makefile.in @@ -21,7 +21,9 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ mandir = @mandir@ +datadir = @datadir@ sysconfdir = @sysconfdir@ +localedir = $(datadir)/locale VERSION = @PACKAGE_VERSION@ APPNAME = @PACKAGE_TARNAME@ @@ -52,31 +54,42 @@ endif FILEIO = io-unix -BINARIES = xcfinfo$e xcf2pnm$e xcf2png$e -MANPAGES = $(patsubst %$e,%.1,$(BINARIES)) +BINARIES = xcfinfo$e xcf2pnm$e xcf2png$e xcfview +COMMANDS = $(patsubst %$e,%,$(BINARIES)) +MANPAGES = $(patsubst %,%.1,$(COMMANDS)) + +ifeq (@USE_NLS@,yes) +LINGUAS = da +MANLINGUAS = da +endif %.$o: %.c $(CC) $(CFLAGS) -o $@ -c $< -all: $(BINARIES) $(MANPAGES) -xcfinfo$e: xcfinfo.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o +all: $(BINARIES) $(SCRIPTS) $(MANPAGES) po/stamp manpo/stamp + +xcfinfo$e: xcfinfo.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o nlsini.$o $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ -xcf2pnm$e: xcf2pnm.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o \ - pixels.$o flatten.$o flatspec.$o scaletab.$o table.$o +xcf2pnm$e: xcf2pnm.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o nlsini.$o \ + pixels.$o flatten.$o flatspec.$o scaletab.$o table.$o $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ -xcf2png$e: xcf2png.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o \ +xcf2png$e: xcf2png.$o $(FILEIO).$o enums.$o xcf-general.$o utils.$o nlsini.$o \ pixels.$o flatten.$o flatspec.$o scaletab.$o table.$o palette.$o $(CC) $(LDFLAGS) $(LIBS) -lpng $^ -o $@ +xcfview: xcfview.in Makefile + sed '1s,/usr/bin/perl,@PERL@,' < $< > $@ + testscale$e: testscale.$o $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ install: all for p in $(BINARIES) ; do \ - $(INSTALL_PROGRAM) -s $$p \ + case $$p in xcfview) strip= ;; *) strip=-s ;; esac ; \ + $(INSTALL_PROGRAM) $$strip $$p \ $(bindir)/`echo $$p | $(SED) $(program_transform_name)` \ || exit 1 ;\ done @@ -85,6 +98,19 @@ install: all $(mandir)/man1/`echo $$m | $(SED) $(program_transform_name)` \ || exit 1 ; \ done + for lang in $(LINGUAS) ; do \ + $(srcdir)/install-sh -d $(localedir)/$$lang/LC_MESSAGES ; \ + $(INSTALL_DATA) po/$$lang.mo \ + $(localedir)/$$lang/LC_MESSAGES/$(APPNAME).mo \ + || exit 1 ; \ + done + for L in $(MANLINGUAS) ; do \ + $(srcdir)/install-sh -d $(mandir)/$$L/man1 || exit 1 ; \ + for P in $(patsubst %.1,%,$(MANPAGES)) ; do \ + $(INSTALL_DATA) manpo/$$P.$$L.1 $(mandir)/$$L/man1/$$P.1 \ + || exit 1; done ; done ; + +C_GENERATED = enums.c table.c nlsini.c ENUMSOURCES = gimp/base-enums.h gimp/gimpbaseenums.h gimp/xcf-private.h enums.h: mkenumsh.pl $(ENUMSOURCES) @@ -93,6 +119,13 @@ enums.c: mkenumsc.pl enums.h $(PERL) $< enums.h > $@ table.c: mktablec.pl config.h $(PERL) $< > $@ +nlsini.c: Makefile + echo >$@ "#include \"xcftools.h\"" + echo >>$@ "#ifndef nls_init" + echo >>$@ "void nls_init(void) {" + echo >>$@ " bindtextdomain(\"$(APPNAME)\",\"$(localedir)\");" + echo >>$@ " textdomain(\"$(APPNAME)\"); }" + echo >>$@ "#endif" %.oi: options.i mkopti.pl config.h $(PERL) mkopti.pl $* @@ -102,10 +135,73 @@ table.c: mktablec.pl config.h ############################################################################# # +# Localization stuff + +POTFILES_NONC = $(patsubst %$e,%.oi,$(BINARIES)) options.i + +po/$(APPNAME).pot$(SUPPRESS_AUTOFOO): $(POTFILES_NONC) \ + $(filter-out table.c nlsini.c, $(C_GENERATED) $(wildcard *.c)) + xgettext -o $@.tmp -C -k_ -kN_ \ + --foreign-user --msgid-bugs-address=henning@makholm.net \ + --flag=FatalGeneric:2:c-format \ + --flag=FatalUnexpected:1:c-format \ + --flag=FatalBadXCF:1:c-format \ + --flag=FatalUnsupportedXCF:1:c-format \ + $^ + if diff $@ $@.tmp | \ + grep -v '^\([^<>]\|. \?"POT-Creation-Date:\)' > /dev/null; \ + then mv -f $@.tmp $@ ; \ + else echo OK, $@ is unchanged ; rm $@.tmp ; fi + +po/%.po: po/$(APPNAME).pot + test -f $@ + msgmerge -U $@ $< + touch $@ + +po/%.mo: po/%.po + msgfmt -c -o$@ $< + +po/stamp: $(patsubst %,po/%.mo,$(LINGUAS)) + if ! make -q po/$(APPNAME).pot ; then \ + touch po/$(APPNAME).pot ; touch po/*.po ; touch po/*.mo ; fi + touch $@ + +# Manpage localization stuff + +POTFILES_MAN = options.mi $(patsubst %.1,%.10,$(MANPAGES)) \ + exit.1i + +manpo/%.po: manpo/manpages.pot + test -f $@ + msgmerge -U $@ $< + touch $@ + +manpo/stamp: $(patsubst %,manpo/%.po,$(MANLINGUAS)) $(MANPAGES) + touch manpo/manpages.pot + touch $^ + for L in $(MANLINGUAS) ; do \ + for P in $(patsubst %.1,%,$(MANPAGES)) ; do \ + $(PERL) manpo/mantranslate.pl manpo/$$L.po $$P.1 \ + > manpo/$$P.$$L.1 || exit 1; done ; done ; + touch $@ + + +options.mi: manpo/optipot.pl options.i + $(PERL) manpo/optipot.pl > $@ +manpo/manpages.pot$(SUPPORESS_AUTOFOO): manpo/mantranslate.pl $(POTFILES_MAN) + $(PERL) manpo/mantranslate.pl -x $(POTFILES_MAN) > $@.tmp + if diff $@ $@.tmp | \ + grep -v '^\([^<>]\|. \?"POT-Creation-Date:\)' > /dev/null; \ + then mv -f $@.tmp $@ ; \ + else echo OK, $@ is unchanged ; rm $@.tmp ; fi + +############################################################################# +# # Dependency tracking, by hand COMMON_HEADERS = xcftools.h config.h enums.h enums.$o: enums.h +nlsini.$o: $(COMMON_HEADERS) table.$o: $(COMMON_HEADERS) pixels.h scaletab.$o: $(COMMON_HEADERS) pixels.h io-unix.$o: $(COMMON_HEADERS) @@ -127,8 +223,9 @@ check: $(BINARIES) cd test && $(MAKE) check clean: - $(RM) *.$o */*~ *~ .*~ *.1i *.1il *.1 *.oi - $(RM) enums.h enums.c table.c $(BINARIES) + $(RM) *.$o */*~ *~ .*~ xcf*.1i xcf*.1il *.1 *.oi *.mi + $(RM) enums.h $(C_GENERATED) $(BINARIES) + $(RM) po/*.mo */stamp manpo/*.1 cd test && $(MAKE) clean distclean: clean @@ -147,7 +244,8 @@ realclean: distclean # Tarball-making rule ifeq (,$(findstring @,$o)) -dist: ajour distclean +dist: ajour $(patsubst %,po/%.po,$(LINGUAS)) + $(MAKE) distclean noncvs > notcvsfiles || cp dist-generated notcvsfiles diff -u dist-generated notcvsfiles $(RM) notcvsfiles |