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 posix_memalign \
43 printf-9511 \
44 psignal-5097 \
45 quick_exit_order \
46 quick_exit_status \
47 set_constraint_handler_s \
48 strcoll-strxfrm-6907 \
49 timespec_get \
50 wcsncasecmp \
51 wcsncasecmp-7344 \
52 wcsncasecmp-7350
53
54 SCRIPTS = \
55 quick_exit \
56 psignal
57
58 CPPFLAGS += -D_REENTRANT
59
60 # needs work
61 SMOFF += all_func_returns,snprintf_overflow
62
63 PROGS32 = $(PROGS:%=%.32)
64 PROGS64 = \
65 $(PROGS:%=%.64) \
66 printf-6961.64
67
68 aligned_alloc.32 := LDLIBS += -lproc
69 aligned_alloc.64 := LDLIBS64 += -lproc
70 posix_memalign.32 := LDLIBS += -lproc
71 posix_memalign.64 := LDLIBS64 += -lproc
72
73 memset_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
74 memset_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
75 set_constraint_handler_s.32 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
76 set_constraint_handler_s.64 := CPPFLAGS += -D__STDC_WANT_LIB_EXT1__=1
77
78 ROOTOPTDIR = $(ROOT)/opt/libc-tests/tests
79 ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) \
80 $(PROGS64:%=$(ROOTOPTDIR)/%) \
81 $(SCRIPTS:%=$(ROOTOPTDIR)/%)
82
83 include $(SRC)/cmd/Makefile.cmd
84
85 all := TARGET = all
86 install := TARGET = install
87 clean := TARGET = clean
88 clobber := TARGET = clobber
89 lint := TARGET = lint
90
91 .KEEP_STATE:
92
93 install: $(SUBDIRS) $(ROOTOPTPROGS)
94
95 all: $(SUBDIRS) $(PROGS32) $(PROGS64)
96
97 clean lint: $(SUBDIRS)
98
99 $(ROOTOPTPROGS): $(PROGS32) $(PROGS64) $(ROOTOPTDIR)
100
101 $(ROOTOPTDIR):
102 $(INS.dir)
103
104 $(ROOTOPTDIR)/%: %
105 $(INS.file)
106
107 $(ROOTOPTDIR)/%: %.ksh
108 $(INS.rename)
109
110 %.64: %.c
111 $(LINK64.c) -o $@ $< $(LDLIBS64)
112 $(POST_PROCESS)
113
114 %.32: %.c
115 $(LINK.c) -o $@ $< $(LDLIBS)
116 $(POST_PROCESS)
117
118 clobber: $(SUBDIRS)
119 $(RM) $(PROGS32) $(PROGS64)
120
121 $(SUBDIRS): FRC
122 @cd $@; pwd; $(MAKE) $(TARGET)
123
124 FRC: