diff options
| author | Glenn Morris | 2015-05-21 23:44:00 -0700 |
|---|---|---|
| committer | Glenn Morris | 2015-05-21 23:44:00 -0700 |
| commit | e7bc85db46679cc408f51d74e6a66734f1e32142 (patch) | |
| tree | 250008ff1c624cb5cc39ceb2fcf7892cdb93c258 | |
| parent | 9e41e0bc6a6fdb7a01841db62d8de42d67be534a (diff) | |
| download | emacs-e7bc85db46679cc408f51d74e6a66734f1e32142.tar.gz emacs-e7bc85db46679cc408f51d74e6a66734f1e32142.zip | |
Generate admin/charsets Makefile via configure, and make more portable.
* configure.ac (SUBDIR_MAKEFILES): Add admin/charsets/Makefile.
(admin/charsets/Makefile): Generate it.
* admin/charsets/Makefile.in: Rename from Makefile.
(AWK, srcdir, top_srcdir, AM_DEFAULT_VERBOSITY):
New variables, set by configure.
(charsetdir, lispintdir, mapfiledir, AM_V_GEN, am__v_GEN_)
(am__v_GEN_0, am__v_GEN_1, AM_V_at, am__v_at_, am__v_at_0)
(am__v_at_1, LOCAL, mapconv, run_mapconv, big5, compact, cp51932)
(cp932, eucjp_ms, gb180302, gb180304, kuten): New variables.
(TRANS_TABLE, CHARSETS): Add directory prefix to value.
(all): Declare PHONY.
(local): New PHONY target.
(map_template): New template. Use to define short PHONY aliases.
(*.map): Add directory prefixes to targets and prerequisites.
Respect make verbosity.
(JISC6226.map): Replace non-portable sed append without newline.
(install): Remove rule.
(clean): Only delete temporary sedscript.
(bootstrap-clean, distclean, maintainer-clean, extraclean)
(totalclean): New PHONY rules.
* admin/charsets/mapconv (BASE): Replace basename with expr.
(FILE): Add "mapfiles" subdirectory.
(AWK): New variable. Use throughout in place of "awk".
(main): Use "gunzip -c" in place of "zcat".
Don't leave whitespace before "p", for older sed.
* admin/charsets/mapfiles/PTCP154: Add final newline,
to make older sed versions happy.
; * .gitignore: Ignore admin/charsets/Makefile.
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | admin/charsets/Makefile | 324 | ||||
| -rw-r--r-- | admin/charsets/Makefile.in | 336 | ||||
| -rwxr-xr-x | admin/charsets/mapconv | 28 | ||||
| -rw-r--r-- | admin/charsets/mapfiles/PTCP154 | 2 | ||||
| -rw-r--r-- | configure.ac | 3 |
6 files changed, 355 insertions, 339 deletions
diff --git a/.gitignore b/.gitignore index 618249c8def..df9dc8b110c 100644 --- a/.gitignore +++ b/.gitignore | |||
| @@ -40,7 +40,6 @@ Info.plist | |||
| 40 | InfoPlist.strings | 40 | InfoPlist.strings |
| 41 | Makefile | 41 | Makefile |
| 42 | makefile | 42 | makefile |
| 43 | !admin/charsets/Makefile | ||
| 44 | !etc/refcards/Makefile | 43 | !etc/refcards/Makefile |
| 45 | !test/automated/data/flymake/Makefile | 44 | !test/automated/data/flymake/Makefile |
| 46 | !test/indent/Makefile | 45 | !test/indent/Makefile |
diff --git a/admin/charsets/Makefile b/admin/charsets/Makefile deleted file mode 100644 index e5cf2508d85..00000000000 --- a/admin/charsets/Makefile +++ /dev/null | |||
| @@ -1,324 +0,0 @@ | |||
| 1 | # Makefile -- Makefile to generate charset maps in etc/charsets. | ||
| 2 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | ||
| 3 | # National Institute of Advanced Industrial Science and Technology (AIST) | ||
| 4 | # Registration Number H13PRO009 | ||
| 5 | # | ||
| 6 | # This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | # GNU Emacs is free software: you can redistribute it and/or modify | ||
| 9 | # it under the terms of the GNU General Public License as published by | ||
| 10 | # the Free Software Foundation, either version 3 of the License, or | ||
| 11 | # (at your option) any later version. | ||
| 12 | |||
| 13 | # GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | # GNU General Public License for more details. | ||
| 17 | |||
| 18 | # You should have received a copy of the GNU General Public License | ||
| 19 | # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | |||
| 21 | # Commentary: | ||
| 22 | |||
| 23 | # If your system doesn't have the directory /usr/share/i18n/charmaps, | ||
| 24 | # get the source of the latest glibc, gzip all the charmap files in | ||
| 25 | # the directory "localedate/charmaps", and set the variable | ||
| 26 | # GLIBC_CHARMAPS to that directory. | ||
| 27 | |||
| 28 | GLIBC_CHARMAPS=/usr/share/i18n/charmaps | ||
| 29 | |||
| 30 | CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE} | ||
| 31 | |||
| 32 | # Note: We can not prepend "ISO-" to these map files because of file | ||
| 33 | # name limits on DOS. | ||
| 34 | ISO8859 = \ | ||
| 35 | 8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \ | ||
| 36 | 8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \ | ||
| 37 | 8859-15.map 8859-16.map | ||
| 38 | |||
| 39 | IBM = \ | ||
| 40 | IBM037.map IBM038.map \ | ||
| 41 | IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \ | ||
| 42 | IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \ | ||
| 43 | IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \ | ||
| 44 | IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \ | ||
| 45 | IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \ | ||
| 46 | IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \ | ||
| 47 | IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \ | ||
| 48 | IBM1004.map IBM1026.map IBM1047.map | ||
| 49 | |||
| 50 | CODEPAGE = \ | ||
| 51 | CP737.map CP775.map CP1125.map\ | ||
| 52 | CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \ | ||
| 53 | CP1255.map CP1256.map CP1257.map CP1258.map \ | ||
| 54 | CP10007.map \ | ||
| 55 | CP720.map CP858.map | ||
| 56 | |||
| 57 | CJK = GB2312.map GBK.map GB180302.map GB180304.map \ | ||
| 58 | BIG5.map BIG5-HKSCS.map\ | ||
| 59 | CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \ | ||
| 60 | CNS-F.map \ | ||
| 61 | JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \ | ||
| 62 | JISC6226.map CP932-2BYTE.map JISX213A.map\ | ||
| 63 | KSC5601.map KSC5636.map JOHAB.map | ||
| 64 | |||
| 65 | MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \ | ||
| 66 | MIK.map PTCP154.map \ | ||
| 67 | TIS-620.map VISCII.map VSCII.map VSCII-2.map\ | ||
| 68 | KA-PS.map KA-ACADEMY.map \ | ||
| 69 | HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \ | ||
| 70 | stdenc.map symbol.map \ | ||
| 71 | CP949-2BYTE.map \ | ||
| 72 | BIG5-1.map BIG5-2.map | ||
| 73 | |||
| 74 | # Emacs-mule charsets. | ||
| 75 | MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \ | ||
| 76 | MULE-sisheng.map MULE-tibetan.map \ | ||
| 77 | MULE-lviscii.map MULE-uviscii.map | ||
| 78 | |||
| 79 | TRANS_TABLE = cp51932.el eucjp-ms.el | ||
| 80 | SED_SCRIPT = jisx2131-filter | ||
| 81 | |||
| 82 | all: ${CHARSETS} ${TRANS_TABLE} | ||
| 83 | |||
| 84 | AWK = gawk | ||
| 85 | |||
| 86 | # Rules for each charset | ||
| 87 | |||
| 88 | VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk | ||
| 89 | # Generating $@... | ||
| 90 | @./mapconv $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 compact.awk > $@ | ||
| 91 | |||
| 92 | VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz mapconv compact.awk | ||
| 93 | # Generating $@... | ||
| 94 | @./mapconv $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 compact.awk \ | ||
| 95 | | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@ | ||
| 96 | |||
| 97 | ALTERNATIVNYJ.map: IBM866.map | ||
| 98 | # Generating $@... | ||
| 99 | @echo "# Modified from IBM866.map according to the chart at" > $@ | ||
| 100 | @echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," >> $@ | ||
| 101 | @echo "# with guesses for the Unicodes of the glyphs." >> $@ | ||
| 102 | @sed -e '1 d' \ | ||
| 103 | -e '/0xF2/ s/ .*/ 0x2019/' \ | ||
| 104 | -e '/0xF3/ s/ .*/ 0x2018/' \ | ||
| 105 | -e '/0xF4/ s/ .*/ 0x0301/' \ | ||
| 106 | -e '/0xF5/ s/ .*/ 0x0300/' \ | ||
| 107 | -e '/0xF6/ s/ .*/ 0x203A/' \ | ||
| 108 | -e '/0xF7/ s/ .*/ 0x2039/' \ | ||
| 109 | -e '/0xF8/ s/ .*/ 0x2191/' \ | ||
| 110 | -e '/0xF9/ s/ .*/ 0x2193/' \ | ||
| 111 | -e '/0xFA/ s/ .*/ 0x00B1/' \ | ||
| 112 | -e '/0xFB/ s/ .*/ 0x00F7/' < $< >> $@ | ||
| 113 | |||
| 114 | MIK.map: mapfiles/bulgarian-mik.txt mapconv compact.awk | ||
| 115 | # Generating $@... | ||
| 116 | @./mapconv $< '1,$$' CZYBORRA compact.awk > $@ | ||
| 117 | |||
| 118 | PTCP154.map: mapfiles/PTCP154 mapconv compact.awk | ||
| 119 | # Generating $@... | ||
| 120 | @./mapconv $< '/^0x/' IANA compact.awk > $@ | ||
| 121 | |||
| 122 | stdenc.map: mapfiles/stdenc.txt mapconv compact.awk | ||
| 123 | # Generating $@... | ||
| 124 | @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ | ||
| 125 | |||
| 126 | symbol.map: mapfiles/symbol.txt mapconv compact.awk | ||
| 127 | # Generating $@... | ||
| 128 | @./mapconv $< '/^[0-9A-Fa-f]/' UNICODE compact.awk > $@ | ||
| 129 | |||
| 130 | CP720.map: mapfiles/CP720.map | ||
| 131 | # Generating $@... | ||
| 132 | @cp $< $@ | ||
| 133 | |||
| 134 | CP858.map: mapfiles/CP858.map | ||
| 135 | # Generating $@... | ||
| 136 | @cp $< $@ | ||
| 137 | |||
| 138 | CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz mapconv compact.awk | ||
| 139 | # Generating $@... | ||
| 140 | @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ | ||
| 141 | |||
| 142 | GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz mapconv compact.awk | ||
| 143 | # Generating $@... | ||
| 144 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ | ||
| 145 | |||
| 146 | GBK.map: ${GLIBC_CHARMAPS}/GBK.gz mapconv compact.awk | ||
| 147 | # Generating $@... | ||
| 148 | @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ | ||
| 149 | |||
| 150 | GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz mapconv gb180302.awk | ||
| 151 | # Generating $@... | ||
| 152 | @./mapconv $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 gb180302.awk > $@ | ||
| 153 | |||
| 154 | GB180304.map: GB180302.map gb180304.awk | ||
| 155 | # Generating $@... | ||
| 156 | @$(AWK) -f gb180304.awk < $< > $@ | ||
| 157 | |||
| 158 | JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz mapconv compact.awk | ||
| 159 | # Generating $@... | ||
| 160 | @./mapconv $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 compact.awk > $@ | ||
| 161 | @echo "# Generated by hand" >> $@ | ||
| 162 | @echo "0xA1-0xDF 0xFF61" >> $@ | ||
| 163 | |||
| 164 | JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv | ||
| 165 | # Generating $@... | ||
| 166 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ | ||
| 167 | | sed 's/0x2015/0x2014/' > $@ | ||
| 168 | |||
| 169 | JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz mapconv compact.awk | ||
| 170 | # Generating $@... | ||
| 171 | @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 compact.awk > $@ | ||
| 172 | |||
| 173 | jisx2131-filter: mapfiles/JISX213A.map | ||
| 174 | @sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@ | ||
| 175 | |||
| 176 | JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv jisx2131-filter | ||
| 177 | # Generating $@... | ||
| 178 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ | ||
| 179 | | sed -f jisx2131-filter \ | ||
| 180 | | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@ | ||
| 181 | |||
| 182 | JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz mapconv | ||
| 183 | # Generating $@... | ||
| 184 | @./mapconv $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@ | ||
| 185 | |||
| 186 | JISX213A.map: mapfiles/JISX213A.map | ||
| 187 | # Generating $@ | ||
| 188 | @cp $< $@ | ||
| 189 | |||
| 190 | CP932-2BYTE.map: mapfiles/CP932.TXT mapconv cp932.awk | ||
| 191 | # Generating $@... | ||
| 192 | @./mapconv $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 cp932.awk > $@ | ||
| 193 | |||
| 194 | cp51932.el: CP932-2BYTE.map cp51932.awk | ||
| 195 | @$(AWK) -f cp51932.awk < CP932-2BYTE.map > $@ | ||
| 196 | |||
| 197 | eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz eucjp-ms.awk | ||
| 198 | @zcat $< | $(AWK) -f eucjp-ms.awk > $@ | ||
| 199 | |||
| 200 | JISC6226.map: mapfiles/Uni2JIS mapconv kuten.awk | ||
| 201 | # Generating $@... | ||
| 202 | # As Uni2JIS doesn't contain mappings of characters added to Unicode | ||
| 203 | # recently, we add them manually here (including one correction for | ||
| 204 | # U+005C vs U+FF3C). These changes are based on bogytech's blog at | ||
| 205 | # http://bogytech.blogspot.jp/search/label/emacs. | ||
| 206 | @./mapconv $< '/^[^#].*0-/' YASUOKA kuten.awk \ | ||
| 207 | | sed -e '/0x2140/s/005C/FF3C/' \ | ||
| 208 | -e '$$ a 0x3442 0x3D4E' \ | ||
| 209 | -e '$$ a 0x374E 0x25874' \ | ||
| 210 | -e '$$ a 0x3764 0x28EF6' \ | ||
| 211 | -e '$$ a 0x513D 0x2F80F' \ | ||
| 212 | -e '$$ a 0x7045 0x9724' > $@ | ||
| 213 | |||
| 214 | KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz mapconv compact.awk | ||
| 215 | # Generating $@... | ||
| 216 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ | ||
| 217 | |||
| 218 | BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz mapconv compact.awk | ||
| 219 | # Generating $@... | ||
| 220 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@ | ||
| 221 | |||
| 222 | BIG5-1.map: BIG5.map mapconv big5.awk | ||
| 223 | # Generating $@... | ||
| 224 | @echo "# Generated from $<" > $@ | ||
| 225 | @sed -n -e '/0xa140/,/0xc8fe/p' < $< | gawk -f big5.awk >> $@ | ||
| 226 | |||
| 227 | BIG5-2.map: BIG5.map mapconv big5.awk | ||
| 228 | # Generating $@... | ||
| 229 | @echo "# Generated from $<" > $@ | ||
| 230 | @sed -n -e '/0xc940/,$$ p' < $< | gawk -f big5.awk >> $@ | ||
| 231 | |||
| 232 | BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz mapconv compact.awk | ||
| 233 | # Generating $@... | ||
| 234 | @./mapconv $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 compact.awk > $@ | ||
| 235 | |||
| 236 | JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz mapconv compact.awk | ||
| 237 | # Generating $@... | ||
| 238 | @./mapconv $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 compact.awk > $@ | ||
| 239 | |||
| 240 | CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk | ||
| 241 | # Generating $@... | ||
| 242 | @./mapconv $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 compact.awk > $@ | ||
| 243 | |||
| 244 | # CNS-1.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 245 | # # Generating $@... | ||
| 246 | # @./mapconv $< '/^C1/' KANJI-DATABASE compact.awk > $@ | ||
| 247 | |||
| 248 | CNS-2.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 249 | # Generating $@... | ||
| 250 | @./mapconv $< '/^C2/' KANJI-DATABASE compact.awk > $@ | ||
| 251 | |||
| 252 | CNS-3.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 253 | # Generating $@... | ||
| 254 | @./mapconv $< '/^C3/' KANJI-DATABASE compact.awk > $@ | ||
| 255 | |||
| 256 | CNS-4.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 257 | # Generating $@... | ||
| 258 | @./mapconv $< '/^C4/' KANJI-DATABASE compact.awk > $@ | ||
| 259 | |||
| 260 | CNS-5.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 261 | # Generating $@... | ||
| 262 | @./mapconv $< '/^C5/' KANJI-DATABASE compact.awk > $@ | ||
| 263 | |||
| 264 | CNS-6.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 265 | # Generating $@... | ||
| 266 | @./mapconv $< '/^C6/' KANJI-DATABASE compact.awk > $@ | ||
| 267 | |||
| 268 | CNS-7.map: mapfiles/cns2ucsdkw.txt mapconv compact.awk | ||
| 269 | # Generating $@... | ||
| 270 | @./mapconv $< '/^C7/' KANJI-DATABASE compact.awk > $@ | ||
| 271 | |||
| 272 | CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz mapconv compact.awk | ||
| 273 | # Generating $@... | ||
| 274 | @./mapconv $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 compact.awk > $@ | ||
| 275 | |||
| 276 | # General target to produce map files for mule charsets. | ||
| 277 | MULE-%.map: mapfiles/MULE-%.map | ||
| 278 | # Generating $@... | ||
| 279 | @cp $< $@ | ||
| 280 | |||
| 281 | # General target to produce map files for ISO-8859, GEORGIAN, and | ||
| 282 | # EBCDIC charsets. We can not use the original file name because of | ||
| 283 | # file name limit on DOS. "KA" is ISO 639 language code for Georgian. | ||
| 284 | |||
| 285 | 8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz mapconv compact.awk | ||
| 286 | # Generating $@... | ||
| 287 | @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ | ||
| 288 | |||
| 289 | KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz mapconv compact.awk | ||
| 290 | # Generating $@... | ||
| 291 | @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ | ||
| 292 | |||
| 293 | EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz mapconv compact.awk | ||
| 294 | # Generating $@... | ||
| 295 | @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ | ||
| 296 | |||
| 297 | # General target to produce map files for single-byte charsets. | ||
| 298 | |||
| 299 | %.map: ${GLIBC_CHARMAPS}/%.gz mapconv compact.awk | ||
| 300 | # Generating $@... | ||
| 301 | @./mapconv $< '/^<.*[ ]\/x/' GLIBC-1 compact.awk > $@ | ||
| 302 | |||
| 303 | install: | ||
| 304 | @for f in ${CHARSETS}; do \ | ||
| 305 | if test -r $$f; then \ | ||
| 306 | if ! cmp -s $$f ../../etc/charsets/$$f; then \ | ||
| 307 | echo updating $$f; \ | ||
| 308 | cp $$f ../../etc/charsets; \ | ||
| 309 | fi; \ | ||
| 310 | fi; \ | ||
| 311 | done | ||
| 312 | @for f in ${TRANS_TABLE}; do \ | ||
| 313 | if test -r $$f; then \ | ||
| 314 | if ! cmp -s $$f ../../lisp/international/$$f; then \ | ||
| 315 | echo updating $$f; \ | ||
| 316 | cp $$f ../../lisp/international; \ | ||
| 317 | fi; \ | ||
| 318 | fi; \ | ||
| 319 | done | ||
| 320 | |||
| 321 | # Clear files that are automatically generated. | ||
| 322 | clean: | ||
| 323 | rm -f ${CHARSETS} ${TRANS_TABLE} ${SED_SCRIPT} | ||
| 324 | |||
diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in new file mode 100644 index 00000000000..13de84d6c07 --- /dev/null +++ b/admin/charsets/Makefile.in | |||
| @@ -0,0 +1,336 @@ | |||
| 1 | ### @configure_input@ | ||
| 2 | |||
| 3 | # Copyright (C) 2015 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | ||
| 6 | # National Institute of Advanced Industrial Science and Technology (AIST) | ||
| 7 | # Registration Number H13PRO009 | ||
| 8 | # | ||
| 9 | # This file is part of GNU Emacs. | ||
| 10 | |||
| 11 | # GNU Emacs is free software: you can redistribute it and/or modify | ||
| 12 | # it under the terms of the GNU General Public License as published by | ||
| 13 | # the Free Software Foundation, either version 3 of the License, or | ||
| 14 | # (at your option) any later version. | ||
| 15 | |||
| 16 | # GNU Emacs is distributed in the hope that it will be useful, | ||
| 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 19 | # GNU General Public License for more details. | ||
| 20 | |||
| 21 | # You should have received a copy of the GNU General Public License | ||
| 22 | # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 23 | |||
| 24 | ### Commentary: | ||
| 25 | |||
| 26 | # Generate charset maps in etc/charsets. | ||
| 27 | |||
| 28 | # If your system doesn't have the directory /usr/share/i18n/charmaps, | ||
| 29 | # get the source of the latest glibc, gzip all the charmap files in | ||
| 30 | # the directory "localedate/charmaps", and set the variable | ||
| 31 | # GLIBC_CHARMAPS to that directory. | ||
| 32 | |||
| 33 | SHELL = @SHELL@ | ||
| 34 | |||
| 35 | AWK = @AWK@ | ||
| 36 | |||
| 37 | srcdir = @srcdir@ | ||
| 38 | top_srcdir = @top_srcdir@ | ||
| 39 | |||
| 40 | charsetdir = ${top_srcdir}/etc/charsets | ||
| 41 | lispintdir = ${top_srcdir}/lisp/international | ||
| 42 | mapfiledir = ${srcdir}/mapfiles | ||
| 43 | |||
| 44 | GLIBC_CHARMAPS=/usr/share/i18n/charmaps | ||
| 45 | |||
| 46 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
| 47 | AM_V_GEN = $(am__v_GEN_@AM_V@) | ||
| 48 | am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | ||
| 49 | am__v_GEN_0 = @echo " GEN " $@; | ||
| 50 | am__v_GEN_1 = | ||
| 51 | |||
| 52 | AM_V_at = $(am__v_at_@AM_V@) | ||
| 53 | am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | ||
| 54 | am__v_at_0 = @ | ||
| 55 | am__v_at_1 = | ||
| 56 | |||
| 57 | # Note: We can not prepend "ISO-" to these map files because of file | ||
| 58 | # name limits on DOS. | ||
| 59 | ISO8859 = \ | ||
| 60 | 8859-2.map 8859-3.map 8859-4.map 8859-5.map 8859-6.map 8859-7.map \ | ||
| 61 | 8859-8.map 8859-9.map 8859-10.map 8859-11.map 8859-13.map 8859-14.map \ | ||
| 62 | 8859-15.map 8859-16.map | ||
| 63 | |||
| 64 | IBM = \ | ||
| 65 | IBM037.map IBM038.map \ | ||
| 66 | IBM256.map IBM273.map IBM274.map IBM275.map IBM277.map IBM278.map \ | ||
| 67 | IBM280.map IBM281.map IBM284.map IBM285.map IBM290.map IBM297.map \ | ||
| 68 | IBM420.map IBM423.map IBM424.map IBM437.map IBM500.map IBM850.map \ | ||
| 69 | IBM851.map IBM852.map IBM855.map IBM856.map IBM857.map IBM860.map \ | ||
| 70 | IBM861.map IBM862.map IBM863.map IBM864.map IBM865.map IBM866.map \ | ||
| 71 | IBM868.map IBM869.map IBM870.map IBM871.map IBM874.map IBM875.map \ | ||
| 72 | IBM880.map IBM891.map IBM903.map IBM904.map IBM905.map IBM918.map \ | ||
| 73 | IBM1004.map IBM1026.map IBM1047.map | ||
| 74 | |||
| 75 | CODEPAGE = \ | ||
| 76 | CP737.map CP775.map CP1125.map\ | ||
| 77 | CP1250.map CP1251.map CP1252.map CP1253.map CP1254.map \ | ||
| 78 | CP1255.map CP1256.map CP1257.map CP1258.map \ | ||
| 79 | CP10007.map \ | ||
| 80 | CP720.map CP858.map | ||
| 81 | |||
| 82 | CJK = GB2312.map GBK.map GB180302.map GB180304.map \ | ||
| 83 | BIG5.map BIG5-HKSCS.map\ | ||
| 84 | CNS-1.map CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \ | ||
| 85 | CNS-F.map \ | ||
| 86 | JISX0201.map JISX0208.map JISX0212.map JISX2131.map JISX2132.map \ | ||
| 87 | JISC6226.map CP932-2BYTE.map JISX213A.map\ | ||
| 88 | KSC5601.map KSC5636.map JOHAB.map | ||
| 89 | |||
| 90 | MISC = KOI-8.map KOI8-R.map KOI8-U.map KOI8-T.map ALTERNATIVNYJ.map \ | ||
| 91 | MIK.map PTCP154.map \ | ||
| 92 | TIS-620.map VISCII.map VSCII.map VSCII-2.map\ | ||
| 93 | KA-PS.map KA-ACADEMY.map \ | ||
| 94 | HP-ROMAN8.map NEXTSTEP.map MACINTOSH.map EBCDICUK.map EBCDICUS.map \ | ||
| 95 | stdenc.map symbol.map \ | ||
| 96 | CP949-2BYTE.map \ | ||
| 97 | BIG5-1.map BIG5-2.map | ||
| 98 | |||
| 99 | # Emacs-mule charsets. | ||
| 100 | MULE = MULE-ethiopic.map MULE-ipa.map MULE-is13194.map \ | ||
| 101 | MULE-sisheng.map MULE-tibetan.map \ | ||
| 102 | MULE-lviscii.map MULE-uviscii.map | ||
| 103 | |||
| 104 | SED_SCRIPT = jisx2131-filter | ||
| 105 | |||
| 106 | TRANS_TABLE = cp51932.el eucjp-ms.el | ||
| 107 | TRANS_TABLE := $(addprefix ${lispintdir}/,${TRANS_TABLE}) | ||
| 108 | |||
| 109 | CHARSETS = ${ISO8859} ${IBM} ${CODEPAGE} ${CJK} ${MISC} ${MULE} | ||
| 110 | CHARSETS := $(addprefix ${charsetdir}/,${CHARSETS}) | ||
| 111 | |||
| 112 | ## Those charsets whose source is not in GLIBC_CHARMAPS. | ||
| 113 | LOCAL = MIK.map PTCP154.map stdenc.map symbol.map CP720.map CP858.map \ | ||
| 114 | JISX213A.map CP932-2BYTE.map JISC6226.map \ | ||
| 115 | CNS-2.map CNS-3.map CNS-4.map CNS-5.map CNS-6.map CNS-7.map \ | ||
| 116 | ALTERNATIVNYJ.map GB180304.map \ | ||
| 117 | ${MULE} | ||
| 118 | LOCAL := $(addprefix ${charsetdir}/,${LOCAL}) | ||
| 119 | |||
| 120 | |||
| 121 | .PHONY: all local | ||
| 122 | |||
| 123 | all: ${CHARSETS} ${TRANS_TABLE} | ||
| 124 | local: ${LOCAL} ${TRANS_TABLE} | ||
| 125 | |||
| 126 | ## Rules for each charset. | ||
| 127 | |||
| 128 | mapconv = ${srcdir}/mapconv | ||
| 129 | run_mapconv = AWK=${AWK} ${srcdir}/mapconv | ||
| 130 | big5 = ${srcdir}/big5.awk | ||
| 131 | compact = ${srcdir}/compact.awk | ||
| 132 | cp51932 = ${srcdir}/cp51932.awk | ||
| 133 | cp932 = ${srcdir}/cp932.awk | ||
| 134 | eucjp_ms = ${srcdir}/eucjp-ms.awk | ||
| 135 | gb180302 = ${srcdir}/gb180302.awk | ||
| 136 | gb180304 = ${srcdir}/gb180304.awk | ||
| 137 | kuten = ${srcdir}/kuten.awk | ||
| 138 | |||
| 139 | ## Short aliases, eg VSCII.map = ${charsetdir}/VSCII.map | ||
| 140 | define map_template | ||
| 141 | .PHONY: $(notdir ${1}) | ||
| 142 | $(notdir ${1}): ${1} | ||
| 143 | endef | ||
| 144 | |||
| 145 | $(foreach mfile,${CHARSETS},$(eval $(call map_template,$(mfile)))) | ||
| 146 | |||
| 147 | ${charsetdir}/VSCII.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact} | ||
| 148 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[0-9a-f].[ ]/' GLIBC-1 ${compact} > $@ | ||
| 149 | |||
| 150 | ${charsetdir}/VSCII-2.map: ${GLIBC_CHARMAPS}/TCVN5712-1.gz ${mapconv} ${compact} | ||
| 151 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[2-7a-f].[ ]/' GLIBC-1 ${compact} \ | ||
| 152 | | sed 's/0x20-0x7F.*/0x00-0x7F 0x0000/' > $@ | ||
| 153 | |||
| 154 | ${charsetdir}/ALTERNATIVNYJ.map: ${charsetdir}/IBM866.map | ||
| 155 | ${AM_V_GEN}(echo "# Modified from $(notdir $<) according to the chart at" && \ | ||
| 156 | echo "# http://www.cyrillic.com/ref/cyrillic/koi-8alt.html," && \ | ||
| 157 | echo "# with guesses for the Unicodes of the glyphs." && \ | ||
| 158 | sed -e '1 d' \ | ||
| 159 | -e '/0xF2/ s/ .*/ 0x2019/' \ | ||
| 160 | -e '/0xF3/ s/ .*/ 0x2018/' \ | ||
| 161 | -e '/0xF4/ s/ .*/ 0x0301/' \ | ||
| 162 | -e '/0xF5/ s/ .*/ 0x0300/' \ | ||
| 163 | -e '/0xF6/ s/ .*/ 0x203A/' \ | ||
| 164 | -e '/0xF7/ s/ .*/ 0x2039/' \ | ||
| 165 | -e '/0xF8/ s/ .*/ 0x2191/' \ | ||
| 166 | -e '/0xF9/ s/ .*/ 0x2193/' \ | ||
| 167 | -e '/0xFA/ s/ .*/ 0x00B1/' \ | ||
| 168 | -e '/0xFB/ s/ .*/ 0x00F7/' < $< ) > $@ | ||
| 169 | |||
| 170 | ${charsetdir}/MIK.map: ${mapfiledir}/bulgarian-mik.txt ${mapconv} ${compact} | ||
| 171 | ${AM_V_GEN}${run_mapconv} $< '1,$$' CZYBORRA ${compact} > $@ | ||
| 172 | |||
| 173 | ${charsetdir}/PTCP154.map: ${mapfiledir}/PTCP154 ${mapconv} ${compact} | ||
| 174 | ${AM_V_GEN}${run_mapconv} $< '/^0x/' IANA ${compact} > $@ | ||
| 175 | |||
| 176 | ${charsetdir}/stdenc.map: ${mapfiledir}/stdenc.txt ${mapconv} ${compact} | ||
| 177 | ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@ | ||
| 178 | |||
| 179 | ${charsetdir}/symbol.map: ${mapfiledir}/symbol.txt ${mapconv} ${compact} | ||
| 180 | ${AM_V_GEN}${run_mapconv} $< '/^[0-9A-Fa-f]/' UNICODE ${compact} > $@ | ||
| 181 | |||
| 182 | ${charsetdir}/CP720.map: ${mapfiledir}/CP720.map | ||
| 183 | ${AM_V_GEN}cp $< $@ | ||
| 184 | |||
| 185 | ${charsetdir}/CP858.map: ${mapfiledir}/CP858.map | ||
| 186 | ${AM_V_GEN}cp $< $@ | ||
| 187 | |||
| 188 | ${charsetdir}/CP949-2BYTE.map: ${GLIBC_CHARMAPS}/CP949.gz ${mapconv} ${compact} | ||
| 189 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@ | ||
| 190 | |||
| 191 | ${charsetdir}/GB2312.map: ${GLIBC_CHARMAPS}/GB2312.gz ${mapconv} ${compact} | ||
| 192 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@ | ||
| 193 | |||
| 194 | ${charsetdir}/GBK.map: ${GLIBC_CHARMAPS}/GBK.gz ${mapconv} ${compact} | ||
| 195 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@ | ||
| 196 | |||
| 197 | ${charsetdir}/GB180302.map: ${GLIBC_CHARMAPS}/GB18030.gz ${mapconv} ${gb180302} | ||
| 198 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x..\/x..[ ]/' GLIBC-2 ${gb180302} > $@ | ||
| 199 | |||
| 200 | ${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304} | ||
| 201 | ${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@ | ||
| 202 | |||
| 203 | ${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact} | ||
| 204 | ${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \ | ||
| 205 | echo "# Generated by hand" && \ | ||
| 206 | echo "0xA1-0xDF 0xFF61" ) > $@ | ||
| 207 | |||
| 208 | ${charsetdir}/JISX0208.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv} | ||
| 209 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ | ||
| 210 | | sed 's/0x2015/0x2014/' > $@ | ||
| 211 | |||
| 212 | ${charsetdir}/JISX0212.map: ${GLIBC_CHARMAPS}/EUC-JP.gz ${mapconv} ${compact} | ||
| 213 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 ${compact} > $@ | ||
| 214 | |||
| 215 | jisx2131-filter: ${mapfiledir}/JISX213A.map | ||
| 216 | ${AM_V_at}sed -n -e '/^#/d' -e 's,.*0x\([0-9A-Z]*\)$$,/0x0*\1$$/d,p' < $< > $@ | ||
| 217 | |||
| 218 | ${charsetdir}/JISX2131.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv} jisx2131-filter | ||
| 219 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 \ | ||
| 220 | | sed -f jisx2131-filter \ | ||
| 221 | | sed -e 's/0x2015/0x2014/' -e 's/0x2299/0x29BF/' > $@ | ||
| 222 | |||
| 223 | ${charsetdir}/JISX2132.map: ${GLIBC_CHARMAPS}/EUC-JISX0213.gz ${mapconv} | ||
| 224 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x8f/ s,/x8f,,' GLIBC-2-7 > $@ | ||
| 225 | |||
| 226 | ${charsetdir}/JISX213A.map: ${mapfiledir}/JISX213A.map | ||
| 227 | ${AM_V_GEN}cp $< $@ | ||
| 228 | |||
| 229 | ${charsetdir}/CP932-2BYTE.map: ${mapfiledir}/CP932.TXT ${mapconv} ${cp932} | ||
| 230 | ${AM_V_GEN}${run_mapconv} $< '/^0x[89A-F][0-9A-F][0-9A-F]/' UNICODE2 ${cp932} > $@ | ||
| 231 | |||
| 232 | ${lispintdir}/cp51932.el: ${charsetdir}/CP932-2BYTE.map ${cp51932} | ||
| 233 | ${AM_V_GEN}$(AWK) -f ${cp51932} < $< > $@ | ||
| 234 | |||
| 235 | ${lispintdir}/eucjp-ms.el: ${GLIBC_CHARMAPS}/EUC-JP-MS.gz ${eucjp_ms} | ||
| 236 | ${AM_V_GEN}gunzip -c $< | $(AWK) -f ${eucjp_ms} > $@ | ||
| 237 | |||
| 238 | # As Uni2JIS doesn't contain mappings of characters added to Unicode | ||
| 239 | # recently, we add them manually here (including one correction for | ||
| 240 | # U+005C vs U+FF3C). These changes are based on bogytech's blog at | ||
| 241 | # http://bogytech.blogspot.jp/search/label/emacs. | ||
| 242 | ${charsetdir}/JISC6226.map: ${mapfiledir}/Uni2JIS ${mapconv} ${kuten} | ||
| 243 | ${AM_V_GEN}(${run_mapconv} $< '/^[^#].*0-/' YASUOKA ${kuten} \ | ||
| 244 | | sed -e '/0x2140/s/005C/FF3C/' && \ | ||
| 245 | echo '0x3442 0x3D4E' && echo '0x374E 0x25874' && \ | ||
| 246 | echo '0x3764 0x28EF6' && echo '0x513D 0x2F80F' && \ | ||
| 247 | echo '0x7045 0x9724' ) > $@ | ||
| 248 | |||
| 249 | ${charsetdir}/KSC5601.map: ${GLIBC_CHARMAPS}/EUC-KR.gz ${mapconv} ${compact} | ||
| 250 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@ | ||
| 251 | |||
| 252 | ${charsetdir}/BIG5.map: ${GLIBC_CHARMAPS}/BIG5.gz ${mapconv} ${compact} | ||
| 253 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2 > $@ | ||
| 254 | |||
| 255 | ${charsetdir}/BIG5-1.map: ${charsetdir}/BIG5.map ${mapconv} ${big5} | ||
| 256 | ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \ | ||
| 257 | sed -n -e '/0xa140/,/0xc8fe/p' < $< | $(AWK) -f ${big5} ) > $@ | ||
| 258 | |||
| 259 | ${charsetdir}/BIG5-2.map: ${charsetdir}/BIG5.map ${mapconv} ${big5} | ||
| 260 | ${AM_V_GEN}(echo "# Generated from $(notdir $<)" && \ | ||
| 261 | sed -n -e '/0xc940/,$$ p' < $< | $(AWK) -f ${big5} ) > $@ | ||
| 262 | |||
| 263 | ${charsetdir}/BIG5-HKSCS.map: ${GLIBC_CHARMAPS}/BIG5-HKSCS.gz ${mapconv} ${compact} | ||
| 264 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f].\//' GLIBC-2 ${compact} > $@ | ||
| 265 | |||
| 266 | ${charsetdir}/JOHAB.map: ${GLIBC_CHARMAPS}/JOHAB.gz ${mapconv} ${compact} | ||
| 267 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[89a-f]/' GLIBC-2 ${compact} > $@ | ||
| 268 | |||
| 269 | ${charsetdir}/CNS-1.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact} | ||
| 270 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x[a-f]/' GLIBC-2-7 ${compact} > $@ | ||
| 271 | |||
| 272 | # ${charsetdir}/CNS-1.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 273 | # ${AM_V_GEN}${run_mapconv} $< '/^C1/' KANJI-DATABASE ${compact} > $@ | ||
| 274 | |||
| 275 | ${charsetdir}/CNS-2.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 276 | ${AM_V_GEN}${run_mapconv} $< '/^C2/' KANJI-DATABASE ${compact} > $@ | ||
| 277 | |||
| 278 | ${charsetdir}/CNS-3.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 279 | ${AM_V_GEN}${run_mapconv} $< '/^C3/' KANJI-DATABASE ${compact} > $@ | ||
| 280 | |||
| 281 | ${charsetdir}/CNS-4.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 282 | ${AM_V_GEN}${run_mapconv} $< '/^C4/' KANJI-DATABASE ${compact} > $@ | ||
| 283 | |||
| 284 | ${charsetdir}/CNS-5.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 285 | ${AM_V_GEN}${run_mapconv} $< '/^C5/' KANJI-DATABASE ${compact} > $@ | ||
| 286 | |||
| 287 | ${charsetdir}/CNS-6.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 288 | ${AM_V_GEN}${run_mapconv} $< '/^C6/' KANJI-DATABASE ${compact} > $@ | ||
| 289 | |||
| 290 | ${charsetdir}/CNS-7.map: ${mapfiledir}/cns2ucsdkw.txt ${mapconv} ${compact} | ||
| 291 | ${AM_V_GEN}${run_mapconv} $< '/^C7/' KANJI-DATABASE ${compact} > $@ | ||
| 292 | |||
| 293 | ${charsetdir}/CNS-F.map: ${GLIBC_CHARMAPS}/EUC-TW.gz ${mapconv} ${compact} | ||
| 294 | ${AM_V_GEN}${run_mapconv} $< '/^<.*\/x8e\/xaf/ s,/x8e/xaf,,' GLIBC-2-7 ${compact} > $@ | ||
| 295 | |||
| 296 | # General target to produce map files for mule charsets. | ||
| 297 | ${charsetdir}/MULE-%.map: ${mapfiledir}/MULE-%.map | ||
| 298 | ${AM_V_GEN}cp $< $@ | ||
| 299 | |||
| 300 | # General target to produce map files for ISO-8859, GEORGIAN, and | ||
| 301 | # EBCDIC charsets. We can not use the original file name because of | ||
| 302 | # file name limit on DOS. "KA" is ISO 639 language code for Georgian. | ||
| 303 | |||
| 304 | ${charsetdir}/8859-%.map: ${GLIBC_CHARMAPS}/ISO-8859-%.gz ${mapconv} ${compact} | ||
| 305 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@ | ||
| 306 | |||
| 307 | ${charsetdir}/KA-%.map: ${GLIBC_CHARMAPS}/GEORGIAN-%.gz ${mapconv} ${compact} | ||
| 308 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@ | ||
| 309 | |||
| 310 | ${charsetdir}/EBCDIC%.map: ${GLIBC_CHARMAPS}/EBCDIC-%.gz ${mapconv} ${compact} | ||
| 311 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@ | ||
| 312 | |||
| 313 | # General target to produce map files for single-byte charsets. | ||
| 314 | |||
| 315 | ${charsetdir}/%.map: ${GLIBC_CHARMAPS}/%.gz ${mapconv} ${compact} | ||
| 316 | ${AM_V_GEN}${run_mapconv} $< '/^<.*[ ]\/x/' GLIBC-1 ${compact} > $@ | ||
| 317 | |||
| 318 | |||
| 319 | .PHONY: clean bootstrap-clean distclean maintainer-clean extraclean totalclean | ||
| 320 | |||
| 321 | clean: | ||
| 322 | rm -f ${SED_SCRIPT} | ||
| 323 | |||
| 324 | bootstrap-clean: clean | ||
| 325 | |||
| 326 | distclean: clean | ||
| 327 | rm -f Makefile | ||
| 328 | |||
| 329 | maintainer-clean: distclean | ||
| 330 | |||
| 331 | ## Do not remove these files, even in a bootstrap. They rarely change. | ||
| 332 | extraclean: | ||
| 333 | rm -f ${LOCAL} ${TRANS_TABLE} | ||
| 334 | |||
| 335 | totalclean: extraclean | ||
| 336 | rm -f ${CHARSETS} | ||
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv index 8433d222b8d..6fd13c61c4a 100755 --- a/admin/charsets/mapconv +++ b/admin/charsets/mapconv | |||
| @@ -1,5 +1,7 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | 2 | ||
| 3 | # Copyright (C) 2015 Free Software Foundation, Inc. | ||
| 4 | |||
| 3 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | 5 | # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
| 4 | # National Institute of Advanced Industrial Science and Technology (AIST) | 6 | # National Institute of Advanced Industrial Science and Technology (AIST) |
| 5 | # Registration Number H13PRO009 | 7 | # Registration Number H13PRO009 |
| @@ -33,8 +35,10 @@ | |||
| 33 | # GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE UNICODE2 YASUOKA | 35 | # GLIBC-1 GLIBC-2 GLIBC-2-7 CZYBORRA IANA UNICODE UNICODE2 YASUOKA |
| 34 | # $4: awk script | 36 | # $4: awk script |
| 35 | 37 | ||
| 36 | FILE="admin/charsets/$1" | 38 | BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename |
| 37 | BASE=`basename $1 .gz` | 39 | FILE="admin/charsets/mapfiles/$BASE" |
| 40 | BASE=`expr "$BASE" : '\(.*\)\.gz$' '|' "$BASE"` # remove any .gz suffix | ||
| 41 | AWK=${AWK:-awk} | ||
| 38 | 42 | ||
| 39 | case "$3" in | 43 | case "$3" in |
| 40 | GLIBC*) | 44 | GLIBC*) |
| @@ -69,7 +73,7 @@ fi | |||
| 69 | 73 | ||
| 70 | if [ -n "$4" ] ; then | 74 | if [ -n "$4" ] ; then |
| 71 | if [ -f "$4" ] ; then | 75 | if [ -f "$4" ] ; then |
| 72 | AWKPROG="gawk -f $4" | 76 | AWKPROG="$AWK -f $4" |
| 73 | else | 77 | else |
| 74 | echo "Awk program does not exist: $4" | 78 | echo "Awk program does not exist: $4" |
| 75 | exit 1 | 79 | exit 1 |
| @@ -81,20 +85,20 @@ fi | |||
| 81 | if [ "$3" = "GLIBC-1" ] ; then | 85 | if [ "$3" = "GLIBC-1" ] ; then |
| 82 | # Source format is: | 86 | # Source format is: |
| 83 | # <UYYYY> /xXX | 87 | # <UYYYY> /xXX |
| 84 | zcat $1 | sed -n -e "$2 p" \ | 88 | gunzip -c $1 | sed -n -e "${2}p" \ |
| 85 | | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \ | 89 | | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\).*,0x\2 0x\1,' \ |
| 86 | | sort | ${AWKPROG} | 90 | | sort | ${AWKPROG} |
| 87 | elif [ "$3" = "GLIBC-2" ] ; then | 91 | elif [ "$3" = "GLIBC-2" ] ; then |
| 88 | # Source format is: | 92 | # Source format is: |
| 89 | # <UYYYY> /xXX/xZZ | 93 | # <UYYYY> /xXX/xZZ |
| 90 | zcat $1 | sed -n -e "$2 p" \ | 94 | gunzip -c $1 | sed -n -e "${2}p" \ |
| 91 | | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ | 95 | | sed -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ |
| 92 | | sort | ${AWKPROG} | 96 | | sort | ${AWKPROG} |
| 93 | elif [ "$3" = "GLIBC-2-7" ] ; then | 97 | elif [ "$3" = "GLIBC-2-7" ] ; then |
| 94 | # Source format is: | 98 | # Source format is: |
| 95 | # <UYYYY> /xXX/xZZ | 99 | # <UYYYY> /xXX/xZZ |
| 96 | # We must drop MSBs of XX and ZZ | 100 | # We must drop MSBs of XX and ZZ |
| 97 | zcat $1 | sed -n -e "$2 p" \ | 101 | gunzip -c $1 | sed -n -e "${2}p" \ |
| 98 | | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \ | 102 | | sed -e 's/xa/x2/g' -e 's/xb/x3/g' -e 's/xc/x4/g' \ |
| 99 | -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \ | 103 | -e 's/xd/x5/g' -e 's/xe/x6/g' -e 's/xf/x7/g' \ |
| 100 | -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ | 104 | -e 's,<U\([^>]*\)>[ ]*/x\(..\)/x\(..\).*,0x\2\3 0x\1,' \ |
| @@ -102,13 +106,13 @@ elif [ "$3" = "GLIBC-2-7" ] ; then | |||
| 102 | elif [ "$3" = "CZYBORRA" ] ; then | 106 | elif [ "$3" = "CZYBORRA" ] ; then |
| 103 | # Source format is: | 107 | # Source format is: |
| 104 | # =XX U+YYYY | 108 | # =XX U+YYYY |
| 105 | sed -n -e "$2 p" < $1 \ | 109 | sed -n -e "${2}p" < $1 \ |
| 106 | | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | 110 | | sed -e 's/=\(..\)[^U]*U+\([0-9A-F]*\).*/0x\1 0x\2/' \ |
| 107 | | sort | ${AWKPROG} | 111 | | sort | ${AWKPROG} |
| 108 | elif [ "$3" = "IANA" ] ; then | 112 | elif [ "$3" = "IANA" ] ; then |
| 109 | # Source format is: | 113 | # Source format is: |
| 110 | # 0xXX 0xYYYY | 114 | # 0xXX 0xYYYY |
| 111 | sed -n -e "$2 p" < $1 \ | 115 | sed -n -e "${2}p" < $1 \ |
| 112 | | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \ | 116 | | sed -e 's/\(0x[0-9A-Fa-f]*\)[^0]*\(0x[0-9A-Fa-f]*\).*/\1 \2/' \ |
| 113 | | sort | ${AWKPROG} | 117 | | sort | ${AWKPROG} |
| 114 | elif [ "$3" = "UNICODE" ] ; then | 118 | elif [ "$3" = "UNICODE" ] ; then |
| @@ -116,25 +120,25 @@ elif [ "$3" = "UNICODE" ] ; then | |||
| 116 | # YYYY XX | 120 | # YYYY XX |
| 117 | # We perform reverse sort to prefer the first one in the | 121 | # We perform reverse sort to prefer the first one in the |
| 118 | # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0). | 122 | # duplicated mappings (e.g. 0x20->U+0020, 0x20->U+00A0). |
| 119 | sed -n -e "$2 p" < $1 \ | 123 | sed -n -e "${2}p" < $1 \ |
| 120 | | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \ | 124 | | sed -e 's/\([0-9A-F]*\)[^0-9A-F]*\([0-9A-F]*\).*/0x\2 0x\1/' \ |
| 121 | | sort -r | 125 | | sort -r |
| 122 | elif [ "$3" = "UNICODE2" ] ; then | 126 | elif [ "$3" = "UNICODE2" ] ; then |
| 123 | # Source format is: | 127 | # Source format is: |
| 124 | # 0xXXXX 0xYYYY # ... | 128 | # 0xXXXX 0xYYYY # ... |
| 125 | sed -n -e "$2 p" < $1 \ | 129 | sed -n -e "${2}p" < $1 \ |
| 126 | | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \ | 130 | | sed -e 's/\([0-9A-Fx]*\)[^0]*\([0-9A-Fx]*\).*/\1 \2/' \ |
| 127 | | ${AWKPROG} | sort -n -k 4,4 | 131 | | ${AWKPROG} | sort -n -k 4,4 |
| 128 | elif [ "$3" = "YASUOKA" ] ; then | 132 | elif [ "$3" = "YASUOKA" ] ; then |
| 129 | # Source format is: | 133 | # Source format is: |
| 130 | # YYYY 0-XXXX (XXXX is a Kuten code) | 134 | # YYYY 0-XXXX (XXXX is a Kuten code) |
| 131 | sed -n -e "$2 p" < $1 \ | 135 | sed -n -e "${2}p" < $1 \ |
| 132 | | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \ | 136 | | sed -e 's/\([0-9A-F]*\)[^0]*0-\([0-9]*\).*/0x\2 0x\1/' \ |
| 133 | | sort | ${AWKPROG} | 137 | | sort | ${AWKPROG} |
| 134 | elif [ "$3" = "KANJI-DATABASE" ] ; then | 138 | elif [ "$3" = "KANJI-DATABASE" ] ; then |
| 135 | # Source format is: | 139 | # Source format is: |
| 136 | # C?-XXXX U+YYYYY ..... | 140 | # C?-XXXX U+YYYYY ..... |
| 137 | sed -n -e "$2 p" < $1 \ | 141 | sed -n -e "${2}p" < $1 \ |
| 138 | | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | 142 | | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ |
| 139 | | sort | ${AWKPROG} | 143 | | sort | ${AWKPROG} |
| 140 | else | 144 | else |
diff --git a/admin/charsets/mapfiles/PTCP154 b/admin/charsets/mapfiles/PTCP154 index 1d76058db84..ab493e577dd 100644 --- a/admin/charsets/mapfiles/PTCP154 +++ b/admin/charsets/mapfiles/PTCP154 | |||
| @@ -288,4 +288,4 @@ e-mail: auskov&idc.kz | |||
| 288 | Intended usage: | 288 | Intended usage: |
| 289 | COMMON | 289 | COMMON |
| 290 | 290 | ||
| 291 | (record created 2002-09-27) \ No newline at end of file | 291 | (record created 2002-09-27) |
diff --git a/configure.ac b/configure.ac index 1cddeb1e45f..752204c3a8c 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -5247,7 +5247,8 @@ fi | |||
| 5247 | 5247 | ||
| 5248 | dnl The admin/ directory used to be excluded from tarfiles. | 5248 | dnl The admin/ directory used to be excluded from tarfiles. |
| 5249 | if test -d $srcdir/admin; then | 5249 | if test -d $srcdir/admin; then |
| 5250 | SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/unidata/Makefile admin/grammars/Makefile" | 5250 | SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/charsets/Makefile admin/unidata/Makefile admin/grammars/Makefile" |
| 5251 | AC_CONFIG_FILES([admin/charsets/Makefile]) | ||
| 5251 | AC_CONFIG_FILES([admin/unidata/Makefile]) | 5252 | AC_CONFIG_FILES([admin/unidata/Makefile]) |
| 5252 | AC_CONFIG_FILES([admin/grammars/Makefile]) | 5253 | AC_CONFIG_FILES([admin/grammars/Makefile]) |
| 5253 | fi dnl -d admin | 5254 | fi dnl -d admin |