]>
Commit | Line | Data |
---|---|---|
dff8da6b | 1 | # Copyright (C) 1997-2024 Free Software Foundation, Inc. |
6973fc01 UD |
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 | |
41bdb6e2 AJ |
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. | |
6973fc01 UD |
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 | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
6973fc01 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 | 15 | # License along with the GNU C Library; if not, see |
5a82c748 | 16 | # <https://www.gnu.org/licenses/>. |
6973fc01 UD |
17 | |
18 | # | |
19 | # Makefile for iconv. | |
20 | # | |
21 | subdir := iconv | |
22 | ||
8619129f UD |
23 | include ../Makeconfig |
24 | ||
6973fc01 UD |
25 | headers = iconv.h gconv.h |
26 | routines = iconv_open iconv iconv_close \ | |
27 | gconv_open gconv gconv_close gconv_db gconv_conf \ | |
6b98979f | 28 | gconv_builtin gconv_simple gconv_trans gconv_cache |
91927b7c | 29 | routines += gconv_dl gconv_charset |
8619129f | 30 | |
dd9423a6 | 31 | vpath %.c ../locale/programs ../intl |
93693c4d UD |
32 | |
33 | iconv_prog-modules = iconv_charmap charmap charmap-dir linereader \ | |
02eec681 CD |
34 | dummy-repertoire simple-hash xstrdup xmalloc \ |
35 | record-status | |
9429049c | 36 | iconvconfig-modules = strtab xmalloc xasprintf xstrdup hash-string |
7dbadfc5 | 37 | extra-objs = $(iconv_prog-modules:=.o) $(iconvconfig-modules:=.o) |
36975e8e L |
38 | CFLAGS-iconv_prog.c += -I../locale/programs |
39 | CFLAGS-iconv_charmap.c += -I../locale/programs | |
40 | CFLAGS-dummy-repertoire.c += -I../locale/programs | |
41 | CFLAGS-charmap.c += -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ | |
194c5f8d | 42 | -DDEFAULT_CHARMAP=null_pointer -DNEED_NULL_POINTER |
36975e8e L |
43 | CFLAGS-linereader.c += -DNO_TRANSLITERATION |
44 | CFLAGS-simple-hash.c += -I../locale | |
93693c4d | 45 | |
466f2be6 CD |
46 | tests = \ |
47 | tst-iconv1 \ | |
48 | tst-iconv2 \ | |
49 | tst-iconv3 \ | |
50 | tst-iconv4 \ | |
51 | tst-iconv5 \ | |
52 | tst-iconv6 \ | |
53 | tst-iconv7 \ | |
54 | tst-iconv8 \ | |
55 | tst-iconv9 \ | |
56 | tst-iconv-mt \ | |
57 | tst-iconv-opt \ | |
58 | # tests | |
c63b67bd | 59 | |
1b0a2062 AS |
60 | test-srcs := \ |
61 | tst-translit-mchar \ | |
62 | # test-srcs | |
63 | ||
6b98979f | 64 | others = iconv_prog iconvconfig |
ff40792e | 65 | install-others-programs = $(inst_bindir)/iconv |
9fcddc2b | 66 | install-sbin = iconvconfig |
fb5663ca | 67 | |
8e294940 | 68 | CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"' |
36975e8e L |
69 | CFLAGS-gconv_conf.c += -DGCONV_PATH='"$(gconvdir)"' |
70 | CFLAGS-iconvconfig.c += -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"' | |
6973fc01 | 71 | |
9cd47470 SP |
72 | # Set libof-* for each routine. |
73 | cpp-srcs-left := $(iconv_prog-modules) $(iconvconfig-modules) | |
74 | lib := iconvprogs | |
2bfdaedd | 75 | include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left)) |
51d46f73 | 76 | |
f214606a | 77 | ifeq ($(run-built-tests),yes) |
0b20a9e8 | 78 | xtests-special += $(objpfx)test-iconvconfig.out |
91927b7c | 79 | tests-special += $(objpfx)tst-iconv_prog.out |
1b0a2062 | 80 | tests-special += $(objpfx)tst-translit-mchar.out |
f214606a JM |
81 | endif |
82 | ||
251bccfa FW |
83 | # Make a copy of the file because gconv module names are constructed |
84 | # relative to the path of the configuration file. | |
85 | $(objpfx)gconv-modules: test-gconv-modules | |
86 | cp $< $@ | |
87 | ||
c5288d37 AS |
88 | $(objpfx)tst-iconv-mt: $(shared-thread-library) |
89 | ||
251bccfa FW |
90 | ifeq (yes,$(build-shared)) |
91 | tests += tst-gconv-init-failure | |
92 | modules-names += tst-gconv-init-failure-mod | |
93 | modules-names-tests += tst-gconv-init-failure-mod | |
1fe00d3e | 94 | extra-test-objs += tst-gconv-init-failure-mod.os |
251bccfa FW |
95 | $(objpfx)tst-gconv-init-failure-mod.so: $(libsupport) |
96 | $(objpfx)tst-gconv-init-failure.out: \ | |
97 | $(objpfx)gconv-modules $(objpfx)tst-gconv-init-failure-mod.so | |
98 | endif | |
99 | ||
1b0a2062 AS |
100 | generated-dirs += tst-translit |
101 | ||
6973fc01 | 102 | include ../Rules |
fb5663ca | 103 | |
91927b7c | 104 | ifeq ($(run-built-tests),yes) |
466f2be6 CD |
105 | # We have to generate locales (list sorted alphabetically) |
106 | LOCALES := \ | |
107 | C.UTF-8 \ | |
108 | en_US.UTF-8 \ | |
109 | # LOCALES | |
91927b7c AS |
110 | include ../gen-locales.mk |
111 | ||
112 | $(objpfx)tst-iconv-opt.out: $(gen-locales) | |
466f2be6 | 113 | $(objpfx)tst-iconv9.out: $(gen-locales) |
91927b7c AS |
114 | endif |
115 | ||
73237de3 | 116 | $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force) |
9eb2730e | 117 | $(do-install-program) |
93693c4d UD |
118 | |
119 | $(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o) | |
6b98979f | 120 | $(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o) |
ff06ca8d | 121 | |
69e0a5eb | 122 | $(objpfx)test-iconvconfig.out: $(objpfx)iconvconfig |
0b20a9e8 JM |
123 | (set -e; \ |
124 | tmp=$(objpfx)gconv-modules.cache.$$$$; \ | |
125 | rm -f $$tmp; \ | |
69e0a5eb L |
126 | $(run-program-prefix) $(objpfx)iconvconfig \ |
127 | --output=$$tmp --nostdlib $(inst_gconvdir); \ | |
0b20a9e8 JM |
128 | cmp $$tmp $(inst_gconvdir)/gconv-modules.cache; \ |
129 | rm -f $$tmp) > $@; \ | |
f0881698 | 130 | $(evaluate-test) |
91927b7c AS |
131 | |
132 | $(objpfx)tst-iconv_prog.out: tst-iconv_prog.sh $(objpfx)iconv_prog | |
133 | $(BASH) $< $(common-objdir) '$(test-wrapper-env)' \ | |
134 | '$(run-program-env)' > $@; \ | |
135 | $(evaluate-test) | |
1b0a2062 AS |
136 | |
137 | $(objpfx)tst-translit-mchar.out: tst-translit-mchar.sh \ | |
138 | $(objpfx)tst-translit-mchar \ | |
139 | tst-translit-locale | |
140 | $(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \ | |
141 | '$(run-program-env)' '$(run-program-prefix-after-env)' \ | |
142 | $< > $@; \ | |
143 | $(evaluate-test) |