]>
Commit | Line | Data |
---|---|---|
d614a753 | 1 | # Copyright (C) 1997-2020 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 | |
dd9423a6 | 36 | iconvconfig-modules = strtab xmalloc 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 | |
c5288d37 | 46 | tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \ |
91927b7c | 47 | tst-iconv7 tst-iconv-mt tst-iconv-opt |
c63b67bd | 48 | |
6b98979f | 49 | others = iconv_prog iconvconfig |
ff40792e | 50 | install-others-programs = $(inst_bindir)/iconv |
9fcddc2b | 51 | install-sbin = iconvconfig |
fb5663ca | 52 | |
8e294940 | 53 | CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"' |
36975e8e L |
54 | CFLAGS-gconv_conf.c += -DGCONV_PATH='"$(gconvdir)"' |
55 | CFLAGS-iconvconfig.c += -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"' | |
6973fc01 | 56 | |
9cd47470 SP |
57 | # Set libof-* for each routine. |
58 | cpp-srcs-left := $(iconv_prog-modules) $(iconvconfig-modules) | |
59 | lib := iconvprogs | |
2bfdaedd | 60 | include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left)) |
51d46f73 | 61 | |
f214606a | 62 | ifeq ($(run-built-tests),yes) |
0b20a9e8 | 63 | xtests-special += $(objpfx)test-iconvconfig.out |
91927b7c | 64 | tests-special += $(objpfx)tst-iconv_prog.out |
f214606a JM |
65 | endif |
66 | ||
251bccfa FW |
67 | # Make a copy of the file because gconv module names are constructed |
68 | # relative to the path of the configuration file. | |
69 | $(objpfx)gconv-modules: test-gconv-modules | |
70 | cp $< $@ | |
71 | ||
c5288d37 AS |
72 | $(objpfx)tst-iconv-mt: $(shared-thread-library) |
73 | ||
251bccfa FW |
74 | ifeq (yes,$(build-shared)) |
75 | tests += tst-gconv-init-failure | |
76 | modules-names += tst-gconv-init-failure-mod | |
77 | modules-names-tests += tst-gconv-init-failure-mod | |
78 | $(objpfx)tst-gconv-init-failure-mod.so: $(libsupport) | |
79 | $(objpfx)tst-gconv-init-failure.out: \ | |
80 | $(objpfx)gconv-modules $(objpfx)tst-gconv-init-failure-mod.so | |
81 | endif | |
82 | ||
6973fc01 | 83 | include ../Rules |
fb5663ca | 84 | |
91927b7c AS |
85 | ifeq ($(run-built-tests),yes) |
86 | LOCALES := en_US.UTF-8 | |
87 | include ../gen-locales.mk | |
88 | ||
89 | $(objpfx)tst-iconv-opt.out: $(gen-locales) | |
90 | endif | |
91 | ||
73237de3 | 92 | $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force) |
9eb2730e | 93 | $(do-install-program) |
93693c4d UD |
94 | |
95 | $(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o) | |
6b98979f | 96 | $(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o) |
ff06ca8d | 97 | |
0b20a9e8 JM |
98 | $(objpfx)test-iconvconfig.out: /dev/null $(objpfx)iconvconfig |
99 | (set -e; \ | |
100 | tmp=$(objpfx)gconv-modules.cache.$$$$; \ | |
101 | rm -f $$tmp; \ | |
102 | $(make-test-out) --output=$$tmp --nostdlib $(inst_gconvdir); \ | |
103 | cmp $$tmp $(inst_gconvdir)/gconv-modules.cache; \ | |
104 | rm -f $$tmp) > $@; \ | |
f0881698 | 105 | $(evaluate-test) |
91927b7c AS |
106 | |
107 | $(objpfx)tst-iconv_prog.out: tst-iconv_prog.sh $(objpfx)iconv_prog | |
108 | $(BASH) $< $(common-objdir) '$(test-wrapper-env)' \ | |
109 | '$(run-program-env)' > $@; \ | |
110 | $(evaluate-test) |