xref: /illumos-gate/usr/src/test/libc-tests/tests/Makefile (revision 4f2483e5d0c339c7ac30db66a67c108da0b33ca6)
12d08521bSGarrett D'Amore#
22d08521bSGarrett D'Amore# This file and its contents are supplied under the terms of the
32d08521bSGarrett D'Amore# Common Development and Distribution License ("CDDL"), version 1.0.
42d08521bSGarrett D'Amore# You may only use this file in accordance with the terms of version
52d08521bSGarrett D'Amore# 1.0 of the CDDL.
62d08521bSGarrett D'Amore#
72d08521bSGarrett D'Amore# A full copy of the text of the CDDL should have accompanied this
82d08521bSGarrett D'Amore# source.  A copy of the CDDL is also available via the Internet at
92d08521bSGarrett D'Amore# http://www.illumos.org/license/CDDL.
102d08521bSGarrett D'Amore#
112d08521bSGarrett D'Amore
122d08521bSGarrett D'Amore#
132d08521bSGarrett D'Amore# Copyright (c) 2012 by Delphix. All rights reserved.
14de572d98SGarrett D'Amore# Copyright 2015 Garrett D'Amore <garrett@damore.org>
1544bf619dSJohn Levon# Copyright 2019 Joyent, Inc.
16621b6cf7SAndy Fiddaman# Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
17a87ab1eaSBill Sommerfeld# Copyright 2023 Bill Sommerfeld <sommerfeld@alum.mit.edu>
18bb9475a1SRobert Mustacchi# Copyright 2025 Oxide Computer Company
192d08521bSGarrett D'Amore#
202d08521bSGarrett D'Amore
21b599bd93SRobert MustacchiSUBDIRS = \
22b599bd93SRobert Mustacchi	catopen \
238b6b46dcSRobert Mustacchi	clocklock \
24621b6cf7SAndy Fiddaman	err \
252b395c3cSAndy Fiddaman	fexecve \
26b599bd93SRobert Mustacchi	fpround \
270a9a25a2SRichard Hansen	i18n \
28b599bd93SRobert Mustacchi	newlocale \
29b599bd93SRobert Mustacchi	nl_langinfo \
3081e874d2SHans Rosenfeld	printf-intmax \
31b599bd93SRobert Mustacchi	priv_gettext \
3244431c82SRobert Mustacchi	qsort \
333114379fSRobert Mustacchi	posix_spawn \
34b599bd93SRobert Mustacchi	random \
35490fea6bSYuri Pankov	regex \
362209d3c8SRichard Lowe	select \
37cd62a92dSRobert Mustacchi	stdio \
38b599bd93SRobert Mustacchi	symbols \
39e56998eeSRobert Mustacchi	threads \
40b599bd93SRobert Mustacchi	wcsrtombs \
41b599bd93SRobert Mustacchi	wctype
422d08521bSGarrett D'Amore
43fc2512cfSRobert MustacchiPROGS = \
44fc2512cfSRobert Mustacchi	aligned_alloc \
4572af5a45SBill Sommerfeld	ascftime \
464322dd90SRobert Mustacchi	asprintf-14933 \
47fc2512cfSRobert Mustacchi	c11_threads \
48fc2512cfSRobert Mustacchi	c11_tss \
49fc2512cfSRobert Mustacchi	call_once \
50a87ab1eaSBill Sommerfeld	closefrom \
5134b5c75aSHans Rosenfeld	dprintf \
527dc9a163SRobert Mustacchi	endian \
5360b81b86SRobert Mustacchi	env-7076 \
54f52b16c6SYuri Pankov	fnmatch \
55004345e4SRobert Mustacchi	getlocname \
56cfa8d083SRobert Mustacchi	isatty \
57*4f2483e5SBill Sommerfeld	localeconv \
58d6bf1708SRobert Mustacchi	memchr \
5900efb5e1SYuri Pankov	memset_s \
60f2eefd9cSRobert Mustacchi	mutex_attr \
6150718d3eSRobert Mustacchi	mutex-16200 \
62a547acf9SRichard Lowe	posix_memalign \
6306ca4e39SAndy Fiddaman	printf-15294 \
64804635d7SYuri Pankov	printf-9511 \
6549add8ecSRobert Mustacchi	psignal-5097 \
668b913f79SRobert Mustacchi	ptsname \
67fc2512cfSRobert Mustacchi	quick_exit_order \
68fc2512cfSRobert Mustacchi	quick_exit_status \
6900efb5e1SYuri Pankov	set_constraint_handler_s \
70efcfb316SYuri Pankov	strcoll-strxfrm-6907 \
71aaceae98SRobert Mustacchi	stdbit \
72faadcf7eSRobert Mustacchi	strerror \
73223750d9SAndy Fiddaman	strtonum \
74*4f2483e5SBill Sommerfeld	strtox \
75f2d34afaSRobert Mustacchi	timespec_get \
76d3aba683SRobert Mustacchi	timespec_getres \
7771f3ceb9SRobert Mustacchi	wcslcat \
7871f3ceb9SRobert Mustacchi	wcslcpy \
79*4f2483e5SBill Sommerfeld	wcsftime \
80*4f2483e5SBill Sommerfeld	wcsftime_old \
81f2d34afaSRobert Mustacchi	wcsncasecmp \
82f2d34afaSRobert Mustacchi	wcsncasecmp-7344 \
83eda3ef2dSRobert Mustacchi	wcsncasecmp-7350 \
84b7a77849SAndy Fiddaman	uchar \
85b7a77849SAndy Fiddaman	utimes
86fc2512cfSRobert Mustacchi
87fc2512cfSRobert MustacchiSCRIPTS = \
883448eae2SRobert Mustacchi	aligned_alloc \
8949add8ecSRobert Mustacchi	quick_exit \
9049add8ecSRobert Mustacchi	psignal
91fc2512cfSRobert Mustacchi
92fc2512cfSRobert MustacchiCPPFLAGS += -D_REENTRANT
93fc2512cfSRobert Mustacchi
94fc2512cfSRobert MustacchiPROGS32 = $(PROGS:%=%.32)
95afc62b4bSRobert MustacchiPROGS64 = \
96afc62b4bSRobert Mustacchi	$(PROGS:%=%.64) \
97afc62b4bSRobert Mustacchi	printf-6961.64
98fc2512cfSRobert Mustacchi
99bb9475a1SRobert Mustacchialigned_alloc.32 :=	CSTD=$(CSTD_GNU17)
100bb9475a1SRobert Mustacchialigned_alloc.64 :=	CSTD=$(CSTD_GNU17)
101fc2512cfSRobert Mustacchialigned_alloc.32 :=	LDLIBS += -lproc
102fc2512cfSRobert Mustacchialigned_alloc.64 :=	LDLIBS64 += -lproc
103a547acf9SRichard Loweposix_memalign.32 :=	LDLIBS += -lproc
104a547acf9SRichard Loweposix_memalign.64 :=	LDLIBS64 += -lproc
105fc2512cfSRobert Mustacchi
106bb9475a1SRobert Mustacchiasprintf-14933.32 :=	CSTD=$(CSTD_GNU17)
107bb9475a1SRobert Mustacchiasprintf-14933.64 :=	CSTD=$(CSTD_GNU17)
1084322dd90SRobert Mustacchi
10934b5c75aSHans Rosenfelddprintf.32 :=	CSTD=$(CSTD_GNU17)
11034b5c75aSHans Rosenfelddprintf.64 :=	CSTD=$(CSTD_GNU17)
11134b5c75aSHans Rosenfelddprintf.32 :=	CPPFLAGS += -D_XOPEN_SOURCE=700 -D__EXTENSIONS__
11234b5c75aSHans Rosenfelddprintf.64 :=	CPPFLAGS += -D_XOPEN_SOURCE=700 -D__EXTENSIONS__
11334b5c75aSHans Rosenfeld
11400efb5e1SYuri Pankovmemset_s.32 :=	CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
11500efb5e1SYuri Pankovmemset_s.64 :=	CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
11600efb5e1SYuri Pankovset_constraint_handler_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
11700efb5e1SYuri Pankovset_constraint_handler_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
11800efb5e1SYuri Pankov
119004345e4SRobert Mustacchigetlocname.32 := CSTD=$(CSTD_GNU17)
120004345e4SRobert Mustacchigetlocname.64 := CSTD=$(CSTD_GNU17)
121004345e4SRobert Mustacchi
122bb9475a1SRobert Mustacchiisatty.32 :=	CSTD=$(CSTD_GNU17)
123bb9475a1SRobert Mustacchiisatty.64 :=	CSTD=$(CSTD_GNU17)
124cfa8d083SRobert Mustacchi
125*4f2483e5SBill Sommerfeldlocaleconv.32 :=	CSTD=$(CSTD_GNU17)
126*4f2483e5SBill Sommerfeldlocaleconv.64 :=	CSTD=$(CSTD_GNU17)
127*4f2483e5SBill Sommerfeld
12850718d3eSRobert Mustacchimutex-16200.32 :=	LDLIBS += -lproc
12950718d3eSRobert Mustacchimutex-16200.64 :=	LDLIBS64 += -lproc
130bb9475a1SRobert Mustacchimutex-16200.32 :=	CSTD=$(CSTD_GNU17)
131bb9475a1SRobert Mustacchimutex-16200.64 :=	CSTD=$(CSTD_GNU17)
132f2eefd9cSRobert Mustacchimutex_attr.32 :=	CSTD=$(CSTD_GNU17)
133f2eefd9cSRobert Mustacchimutex_attr.64 :=	CSTD=$(CSTD_GNU17)
13450718d3eSRobert Mustacchi
1358b913f79SRobert Mustacchiptsname.32 :=		LDLIBS += -lsocket
1368b913f79SRobert Mustacchiptsname.64 :=		LDLIBS64 += -lsocket
1378b913f79SRobert Mustacchi
138bb9475a1SRobert Mustacchistdbit.32 :=	CSTD=$(CSTD_GNU17)
139bb9475a1SRobert Mustacchistdbit.64 :=	CSTD=$(CSTD_GNU17)
140aaceae98SRobert Mustacchi
141bb9475a1SRobert Mustacchistrtonum.32 :=		CSTD=$(CSTD_GNU17)
142bb9475a1SRobert Mustacchistrtonum.64 :=		CSTD=$(CSTD_GNU17)
143223750d9SAndy Fiddaman
144*4f2483e5SBill Sommerfeldstrtox.32 :=		CSTD=$(CSTD_GNU17)
145*4f2483e5SBill Sommerfeldstrtox.64 :=		CSTD=$(CSTD_GNU17)
146*4f2483e5SBill Sommerfeld
147d3aba683SRobert Mustacchitimespec_get.32 :=	CSTD=$(CSTD_GNU17)
148d3aba683SRobert Mustacchitimespec_get.64 :=	CSTD=$(CSTD_GNU17)
149d3aba683SRobert Mustacchitimespec_getres.32 :=	CSTD=$(CSTD_GNU17)
150d3aba683SRobert Mustacchitimespec_getres.64 :=	CSTD=$(CSTD_GNU17)
151d3aba683SRobert Mustacchi
152*4f2483e5SBill Sommerfeldwcsftime.32 :=		CSTD=$(CSTD_GNU17)
153*4f2483e5SBill Sommerfeldwcsftime.64 :=		CSTD=$(CSTD_GNU17)
154*4f2483e5SBill Sommerfeld
155*4f2483e5SBill Sommerfeld# This tests the XPG4 wcsftime(), so build it with XPG4-era C.
156*4f2483e5SBill Sommerfeldwcsftime_old.32 :=	CSTD=$(CSTD_GNU89)
157*4f2483e5SBill Sommerfeldwcsftime_old.64 :=	CSTD=$(CSTD_GNU89)
158*4f2483e5SBill Sommerfeld
159bb9475a1SRobert Mustacchiwcslcat.32 :=		CSTD=$(CSTD_GNU17)
160bb9475a1SRobert Mustacchiwcslcat.64 :=		CSTD=$(CSTD_GNU17)
161bb9475a1SRobert Mustacchiwcslcpy.32 :=		CSTD=$(CSTD_GNU17)
162bb9475a1SRobert Mustacchiwcslcpy.64 :=		CSTD=$(CSTD_GNU17)
16371f3ceb9SRobert Mustacchi
164fc2512cfSRobert MustacchiROOTOPTDIR = $(ROOT)/opt/libc-tests/tests
165fc2512cfSRobert MustacchiROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \
166fc2512cfSRobert Mustacchi	$(PROGS64:%=$(ROOTOPTDIR)/%) \
167fc2512cfSRobert Mustacchi	$(SCRIPTS:%=$(ROOTOPTDIR)/%)
168fc2512cfSRobert Mustacchi
169fc2512cfSRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd
170fc2512cfSRobert Mustacchi
171fc2512cfSRobert Mustacchiall     :=      TARGET = all
172fc2512cfSRobert Mustacchiinstall :=      TARGET = install
173fc2512cfSRobert Mustacchiclean   :=      TARGET = clean
174fc2512cfSRobert Mustacchiclobber :=      TARGET = clobber
175fc2512cfSRobert Mustacchilint    :=      TARGET = lint
176fc2512cfSRobert Mustacchi
177fc2512cfSRobert Mustacchi.KEEP_STATE:
178fc2512cfSRobert Mustacchi
179fc2512cfSRobert Mustacchiinstall: $(SUBDIRS) $(ROOTOPTPROGS)
180fc2512cfSRobert Mustacchi
181fc2512cfSRobert Mustacchiall: $(SUBDIRS) $(PROGS32) $(PROGS64)
182fc2512cfSRobert Mustacchi
183fc2512cfSRobert Mustacchiclean lint: $(SUBDIRS)
184fc2512cfSRobert Mustacchi
185fc2512cfSRobert Mustacchi$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR)
186fc2512cfSRobert Mustacchi
187fc2512cfSRobert Mustacchi$(ROOTOPTDIR):
188fc2512cfSRobert Mustacchi	$(INS.dir)
189fc2512cfSRobert Mustacchi
190fc2512cfSRobert Mustacchi$(ROOTOPTDIR)/%: %
191fc2512cfSRobert Mustacchi	$(INS.file)
192fc2512cfSRobert Mustacchi
193fc2512cfSRobert Mustacchi$(ROOTOPTDIR)/%: %.ksh
194fc2512cfSRobert Mustacchi	$(INS.rename)
195fc2512cfSRobert Mustacchi
196fc2512cfSRobert Mustacchi%.64: %.c
1971919e1f7SRichard Lowe	$(LINK64.c) -o $@ $< $(LDLIBS64)
198fc2512cfSRobert Mustacchi	$(POST_PROCESS)
199fc2512cfSRobert Mustacchi
200fc2512cfSRobert Mustacchi%.32: %.c
2019c05409fSRichard Lowe	$(LINK.c) -o $@ $< $(LDLIBS)
202fc2512cfSRobert Mustacchi	$(POST_PROCESS)
203fc2512cfSRobert Mustacchi
204fc2512cfSRobert Mustacchiclobber: $(SUBDIRS)
205fc2512cfSRobert Mustacchi	$(RM) $(PROGS32) $(PROGS64)
206fc2512cfSRobert Mustacchi
207fc2512cfSRobert Mustacchi$(SUBDIRS): FRC
208fc2512cfSRobert Mustacchi	@cd $@; pwd; $(MAKE) $(TARGET)
209fc2512cfSRobert Mustacchi
210fc2512cfSRobert MustacchiFRC:
211