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