xref: /illumos-gate/usr/src/lib/libc/Makefile.targ (revision 7c478bd9)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22#
23# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26# ident	"%Z%%M%	%I%	%E% SMI"
27#
28
29# libc build rules
30
31#
32# This first rule picks up optimized sources for libc variants.
33#
34pics/%.o: $(OPTIMIZED_LIBCBASE)/gen/%.s
35	$(BUILD.s)
36	$(POST_PROCESS_O)
37
38pics/%.o: $(LIBCBASE)/crt/%.c
39	$(COMPILE.c) -o $@ $<
40	$(POST_PROCESS_O)
41
42pics/%.o: $(LIBCBASE)/crt/%.s
43	$(BUILD.s)
44	$(POST_PROCESS_O)
45
46pics/%.o: $(LIBCBASE)/gen/%.c
47	$(COMPILE.c) -o $@ $<
48	$(POST_PROCESS_O)
49
50pics/%.o: $(LIBCBASE)/gen/%.s
51	$(BUILD.s)
52	$(POST_PROCESS_O)
53
54pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/%.s
55	$(BUILD.s)
56	$(POST_PROCESS_O)
57
58pics/_stack_grow.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s
59	$(BUILD.s) $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s
60	$(POST_PROCESS_O)
61
62pics/%.o: $(LIBCBASE)/fp/%.c
63	$(COMPILE.c) -o $@ $<
64	$(POST_PROCESS_O)
65
66pics/%.o: $(LIBCBASE)/../$(MACH)/fp/%.c
67	$(COMPILE.c) -o $@ $<
68	$(POST_PROCESS_O)
69
70pics/%.o: $(LIBCBASE)/fp/%.s
71	$(BUILD.s)
72	$(POST_PROCESS_O)
73
74pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.c
75	$(COMPILE.c) -o $@ $<
76	$(POST_PROCESS_O)
77
78pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.s
79	$(BUILD.s)
80	$(POST_PROCESS_O)
81
82pics/%.o: $(LIBCBASE)/sys/%.c
83	$(COMPILE.c) -o $@ $<
84	$(POST_PROCESS_O)
85
86pics/%.o: $(LIBCBASE)/../common/sys/%.s
87	$(BUILD.s)
88	$(POST_PROCESS_O)
89
90pics/%.o: $(LIBCBASE)/sys/%.s
91	$(BUILD.s)
92	$(POST_PROCESS_O)
93
94pics/%.o: $(LIBCBASE)/../$(MACH)/sys/%.s
95	$(BUILD.s)
96	$(POST_PROCESS_O)
97
98pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.c
99	$(COMPILE.c) -o $@ $<
100	$(POST_PROCESS_O)
101
102pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.s
103	$(BUILD.s)
104	$(POST_PROCESS_O)
105
106# rules to build large file aware objects (xxx64.o from xxx.s or xxx.c)
107
108pics/%64.o: $(LIBCBASE)/../common/sys/%.s
109	$(BUILD.s)
110	$(POST_PROCESS_O)
111
112pics/%64.o: $(LIBCBASE)/sys/%.s
113	$(BUILD.s)
114	$(POST_PROCESS_O)
115
116pics/%64.o: $(LIBCBASE)/gen/%.c
117	$(COMPILE.c) -o $@ $<
118	$(POST_PROCESS_O)
119
120pics/%64.o: $(LIBCBASE)/../port/gen/%.c
121	$(COMPILE.c) -o $@ $<
122	$(POST_PROCESS_O)
123
124pics/%64.o: $(LIBCBASE)/../port/sys/%.c
125	$(COMPILE.c) -o $@ $<
126	$(POST_PROCESS_O)
127
128pics/%64.o: $(LIBCBASE)/../port/print/%.c
129	$(COMPILE.c) -o $@ $<
130	$(POST_PROCESS_O)
131
132pics/%64.o: $(LIBCBASE)/../port/stdio/%.c
133	$(COMPILE.c) -o $@ $<
134	$(POST_PROCESS_O)
135
136pics/%_w.o: $(LIBCBASE)/../port/stdio/%.c
137	$(COMPILE.c) -o $@ $<
138	$(POST_PROCESS_O)
139
140pics/%_w.o: $(LIBCBASE)/../port/print/%.c
141	$(COMPILE.c) -o $@ $<
142	$(POST_PROCESS_O)
143
144pics/%_pos.o: $(LIBCBASE)/../port/i18n/%.c
145	$(COMPILE.c) -o $@ $<
146	$(POST_PROCESS_O)
147
148pics/%_sbyte.o: $(LIBCBASE)/../port/i18n/%.c
149	$(COMPILE.c) -o $@ $<
150	$(POST_PROCESS_O)
151
152pics/%_possbyte.o: $(LIBCBASE)/../port/i18n/%.c
153	$(COMPILE.c) -o $@ $<
154	$(POST_PROCESS_O)
155
156pics/%_longlong.o: $(LIBCBASE)/../port/i18n/%.c
157	$(COMPILE.c) -o $@ $<
158	$(POST_PROCESS_O)
159
160# libc build rules for objects built from "portable" source in ../port
161
162pics/%.o: $(LIBCBASE)/../port/fp/%.c
163	$(COMPILE.c) \
164	-I$(LIBCBASE)/../port/fp -o $@ $<
165	$(POST_PROCESS_O)
166
167pics/%.o: $(LIBCBASE)/../port/i18n/%.c
168	$(COMPILE.c) \
169	-I$(LIBCBASE)/../port/i18n -o $@ $<
170	$(POST_PROCESS_O)
171
172# gen rules
173pics/%.o %.o: $(LIBCBASE)/../port/gen/%.c
174	$(COMPILE.c) -o $@ $<
175	$(POST_PROCESS_O)
176
177# print rules
178pics/%.o: $(LIBCBASE)/../port/print/%.c
179	$(COMPILE.c) -o $@ $<
180	$(POST_PROCESS_O)
181
182# regex rules
183pics/%.o: $(LIBCBASE)/../port/regex/%.c
184	$(COMPILE.c) -DM_I18N_MB -DI18N \
185	-I$(LIBCBASE)/../port/regex \
186	-I$(LIBCBASE)/../port/gen -o $@ $<
187	$(POST_PROCESS_O)
188
189# stdio rules
190pics/%.o: $(LIBCBASE)/../port/stdio/%.c
191	$(COMPILE.c) -o $@ $<
192	$(POST_PROCESS_O)
193
194# c89 print, stdio rules
195pics/%_c89.o: $(LIBCBASE)/../port/print/%.c
196	$(COMPILE.c) -o $@ $<
197	$(POST_PROCESS_O)
198
199pics/%_c89.o: $(LIBCBASE)/../port/stdio/%.c
200	$(COMPILE.c) -o $@ $<
201	$(POST_PROCESS_O)
202
203# threads rules
204pics/%.o: $(LIBCBASE)/../port/threads/%.c
205	$(COMPILE.c) -o $@ $<
206	$(POST_PROCESS_O)
207
208pics/%.o: $(LIBCBASE)/threads/%.c
209	$(COMPILE.c) -o $@ $<
210	$(POST_PROCESS_O)
211
212pics/%.o: $(LIBCBASE)/threads/%.s
213	$(BUILD.s)
214	$(POST_PROCESS_O)
215
216pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.c
217	$(COMPILE.c) -o $@ $<
218	$(POST_PROCESS_O)
219
220pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.s
221	$(BUILD.s)
222	$(POST_PROCESS_O)
223
224pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.c
225	$(COMPILE.c) -o $@ $<
226	$(POST_PROCESS_O)
227
228pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.s
229	$(BUILD.s)
230	$(POST_PROCESS_O)
231
232pics/%.o: $(LIBCBASE)/../port/unwind/%.c
233	$(COMPILE.c) -o $@ $<
234	$(POST_PROCESS_O)
235
236pics/%.o: $(LIBCBASE)/../$(MACH)/unwind/%.s
237	$(BUILD.s)
238	$(POST_PROCESS_O)
239
240pics/%.o: $(LIBCBASE)/../port/sys/%.c
241	$(COMPILE.c) -o $@ $<
242	$(POST_PROCESS_O)
243
244pics/%.o: $(LIBCBASE)/../../common/common/%.c
245	$(COMPILE.c) -o $@ $<
246	$(POST_PROCESS_O)
247
248pics/%.o: $(LIBCBASE)/$(CRTSRCS)/%.s
249	$(BUILD.s)
250	$(POST_PROCESS_O)
251
252# $(SRC)/common rules
253pics/%.o: $(SRC)/common/atomic/$(TRANSMACH)/%.s
254	$(BUILD.s)
255	$(POST_PROCESS_O)
256
257$(COMOBJS:%=pics/%): $(SRC)/common/util/$$(@F:.o=.c)
258	$(COMPILE.c) -o $@ $(SRC)/common/util/$(@F:.o=.c)
259	$(POST_PROCESS_O)
260
261# dtrace rules
262pics/%.o: ../port/threads/%.d $(THREADSOBJS:%=pics/%)
263	$(COMPILE.d) -C -xlazyload -s $< -o $@ $(THREADSOBJS:%=pics/%)
264	$(POST_PROCESS_O)
265
266include $(SRC)/lib/Makefile.targ
267