OSDN Git Service

983c91c303819b81ba8397b65a34e637244efceb
[uclinux-h8/uClibc.git] / extra / locale / Makefile
1
2 TOPDIR = ../../
3 EXTRA_LOCALE_DIR:=${shell cd $(TOPDIR)/extra/locale && pwd}
4 include $(TOPDIR)Rules.mak
5
6 CFLAGS_wc8bit=-DCTYPE_PACKED=1
7 CFLAGS_mmap=
8 ifeq ($(strip $(UCLIBC_HAS_WCHAR)),y)
9     CFLAGS_wc8bit += -DDO_WIDE_CHAR=1
10     CFLAGS_mmap += -D__WCHAR_ENABLED=1
11 endif
12
13 all: links-target
14
15 codesets.txt:
16         @if [ ! -f codesets.txt ] ; then \
17             set -e; \
18             echo " "; \
19             echo "You do not have a codesets.txt file.  Please create this "; \
20             echo "file in the extra/locale directory by running something like: "; \
21             echo -e "  find $(EXTRA_LOCALE_DIR)/charmaps -name \"*.pairs\" > \\"; \
22             echo -e "        $(EXTRA_LOCALE_DIR)/codesets.txt"; \
23             echo "and then edit that file to disable/enable the codesets you wish to support. "; \
24             echo " "; \
25             false; \
26         fi;
27
28 gen_wc8bit: gen_wc8bit.c
29         $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $(CFLAGS_wc8bit) $^ -o $@
30
31 c8tables.h: gen_wc8bit codesets.txt
32         ./gen_wc8bit `cat codesets.txt`
33
34 gen_wctype: gen_wctype.c
35         $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $^ -o $@
36
37 # Warning! Beware tr_TR toupper/tolower exceptions!
38 wctables.h: gen_wctype
39         ./gen_wctype en_US
40
41 gen_locale: gen_locale.c c8tables.h
42         $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) gen_locale.c -o $@
43
44 # TODO: if no wide char support, we should auto-disable all UTF-8 locales
45 locale_tables.h: gen_locale locales.txt
46         ./gen_locale locales.txt
47
48 lt_defines.h: locale_tables.h locale_collate.h
49         grep "^#define" locale_tables.h > lt_defines.h
50         grep "^#define __lc" locale_collate.h >> lt_defines.h
51
52 gen_collate: gen_collate.c
53         $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) gen_collate.c -o $@
54
55 locale_collate.h: gen_collate locale_tables.h
56         grep COL_IDX_ locale_tables.h | sed -e "s/^.*COL_IDX_\([^, ]*\).*$$/\1/" | sort | uniq | xargs ./gen_collate
57
58 locales.txt:
59         @if [ ! -f locales.txt ] ; then \
60             set -e; \
61             echo " "; \
62             echo "You do not have a locales.txt file in the extra/locale "; \
63             echo "directory, Please copy the LOCALES file to locales.txt by "; \
64             echo "running something like: "; \
65             echo "  cp $(EXTRA_LOCALE_DIR)/LOCALES \\ "; \
66             echo "      $(EXTRA_LOCALE_DIR)/locales.txt "; \
67             echo "then edit locales.txt to disable/enable the locales you wish "; \
68             echo "to support. "; \
69             echo " "; \
70             false; \
71         fi;
72
73 # ifneq ($(TARGET_ARCH),$(HOST_ARCH))
74
75 # locale.mmap: gen_mmap
76 #       echo Your locale.mmap file is either missing or out of date.
77 #       echo The developmental code can only generate one for the
78 #       echo target arch == native arch case.  Sorry.
79 # else
80
81 # gen_mmap: gen_mmap.c c8tables.h wctables.h locale_tables.h
82 #       gcc $(CFLAGS_mmap) -Os -Wall -static gen_mmap.c -o gen_mmap
83
84 # locale.mmap: gen_mmap
85 #       ./gen_mmap
86
87 # endif
88
89 # lmmtolso: lmmtolso.c
90 #       gcc -Os -Wall lmmtolso.c -o lmmtolso
91
92 # locale_data.c: lmmtolso locale.mmap
93 #       ./lmmtolso
94
95 gen_ldc: gen_ldc.c c8tables.h wctables.h locale_tables.h locale_collate.h
96         $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $(CFLAGS_mmap) gen_ldc.c -o $@
97 #gen_ldc.c -o gen_ldc
98
99 locale_data.c: gen_ldc
100         ./gen_ldc
101
102 locale_data.o: locale_data.c lt_defines.h
103         $(CC) $(CFLAGS_mmap) -c locale_data.c
104         $(STRIPTOOL) -x -R .note -R .comment locale_data.o
105
106 uClibc_locale_data.h: c8tables.h wctables.h lt_defines.h locale_mmap.h
107         grep -v "define __LC" lt_defines.h > uClibc_locale_data.h
108         cat c8tables.h wctables.h locale_mmap.h >> uClibc_locale_data.h
109
110 links-target: locale_data.o uClibc_locale_data.h
111         ln -sf ../../../extra/locale/locale_data.o ../../libc/misc/locale
112         cp uClibc_locale_data.h ../../libc/sysdeps/linux/common/bits/
113
114 pregen:
115         $(CC) $(CFLAGS_mmap) -c locale_data.c
116         $(STRIPTOOL) -x -R .note -R .comment locale_data.o
117         ln -sf ../../../extra/locale/locale_data.o ../../libc/misc/locale
118         cp uClibc_locale_data.h ../../libc/sysdeps/linux/common/bits/
119
120 clean:
121         rm -f *.[oa] *~ core
122         rm -f gen_wc8bit gen_wctype gen_locale gen_ldc gen_collate
123         rm -f c8tables.h wctables.h locale_tables.h lt_defines.h locale_collate.h
124         rm -f gen_mmap locale.mmap lmmtolso
125         rm -f locale_data.c locale_data.o  uClibc_locale_data.h
126