blob: 8b599f75be3cc75d29b34d4d959ba6c3dd10107d [file] [log] [blame]
xf.libdd93d52023-05-12 07:10:14 -07001# Copyright (C) 1995-2016 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# Sub-makefile for wcsmbs portion of the library.
20#
21subdir := wcsmbs
22
23include ../Makeconfig
24
25headers := wchar.h bits/wchar.h bits/wchar2.h bits/wchar-ldbl.h uchar.h
26
27routines := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \
28 wcsncmp wcsncpy wcspbrk wcsrchr wcsspn wcstok wcsstr wmemchr \
29 wmemcmp wmemcpy wmemmove wmemset wcpcpy wcpncpy wmempcpy \
30 btowc wctob mbsinit \
31 mbrlen mbrtowc wcrtomb mbsrtowcs wcsrtombs \
32 mbsnrtowcs wcsnrtombs wcsnlen wcschrnul \
33 wcstol wcstoul wcstoll wcstoull wcstod wcstold wcstof \
34 wcstol_l wcstoul_l wcstoll_l wcstoull_l \
35 wcstod_l wcstold_l wcstof_l \
36 wcstod_nan wcstold_nan wcstof_nan \
37 wcscoll wcsxfrm \
38 wcwidth wcswidth \
39 wcscoll_l wcsxfrm_l \
40 wcscasecmp wcsncase wcscasecmp_l wcsncase_l \
41 wcsmbsload mbsrtowcs_l \
42 isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \
43 isoc99_swscanf isoc99_vswscanf \
44 mbrtoc16 c16rtomb
45
46strop-tests := wcscmp wcsncmp wmemcmp wcslen wcschr wcsrchr wcscpy wcsnlen \
47 wcpcpy wcsncpy wcpncpy wcscat wcsncat wcschrnul wcsspn wcspbrk \
48 wcscspn wmemchr wmemset
49tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
50 tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
51 tst-c16c32-1 wcsatcliff tst-wcstol-locale tst-wcstod-nan-locale \
52 $(addprefix test-,$(strop-tests))
53
54include ../Rules
55
56ifeq ($(run-built-tests),yes)
57LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 hr_HR.ISO-8859-2 \
58 ja_JP.EUC-JP zh_TW.EUC-TW tr_TR.UTF-8 tr_TR.ISO-8859-9
59include ../gen-locales.mk
60
61$(objpfx)tst-btowc.out: $(gen-locales)
62$(objpfx)tst-c16c32-1.out: $(gen-locales)
63$(objpfx)tst-mbrtowc.out: $(gen-locales)
64$(objpfx)tst-mbrtowc2.out: $(gen-locales)
65$(objpfx)tst-wcrtomb.out: $(gen-locales)
66$(objpfx)wcsmbs-tst1.out: $(gen-locales)
67$(objpfx)tst-wcstol-locale.out: $(gen-locales)
68$(objpfx)tst-wcstod-nan-locale.out: $(gen-locales)
69endif
70
71CFLAGS-wcwidth.c = -I../wctype
72CFLAGS-wcswidth.c = -I../wctype
73
74strtox-CFLAGS = -I../include
75CFLAGS-wcstol.c = $(strtox-CFLAGS)
76CFLAGS-wcstoul.c = $(strtox-CFLAGS)
77CFLAGS-wcstoll.c = $(strtox-CFLAGS)
78CFLAGS-wcstoull.c = $(strtox-CFLAGS)
79CFLAGS-wcstod.c = $(strtox-CFLAGS)
80CFLAGS-wcstold.c = $(strtox-CFLAGS)
81CFLAGS-wcstof.c = $(strtox-CFLAGS)
82CFLAGS-wcstol_l.c = $(strtox-CFLAGS)
83CFLAGS-wcstoul_l.c = $(strtox-CFLAGS)
84CFLAGS-wcstoll_l.c = $(strtox-CFLAGS)
85CFLAGS-wcstoull_l.c = $(strtox-CFLAGS)
86CFLAGS-wcstod_l.c = $(strtox-CFLAGS)
87CFLAGS-wcstold_l.c = $(strtox-CFLAGS)
88CFLAGS-wcstof_l.c = $(strtox-CFLAGS)
89CPPFLAGS-tst-wchar-h.c = -D_FORTIFY_SOURCE=2
90
91CFLAGS-isoc99_wscanf.c += -fexceptions
92CFLAGS-isoc99_fwscanf.c += -fexceptions
93CFLAGS-isoc99_vwscanf.c += -fexceptions
94CFLAGS-isoc99_vfwscanf.c += -fexceptions
95
96CPPFLAGS += $(libio-mtsafe)
97
98# We need to find the default version of strtold_l in stdlib.
99CPPFLAGS-wcstold_l.c = -I../stdlib
100
101$(objpfx)tst-wcstod-nan-locale: $(libm)