1#	$NetBSD: Makefile.inc,v 1.99 2024/06/07 20:50:13 riastradh Exp $
2#	from: @(#)Makefile.inc	8.3 (Berkeley) 2/4/95
3
4# stdlib sources
5.PATH: ${ARCHDIR}/stdlib ${.CURDIR}/stdlib
6
7SRCS+=	_env.c _rand48.c \
8	a64l.c abort.c atexit.c atof.c atoi.c atol.c atoll.c \
9	bsearch.c cxa_thread_atexit.c drand48.c exit.c \
10	getenv.c getopt.c getopt_long.c getsubopt.c \
11	hcreate.c heapsort.c imaxdiv.c insque.c jrand48.c l64a.c lldiv.c \
12	lcong48.c lrand48.c lsearch.c merge.c mi_vector_hash.c mrand48.c \
13	nrand48.c putenv.c qabs.c qdiv.c qsort.c posix_openpt.c pty.c \
14	quick_exit.c radixsort.c rand.c rand_r.c random.c remque.c \
15	reallocarr.c reallocarray.c seed48.c setenv.c srand48.c strsuftoll.c \
16	strtoi.c strtou.c strtonum.c \
17	strtoimax.c strtol.c strtoll.c strtoq.c strtoul.c strtoull.c \
18	strtoumax.c strtouq.c system.c tdelete.c tfind.c tsearch.c twalk.c \
19	unsetenv.c strfmon.c
20
21# These are often replaced by MD .S versions
22SRCS+=	abs.c labs.c llabs.c imaxabs.c
23SRCS+=	div.c ldiv.c imaxdiv.c
24
25# This might be replaced by erand48.c
26SRCS+= erand48_ieee754.c
27
28.if ${RUMPRUN} != "yes"
29.   if (${USE_JEMALLOC} != "no")
30.      if ${HAVE_JEMALLOC} > 100
31.         include "${NETBSDSRCDIR}/external/bsd/jemalloc/lib/Makefile.inc"
32.      else
33SRCS+=	jemalloc.c aligned_alloc.c
34.      endif 
35.   else
36SRCS+=	malloc.c
37.   endif
38.endif
39
40CPPFLAGS.strtol.c+=	-I${LIBCDIR}/../../common/lib/libc/stdlib
41CPPFLAGS.strtoq.c+=	-I${LIBCDIR}/../../common/lib/libc/stdlib
42CPPFLAGS.strtouq.c+=	-I${LIBCDIR}/../../common/lib/libc/stdlib
43
44.include "${ARCHDIR}/stdlib/Makefile.inc"
45
46MAN+=	a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 atoll.3 \
47	at_quick_exit.3 \
48	bsearch.3 \
49	div.3 \
50	exit.3 \
51	getenv.3 getopt.3 getopt_long.3 getsubopt.3 grantpt.3 \
52	hcreate.3 \
53	insque.3 \
54	jemalloc.3 \
55	lsearch.3 \
56	malloc.3 memory.3 mi_vector_hash.3 \
57	posix_memalign.3 posix_openpt.3 ptsname.3 \
58	qabs.3 qdiv.3 quick_exit.3 qsort.3 \
59	radixsort.3 rand48.3 rand.3 random.3 reallocarr.3 reallocarray.3 \
60	strfmon.3 strsuftoll.3 strtod.3 strtoi.3 strtol.3 strtou.3 strtoul.3 \
61	strtonum.3 system.3 \
62	tsearch.3 \
63	unlockpt.3
64
65strtou.3: strtoi.3
66	${_MKTARGET_CREATE}
67	${TOOL_SED} -e s/strtoi/strtou/g -e s/STRTOI/STRTOU/g \
68	    -e s/intmax_t/uintmax_t/g -e s/%jd/%ju/g ${.ALLSRC} > ${.TARGET}
69CLEANFILES += strtou.3
70
71MLINKS+=a64l.3 l64a.3
72MLINKS+=a64l.3 l64a_r.3
73MLINKS+=abs.3 labs.3 \
74	abs.3 llabs.3 \
75	abs.3 imaxabs.3
76MLINKS+=div.3 ldiv.3 \
77	div.3 lldiv.3 \
78	div.3 imaxdiv.3
79MLINKS+=getenv.3 setenv.3 getenv.3 unsetenv.3 getenv.3 putenv.3
80MLINKS+=getenv.3 getenv_r.3
81MLINKS+=hcreate.3 hdestroy.3 hcreate.3 hsearch.3
82MLINKS+=hcreate.3 hcreate_r.3 hcreate.3 hdestroy_r.3 hcreate.3 hsearch_r.3
83MLINKS+=hcreate.3 hdestroy1.3 hcreate.3 hdestroy1_r.3
84MLINKS+=insque.3 remque.3
85MLINKS+=jemalloc.3 malloc.conf.5
86MLINKS+=lsearch.3 lfind.3
87MLINKS+=malloc.3 calloc.3 malloc.3 realloc.3 malloc.3 free.3
88MLINKS+=posix_memalign.3 aligned_alloc.3
89MLINKS+=qsort.3 heapsort.3 qsort.3 mergesort.3
90MLINKS+=ptsname.3 ptsname_r.3
91MLINKS+=rand.3 rand_r.3
92MLINKS+=rand.3 srand.3
93MLINKS+=rand48.3 drand48.3 rand48.3 erand48.3 rand48.3 lrand48.3
94MLINKS+=rand48.3 mrand48.3 rand48.3 nrand48.3 rand48.3 jrand48.3
95MLINKS+=rand48.3 srand48.3 rand48.3 seed48.3 rand48.3 lcong48.3
96MLINKS+=random.3 initstate.3 random.3 setstate.3 random.3 srandom.3
97MLINKS+=radixsort.3 sradixsort.3
98MLINKS+=strfmon.3 strfmon_l.3
99MLINKS+=strsuftoll.3 strsuftollx.3
100MLINKS+=strtod.3 strtof.3 strtod.3 strtold.3
101MLINKS+=strtol.3 strtoimax.3
102MLINKS+=strtol.3 strtoll.3
103MLINKS+=strtol.3 strtoq.3
104MLINKS+=strtoul.3 strtoull.3
105MLINKS+=strtoul.3 strtoumax.3
106MLINKS+=strtoul.3 strtouq.3
107MLINKS+=tsearch.3 tfind.3 tsearch.3 twalk.3 tsearch.3 tdelete.3
108
109# lint(1) spuriously complains about `*s == CHAR_MAX' even though *s
110# has type char.
111LINTFLAGS.strfmon.c += -X 230
112
113# jemalloc
114LINTFLAGS.arena.c += -X 86,117,161,191,193,207,217,226
115LINTFLAGS.background_thread.c += -X 86,117,132,161,191,193,207,217,226
116LINTFLAGS.base.c += -X 86,117,161,191,193,207,217,226
117LINTFLAGS.bin.c += -X 86,117,161,191,193,207,217,226
118LINTFLAGS.bitmap.c += -X 86,117,161,191,193,207,217,226
119LINTFLAGS.chk.c += -X 191,193,217,226,239
120LINTFLAGS.ckh.c += -X 86,117,161,191,193,207,217,226,239,284
121LINTFLAGS.ctl.c += -X 86,117,135,161,193,191,207,217,226
122LINTFLAGS.divide.c += -X 226
123LINTFLAGS.extent.c += -X 86,161,117,191,193,207,217,226
124LINTFLAGS.extent_dss.c += -X 86,117,161,191,193,207,217,226
125LINTFLAGS.extent_mmap.c += -X 86,117,161,191,193,207,217,226
126LINTFLAGS.jemalloc.c += -X 86,117,161,191,193,207,217,226,236,307
127LINTFLAGS.jemalloc.c += -X 141 # i386
128LINTFLAGS.hooks.c += -X 226
129LINTFLAGS.large.c += -X 86,161,117,191,193,207,217,226
130LINTFLAGS.log.c += -X 86,117,161,191,193,207,217,226
131LINTFLAGS.malloc_io.c += -X 86,117,161,191,193,207,217,226,284
132LINTFLAGS.malloc_io.c += -X 132 # i386
133LINTFLAGS.mutex.c += -X 86,117,161,191,193,207,217,226
134LINTFLAGS.mutex_pool.c += -X 86,117,161,191,193,207,217,226
135LINTFLAGS.nstime.c += -X 86,117,161,191,193,207,217,226
136LINTFLAGS.pages.c += -X 86,117,161,191,193,207,217,226,298
137LINTFLAGS.prng.c += -X 86,117,161,191,193,207,217,226
138LINTFLAGS.prof.c += -X 86,117,161,181,191,193,207,217,226,236
139LINTFLAGS.rtree.c += -X 86,117,161,191,193,207,217,226,239
140LINTFLAGS.sz.c += -X 86,226
141LINTFLAGS.stats.c += -X 42,86,117,135,161,191,193,207,217,226,247,351
142LINTFLAGS.tcache.c += -X 86,117,161,191,193,207,217,226,239,309
143LINTFLAGS.ticker.c += -X 86,117,161,191,193,207,217,226
144LINTFLAGS.tsd.c += -X 86,117,161,191,193,207,217,226,346,351
145LINTFLAGS.witness.c += -X 86,117,161,191,193,207,217,226
146