# Copyright (C) 1995-2023 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # The GNU C Library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see # . # # Sub-makefile for wcsmbs portion of the library. # subdir := wcsmbs include ../Makeconfig headers := \ bits/types/__mbstate_t.h \ bits/types/mbstate_t.h \ bits/types/wint_t.h \ bits/wchar-ldbl.h \ bits/wchar.h \ bits/wchar2-decl.h \ bits/wchar2.h \ uchar.h \ wchar.h \ # headers routines := \ btowc \ c16rtomb \ c32rtomb \ c8rtomb \ isoc23_fwscanf \ isoc23_swscanf \ isoc23_vfwscanf \ isoc23_vswscanf \ isoc23_vwscanf \ isoc23_wscanf \ isoc99_fwscanf \ isoc99_swscanf \ isoc99_vfwscanf \ isoc99_vswscanf \ isoc99_vwscanf \ isoc99_wscanf \ mbrlen \ mbrtoc8 \ mbrtoc16 \ mbrtoc32 \ mbrtowc \ mbsinit \ mbsnrtowcs \ mbsrtowcs \ mbsrtowcs_l \ wcpcpy \ wcpncpy \ wcrtomb \ wcscasecmp \ wcscasecmp_l \ wcscat \ wcschr \ wcschrnul \ wcscmp \ wcscoll \ wcscoll_l \ wcscpy \ wcscspn \ wcsdup \ wcslcat \ wcslcpy \ wcslen \ wcsmbsload \ wcsncase \ wcsncase_l \ wcsncat \ wcsncmp \ wcsncpy \ wcsnlen \ wcsnrtombs \ wcspbrk \ wcsrchr \ wcsrtombs \ wcsspn \ wcsstr \ wcstod \ wcstod_l \ wcstod_nan \ wcstof \ wcstof_l \ wcstof_nan \ wcstok \ wcstol \ wcstol_l \ wcstold \ wcstold_l \ wcstold_nan \ wcstoll \ wcstoll_l \ wcstoul \ wcstoul_l \ wcstoull \ wcstoull_l \ wcswidth \ wcsxfrm \ wcsxfrm_l \ wctob \ wcwidth \ wmemchr \ wmemcmp \ wmemcpy \ wmemmove \ wmempcpy \ wmemset \ # routines tests := \ test-c8rtomb \ test-char-types \ test-mbrtoc8 \ test-wcpcpy \ test-wcpncpy \ test-wcscat \ test-wcschr \ test-wcschrnul \ test-wcscmp \ test-wcscpy \ test-wcscspn \ test-wcsdup \ test-wcslen \ test-wcsncat \ test-wcsncmp \ test-wcsncpy \ test-wcsnlen \ test-wcspbrk \ test-wcsrchr \ test-wcsspn \ test-wmemchr \ test-wmemcmp \ test-wmemset \ tst-btowc \ tst-c16-surrogate \ tst-c16c32-1 \ tst-c32-state \ tst-fgetwc-after-eof \ tst-mbrtowc \ tst-mbrtowc2 \ tst-mbsrtowcs \ tst-mbstowcs \ tst-wchar-h \ tst-wcpncpy \ tst-wcrtomb \ tst-wcslcat \ tst-wcslcpy \ tst-wcsnlen \ tst-wcstod-nan-locale \ tst-wcstod-nan-sign \ tst-wcstod-round \ tst-wcstof \ tst-wcstol-binary-c11 \ tst-wcstol-binary-c2x \ tst-wcstol-binary-gnu11 \ tst-wcstol-binary-gnu2x \ tst-wcstol-locale \ tst-wprintf-binary \ tst-wscanf-binary-c11 \ tst-wscanf-binary-c2x \ tst-wscanf-binary-gnu11 \ tst-wscanf-binary-gnu89 \ wcsatcliff \ wcsmbs-tst1 \ # tests include ../Rules ifeq ($(run-built-tests),yes) LOCALES := \ de_DE.ISO-8859-1 \ de_DE.UTF-8 \ en_US.ANSI_X3.4-1968 \ hr_HR.ISO-8859-2 \ ja_JP.EUC-JP \ tr_TR.ISO-8859-9 \ tr_TR.UTF-8 \ zh_HK.BIG5-HKSCS \ zh_TW.EUC-TW \ # LOCALES include ../gen-locales.mk $(objpfx)tst-btowc.out: $(gen-locales) $(objpfx)tst-c16c32-1.out: $(gen-locales) $(objpfx)tst-mbrtowc.out: $(gen-locales) $(objpfx)tst-mbrtowc2.out: $(gen-locales) $(objpfx)tst-wcrtomb.out: $(gen-locales) $(objpfx)wcsmbs-tst1.out: $(gen-locales) $(objpfx)tst-wcstol-locale.out: $(gen-locales) $(objpfx)tst-wcstod-nan-locale.out: $(gen-locales) $(objpfx)tst-c16-surrogate.out: $(gen-locales) $(objpfx)tst-c32-state.out: $(gen-locales) $(objpfx)test-c8rtomb.out: $(gen-locales) $(objpfx)test-mbrtoc8.out: $(gen-locales) endif $(objpfx)tst-wcstod-round: $(libm) CFLAGS-wcwidth.c += -I../wctype CFLAGS-wcswidth.c += -I../wctype strtox-CFLAGS = -I../include CFLAGS-wcstol.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstoul.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstoll.c += $(strtox-CFLAGS) CFLAGS-wcstoull.c += $(strtox-CFLAGS) CFLAGS-wcstod.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstold.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstof128.c += $(strtox-CFLAGS) CFLAGS-wcstof.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstol_l.c += $(strtox-CFLAGS) CFLAGS-wcstoul_l.c += $(strtox-CFLAGS) CFLAGS-wcstoll_l.c += $(strtox-CFLAGS) CFLAGS-wcstoull_l.c += $(strtox-CFLAGS) CFLAGS-wcstod_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstold_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CFLAGS-wcstof128_l.c += $(strtox-CFLAGS) CFLAGS-wcstof_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) CPPFLAGS-tst-wchar-h.c += -D_FORTIFY_SOURCE=2 CFLAGS-wcschr.c += $(config-cflags-wno-ignored-attributes) CFLAGS-wmemchr.c += $(config-cflags-wno-ignored-attributes) CFLAGS-wmemset.c += $(config-cflags-wno-ignored-attributes) CFLAGS-mbrtowc.c += $(config-cflags-wno-ignored-attributes) CFLAGS-wcrtomb.c += $(config-cflags-wno-ignored-attributes) CFLAGS-wcstoll.c += $(config-cflags-wno-ignored-attributes) CFLAGS-wcstoull.c += $(config-cflags-wno-ignored-attributes) CFLAGS-isoc99_wscanf.c += -fexceptions CFLAGS-isoc99_fwscanf.c += -fexceptions CFLAGS-isoc99_vwscanf.c += -fexceptions CFLAGS-isoc99_vfwscanf.c += -fexceptions CFLAGS-isoc23_wscanf.c += -fexceptions CFLAGS-isoc23_fwscanf.c += -fexceptions CFLAGS-isoc23_vwscanf.c += -fexceptions CFLAGS-isoc23_vfwscanf.c += -fexceptions CPPFLAGS += $(libio-mtsafe) # We need to find the default version of strtold_l in stdlib. CPPFLAGS-wcstold_l.c += -I../stdlib $(objpfx)tst-wcstod-nan-locale: $(libm) $(objpfx)tst-wcstod-nan-sign: $(libm) # Some versions of GCC supported for building glibc do not support -std=c2x # or -std=gnu2x, so the tests for those versions use -std=c11 and -std=gnu11 # and then _ISOC2X_SOURCE is defined in the test as needed. CFLAGS-tst-wcstol-binary-c11.c += -std=c11 CFLAGS-tst-wcstol-binary-c2x.c += -std=c11 CFLAGS-tst-wcstol-binary-gnu11.c += -std=gnu11 CFLAGS-tst-wcstol-binary-gnu2x.c += -std=gnu11 CFLAGS-tst-wscanf-binary-c11.c += -std=c11 -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-wscanf-binary-c2x.c += -std=c11 -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-wscanf-binary-gnu11.c += -std=gnu11 -DOBJPFX=\"$(objpfx)\" CFLAGS-tst-wscanf-binary-gnu89.c += -std=gnu89 -DOBJPFX=\"$(objpfx)\"