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