
1: # Copyright (C) 1991,1992,1995-2003,2005 Free Software Foundation, Inc. 2: # This file is part of the GNU C Library. 3: 4: # The GNU C Library is free software; you can redistribute it and/or 5: # modify it under the terms of the GNU Lesser General Public 6: # License as published by the Free Software Foundation; either 7: # version 2.1 of the License, or (at your option) any later version. 8: 9: # The GNU C Library 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 GNU 12: # Lesser General Public License for more details. 13: 14: # You should have received a copy of the GNU Lesser General Public 15: # License along with the GNU C Library; if not, write to the Free 16: # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17: # 02111-1307 USA. 18: 19: # 20: # Makefile for locales. 21: # 22: subdir := locale 23: 24: headers = locale.h bits/locale.h langinfo.h xlocale.h 25: distribute = localeinfo.h categories.def iso-639.def iso-3166.def \ 26: iso-4217.def weight.h weightwc.h strlen-hash.h elem-hash.h \ 27: indigits.h indigitswc.h outdigits.h outdigitswc.h \ 28: coll-lookup.h C-translit.h.in C-translit.h gen-translit.pl \ 29: locarchive.h hashval.h \ 30: $(addprefix programs/, \ 31: locale.c localedef.c \ 32: $(localedef-modules:=.c) $(locale-modules:=.c) \ 33: $(lib-modules:=.c) config.h simple-hash.h \ 34: charmap-kw.gperf charmap-kw.h locfile-token.h \ 35: locfile-kw.gperf locfile-kw.h linereader.h \ 36: locfile.h charmap.h repertoire.h localedef.h \ 37: 3level.h charmap-dir.h locarchive.c) 38: routines = setlocale findlocale loadlocale loadarchive \ 39: localeconv nl_langinfo nl_langinfo_l mb_cur_max \ 40: newlocale duplocale freelocale uselocale 41: tests = tst-C-locale 42: categories = ctype messages monetary numeric time paper name \ 43: address telephone measurement identification collate 44: aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \ 45: xlocale localename global-locale coll-lookup 46: others = localedef locale 47: #others-static = localedef locale 48: install-bin = localedef locale 49: extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \ 50: $(locale-modules:=.o) $(lib-modules:=.o) 51: 52: extra-libs = libBrokenLocale 53: extra-libs-others = $(extra-libs) 54: 55: libBrokenLocale-routines = broken_cur_max 56: 57: subdir-dirs = programs 58: vpath %.c programs ../crypt 59: vpath %.h programs 60: vpath %.gperf programs 61: 62: localedef-modules := $(categories:%=ld-%) charmap linereader locfile \ 63: repertoire locarchive 64: localedef-aux := md5 65: locale-modules := locale-spec 66: lib-modules := charmap-dir simple-hash xmalloc xstrdup 67: 68: 69: GPERF = gperf 70: GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C 71: 72: include ../Rules 73: 74: programs/%-kw.h: programs/%-kw.gperf 75: cd programs \ 76: && $(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $(<F) > $(@F).new 77: mv -f $@.new $@ 78: 79: $(objpfx)localedef: $(localedef-modules:%=$(objpfx)%.o) 80: $(objpfx)localedef: $(localedef-aux:%=$(objpfx)%.o) 81: $(objpfx)locale: $(locale-modules:%=$(objpfx)%.o) 82: $(objpfx)localedef $(objpfx)locale: $(lib-modules:%=$(objpfx)%.o) 83: 84: C-translit.h: C-translit.h.in gen-translit.pl 85: $(PERL) gen-translit.pl < $< > $@.tmp 86: mv -f $@.tmp $@ 87: ifeq ($(with-cvs),yes) 88: test ! -d CVS || cvs $(CVSOPTS) commit -mRegenerated $@ 89: endif 90: 91: localepath = "$(localedir):$(i18ndir)" 92: 93: locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ 94: -DLOCALEDIR='"$(localedir)"' \ 95: -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ 96: -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ 97: -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ 98: -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ 99: -Iprograms 100: 101: CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts 102: CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts 103: CFLAGS-charmap-dir.c = -Wno-write-strings 104: 105: # This makes sure -DNOT_IN_libc is passed for all these modules. 106: cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ 107: $(locale-modules) $(lib-modules)) 108: lib := nonlib 109: include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) 110: 111: # Depend on libc.so so a DT_NEEDED is generated in the shared objects. 112: # This ensures they will load libc.so for needed symbols if loaded by 113: # a statically-linked program that hasn't already loaded it. 114: $(objpfx)libBrokenLocale.so: $(common-objpfx)libc.so \ 115: $(common-objpfx)libc_nonshared.a