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 2007 Sun Microsystems, Inc.  All rights reserved.
  23 # Use is subject to license terms.
  24 #
  25 
  26 #
  27 # We build each flavor in a separate make invocation to improve clarity(!) in
  28 # Makefile.com.  The subordinate makes have $(CURTYPE) set to indicate the
  29 # flavor they're supposed to build.  This causes the correct set of source
  30 # files and compiler and linker flags to be selected.
  31 #
  32 
  33 install: $(TYPES:%=install.%)
  34 
  35 all: $(TYPES:%=all.%)
  36 
  37 $(TYPES:%=all.%):
  38         @CURTYPE=$(@:all.%=%) $(MAKE) $@.targ
  39 
  40 $(TYPES:%=install.%):
  41         @CURTYPE=$(@:install.%=%) $(MAKE) $@.targ
  42 
  43 install.library.targ: all.library $(INSTALL_DEPS_library)
  44 install.standalone.targ: all.standalone $(INSTALL_DEPS_standalone)
  45 
  46 all.library.targ: $(LIBS)
  47 all.standalone.targ: $(STANDLIBRARY)
  48 
  49 lint: $(TYPES:%=lint.%)
  50 
  51 $(TYPES:%=lint.%):
  52         @CURTYPE=$(@:lint.%=%) $(MAKE) lintcheck
  53 
  54 $(STANDLIBRARY): $(OBJS) $(LINKTEST_OBJ)
  55         $(LD) $(BREDUCE) $(ZDEFS) $(LDFLAGS) -o $@.linktest $(OBJS) $(LINKTEST_OBJ)
  56         rm $@.linktest
  57         $(LD) $(LDFLAGS) -o $@ $(OBJS)
  58 
  59 clobber: $(TYPES:%=clobber.%)
  60 
  61 $(TYPES:%=clobber.%):
  62         @CURTYPE=$(@:clobber.%=%) $(MAKE) clobber.targ
  63 
  64 clobber.targ: clean
  65         -$(RM) $(CLOBBERTARGFILES)
  66 
  67 # include library targets
  68 include $(SRC)/lib/Makefile.targ
  69 
  70 $(PICS): pics
  71 $(OBJS): objs
  72 
  73 objs/%.o pics/%.o: $(ISASRCDIR)/%.c
  74         $(COMPILE.c) -o $@ $<
  75         $(POST_PROCESS_O)
  76 
  77 objs/%.o pics/%.o: $(ISASRCDIR)/%.s
  78         $(COMPILE.s) -o $@ $<
  79         $(POST_PROCESS_O)
  80 
  81 objs/%.o pics/%.o: $(COMDIR)/%.c
  82         $(COMPILE.c) -o $@ $<
  83         $(POST_PROCESS_O)
  84 
  85 # install rule for lint library target
  86 $(ROOTLINTDIR)/%: $(COMDIR)/%
  87         $(INS.file)
  88 
  89 # install rule for x86 common source
  90 objs/%.o pics/%.o: $(SRC)/common/dis/i386/%.c
  91         $(COMPILE.c) -o $@ $<
  92         $(POST_PROCESS_O)