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 = \ 17*b1c37be5SHans Rosenfeld fdclose \ 18cd62a92dSRobert Mustacchi fileno \ 19cd62a92dSRobert Mustacchi fmemopentest \ 20cd62a92dSRobert Mustacchi ftell_ungetc \ 21cd62a92dSRobert Mustacchi memstream \ 22cd62a92dSRobert Mustacchi memstream_reopen \ 23cd62a92dSRobert Mustacchi open_memstreamtest \ 24cd62a92dSRobert Mustacchi orientation_test \ 25cd62a92dSRobert Mustacchi test_mbrtowc 26cd62a92dSRobert Mustacchi 27cf3ec608SRobert MustacchiLFSPROGS = \ 28cf3ec608SRobert Mustacchi ftello_12768 29cf3ec608SRobert Mustacchi 30cd62a92dSRobert MustacchiPROGS32 = $(PROGS:%=%.32) 31cf3ec608SRobert MustacchiPROGSLFS = $(LFSPROGS:%=%.lfs) 32cf3ec608SRobert MustacchiPROGS64 = $(PROGS:%=%.64) $(LFSPROGS:%=%.64) 33cd62a92dSRobert Mustacchi 34cd62a92dSRobert MustacchiROOTOPTDIR = $(ROOT)/opt/libc-tests/tests 35cd62a92dSRobert MustacchiROOTOPTSTDIO = $(ROOTOPTDIR)/stdio 36cd62a92dSRobert MustacchiROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTSTDIO)/%) \ 37cf3ec608SRobert Mustacchi $(PROGS64:%=$(ROOTOPTSTDIO)/%) \ 38cf3ec608SRobert Mustacchi $(PROGSLFS:%=$(ROOTOPTSTDIO)/%) 39cd62a92dSRobert Mustacchi 40cd62a92dSRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 41cd62a92dSRobert Mustacchi 42cd62a92dSRobert MustacchiCPPFLAGS += -D_REENTRANT -D__EXTENSIONS__ 43cf3ec608SRobert MustacchiLFSCPPFLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 44cd62a92dSRobert Mustacchi 45cd62a92dSRobert Mustacchi# 46cd62a92dSRobert Mustacchi# libumem is used to interpose on all of these tests to modify the 47cd62a92dSRobert Mustacchi# behavior of libc's malloc for additional debugging. Each of the tests 48cd62a92dSRobert Mustacchi# enables umem debugging in their program text. 49cd62a92dSRobert Mustacchi# 50cd62a92dSRobert MustacchiLDLIBS += -lumem 51cd62a92dSRobert MustacchiLDLIBS64 += -lumem 52cd62a92dSRobert Mustacchi 53cd62a92dSRobert Mustacchi# 54cd62a92dSRobert Mustacchi# This test requires C99/xpg6 behavior. Therefore we build it explicitly 55cd62a92dSRobert Mustacchi# with c99 and XPG7 so it has access to the required functions. 56cd62a92dSRobert Mustacchi# 57cd62a92dSRobert Mustacchimemstream_reopen.32 := CPPFLAGS += -D_XOPEN_SOURCE=700 58cd62a92dSRobert Mustacchimemstream_reopen.64 := CPPFLAGS += -D_XOPEN_SOURCE=700 59cd62a92dSRobert Mustacchimemstream_reopen.32 := CSTD = $(CSTD_GNU99) 60cd62a92dSRobert Mustacchimemstream_reopen.64 := CSTD = $(CSTD_GNU99) 61cd62a92dSRobert Mustacchi 62cd62a92dSRobert Mustacchi# Third-party code 63cd62a92dSRobert Mustacchiorientation_test.32 := SMOFF += all_func_returns 64cd62a92dSRobert Mustacchiorientation_test.64 := SMOFF += all_func_returns 65cd62a92dSRobert Mustacchi 66cd62a92dSRobert Mustacchi.KEEP_STATE: 67cd62a92dSRobert Mustacchi 68cd62a92dSRobert Mustacchiall: $(PROGS32) $(PROGS64) 69cd62a92dSRobert Mustacchi 70cf3ec608SRobert Mustacchiinstall: $(ROOTOPTPROGS) 71cf3ec608SRobert Mustacchi 72cd62a92dSRobert Mustacchiclean: 73cd62a92dSRobert Mustacchi 74cd62a92dSRobert Mustacchi$(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTSTDIO) 75cd62a92dSRobert Mustacchi 76cd62a92dSRobert Mustacchi$(ROOTOPTDIR): 77cd62a92dSRobert Mustacchi $(INS.dir) 78cd62a92dSRobert Mustacchi 79cd62a92dSRobert Mustacchi$(ROOTOPTSTDIO): $(ROOTOPTDIR) 80cd62a92dSRobert Mustacchi $(INS.dir) 81cd62a92dSRobert Mustacchi 82cd62a92dSRobert Mustacchi$(ROOTOPTSTDIO)/%: % 83cd62a92dSRobert Mustacchi $(INS.file) 84cd62a92dSRobert Mustacchi 85cd62a92dSRobert Mustacchi%.64: %.c 86cd62a92dSRobert Mustacchi $(LINK64.c) -o $@ $< $(LDLIBS64) 87cd62a92dSRobert Mustacchi $(POST_PROCESS) 88cd62a92dSRobert Mustacchi 89cf3ec608SRobert Mustacchi%.lfs: %.c 90cf3ec608SRobert Mustacchi $(LINK.c) $(LFSCPPFLAGS) -o $@ $< $(LDLIBS) 91cf3ec608SRobert Mustacchi $(POST_PROCESS) 92cf3ec608SRobert Mustacchi 93cd62a92dSRobert Mustacchi%.32: %.c 94cd62a92dSRobert Mustacchi $(LINK.c) -o $@ $< $(LDLIBS) 95cd62a92dSRobert Mustacchi $(POST_PROCESS) 96cd62a92dSRobert Mustacchi 97cd62a92dSRobert Mustacchiclobber: 98cd62a92dSRobert Mustacchi $(RM) $(PROGS32) $(PROGS64) 99cd62a92dSRobert Mustacchi 100cd62a92dSRobert MustacchiFRC: 101