blob: 0d55eda94bebe2132c9d608ac0f2519e97266640 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001# Copyright (C) 1997-2015 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, see
16# <http://www.gnu.org/licenses/>.
17
18#
19# Makefile for iconv.
20#
21subdir := iconv
22
23include ../Makeconfig
24
25headers = iconv.h gconv.h
26routines = iconv_open iconv iconv_close \
27 gconv_open gconv gconv_close gconv_db gconv_conf \
28 gconv_builtin gconv_simple gconv_trans gconv_cache
29routines += gconv_dl
30
31vpath %.c ../locale/programs ../intl
32
33iconv_prog-modules = iconv_charmap charmap charmap-dir linereader \
34 dummy-repertoire simple-hash xstrdup xmalloc
35iconvconfig-modules = strtab xmalloc hash-string
36extra-objs = $(iconv_prog-modules:=.o) $(iconvconfig-modules:=.o)
37CFLAGS-iconv_prog.c = -I../locale/programs
38CFLAGS-iconv_charmap.c = -I../locale/programs
39CFLAGS-dummy-repertoire.c = -I../locale/programs
40CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
41 -DDEFAULT_CHARMAP=null_pointer -DNEED_NULL_POINTER
42CFLAGS-linereader.c = -DNO_TRANSLITERATION
43CFLAGS-simple-hash.c = -I../locale
44
45tests = tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5
46
47others = iconv_prog iconvconfig
48install-others-programs = $(inst_bindir)/iconv
49install-sbin = iconvconfig
50
51CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"'
52CFLAGS-gconv_conf.c = -DGCONV_PATH='"$(gconvdir)"'
53CFLAGS-iconvconfig.c = -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"'
54
55# Set libof-* for each routine.
56cpp-srcs-left := $(iconv_prog-modules) $(iconvconfig-modules)
57lib := iconvprogs
58include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
59
60ifeq ($(run-built-tests),yes)
61xtests-special += $(objpfx)test-iconvconfig.out
62endif
63
64include ../Rules
65
66$(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force)
67 $(do-install-program)
68
69$(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o)
70$(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o)
71
72$(objpfx)test-iconvconfig.out: /dev/null $(objpfx)iconvconfig
73 (set -e; \
74 tmp=$(objpfx)gconv-modules.cache.$$$$; \
75 rm -f $$tmp; \
76 $(make-test-out) --output=$$tmp --nostdlib $(inst_gconvdir); \
77 cmp $$tmp $(inst_gconvdir)/gconv-modules.cache; \
78 rm -f $$tmp) > $@; \
79 $(evaluate-test)