1#	from: @(#)Makefile.inc	8.1 (Berkeley) 6/4/93
2#	$NetBSD: Makefile.inc,v 1.90 2024/06/08 21:35:18 joerg Exp $
3
4# string sources
5.PATH: ${ARCHDIR}/string ${.CURDIR}/string
6
7# NB: if a .S version of any of these is added in the arch/*/Makefile
8# then the relevant .c file is automatically removed
9# Also adding the .c name to NO_SRCS will have the same effect
10
11SRCS+=	bm.c stpcpy.c stpncpy.c \
12	strcasecmp.c strncasecmp.c strcasestr.c strcoll.c strdup.c \
13	strerror.c strerror_ss.c strlcat.c strlcpy.c strnlen.c \
14	strmode.c strsignal.c strtok.c \
15	strtok_r.c strxfrm.c __strsignal.c strerror_r.c strndup.c \
16	stresep.c memrchr.c
17
18SRCS+=	bcmp.c bcopy.c bzero.c ffs.c memchr.c memcmp.c memset.c
19SRCS+=	strcat.c strcmp.c strcpy.c strcspn.c strlen.c
20SRCS+=	strncat.c strncmp.c strncpy.c strpbrk.c strsep.c
21SRCS+=	strspn.c strstr.c swab.c strnstr.c
22SRCS+=	explicit_memset.c consttime_memequal.c
23
24SRCS+=	memccpy.c memcpy.c memmem.c memmove.c mempcpy.c
25SRCS+=	strchr.c strrchr.c strchrnul.c
26SRCS+=	popcount32.c popcount64.c
27
28# wide char
29SRCS+=	wcscat.c wcschr.c wcscmp.c wcscpy.c wcscspn.c wcslcat.c wcslcpy.c \
30	wcslen.c wcsncat.c wcsnlen.c wcscasecmp.c wcsdup.c wcsncasecmp.c \
31	wcsncmp.c wcsncpy.c wcspbrk.c wcsrchr.c wcsspn.c wcsstr.c wcstok.c \
32	wcswcs.c wmemchr.c wmemcmp.c wmemcpy.c wmemmove.c wmempcpy.c wmemset.c
33CPPFLAGS.wcscmp.c+=	-I${LIBCDIR}/locale
34CPPFLAGS.wcsncmp.c+=	-I${LIBCDIR}/locale
35CPPFLAGS.wmemcmp.c+=	-I${LIBCDIR}/locale
36
37# Avoid memset() compilation generating calls to memset() via code
38# that appears to implement memset()-like semantics (similar to how
39# printf("foo") may be converted to puts("foo")), since that tends
40# to recurse and blow the stack.
41COPTS.memset.c+=	${${ACTIVE_CC} == "gcc":? -fno-builtin :}
42
43COPTS.strerror_r.c+= 	-Wno-format-nonliteral
44
45.include "${ARCHDIR}/string/Makefile.inc"
46
47MAN+=	bm.3 bcmp.3 bcopy.3 bstring.3 bzero.3 consttime_memequal.3 \
48	explicit_memset.3 ffs.3 index.3 \
49	memccpy.3 memchr.3 memcmp.3 memcpy.3 memmem.3 memmove.3	memset.3 \
50	popcount.3 \
51	rindex.3 strcasecmp.3 strcat.3 strchr.3 strcmp.3 strcoll.3 \
52	strcpy.3 strcspn.3 strdup.3 strerror.3 string.3 strings.3 strlcpy.3 \
53	strlen.3 strmode.3 strncpy.3 strpbrk.3 strrchr.3 strsep.3 \
54	strsignal.3 strspn.3 strstr.3 strtok.3 strxfrm.3 \
55	swab.3 wcstok.3 wcswidth.3 wmemchr.3 wcsdup.3 wcscasecmp.3
56
57MLINKS+=bm.3 bm_comp.3 bm.3 bm_exec.3 bm.3 bm_free.3
58MLINKS+=popcount.3 popcountl.3
59MLINKS+=popcount.3 popcountll.3
60MLINKS+=popcount.3 popcount32.3
61MLINKS+=popcount.3 popcount64.3
62MLINKS+=strcasecmp.3 strncasecmp.3
63MLINKS+=strcat.3 strncat.3
64MLINKS+=strcmp.3 strncmp.3
65MLINKS+=strcpy.3 stpcpy.3
66MLINKS+=strlcpy.3 strlcat.3
67MLINKS+=strlen.3 strnlen.3
68MLINKS+=strncpy.3 stpncpy.3
69MLINKS+=strstr.3 strcasestr.3
70MLINKS+=strstr.3 strnstr.3
71MLINKS+=strchr.3 strchrnul.3
72MLINKS+=memchr.3 memrchr.3
73MLINKS+=memcpy.3 mempcpy.3
74MLINKS+=strtok.3 strtok_r.3
75MLINKS+=strerror.3 strerror_r.3 strerror.3 perror.3 \
76	strerror.3 strerror_l.3 \
77	strerror.3 sys_errlist.3 strerror.3 sys_nerr.3
78MLINKS+=strdup.3 strndup.3
79MLINKS+=strsep.3 stresep.3
80MLINKS+=wmemchr.3 wmemcmp.3 wmemchr.3 wmemcpy.3 \
81	wmemchr.3 wmemmove.3 wmemchr.3 wmempcpy.3 \
82	wmemchr.3 wmemset.3 \
83	wmemchr.3 wcscat.3 wmemchr.3 wcschr.3 \
84	wmemchr.3 wcscmp.3 wmemchr.3 wcscpy.3 \
85	wmemchr.3 wcscspn.3 wmemchr.3 wcslcat.3 \
86	wmemchr.3 wcslcpy.3 wmemchr.3 wcslen.3 \
87	wmemchr.3 wcsncat.3 wmemchr.3 wcsnlen.3 \
88	wmemchr.3 wcsncmp.3 wmemchr.3 wcsncpy.3 \
89	wmemchr.3 wcspbrk.3 wmemchr.3 wcsrchr.3 \
90	wmemchr.3 wcsspn.3 wmemchr.3 wcsstr.3 \
91	wmemchr.3 wcswcs.3
92MLINKS+=wcscasecmp.3 wcsncasecmp.3
93