Reorganize the alphabets/LANG/ directories, rewriting the sub-Makefile alphabets/LANG/Makefile.am as Makefile.am fragment incuded by alphabets/Makefile.am. Note: these include's are resolved by `automake'. The idea is to put everything specific for a language into the Makefile.am fragment for that language. The fragments are (re-)generated by running 'sh mk-lang.sh' (in make-rules/alphabets). ======== Drop unused files (from TL2008 and more). diff -ur -x Makefile.in -x autom4te.cache xindy.orig/make-rules/alphabets/Makefile.am.not-yet xindy/make-rules/alphabets/Makefile.am.not-yet --- xindy.orig/make-rules/alphabets/Makefile.am.not-yet 1970-01-01 01:00:00.000000000 +0100 +++ xindy/make-rules/alphabets/Makefile.am.not-yet 2010-01-13 13:01:37.000000000 +0100 @@ -0,0 +1,310 @@ +## Use `autoreconf' in top-level directory to recreate all +## autoconf/automake files. +## Or, call `automake Makefile' to create only Makefile.in. + +## Copyright (C) 2004-2005 by Gour. +## +## This program is free software; you can redistribute it and/or +## modify it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2 of the +## License, or (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program in the file COPYING; if not, write to the +## Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +## Boston, MA 02110-1301 USA. + +langdir = $(pkglibdir)/modules/lang + +nobase_nodist_lang_DATA = +dist_noinst_DATA = + +DOCS_CP1250 = +DOCS_CP1252 = +DOCS_CP850 = +DOCS_LATIN1 = +DOCS_LATIN2 = +DOCS_LATIN3 = +DOCS_LATIN4 = +DOCS_LATIN5 = +DOCS_LATIN9 = + +DOCS_CYR_1251 = +DOCS_CYR_ISO88595 = +DOCS_CYR_ISOIR111 = +DOCS_CYR_KOI8_R = +DOCS_CYR_KOI8_U = + +DOCS_ISO88597 = +DOCS_ISO88598 = + +DOCS_UTF8_LAT = +DOCS_UTF8_CYR = +DOCS_UTF8_OTHER = + +EXTRA_DIST = mk-lang.sh lang.defs +CLEANFILES = + +subdirs = + +## Include all Makefile fragments. +include albanian/Makefile.am +include belarusian/Makefile.am +include bulgarian/Makefile.am +include croatian/Makefile.am +include czech/Makefile.am +include danish/Makefile.am +include dutch/Makefile.am +include english/Makefile.am +include esperanto/Makefile.am +include estonian/Makefile.am +include finnish/Makefile.am +include french/Makefile.am +include general/Makefile.am +include georgian/Makefile.am +include german/Makefile.am +include greek/Makefile.am +include gypsy/Makefile.am +include hausa/Makefile.am +include hebrew/Makefile.am +include hungarian/Makefile.am +include icelandic/Makefile.am +include italian/Makefile.am +include klingon/Makefile.am +include kurdish/Makefile.am +include latin/Makefile.am +include latvian/Makefile.am +include lithuanian/Makefile.am +include lower-sorbian/Makefile.am +include macedonian/Makefile.am +include mongolian/Makefile.am +include norwegian/Makefile.am +include polish/Makefile.am +include portuguese/Makefile.am +include romanian/Makefile.am +include russian/Makefile.am +include serbian/Makefile.am +include slovak/Makefile.am +include slovenian/Makefile.am +include spanish/Makefile.am +include swedish/Makefile.am +include test1/Makefile.am +include turkish/Makefile.am +include ukrainian/Makefile.am +include upper-sorbian/Makefile.am +include vietnamese/Makefile.am + +## Make sure all language subdirectories exist. +BUILT_SOURCES = subdirs +subdirs: + @for d in $(subdirs); do $(MKDIR_P) $$d; done +.PHONY: subdirs + +%utf8.pl : %utf8.pl.in + sed -e 's/@.{\([^}]*\)}/\1/g;' <$< >$@ + +%latin1.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO8859-1 >$@ + +%cp850.pl : %utf8.pl.in + sed -e 's/@.{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)CP850 >$@ + +%latin2.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO8859-2 >$@ + +%latin3.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO8859-3 >$@ + +%latin4.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO8859-4 >$@ + +%iso88595.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-8859-5 >$@ + +%iso88597.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-8859-7 >$@ + +%iso88598.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-8859-8 >$@ + +%latin5.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-8859-9 >$@ + +%latin9.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;s/@9{\([^}]*\)}/\1/g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-8859-15 >$@ + +%cp1250.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)CP1250 >$@ + +%cp1251.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)CP1251 >$@ + +%cp1252.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;s/@9{\([^}]*\)}/\1/g;' <$< | \ + $(CONVERT_FROM_UTF8)CP1252 >$@ + +%isoir111.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)ISO-IR-111 >$@ + +%koi8-r.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)KOI8-R >$@ + +%koi8-u.pl : %utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' <$< | \ + $(CONVERT_FROM_UTF8)KOI8-U >$@ + +# %tex.pl : %utf8.pl utf8-to-tex.sed +# sed -f $(srcdir)/utf8-to-tex.sed <$< >$@ + + + +%-lang.xdy : %-test.xdy + sed -n '1,10 p' <$< >$@ + +# Running "$(PERL) -I$(srcdir) $< $*" creates %-test.xdy, %-doc.tex, %.raw, +# and %.xdy; %-test.xdy is finished first. We must not run this command +# several times simultaneously (for details see Automake manual 27.9). +%-test.xdy : %.pl + $(PERL) -I$(srcdir) $< $* + +%-doc.tex %.xdy : %-test.xdy + @if test -f $@; then :; else \ + trap 'rm -rf $*.lock $<' 1 2 13 15; \ + if mkdir $*.lock 2>/dev/null; then \ + rm -f $<; \ + $(MAKE) $(AM_MAKEFLAGS) $<; \ + result=$$?; rm -rf $*.lock; exit $$result; \ + else \ + while test -d $*.lock; do sleep 1; done; \ + test -f $<; \ + fi; \ + fi + +SCRS = \ + alphabets-doc.tex \ + make-rules.pl \ + utf8-to-tex.sed + +DOCS_CYR = \ + $(DOCS_CYR_1251) \ + $(DOCS_CYR_ISO88595) \ + $(DOCS_CYR_ISOIR111) \ + $(DOCS_CYR_KOI8_R) \ + $(DOCS_CYR_KOI8_U) + +DOCS_CPS = \ + $(DOCS_CP1250) \ + $(DOCS_CP1252) \ + $(DOCS_CP850) + +DOCS_LAT = \ + $(DOCS_LATIN1) \ + $(DOCS_LATIN2) \ + $(DOCS_LATIN3) \ + $(DOCS_LATIN4) \ + $(DOCS_LATIN5) \ + $(DOCS_LATIN9) + +DOCS_OTHER = \ + $(DOCS_ISO88597) \ + $(DOCS_ISO88598) + +DOCS_UTF8 = \ + $(DOCS_UTF8_LAT) \ + $(DOCS_UTF8_CYR) \ + $(DOCS_UTF8_OTHER) + +DOCS = $(DOCS_CPS) $(DOCS_LAT) $(DOCS_CYR) $(DOCS_OTHER) $(DOCS_UTF8) + + +alphabets-inc.tex : $(DOCS) + $(RM) $@ + echo "\chapter{Latin scripts}" >>$@ + echo "\ienc{cp1252}" >>$@ + echo "\section{Codepage 1252}" >>$@ + for i in $(DOCS_CP1252); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin1}" >>$@ + echo "\section{Codepage latin1}" >>$@ + for i in $(DOCS_LATIN1); do echo "\input{$$i}" >>$@; done + echo "\ienc{cp850}" >>$@ + echo "\section{Codepage 850}" >>$@ + for i in $(DOCS_CP850); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin2}" >>$@ + echo "\section{Codepage latin2}" >>$@ + for i in $(DOCS_LATIN2); do echo "\input{$$i}" >>$@; done + echo "\ienc{cp1250}" >>$@ + echo "\section{Codepage 1250}" >>$@ + for i in $(DOCS_CP1250); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin3}" >>$@ + echo "\section{Codepage latin3}" >>$@ + for i in $(DOCS_LATIN3); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin4}" >>$@ + echo "\section{Codepage latin4}" >>$@ + for i in $(DOCS_LATIN4); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin5}" >>$@ + echo "\section{Codepage latin5}" >>$@ + for i in $(DOCS_LATIN5); do echo "\input{$$i}" >>$@; done + echo "\ienc{latin9}" >>$@ + echo "\section{Codepage latin9}" >>$@ + for i in $(DOCS_LATIN9); do echo "\input{$$i}" >>$@; done + echo "\ienc{cp1251}" >>$@ + echo "\fenc{T2A}" >>$@ + echo "\chapter{Cyrillic scripts}" >>$@ + echo "\section{Codepage 1251}" >>$@ + for i in $(DOCS_CYR_1251); do echo "\input{$$i}" >>$@; done +# echo "\ienc{iso-8859-7}" >>$@ +# echo "\fenc{LGR}" >>$@ +# echo "\chapter{Other scripts}" >>$@ +# for i in $(DOCS_OTHER); do echo "\input{$$i}" >>$@; done +# FIXME: UTF8 encoding +# echo "\section{UTF-8 scripts}" >>$@ +# for i in $(DOCS_UTF8); do echo "\input{$$i}" >>$@; done +# echo "\ienc{utf8}" >>$@ + +# whether to build docs +if BUILDRULES + +if BUILDDOCS +alphabets-doc.pdf : alphabets-doc.tex alphabets-inc.tex + pdflatex -interaction batchmode $(srcdir)/alphabets-doc.tex + pdflatex -interaction batchmode $(srcdir)/alphabets-doc.tex + +PDFS = alphabets-doc.pdf + +doc_DATA = $(PDFS) + +endif # (end BUILDDOCS) + +endif # end (BUILDRULES) + +DOC_CLEAN = \ + alphabets-doc.aux \ + alphabets-doc.log \ + alphabets-doc.out \ + alphabets-doc.pdf \ + alphabets-inc.tex \ + alphabets-doc.toc + +EXTRA_DIST += $(SCRS) test.xdy + +CLEANFILES += $(nobase_nodist_lang_DATA) $(DOCS) $(DOC_CLEAN) + diff -ur -x Makefile.in -x autom4te.cache xindy.orig/make-rules/alphabets/lang.defs xindy/make-rules/alphabets/lang.defs --- xindy.orig/make-rules/alphabets/lang.defs 1970-01-01 01:00:00.000000000 +0100 +++ xindy/make-rules/alphabets/lang.defs 2010-01-10 22:08:23.000000000 +0100 @@ -0,0 +1,45 @@ +albanian UTF8_LAT LATIN1 +belarusian UTF8_CYR CYR_ISO88595 CYR_ISOIR111 CYR_1251 +bulgarian UTF8_CYR CYR_ISO88595 CYR_KOI8_R CYR_1251 +croatian UTF8_LAT CP1250 LATIN2 +czech UTF8_LAT CP1250 LATIN2 +danish UTF8_LAT CP1252 LATIN9 +dutch ij-as-ij UTF8_LAT LATIN1 ij-as-y UTF8_LAT +english UTF8_LAT CP1252 LATIN9 +esperanto UTF8_LAT LATIN3 +estonian UTF8_LAT CP1252 LATIN9 +finnish UTF8_LAT CP1252 LATIN9 +french UTF8_LAT CP1252 LATIN9 +general UTF8_LAT CP1252 CP850 LATIN9 +georgian UTF8_OTHER +german braille UTF8_OTHER din5007 UTF8_LAT LATIN1 duden UTF8_LAT LATIN1 +greek UTF8_OTHER ISO88597 polytonic UTF8_OTHER translit UTF8_LAT LATIN4 +gypsy northrussian UTF8_LAT +hausa UTF8_LAT +hebrew UTF8_OTHER ISO88598 +hungarian UTF8_LAT CP1250 LATIN2 +icelandic UTF8_LAT CP1252 LATIN9 +italian UTF8_LAT LATIN1 +klingon UTF8_OTHER +kurdish bedirxan UTF8_LAT LATIN5 turkish-i UTF8_LAT LATIN5 +latin UTF8_LAT +latvian UTF8_LAT LATIN4 +lithuanian UTF8_LAT LATIN4 +lower-sorbian UTF8_LAT CP1250 LATIN2 +macedonian UTF8_CYR CYR_ISO88595 CYR_ISOIR111 CYR_1251 +mongolian cyrillic UTF8_CYR cyrillic +norwegian UTF8_LAT LATIN1 +polish UTF8_LAT CP1250 LATIN2 +portuguese UTF8_LAT LATIN1 +romanian UTF8_LAT LATIN2 +russian UTF8_CYR CYR_ISO88595 CYR_KOI8_R CYR_1251 translit-iso UTF8_LAT +serbian UTF8_CYR CYR_ISO88595 CYR_ISOIR111 CYR_1251 +slovak large UTF8_LAT CP1250 LATIN2 small UTF8_LAT CP1250 LATIN2 +slovenian UTF8_LAT CP1250 LATIN2 +spanish modern UTF8_LAT LATIN1 traditional UTF8_LAT LATIN1 +swedish UTF8_LAT CP1252 LATIN9 +test1 +turkish UTF8_LAT LATIN3 LATIN5 +upper-sorbian UTF8_LAT CP1250 LATIN2 +ukrainian UTF8_CYR CYR_KOI8_U CYR_1251 +vietnamese UTF8_LAT diff -ur -x Makefile.in -x autom4te.cache xindy.orig/make-rules/alphabets/mk-lang.sh xindy/make-rules/alphabets/mk-lang.sh --- xindy.orig/make-rules/alphabets/mk-lang.sh 1970-01-01 01:00:00.000000000 +0100 +++ xindy/make-rules/alphabets/mk-lang.sh 2010-01-13 13:51:57.000000000 +0100 @@ -0,0 +1,213 @@ +#! /bin/sh + +# Copyright (C) 2010 Peter Breitenlohner . +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in the file COPYING; if not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301 USA. + +# Generate the Makefile fragments lang/Makefile.am from language +# definitions in lang.defs containing lines: +# lang [[prefix] UTF8_DOC [DOC]...]... +# where +# prefix is an optional filename prefix, without final '-' +# UTF8_DOC is a DOCS_UTF8_* variable, without leading 'DOCS_' +# DOC is an other DOCS_* variable, without leading 'DOCS_' + +CP_DOCS='CP1250 CP1252 CP850' +LATIN_DOCS='LATIN1 LATIN2 LATIN3 LATIN4 LATIN5 LATIN9' +CYR_DOCS='CYR_1251 CYR_ISO88595 CYR_ISOIR111 CYR_KOI8_R CYR_KOI8_U' +ISO_DOCS='ISO88597 ISO88598' +UTF_DOCS='UTF8_LAT UTF8_CYR UTF8_OTHER' + +ALL_DOCS="$CP_DOCS $LATIN_DOCS $CYR_DOCS $ISO_DOCS $UTF_DOCS" + +err_exit () { + echo "bad argument \"$arg\"" + exit 1 +} + +do_XDY () { + XDY="$XDY $name" + eval DOCS_$arg="\"\$DOCS_$arg $name\"" +} + +do_UTF8 () { + PLIN="$PLIN $name" + do_XDY +} + +do_CODE () { + PL="$PL $name" + do_XDY +} + +parse_lang () { + for DOC in $ALL_DOCS; do + eval DOCS_$DOC= + done + PLIN= PL= XDY= + lang=$1 + shift + pref= + for arg + do + case $arg in + [a-z]*) pref="$arg-";; + UTF8_*) name=${pref}utf8; do_UTF8;; + [A-Z]*) case $arg in + CP*) val="cp${arg:2}";; + ISO*) val="iso${arg:3}";; + LATIN*) val="latin${arg:5}";; + CYR_1251) val=cp1251;; + CYR_ISO88595) val=iso88595;; + CYR_ISOIR111) val=isoir111;; + CYR_KOI8_R) val=koi8-r;; + CYR_KOI8_U) val=koi8-u;; + *) err_exit;; + esac + name="$pref$val" + do_CODE + ;; + *) err_exit;; + esac + done +} + +print_header () { + cat <<-_EOF + ## Makefile fragment for $lang. + + ## Copyright (C) 2009, 2010 by Peter Breitenlohner. + ## Copyright (C) 2004-2005 by Gour. + ## + ## This program is free software; you can redistribute it and/or + ## modify it under the terms of the GNU General Public License as + ## published by the Free Software Foundation; either version 2 of the + ## License, or (at your option) any later version. + ## + ## This program is distributed in the hope that it will be useful, but + ## WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + ## General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with this program in the file COPYING; if not, write to the + ## Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + ## Boston, MA 02110-1301 USA. + + subdirs += $lang + _EOF +} + +print_xdy () { + test $# -eq 0 && return + printf '\nnobase_nodist_lang_DATA +=' + for xdy + do + printf ' \\\n\t'$lang'/%s-lang.xdy' $xdy + printf ' \\\n\t'$lang'/%s-test.xdy' $xdy + printf ' \\\n\t'$lang'/%s.xdy' $xdy + done + printf "\n" +} + +print_docs () { + test $# -eq 0 && return + printf '\nDOCS_%s +=' $DOC + printf ' \\\n\t'$lang'/%s-doc.tex' "$@" + printf "\n" +} + +print_extra_hdr () { + test -n "$print_extra_hdr_done" && return + printf '\nEXTRA_DIST +=' + print_extra_hdr_done=yes +} + +print_extra () { + test $# -eq 0 && return + print_extra_hdr + printf ' \\\n\t%s' "$@" +} + +print_extra_plin () { + test $# -eq 0 && return + print_extra_hdr + printf ' \\\n\t'$lang'/%s.pl.in' "$@" +} + +print_pl () { + test $# -eq 0 && return + printf '\ndist_noinst_DATA +=' + printf ' \\\n\t'$lang'/%s.pl' "$@" + printf "\n" +} + +print_clean () { + test $# -eq 0 && return + printf '\nCLEANFILES +=' + for clean + do + case $clean in + *utf8) printf ' \\\n\t'$lang'/%s.pl' $clean;; + esac + printf ' \\\n\t'$lang'/%s.raw' $clean + done + printf "\n" +} + +make_lang () { + print_header + print_xdy $XDY + for DOC in $ALL_DOCS; do + eval print_docs \$DOCS_$DOC + done + print_extra_hdr_done= + case $lang in + general) PL="$PL template";; + klingon) PL="$PL translit-ascii";; + test1) PL="$PL test1";; + romanian) + cat <<\_EOF + +romanian/latin2.pl : romanian/utf8.pl.in + sed -e 's/@u{\([^}]*\)}//g;' -f $(srcdir)/rom-comma-kludge.sed <$< | \ + $(CONVERT_FROM_UTF8)ISO8859-2 >$@ +_EOF + print_extra rom-comma-kludge.sed + ;; + esac + print_extra_plin $PLIN + test -n "$print_extra_hdr_done" && printf '\n' + print_pl $PL + print_clean $XDY + echo +} + +all_langs () { + while read line + do + parse_lang $line + mkdir -p $lang + make_lang >$lang/Makefile.tmp + if diff $lang/Makefile.tmp $lang/Makefile.am >/dev/null 2>&1; then + rm -f $lang/Makefile.tmp + else + mv -f $lang/Makefile.tmp $lang/Makefile.am + fi + done +} + +all_langs < lang.defs