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 #
  25 #
  26 
  27 # libc build rules
  28 
  29 #
  30 # This first rule picks up optimized sources for libc variants.
  31 #
  32 pics/%.o: $(OPTIMIZED_LIBCBASE)/gen/%.s
  33         $(BUILD.s)
  34         $(POST_PROCESS_O)
  35 
  36 pics/%.o: $(LIBCBASE)/crt/%.c
  37         $(COMPILE.c) -o $@ $<
  38         $(POST_PROCESS_O)
  39 
  40 pics/%.o: $(LIBCBASE)/crt/%.s
  41         $(BUILD.s)
  42         $(POST_PROCESS_O)
  43 
  44 pics/%.o: $(LIBCBASE)/gen/%.c
  45         $(COMPILE.c) -o $@ $<
  46         $(POST_PROCESS_O)
  47 
  48 pics/%.o: $(LIBCBASE)/gen/%.s
  49         $(BUILD.s)
  50         $(POST_PROCESS_O)
  51 
  52 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/%.s
  53         $(BUILD.s)
  54         $(POST_PROCESS_O)
  55 
  56 pics/_stack_grow.o: $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s
  57         $(BUILD.s) $(LIBCBASE)/../$(TARGET_ARCH)/gen/_stack_grow.s
  58         $(POST_PROCESS_O)
  59 
  60 pics/%.o: $(LIBCBASE)/fp/%.c
  61         $(COMPILE.c) -o $@ $<
  62         $(POST_PROCESS_O)
  63 
  64 pics/%.o: $(LIBCBASE)/../$(MACH)/fp/%.c
  65         $(COMPILE.c) -o $@ $<
  66         $(POST_PROCESS_O)
  67 
  68 pics/%.o: $(LIBCBASE)/fp/%.s
  69         $(BUILD.s)
  70         $(POST_PROCESS_O)
  71 
  72 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.c
  73         $(COMPILE.c) -o $@ $<
  74         $(POST_PROCESS_O)
  75 
  76 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/fp/%.s
  77         $(BUILD.s)
  78         $(POST_PROCESS_O)
  79 
  80 pics/%.o: $(LIBCBASE)/sys/%.c
  81         $(COMPILE.c) -o $@ $<
  82         $(POST_PROCESS_O)
  83 
  84 pics/%.o: $(LIBCBASE)/../common/sys/%.s
  85         $(BUILD.s)
  86         $(POST_PROCESS_O)
  87 
  88 pics/%.o: $(LIBCBASE)/sys/%.s
  89         $(BUILD.s)
  90         $(POST_PROCESS_O)
  91 
  92 pics/%.o: $(LIBCBASE)/../$(MACH)/sys/%.s
  93         $(BUILD.s)
  94         $(POST_PROCESS_O)
  95 
  96 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.c
  97         $(COMPILE.c) -o $@ $<
  98         $(POST_PROCESS_O)
  99 
 100 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/sys/%.s
 101         $(BUILD.s)
 102         $(POST_PROCESS_O)
 103 
 104 # rules to build large file aware objects (xxx64.o from xxx.s or xxx.c)
 105 
 106 pics/%64.o: $(LIBCBASE)/../common/sys/%.s
 107         $(BUILD.s)
 108         $(POST_PROCESS_O)
 109 
 110 pics/%64.o: $(LIBCBASE)/sys/%.s
 111         $(BUILD.s)
 112         $(POST_PROCESS_O)
 113 
 114 pics/%64.o: $(LIBCBASE)/gen/%.c
 115         $(COMPILE.c) -o $@ $<
 116         $(POST_PROCESS_O)
 117 
 118 pics/%64.o: $(LIBCBASE)/../port/gen/%.c
 119         $(COMPILE.c) -o $@ $<
 120         $(POST_PROCESS_O)
 121 
 122 pics/%64.o: $(LIBCBASE)/../port/sys/%.c
 123         $(COMPILE.c) -o $@ $<
 124         $(POST_PROCESS_O)
 125 
 126 pics/%64.o: $(LIBCBASE)/../port/print/%.c
 127         $(COMPILE.c) -o $@ $<
 128         $(POST_PROCESS_O)
 129 
 130 pics/%64.o: $(LIBCBASE)/../port/regex/%.c
 131         $(COMPILE.c) -DM_I18N_MB -DI18N \
 132         -I$(LIBCBASE)/../port/regex \
 133         -I$(LIBCBASE)/../port/gen -o $@ $<
 134         $(POST_PROCESS_O)
 135 
 136 pics/%64.o: $(LIBCBASE)/../port/stdio/%.c
 137         $(COMPILE.c) -o $@ $<
 138         $(POST_PROCESS_O)
 139 
 140 pics/%_w.o: $(LIBCBASE)/../port/stdio/%.c
 141         $(COMPILE.c) -o $@ $<
 142         $(POST_PROCESS_O)
 143 
 144 pics/%_w.o: $(LIBCBASE)/../port/print/%.c
 145         $(COMPILE.c) -o $@ $<
 146         $(POST_PROCESS_O)
 147 
 148 pics/%_pos.o: $(LIBCBASE)/../port/i18n/%.c
 149         $(COMPILE.c) -o $@ $<
 150         $(POST_PROCESS_O)
 151 
 152 pics/%_sbyte.o: $(LIBCBASE)/../port/i18n/%.c
 153         $(COMPILE.c) -o $@ $<
 154         $(POST_PROCESS_O)
 155 
 156 pics/%_possbyte.o: $(LIBCBASE)/../port/i18n/%.c
 157         $(COMPILE.c) -o $@ $<
 158         $(POST_PROCESS_O)
 159 
 160 pics/%_longlong.o: $(LIBCBASE)/../port/i18n/%.c
 161         $(COMPILE.c) -o $@ $<
 162         $(POST_PROCESS_O)
 163 
 164 # libc build rules for objects built from "portable" source in ../port
 165 
 166 pics/%.o: $(LIBCBASE)/../port/fp/%.c
 167         $(COMPILE.c) \
 168         -I$(LIBCBASE)/../port/fp -o $@ $<
 169         $(POST_PROCESS_O)
 170 
 171 pics/%.o: $(LIBCBASE)/../port/i18n/%.c
 172         $(COMPILE.c) \
 173         -I$(LIBCBASE)/../port/i18n -o $@ $<
 174         $(POST_PROCESS_O)
 175 
 176 # gen rules
 177 pics/%.o %.o: $(LIBCBASE)/../port/gen/%.c
 178         $(COMPILE.c) -o $@ $<
 179         $(POST_PROCESS_O)
 180 
 181 # locale rules
 182 pics/%.o %.o: $(LIBCBASE)/../port/locale/%.c
 183         $(COMPILE.c) -o $@ $<
 184         $(POST_PROCESS_O)
 185 
 186 # print rules
 187 pics/%.o: $(LIBCBASE)/../port/print/%.c
 188         $(COMPILE.c) -o $@ $<
 189         $(POST_PROCESS_O)
 190 
 191 # regex rules
 192 pics/%.o: $(LIBCBASE)/../port/regex/%.c
 193         $(COMPILE.c) -DM_I18N_MB -DI18N \
 194         -I$(LIBCBASE)/../port/regex \
 195         -I$(LIBCBASE)/../port/gen -o $@ $<
 196         $(POST_PROCESS_O)
 197 
 198 # stdio rules
 199 pics/%.o: $(LIBCBASE)/../port/stdio/%.c
 200         $(COMPILE.c) -o $@ $<
 201         $(POST_PROCESS_O)
 202 
 203 # c89 print, stdio rules
 204 pics/%_c89.o: $(LIBCBASE)/../port/print/%.c
 205         $(COMPILE.c) -o $@ $<
 206         $(POST_PROCESS_O)
 207 
 208 pics/%_c89.o: $(LIBCBASE)/../port/stdio/%.c
 209         $(COMPILE.c) -o $@ $<
 210         $(POST_PROCESS_O)
 211 
 212 # aio rules
 213 pics/%.o: $(LIBCBASE)/../port/aio/%.c
 214         $(COMPILE.c) -o $@ $<
 215         $(POST_PROCESS_O)
 216 
 217 # rt rules
 218 pics/%.o: $(LIBCBASE)/../port/rt/%.c
 219         $(COMPILE.c) -o $@ $<
 220         $(POST_PROCESS_O)
 221 
 222 # tpool rules
 223 pics/%.o: $(LIBCBASE)/../port/tpool/%.c
 224         $(COMPILE.c) -o $@ $<
 225         $(POST_PROCESS_O)
 226 
 227 # threads rules
 228 pics/%.o: $(LIBCBASE)/../port/threads/%.c
 229         $(COMPILE.c) -o $@ $<
 230         $(POST_PROCESS_O)
 231 
 232 pics/%.o: $(LIBCBASE)/threads/%.c
 233         $(COMPILE.c) -o $@ $<
 234         $(POST_PROCESS_O)
 235 
 236 pics/%.o: $(LIBCBASE)/threads/%.s
 237         $(BUILD.s)
 238         $(POST_PROCESS_O)
 239 
 240 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.c
 241         $(COMPILE.c) -o $@ $<
 242         $(POST_PROCESS_O)
 243 
 244 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/threads/%.s
 245         $(BUILD.s)
 246         $(POST_PROCESS_O)
 247 
 248 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.c
 249         $(COMPILE.c) -o $@ $<
 250         $(POST_PROCESS_O)
 251 
 252 pics/%.o: $(LIBCBASE)/../$(TARGET_ARCH)/unwind/%.s
 253         $(BUILD.s)
 254         $(POST_PROCESS_O)
 255 
 256 pics/%.o: $(LIBCBASE)/../port/unwind/%.c
 257         $(COMPILE.c) -o $@ $<
 258         $(POST_PROCESS_O)
 259 
 260 pics/%.o: $(LIBCBASE)/../$(MACH)/unwind/%.s
 261         $(BUILD.s)
 262         $(POST_PROCESS_O)
 263 
 264 pics/%.o: $(LIBCBASE)/../port/sys/%.c
 265         $(COMPILE.c) -o $@ $<
 266         $(POST_PROCESS_O)
 267 
 268 pics/%.o: $(LIBCBASE)/../../crt/common/%.c
 269         $(COMPILE.c) -o $@ $<
 270         $(POST_PROCESS_O)
 271 
 272 pics/%.o: $(LIBCBASE)/$(CRTSRCS)/%.s
 273         $(BUILD.s)
 274         $(POST_PROCESS_O)
 275 
 276 # $(SRC)/common rules
 277 pics/%.o: $(SRC)/common/atomic/$(TARGETMACH)/%.s
 278         $(BUILD.s)
 279         $(POST_PROCESS_O)
 280 
 281 $(COMOBJS:%=pics/%): $(SRC)/common/util/$$(@F:.o=.c)
 282         $(COMPILE.c) -o $@ $(SRC)/common/util/$(@F:.o=.c)
 283         $(POST_PROCESS_O)
 284 
 285 $(XATTROBJS:%=pics/%): $(SRC)/common/xattr/$$(@F:.o=.c)
 286         $(COMPILE.c) -o $@ $(SRC)/common/xattr/$(@F:.o=.c)
 287         $(POST_PROCESS_O)
 288 
 289 $(DTRACEOBJS:%=pics/%): $(SRC)/common/dtrace/$$(@F:.o=.c)
 290         $(COMPILE.c) -o $@ $(SRC)/common/dtrace/$(@F:.o=.c)
 291         $(POST_PROCESS_O)
 292 
 293 $(SECFLAGSOBJS:%=pics/%): $(SRC)/common/secflags/$$(@F:.o=.c)
 294         $(COMPILE.c) -o $@ $(SRC)/common/secflags/$(@F:.o=.c)
 295         $(POST_PROCESS_O)
 296 
 297 $(UNICODEOBJS:%=pics/%): $(SRC)/common/unicode/$$(@F:.o=.c)
 298         $(COMPILE.c) -o $@ $(SRC)/common/unicode/$(@F:.o=.c)
 299         $(POST_PROCESS_O)
 300 
 301 $(CHACHAOBJS:%=pics/%): $(SRC)/common/crypto/chacha/$$(@F:.o=.c)
 302         $(COMPILE.c) -I$(SRC)/common/crypto/chacha -DKEYSTREAM_ONLY \
 303             -o $@ $(SRC)/common/crypto/chacha/$(@F:.o=.c)
 304         $(POST_PROCESS_O)
 305 
 306 # DTrace rules
 307 pics/%.o: $(LIBCBASE)/../port/threads/%.d $(THREADSOBJS:%=pics/%)
 308         $(COMPILE.d) -C -xlazyload -s $< -o $@ $(THREADSOBJS:%=pics/%)
 309         $(POST_PROCESS_O)
 310 
 311 include $(SRC)/lib/Makefile.targ