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 2019 Joyent, Inc.
16 #
17
18 SUBDIRS = \
19 catopen \
20 fpround \
21 i18n \
22 newlocale \
23 nl_langinfo \
24 priv_gettext \
25 random \
26 regex \
27 select \
28 stdio \
29 strerror \
30 symbols \
31 threads \
32 wcsrtombs \
33 wctype
34
35 PROGS = \
36 aligned_alloc \
37 c11_threads \
38 c11_tss \
39 call_once \
40 endian \
41 env-7076 \
42 fnmatch \
43 memset_s \
44 posix_memalign \
45 printf-9511 \
46 psignal-5097 \
47 quick_exit_order \
48 quick_exit_status \
49 set_constraint_handler_s \
50 strcoll-strxfrm-6907 \
51 timespec_get \
52 wcsncasecmp \
53 wcsncasecmp-7344 \
54 wcsncasecmp-7350 \
55 uchar
56
57 SCRIPTS = \
58 quick_exit \
59 psignal
60
61 CPPFLAGS += -D_REENTRANT
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: