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 # locale rules
 187 pics/%.o %.o: $(LIBCBASE)/../port/locale/%.c
 188         $(COMPILE.c) -o $@ $<
 189         $(POST_PROCESS_O)
 190 
 191 # print rules
 192 pics/%.o: $(LIBCBASE)/../port/print/%.c
 193         $(COMPILE.c) -o $@ $<
 194         $(POST_PROCESS_O)
 195 
 196 # regex rules
 197 pics/%.o: $(LIBCBASE)/../port/regex/%.c
 198         $(COMPILE.c) -DM_I18N_MB -DI18N \
 199         -I$(LIBCBASE)/../port/regex \
 200         -I$(LIBCBASE)/../port/gen -o $@ $<
 201         $(POST_PROCESS_O)
 202 
 203 # stdio rules
 204 pics/%.o: $(LIBCBASE)/../port/stdio/%.c
 205         $(COMPILE.c) -o $@ $<
 206         $(POST_PROCESS_O)
 207 
 208 # c89 print, stdio rules
 209 pics/%_c89.o: $(LIBCBASE)/../port/print/%.c
 210         $(COMPILE.c) -o $@ $<
 211         $(POST_PROCESS_O)
 212 
 213 pics/%_c89.o: $(LIBCBASE)/../port/stdio/%.c
 214         $(COMPILE.c) -o $@ $<
 215         $(POST_PROCESS_O)
 216 
 217 # aio rules
 218 pics/%.o: $(LIBCBASE)/../port/aio/%.c
 219         $(COMPILE.c) -o $@ $<
 220         $(POST_PROCESS_O)
 221 
 222 # rt rules
 223 pics/%.o: $(LIBCBASE)/../port/rt/%.c
 224         $(COMPILE.c) -o $@ $<
 225         $(POST_PROCESS_O)
 226 
 227 # tpool rules
 228 pics/%.o: $(LIBCBASE)/../port/tpool/%.c
 229         $(COMPILE.c) -o $@ $<
 230         $(POST_PROCESS_O)
 231 
 232 # threads rules
 233 pics/%.o: $(LIBCBASE)/../port/threads/%.c
 234         $(COMPILE.c) -o $@ $<
 235         $(POST_PROCESS_O)
 236 
 237 pics/%.o: $(LIBCBASE)/threads/%.c
 238         $(COMPILE.c) -o $@ $<
 239         $(POST_PROCESS_O)
 240 
 241 pics/%.o: $(LIBCBASE)/threads/%.s
 242         $(BUILD.s)
 243         $(POST_PROCESS_O)
 244 
 245 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.c
 246         $(COMPILE.c) -o $@ $<
 247         $(POST_PROCESS_O)
 248 
 249 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.s
 250         $(BUILD.s)
 251         $(POST_PROCESS_O)
 252 
 253 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.c
 254         $(COMPILE.c) -o $@ $<
 255         $(POST_PROCESS_O)
 256 
 257 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.s
 258         $(BUILD.s)
 259         $(POST_PROCESS_O)
 260 
 261 pics/%.o: $(LIBCBASE)/../port/unwind/%.c
 262         $(COMPILE.c) -o $@ $<
 263         $(POST_PROCESS_O)
 264 
 265 pics/%.o: $(LIBCBASE)/../$(MACH)/unwind/%.s
 266         $(BUILD.s)
 267         $(POST_PROCESS_O)
 268 
 269 pics/%.o: $(LIBCBASE)/../port/sys/%.c
 270         $(COMPILE.c) -o $@ $<
 271         $(POST_PROCESS_O)
 272 
 273 pics/%.o: $(LIBCBASE)/../../crt/common/%.c
 274         $(COMPILE.c) -o $@ $<
 275         $(POST_PROCESS_O)
 276 
 277 pics/%.o: $(LIBCBASE)/$(CRTSRCS)/%.s
 278         $(BUILD.s)
 279         $(POST_PROCESS_O)
 280 
 281 # $(SRC)/common rules
 282 pics/%.o: $(SRC)/common/atomic/$(TARGETMACH)/%.s
 283         $(BUILD.s)
 284         $(POST_PROCESS_O)
 285 
 286 $(COMOBJS:%=pics/%): $(SRC)/common/util/$$(@F:.o=.c)
 287         $(COMPILE.c) -o $@ $(SRC)/common/util/$(@F:.o=.c)
 288         $(POST_PROCESS_O)
 289 
 290 $(XATTROBJS:%=pics/%): $(SRC)/common/xattr/$$(@F:.o=.c)
 291         $(COMPILE.c) -o $@ $(SRC)/common/xattr/$(@F:.o=.c)
 292         $(POST_PROCESS_O)
 293 
 294 $(DTRACEOBJS:%=pics/%): $(SRC)/common/dtrace/$$(@F:.o=.c)
 295         $(COMPILE.c) -o $@ $(SRC)/common/dtrace/$(@F:.o=.c)
 296         $(POST_PROCESS_O)
 297 
 298 $(SECFLAGSOBJS:%=pics/%): $(SRC)/common/secflags/$$(@F:.o=.c)
 299         $(COMPILE.c) -o $@ $(SRC)/common/secflags/$(@F:.o=.c)
 300         $(POST_PROCESS_O)
 301 
 302 $(UNICODEOBJS:%=pics/%): $(SRC)/common/unicode/$$(@F:.o=.c)
 303         $(COMPILE.c) -o $@ $(SRC)/common/unicode/$(@F:.o=.c)
 304         $(POST_PROCESS_O)
 305 
 306 $(CHACHAOBJS:%=pics/%): $(SRC)/common/crypto/chacha/$$(@F:.o=.c)
 307         $(COMPILE.c) -I$(SRC)/common/crypto/chacha -DKEYSTREAM_ONLY \
 308             -o $@ $(SRC)/common/crypto/chacha/$(@F:.o=.c)
 309         $(POST_PROCESS_O)
 310 
 311 # DTrace rules
 312 pics/%.o: $(LIBCBASE)/../port/threads/%.d $(THREADSOBJS:%=pics/%)
 313         $(COMPILE.d) -C -xlazyload -s $< -o $@ $(THREADSOBJS:%=pics/%)
 314         $(POST_PROCESS_O)
 315 
 316 include $(SRC)/lib/Makefile.targ