]> git.ipfire.org Git - thirdparty/glibc.git/blame - iconv/Makefile
NEWS: Mention bug 24112.
[thirdparty/glibc.git] / iconv / Makefile
CommitLineData
688903eb 1# Copyright (C) 1997-2018 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
PE
15# License along with the GNU C Library; if not, see
16# <http://www.gnu.org/licenses/>.
6973fc01
UD
17
18#
19# Makefile for iconv.
20#
21subdir := iconv
22
8619129f
UD
23include ../Makeconfig
24
6973fc01
UD
25headers = iconv.h gconv.h
26routines = 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
8619129f 29routines += gconv_dl
8619129f 30
dd9423a6 31vpath %.c ../locale/programs ../intl
93693c4d
UD
32
33iconv_prog-modules = iconv_charmap charmap charmap-dir linereader \
02eec681
CD
34 dummy-repertoire simple-hash xstrdup xmalloc \
35 record-status
dd9423a6 36iconvconfig-modules = strtab xmalloc hash-string
7dbadfc5 37extra-objs = $(iconv_prog-modules:=.o) $(iconvconfig-modules:=.o)
36975e8e
L
38CFLAGS-iconv_prog.c += -I../locale/programs
39CFLAGS-iconv_charmap.c += -I../locale/programs
40CFLAGS-dummy-repertoire.c += -I../locale/programs
41CFLAGS-charmap.c += -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
194c5f8d 42 -DDEFAULT_CHARMAP=null_pointer -DNEED_NULL_POINTER
36975e8e
L
43CFLAGS-linereader.c += -DNO_TRANSLITERATION
44CFLAGS-simple-hash.c += -I../locale
93693c4d 45
8f25676c 46tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6
c63b67bd 47
6b98979f 48others = iconv_prog iconvconfig
ff40792e 49install-others-programs = $(inst_bindir)/iconv
9fcddc2b 50install-sbin = iconvconfig
fb5663ca 51
8e294940 52CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"'
36975e8e
L
53CFLAGS-gconv_conf.c += -DGCONV_PATH='"$(gconvdir)"'
54CFLAGS-iconvconfig.c += -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"'
6973fc01 55
9cd47470
SP
56# Set libof-* for each routine.
57cpp-srcs-left := $(iconv_prog-modules) $(iconvconfig-modules)
58lib := iconvprogs
2bfdaedd 59include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
51d46f73 60
f214606a 61ifeq ($(run-built-tests),yes)
0b20a9e8 62xtests-special += $(objpfx)test-iconvconfig.out
f214606a
JM
63endif
64
251bccfa
FW
65# Make a copy of the file because gconv module names are constructed
66# relative to the path of the configuration file.
67$(objpfx)gconv-modules: test-gconv-modules
68 cp $< $@
69
70ifeq (yes,$(build-shared))
71tests += tst-gconv-init-failure
72modules-names += tst-gconv-init-failure-mod
73modules-names-tests += tst-gconv-init-failure-mod
74$(objpfx)tst-gconv-init-failure-mod.so: $(libsupport)
75$(objpfx)tst-gconv-init-failure.out: \
76 $(objpfx)gconv-modules $(objpfx)tst-gconv-init-failure-mod.so
77endif
78
6973fc01 79include ../Rules
fb5663ca 80
73237de3 81$(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force)
9eb2730e 82 $(do-install-program)
93693c4d
UD
83
84$(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o)
6b98979f 85$(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o)
ff06ca8d 86
0b20a9e8
JM
87$(objpfx)test-iconvconfig.out: /dev/null $(objpfx)iconvconfig
88 (set -e; \
89 tmp=$(objpfx)gconv-modules.cache.$$$$; \
90 rm -f $$tmp; \
91 $(make-test-out) --output=$$tmp --nostdlib $(inst_gconvdir); \
92 cmp $$tmp $(inst_gconvdir)/gconv-modules.cache; \
93 rm -f $$tmp) > $@; \
f0881698 94 $(evaluate-test)