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 \ 574f2483e5SBill 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 \ 744f2483e5SBill Sommerfeld strtox \ 75*060623f0SHans Rosenfeld swprintf-17781 \ 76f2d34afaSRobert Mustacchi timespec_get \ 77d3aba683SRobert Mustacchi timespec_getres \ 7871f3ceb9SRobert Mustacchi wcslcat \ 7971f3ceb9SRobert Mustacchi wcslcpy \ 804f2483e5SBill Sommerfeld wcsftime \ 814f2483e5SBill Sommerfeld wcsftime_old \ 82f2d34afaSRobert Mustacchi wcsncasecmp \ 83f2d34afaSRobert Mustacchi wcsncasecmp-7344 \ 84eda3ef2dSRobert Mustacchi wcsncasecmp-7350 \ 85b7a77849SAndy Fiddaman uchar \ 86b7a77849SAndy Fiddaman utimes 87fc2512cfSRobert Mustacchi 88fc2512cfSRobert MustacchiSCRIPTS = \ 893448eae2SRobert Mustacchi aligned_alloc \ 9049add8ecSRobert Mustacchi quick_exit \ 9149add8ecSRobert Mustacchi psignal 92fc2512cfSRobert Mustacchi 93fc2512cfSRobert MustacchiCPPFLAGS += -D_REENTRANT 94fc2512cfSRobert Mustacchi 95fc2512cfSRobert MustacchiPROGS32 = $(PROGS:%=%.32) 96afc62b4bSRobert MustacchiPROGS64 = \ 97afc62b4bSRobert Mustacchi $(PROGS:%=%.64) \ 98afc62b4bSRobert Mustacchi printf-6961.64 99fc2512cfSRobert Mustacchi 100bb9475a1SRobert Mustacchialigned_alloc.32 := CSTD=$(CSTD_GNU17) 101bb9475a1SRobert Mustacchialigned_alloc.64 := CSTD=$(CSTD_GNU17) 102fc2512cfSRobert Mustacchialigned_alloc.32 := LDLIBS += -lproc 103fc2512cfSRobert Mustacchialigned_alloc.64 := LDLIBS64 += -lproc 104a547acf9SRichard Loweposix_memalign.32 := LDLIBS += -lproc 105a547acf9SRichard Loweposix_memalign.64 := LDLIBS64 += -lproc 106fc2512cfSRobert Mustacchi 107bb9475a1SRobert Mustacchiasprintf-14933.32 := CSTD=$(CSTD_GNU17) 108bb9475a1SRobert Mustacchiasprintf-14933.64 := CSTD=$(CSTD_GNU17) 1094322dd90SRobert Mustacchi 11034b5c75aSHans Rosenfelddprintf.32 := CSTD=$(CSTD_GNU17) 11134b5c75aSHans Rosenfelddprintf.64 := CSTD=$(CSTD_GNU17) 11234b5c75aSHans Rosenfelddprintf.32 := CPPFLAGS += -D_XOPEN_SOURCE=700 -D__EXTENSIONS__ 11334b5c75aSHans Rosenfelddprintf.64 := CPPFLAGS += -D_XOPEN_SOURCE=700 -D__EXTENSIONS__ 11434b5c75aSHans Rosenfeld 11500efb5e1SYuri Pankovmemset_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1 11600efb5e1SYuri Pankovmemset_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1 11700efb5e1SYuri Pankovset_constraint_handler_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1 11800efb5e1SYuri Pankovset_constraint_handler_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1 11900efb5e1SYuri Pankov 120004345e4SRobert Mustacchigetlocname.32 := CSTD=$(CSTD_GNU17) 121004345e4SRobert Mustacchigetlocname.64 := CSTD=$(CSTD_GNU17) 122004345e4SRobert Mustacchi 123bb9475a1SRobert Mustacchiisatty.32 := CSTD=$(CSTD_GNU17) 124bb9475a1SRobert Mustacchiisatty.64 := CSTD=$(CSTD_GNU17) 125cfa8d083SRobert Mustacchi 1264f2483e5SBill Sommerfeldlocaleconv.32 := CSTD=$(CSTD_GNU17) 1274f2483e5SBill Sommerfeldlocaleconv.64 := CSTD=$(CSTD_GNU17) 1284f2483e5SBill Sommerfeld 12950718d3eSRobert Mustacchimutex-16200.32 := LDLIBS += -lproc 13050718d3eSRobert Mustacchimutex-16200.64 := LDLIBS64 += -lproc 131bb9475a1SRobert Mustacchimutex-16200.32 := CSTD=$(CSTD_GNU17) 132bb9475a1SRobert Mustacchimutex-16200.64 := CSTD=$(CSTD_GNU17) 133f2eefd9cSRobert Mustacchimutex_attr.32 := CSTD=$(CSTD_GNU17) 134f2eefd9cSRobert Mustacchimutex_attr.64 := CSTD=$(CSTD_GNU17) 13550718d3eSRobert Mustacchi 1368b913f79SRobert Mustacchiptsname.32 := LDLIBS += -lsocket 1378b913f79SRobert Mustacchiptsname.64 := LDLIBS64 += -lsocket 1388b913f79SRobert Mustacchi 139bb9475a1SRobert Mustacchistdbit.32 := CSTD=$(CSTD_GNU17) 140bb9475a1SRobert Mustacchistdbit.64 := CSTD=$(CSTD_GNU17) 141aaceae98SRobert Mustacchi 142bb9475a1SRobert Mustacchistrtonum.32 := CSTD=$(CSTD_GNU17) 143bb9475a1SRobert Mustacchistrtonum.64 := CSTD=$(CSTD_GNU17) 144223750d9SAndy Fiddaman 1454f2483e5SBill Sommerfeldstrtox.32 := CSTD=$(CSTD_GNU17) 1464f2483e5SBill Sommerfeldstrtox.64 := CSTD=$(CSTD_GNU17) 1474f2483e5SBill Sommerfeld 148d3aba683SRobert Mustacchitimespec_get.32 := CSTD=$(CSTD_GNU17) 149d3aba683SRobert Mustacchitimespec_get.64 := CSTD=$(CSTD_GNU17) 150d3aba683SRobert Mustacchitimespec_getres.32 := CSTD=$(CSTD_GNU17) 151d3aba683SRobert Mustacchitimespec_getres.64 := CSTD=$(CSTD_GNU17) 152d3aba683SRobert Mustacchi 1534f2483e5SBill Sommerfeldwcsftime.32 := CSTD=$(CSTD_GNU17) 1544f2483e5SBill Sommerfeldwcsftime.64 := CSTD=$(CSTD_GNU17) 1554f2483e5SBill Sommerfeld 1564f2483e5SBill Sommerfeld# This tests the XPG4 wcsftime(), so build it with XPG4-era C. 1574f2483e5SBill Sommerfeldwcsftime_old.32 := CSTD=$(CSTD_GNU89) 1584f2483e5SBill Sommerfeldwcsftime_old.64 := CSTD=$(CSTD_GNU89) 1594f2483e5SBill Sommerfeld 160bb9475a1SRobert Mustacchiwcslcat.32 := CSTD=$(CSTD_GNU17) 161bb9475a1SRobert Mustacchiwcslcat.64 := CSTD=$(CSTD_GNU17) 162bb9475a1SRobert Mustacchiwcslcpy.32 := CSTD=$(CSTD_GNU17) 163bb9475a1SRobert Mustacchiwcslcpy.64 := CSTD=$(CSTD_GNU17) 16471f3ceb9SRobert Mustacchi 165fc2512cfSRobert MustacchiROOTOPTDIR = $(ROOT)/opt/libc-tests/tests 166fc2512cfSRobert MustacchiROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \ 167fc2512cfSRobert Mustacchi $(PROGS64:%=$(ROOTOPTDIR)/%) \ 168fc2512cfSRobert Mustacchi $(SCRIPTS:%=$(ROOTOPTDIR)/%) 169fc2512cfSRobert Mustacchi 170fc2512cfSRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 171fc2512cfSRobert Mustacchi 172fc2512cfSRobert Mustacchiall := TARGET = all 173fc2512cfSRobert Mustacchiinstall := TARGET = install 174fc2512cfSRobert Mustacchiclean := TARGET = clean 175fc2512cfSRobert Mustacchiclobber := TARGET = clobber 176fc2512cfSRobert Mustacchilint := TARGET = lint 177fc2512cfSRobert Mustacchi 178fc2512cfSRobert Mustacchi.KEEP_STATE: 179fc2512cfSRobert Mustacchi 180fc2512cfSRobert Mustacchiinstall: $(SUBDIRS) $(ROOTOPTPROGS) 181fc2512cfSRobert Mustacchi 182fc2512cfSRobert Mustacchiall: $(SUBDIRS) $(PROGS32) $(PROGS64) 183fc2512cfSRobert Mustacchi 184fc2512cfSRobert Mustacchiclean lint: $(SUBDIRS) 185fc2512cfSRobert Mustacchi 186fc2512cfSRobert Mustacchi$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR) 187fc2512cfSRobert Mustacchi 188fc2512cfSRobert Mustacchi$(ROOTOPTDIR): 189fc2512cfSRobert Mustacchi $(INS.dir) 190fc2512cfSRobert Mustacchi 191fc2512cfSRobert Mustacchi$(ROOTOPTDIR)/%: % 192fc2512cfSRobert Mustacchi $(INS.file) 193fc2512cfSRobert Mustacchi 194fc2512cfSRobert Mustacchi$(ROOTOPTDIR)/%: %.ksh 195fc2512cfSRobert Mustacchi $(INS.rename) 196fc2512cfSRobert Mustacchi 197fc2512cfSRobert Mustacchi%.64: %.c 1981919e1f7SRichard Lowe $(LINK64.c) -o $@ $< $(LDLIBS64) 199fc2512cfSRobert Mustacchi $(POST_PROCESS) 200fc2512cfSRobert Mustacchi 201fc2512cfSRobert Mustacchi%.32: %.c 2029c05409fSRichard Lowe $(LINK.c) -o $@ $< $(LDLIBS) 203fc2512cfSRobert Mustacchi $(POST_PROCESS) 204fc2512cfSRobert Mustacchi 205fc2512cfSRobert Mustacchiclobber: $(SUBDIRS) 206fc2512cfSRobert Mustacchi $(RM) $(PROGS32) $(PROGS64) 207fc2512cfSRobert Mustacchi 208fc2512cfSRobert Mustacchi$(SUBDIRS): FRC 209fc2512cfSRobert Mustacchi @cd $@; pwd; $(MAKE) $(TARGET) 210fc2512cfSRobert Mustacchi 211fc2512cfSRobert MustacchiFRC: 212