1cd62a92dSRobert Mustacchi# 2cd62a92dSRobert Mustacchi# This file and its contents are supplied under the terms of the 3cd62a92dSRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0. 4cd62a92dSRobert Mustacchi# You may only use this file in accordance with the terms of version 5cd62a92dSRobert Mustacchi# 1.0 of the CDDL. 6cd62a92dSRobert Mustacchi# 7cd62a92dSRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this 8cd62a92dSRobert Mustacchi# source. A copy of the CDDL is also available via the Internet at 9cd62a92dSRobert Mustacchi# http://www.illumos.org/license/CDDL. 10cd62a92dSRobert Mustacchi# 11cd62a92dSRobert Mustacchi 12cd62a92dSRobert Mustacchi# 13cd62a92dSRobert Mustacchi# Copyright 2020 Robert Mustacchi 14cd62a92dSRobert Mustacchi# 15cd62a92dSRobert Mustacchi 16cd62a92dSRobert MustacchiPROGS = \ 17cd62a92dSRobert Mustacchi fileno \ 18cd62a92dSRobert Mustacchi fmemopentest \ 19cd62a92dSRobert Mustacchi ftell_ungetc \ 20cd62a92dSRobert Mustacchi memstream \ 21cd62a92dSRobert Mustacchi memstream_reopen \ 22cd62a92dSRobert Mustacchi open_memstreamtest \ 23cd62a92dSRobert Mustacchi orientation_test \ 24cd62a92dSRobert Mustacchi test_mbrtowc 25cd62a92dSRobert Mustacchi 26*cf3ec608SRobert MustacchiLFSPROGS = \ 27*cf3ec608SRobert Mustacchi ftello_12768 28*cf3ec608SRobert Mustacchi 29cd62a92dSRobert MustacchiPROGS32 = $(PROGS:%=%.32) 30*cf3ec608SRobert MustacchiPROGSLFS = $(LFSPROGS:%=%.lfs) 31*cf3ec608SRobert MustacchiPROGS64 = $(PROGS:%=%.64) $(LFSPROGS:%=%.64) 32cd62a92dSRobert Mustacchi 33cd62a92dSRobert MustacchiROOTOPTDIR = $(ROOT)/opt/libc-tests/tests 34cd62a92dSRobert MustacchiROOTOPTSTDIO = $(ROOTOPTDIR)/stdio 35cd62a92dSRobert MustacchiROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTSTDIO)/%) \ 36*cf3ec608SRobert Mustacchi $(PROGS64:%=$(ROOTOPTSTDIO)/%) \ 37*cf3ec608SRobert Mustacchi $(PROGSLFS:%=$(ROOTOPTSTDIO)/%) 38cd62a92dSRobert Mustacchi 39cd62a92dSRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 40cd62a92dSRobert Mustacchi 41cd62a92dSRobert MustacchiCPPFLAGS += -D_REENTRANT -D__EXTENSIONS__ 42*cf3ec608SRobert MustacchiLFSCPPFLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 43cd62a92dSRobert Mustacchi 44cd62a92dSRobert Mustacchi# 45cd62a92dSRobert Mustacchi# libumem is used to interpose on all of these tests to modify the 46cd62a92dSRobert Mustacchi# behavior of libc's malloc for additional debugging. Each of the tests 47cd62a92dSRobert Mustacchi# enables umem debugging in their program text. 48cd62a92dSRobert Mustacchi# 49cd62a92dSRobert MustacchiLDLIBS += -lumem 50cd62a92dSRobert MustacchiLDLIBS64 += -lumem 51cd62a92dSRobert Mustacchi 52cd62a92dSRobert Mustacchi# 53cd62a92dSRobert Mustacchi# This test requires C99/xpg6 behavior. Therefore we build it explicitly 54cd62a92dSRobert Mustacchi# with c99 and XPG7 so it has access to the required functions. 55cd62a92dSRobert Mustacchi# 56cd62a92dSRobert Mustacchimemstream_reopen.32 := CPPFLAGS += -D_XOPEN_SOURCE=700 57cd62a92dSRobert Mustacchimemstream_reopen.64 := CPPFLAGS += -D_XOPEN_SOURCE=700 58cd62a92dSRobert Mustacchimemstream_reopen.32 := CSTD = $(CSTD_GNU99) 59cd62a92dSRobert Mustacchimemstream_reopen.64 := CSTD = $(CSTD_GNU99) 60cd62a92dSRobert Mustacchi 61cd62a92dSRobert Mustacchi# Third-party code 62cd62a92dSRobert Mustacchiorientation_test.32 := SMOFF += all_func_returns 63cd62a92dSRobert Mustacchiorientation_test.64 := SMOFF += all_func_returns 64cd62a92dSRobert Mustacchi 65cd62a92dSRobert Mustacchi.KEEP_STATE: 66cd62a92dSRobert Mustacchi 67cd62a92dSRobert Mustacchiall: $(PROGS32) $(PROGS64) 68cd62a92dSRobert Mustacchi 69*cf3ec608SRobert Mustacchiinstall: $(ROOTOPTPROGS) 70*cf3ec608SRobert Mustacchi 71cd62a92dSRobert Mustacchiclean: 72cd62a92dSRobert Mustacchi 73cd62a92dSRobert Mustacchi$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSTDIO) 74cd62a92dSRobert Mustacchi 75cd62a92dSRobert Mustacchi$(ROOTOPTDIR): 76cd62a92dSRobert Mustacchi $(INS.dir) 77cd62a92dSRobert Mustacchi 78cd62a92dSRobert Mustacchi$(ROOTOPTSTDIO): $(ROOTOPTDIR) 79cd62a92dSRobert Mustacchi $(INS.dir) 80cd62a92dSRobert Mustacchi 81cd62a92dSRobert Mustacchi$(ROOTOPTSTDIO)/%: % 82cd62a92dSRobert Mustacchi $(INS.file) 83cd62a92dSRobert Mustacchi 84cd62a92dSRobert Mustacchi%.64: %.c 85cd62a92dSRobert Mustacchi $(LINK64.c) -o $@ $< $(LDLIBS64) 86cd62a92dSRobert Mustacchi $(POST_PROCESS) 87cd62a92dSRobert Mustacchi 88*cf3ec608SRobert Mustacchi%.lfs: %.c 89*cf3ec608SRobert Mustacchi $(LINK.c) $(LFSCPPFLAGS) -o $@ $< $(LDLIBS) 90*cf3ec608SRobert Mustacchi $(POST_PROCESS) 91*cf3ec608SRobert Mustacchi 92cd62a92dSRobert Mustacchi%.32: %.c 93cd62a92dSRobert Mustacchi $(LINK.c) -o $@ $< $(LDLIBS) 94cd62a92dSRobert Mustacchi $(POST_PROCESS) 95cd62a92dSRobert Mustacchi 96cd62a92dSRobert Mustacchiclobber: 97cd62a92dSRobert Mustacchi $(RM) $(PROGS32) $(PROGS64) 98cd62a92dSRobert Mustacchi 99cd62a92dSRobert MustacchiFRC: 100