1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright (c) 2012 by Delphix. All rights reserved.
14 # Copyright 2015 Garrett D'Amore <garrett@damore.org>
15 # Copyright (c) 2018, Joyent, Inc.
16 #
17
18 SUBDIRS = \
19 catopen \
20 fpround \
21 newlocale \
22 nl_langinfo \
23 priv_gettext \
24 random \
25 regex \
26 select \
27 strerror \
28 symbols \
29 threads \
30 wcsrtombs \
31 wctype
32
33 PROGS = \
34 aligned_alloc \
35 c11_threads \
36 c11_tss \
37 call_once \
38 endian \
39 env-7076 \
40 fnmatch \
41 memset_s \
42 printf-9511 \
43 psignal-5097 \
44 quick_exit_order \
45 quick_exit_status \
46 set_constraint_handler_s \
47 strcoll-strxfrm-6907 \
48 timespec_get \
49 wcsncasecmp \
50 wcsncasecmp-7344 \
51 wcsncasecmp-7350
52
53 SCRIPTS = \
54 quick_exit \
55 psignal
56
57 CPPFLAGS += -D_REENTRANT
58
59 # needs work
60 SMOFF += all_func_returns,snprintf_overflow
61
62 PROGS32 = $(PROGS:%=%.32)
63 PROGS64 = \
64 $(PROGS:%=%.64) \
65 printf-6961.64
66
67 aligned_alloc.32 := LDLIBS += -lproc
68 aligned_alloc.64 := LDLIBS64 += -lproc
69
70 memset_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
71 memset_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
72 set_constraint_handler_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
73 set_constraint_handler_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
74
75 ROOTOPTDIR = $(ROOT)/opt/libc-tests/tests
76 ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \
77 $(PROGS64:%=$(ROOTOPTDIR)/%) \
78 $(SCRIPTS:%=$(ROOTOPTDIR)/%)
79
80 include $(SRC)/cmd/Makefile.cmd
81
82 all := TARGET = all
83 install := TARGET = install
84 clean := TARGET = clean
85 clobber := TARGET = clobber
86 lint := TARGET = lint
87
88 .KEEP_STATE:
89
90 install: $(SUBDIRS) $(ROOTOPTPROGS)
91
92 all: $(SUBDIRS) $(PROGS32) $(PROGS64)
93
94 clean lint: $(SUBDIRS)
95
96 $(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR)
97
98 $(ROOTOPTDIR):
99 $(INS.dir)
100
101 $(ROOTOPTDIR)/%: %
102 $(INS.file)
103
104 $(ROOTOPTDIR)/%: %.ksh
105 $(INS.rename)
106
107 %.64: %.c
108 $(LINK64.c) -o $@ $< $(LDLIBS64)
109 $(POST_PROCESS)
110
111 %.32: %.c
112 $(LINK.c) -o $@ $< $(LDLIBS)
113 $(POST_PROCESS)
114
115 clobber: $(SUBDIRS)
116 $(RM) $(PROGS32) $(PROGS64)
117
118 $(SUBDIRS): FRC
119 @cd $@; pwd; $(MAKE) $(TARGET)
120
121 FRC: