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 (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 # 22 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23 # Use is subject to license terms. 24 # Copyright 2016 Joyent, Inc. 25 # 26 # 27 28 # libc build rules 29 30 # 31 # This first rule picks up optimized sources for libc variants. 32 # 33 pics/%.o: $(OPTIMIZED_LIBCBASE)/gen/%.s 34 $(BUILD.s) 35 $(POST_PROCESS_O) 36 37 pics/%.o: $(LIBCBASE)/crt/%.c 38 $(COMPILE.c) -o $@ $< 39 $(POST_PROCESS_O) 40 41 pics/%.o: $(LIBCBASE)/crt/%.s 42 $(BUILD.s) 43 $(POST_PROCESS_O) 44 45 pics/%.o: $(LIBCBASE)/gen/%.c 46 $(COMPILE.c) -o $@ $< 47 $(POST_PROCESS_O) 48 49 pics/%.o: $(LIBCBASE)/gen/%.s 50 $(BUILD.s) 51 $(POST_PROCESS_O) 52 53 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/%.s 54 $(BUILD.s) 55 $(POST_PROCESS_O) 56 57 pics/_stack_grow.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s 58 $(BUILD.s) $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s 59 $(POST_PROCESS_O) 60 61 pics/%.o: $(LIBCBASE)/fp/%.c 62 $(COMPILE.c) -o $@ $< 63 $(POST_PROCESS_O) 64 65 pics/%.o: $(LIBCBASE)/../$(MACH)/fp/%.c 66 $(COMPILE.c) -o $@ $< 67 $(POST_PROCESS_O) 68 69 pics/%.o: $(LIBCBASE)/fp/%.s 70 $(BUILD.s) 71 $(POST_PROCESS_O) 72 73 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.c 74 $(COMPILE.c) -o $@ $< 75 $(POST_PROCESS_O) 76 77 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.s 78 $(BUILD.s) 79 $(POST_PROCESS_O) 80 81 pics/%.o: $(LIBCBASE)/sys/%.c 82 $(COMPILE.c) -o $@ $< 83 $(POST_PROCESS_O) 84 85 pics/%.o: $(LIBCBASE)/../common/sys/%.s 86 $(BUILD.s) 87 $(POST_PROCESS_O) 88 89 pics/%.o: $(LIBCBASE)/sys/%.s 90 $(BUILD.s) 91 $(POST_PROCESS_O) 92 93 pics/%.o: $(LIBCBASE)/../$(MACH)/sys/%.s 94 $(BUILD.s) 95 $(POST_PROCESS_O) 96 97 pics/%.o: $(LIBCBASE)/../$(MACH)/sys/%.c 98 $(COMPILE.c) -o $@ $< 99 $(POST_PROCESS_O) 100 101 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.c 102 $(COMPILE.c) -o $@ $< 103 $(POST_PROCESS_O) 104 105 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.s 106 $(BUILD.s) 107 $(POST_PROCESS_O) 108 109 # rules to build large file aware objects (xxx64.o from xxx.s or xxx.c) 110 111 pics/%64.o: $(LIBCBASE)/../common/sys/%.s 112 $(BUILD.s) 113 $(POST_PROCESS_O) 114 115 pics/%64.o: $(LIBCBASE)/sys/%.s 116 $(BUILD.s) 117 $(POST_PROCESS_O) 118 119 pics/%64.o: $(LIBCBASE)/gen/%.c 120 $(COMPILE.c) -o $@ $< 121 $(POST_PROCESS_O) 122 123 pics/%64.o: $(LIBCBASE)/../port/gen/%.c 124 $(COMPILE.c) -o $@ $< 125 $(POST_PROCESS_O) 126 127 pics/%64.o: $(LIBCBASE)/../port/sys/%.c 128 $(COMPILE.c) -o $@ $< 129 $(POST_PROCESS_O) 130 131 pics/%64.o: $(LIBCBASE)/../port/print/%.c 132 $(COMPILE.c) -o $@ $< 133 $(POST_PROCESS_O) 134 135 pics/%64.o: $(LIBCBASE)/../port/regex/%.c 136 $(COMPILE.c) -DM_I18N_MB -DI18N \ 137 -I$(LIBCBASE)/../port/regex \ 138 -I$(LIBCBASE)/../port/gen -o $@ $< 139 $(POST_PROCESS_O) 140 141 pics/%64.o: $(LIBCBASE)/../port/stdio/%.c 142 $(COMPILE.c) -o $@ $< 143 $(POST_PROCESS_O) 144 145 pics/%_w.o: $(LIBCBASE)/../port/stdio/%.c 146 $(COMPILE.c) -o $@ $< 147 $(POST_PROCESS_O) 148 149 pics/%_w.o: $(LIBCBASE)/../port/print/%.c 150 $(COMPILE.c) -o $@ $< 151 $(POST_PROCESS_O) 152 153 pics/%_pos.o: $(LIBCBASE)/../port/i18n/%.c 154 $(COMPILE.c) -o $@ $< 155 $(POST_PROCESS_O) 156 157 pics/%_sbyte.o: $(LIBCBASE)/../port/i18n/%.c 158 $(COMPILE.c) -o $@ $< 159 $(POST_PROCESS_O) 160 161 pics/%_possbyte.o: $(LIBCBASE)/../port/i18n/%.c 162 $(COMPILE.c) -o $@ $< 163 $(POST_PROCESS_O) 164 165 pics/%_longlong.o: $(LIBCBASE)/../port/i18n/%.c 166 $(COMPILE.c) -o $@ $< 167 $(POST_PROCESS_O) 168 169 # libc build rules for objects built from "portable" source in ../port 170 171 pics/%.o: $(LIBCBASE)/../port/fp/%.c 172 $(COMPILE.c) \ 173 -I$(LIBCBASE)/../port/fp -o $@ $< 174 $(POST_PROCESS_O) 175 176 pics/%.o: $(LIBCBASE)/../port/i18n/%.c 177 $(COMPILE.c) \ 178 -I$(LIBCBASE)/../port/i18n -o $@ $< 179 $(POST_PROCESS_O) 180 181 # gen rules 182 pics/%.o %.o: $(LIBCBASE)/../port/gen/%.c 183 $(COMPILE.c) -o $@ $< 184 $(POST_PROCESS_O) 185 186 # inet rules 187 pics/%.o %.o: $(LIBCBASE)/../port/inet/%.c 188 $(COMPILE.c) -o $@ $< 189 $(POST_PROCESS_O) 190 191 # locale rules 192 pics/%.o %.o: $(LIBCBASE)/../port/locale/%.c 193 $(COMPILE.c) -o $@ $< 194 $(POST_PROCESS_O) 195 196 # print rules 197 pics/%.o: $(LIBCBASE)/../port/print/%.c 198 $(COMPILE.c) -o $@ $< 199 $(POST_PROCESS_O) 200 201 # regex rules 202 pics/%.o: $(LIBCBASE)/../port/regex/%.c 203 $(COMPILE.c) -DM_I18N_MB -DI18N \ 204 -I$(LIBCBASE)/../port/regex \ 205 -I$(LIBCBASE)/../port/gen -o $@ $< 206 $(POST_PROCESS_O) 207 208 # socket rules 209 pics/%.o: $(LIBCBASE)/../port/socket/%.c 210 $(COMPILE.c) -o $@ $< 211 $(POST_PROCESS_O) 212 213 # stdio rules 214 pics/%.o: $(LIBCBASE)/../port/stdio/%.c 215 $(COMPILE.c) -o $@ $< 216 $(POST_PROCESS_O) 217 218 # c89 print, stdio rules 219 pics/%_c89.o: $(LIBCBASE)/../port/print/%.c 220 $(COMPILE.c) -o $@ $< 221 $(POST_PROCESS_O) 222 223 pics/%_c89.o: $(LIBCBASE)/../port/stdio/%.c 224 $(COMPILE.c) -o $@ $< 225 $(POST_PROCESS_O) 226 227 # aio rules 228 pics/%.o: $(LIBCBASE)/../port/aio/%.c 229 $(COMPILE.c) -o $@ $< 230 $(POST_PROCESS_O) 231 232 # rt rules 233 pics/%.o: $(LIBCBASE)/../port/rt/%.c 234 $(COMPILE.c) -o $@ $< 235 $(POST_PROCESS_O) 236 237 # tpool rules 238 pics/%.o: $(LIBCBASE)/../port/tpool/%.c 239 $(COMPILE.c) -o $@ $< 240 $(POST_PROCESS_O) 241 242 # threads rules 243 pics/%.o: $(LIBCBASE)/../port/threads/%.c 244 $(COMPILE.c) -o $@ $< 245 $(POST_PROCESS_O) 246 247 pics/%.o: $(LIBCBASE)/threads/%.c 248 $(COMPILE.c) -o $@ $< 249 $(POST_PROCESS_O) 250 251 pics/%.o: $(LIBCBASE)/threads/%.s 252 $(BUILD.s) 253 $(POST_PROCESS_O) 254 255 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.c 256 $(COMPILE.c) -o $@ $< 257 $(POST_PROCESS_O) 258 259 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.s 260 $(BUILD.s) 261 $(POST_PROCESS_O) 262 263 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.c 264 $(COMPILE.c) -o $@ $< 265 $(POST_PROCESS_O) 266 267 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.s 268 $(BUILD.s) 269 $(POST_PROCESS_O) 270 271 pics/%.o: $(LIBCBASE)/../port/unwind/%.c 272 $(COMPILE.c) -o $@ $< 273 $(POST_PROCESS_O) 274 275 pics/%.o: $(LIBCBASE)/../$(MACH)/unwind/%.s 276 $(BUILD.s) 277 $(POST_PROCESS_O) 278 279 pics/%.o: $(LIBCBASE)/../port/sys/%.c 280 $(COMPILE.c) -o $@ $< 281 $(POST_PROCESS_O) 282 283 pics/%.o: $(LIBCBASE)/../../crt/common/%.c 284 $(COMPILE.c) -o $@ $< 285 $(POST_PROCESS_O) 286 287 pics/%.o: $(LIBCBASE)/$(CRTSRCS)/%.s 288 $(BUILD.s) 289 $(POST_PROCESS_O) 290 291 # $(SRC)/common rules 292 pics/%.o: $(SRC)/common/atomic/$(TARGETMACH)/%.s 293 $(BUILD.s) 294 $(POST_PROCESS_O) 295 296 $(COMOBJS:%=pics/%): $(SRC)/common/util/$$(@F:.o=.c) 297 $(COMPILE.c) -o $@ $(SRC)/common/util/$(@F:.o=.c) 298 $(POST_PROCESS_O) 299 300 $(XATTROBJS:%=pics/%): $(SRC)/common/xattr/$$(@F:.o=.c) 301 $(COMPILE.c) -o $@ $(SRC)/common/xattr/$(@F:.o=.c) 302 $(POST_PROCESS_O) 303 304 $(DTRACEOBJS:%=pics/%): $(SRC)/common/dtrace/$$(@F:.o=.c) 305 $(COMPILE.c) -o $@ $(SRC)/common/dtrace/$(@F:.o=.c) 306 $(POST_PROCESS_O) 307 308 $(SECFLAGSOBJS:%=pics/%): $(SRC)/common/secflags/$$(@F:.o=.c) 309 $(COMPILE.c) -o $@ $(SRC)/common/secflags/$(@F:.o=.c) 310 $(POST_PROCESS_O) 311 312 $(UNICODEOBJS:%=pics/%): $(SRC)/common/unicode/$$(@F:.o=.c) 313 $(COMPILE.c) -o $@ $(SRC)/common/unicode/$(@F:.o=.c) 314 $(POST_PROCESS_O) 315 316 $(CHACHAOBJS:%=pics/%): $(SRC)/common/crypto/chacha/$$(@F:.o=.c) 317 $(COMPILE.c) -I$(SRC)/common/crypto/chacha -DKEYSTREAM_ONLY \ 318 -o $@ $(SRC)/common/crypto/chacha/$(@F:.o=.c) 319 $(POST_PROCESS_O) 320 321 # DTrace rules 322 pics/%.o: $(LIBCBASE)/../port/threads/%.d $(THREADSOBJS:%=pics/%) 323 $(COMPILE.d) -C -xlazyload -s $< -o $@ $(THREADSOBJS:%=pics/%) 324 $(POST_PROCESS_O) 325 326 include $(SRC)/lib/Makefile.targ