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 (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
  23 #
  24 
  25 objs/%.o \
  26 pics/%.o:       %.c
  27                 $(COMPILE.c) -o $@ $<
  28                 $(POST_PROCESS_O)
  29 
  30 objs/%64.o \
  31 pics/%64.o:     ../common/%.c
  32                 $(COMPILE.c) -D_ELF64 -o $@ $<
  33                 $(POST_PROCESS_O)
  34 
  35 objs/%.o \
  36 pics/%.o:       ../misc/%.c
  37                 $(COMPILE.c) -DELF -o $@ $<
  38                 $(POST_PROCESS_O)
  39 
  40 objs/%.o \
  41 pics/%.o:       ../common/%.c
  42                 $(COMPILE.c) -o $@ $<
  43                 $(POST_PROCESS_O)
  44 
  45 all:            $(BLTSRCS) .WAIT $(LIBS) $(LIBLINKS)
  46 
  47 install:        all .WAIT $(ROOTFS_LIBS) $(ROOTFS_LINKS) \
  48                 $(ROOTFS_LINTLIB) \
  49                 .WAIT $(ROOTDEMODIRS) .WAIT $(ROOTDEMOFILES) \
  50                 $(ROOTFS_LIBDIR)/$(LINTLIBSRC)
  51 
  52 $(ROOTFS_LIBDIR)/$(LINTLIBSRC): ../common/$(LINTLIBSRC)
  53                 $(VAR_POUND_1)  $(INS.file) ../common/$(LINTLIBSRC)
  54 
  55 lint:           $(LINTLIB) $(LINTOUT32) $(LINTOUT64) $(SGSLINTOUT)
  56 
  57 .PARALLEL:      $(LINTOUT32) $(LINTOUT64)
  58 
  59 delete:
  60                 $(RM) $(DYNLIB)
  61 
  62 $(LIBLINKS):
  63                 $(RM) $(LIBLINKS)
  64                 $(SYMLINK) $(DYNLIB) $(LIBLINKS)
  65 
  66 CLOBBERFILES += $(LIBLINKS)
  67 
  68 # include common library targets
  69 #
  70 include         $(SRC)/lib/Makefile.targ
  71 include         $(SRC)/cmd/sgs/Makefile.targ
  72 
  73 xlate.c:        ../common/xlate.m4
  74                 $(M4) < ../common/xlate.m4 > xlate.c
  75 
  76 xlate64.c:      ../common/xlate64.m4
  77                 $(M4) < ../common/xlate64.m4 > xlate64.c
  78 
  79 
  80 objs/msg.o \
  81 pics/msg.o:     msg.c
  82 
  83 objs/error.o \
  84 pics/error.o:   msg.h
  85 
  86 objs/ar.o \
  87 pics/ar.o:      msg.h
  88 
  89 objs/xlate.o \
  90 pics/xlate.o:   xlate.c
  91 
  92 #
  93 # Targets needed to support running of Warlock. The old warlock can be
  94 # located at:
  95 #       suntools.eng:/export/tools/internal/warlock
  96 #
  97 # to use add the following to your path:
  98 #       export PATH=/net/suntools.eng/export/tools/internal/warlock/bin:$PATH
  99 #
 100 # The newer warlock is at:
 101 #       export PATH=/ws/onnv-gate/public/warlock/$MACH:$PATH
 102 #
 103 # This target has value for manual debugging, but is not suitable
 104 # for production use. For this reason, the necessary rules are commented
 105 # out with '###'. Remove the comments to use it.
 106 #
 107 ###warlock := CFLAGS=
 108 ###
 109 ###.PARALLEL: $(WARLOCKFILES)
 110 ###warlock: wlocks .WAIT warlock_files
 111 ###     warlock -c ../common/libelf.wlcmd $(WARLOCKFILES)
 112 ###
 113 ###warlock_files: $(BLTSRCS) .WAIT $(WARLOCKFILES)
 114 ###
 115 ###wlocks:
 116 ###     -@mkdir -p $@
 117 ###
 118 ###wlocks/%.ll: %.c
 119 ###     wlcc $(CFLAGS) $(CPPFLAGS) -o $@ $<
 120 ###
 121 ###wlocks/%.ll: ../misc/%.c
 122 ###     wlcc $(CFLAGS) $(CPPFLAGS) -o $@ $<
 123 ###
 124 ###wlocks/%.ll: ../common/%.c
 125 ###     wlcc $(CFLAGS) $(CPPFLAGS) -o $@ $<
 126 ###
 127 ###wlocks/%64.ll:       ../common/%.c
 128 ###     wlcc -D_ELF64 $(CFLAGS) $(CPPFLAGS) -o $@ $<
 129 
 130 
 131 # Special target for native builds (ie. when we need to build a version of ld
 132 # to build a version of ld :-).
 133 
 134 native:         $(SGSPROTO)/$(DYNLIB)
 135 
 136 $(SGSPROTO)/$(DYNLIB): \
 137                 pics .WAIT $$(PICS)
 138                 $(BUILD.SO)
 139                 $(POST_PROCESS_SO)
 140                 -@$(RM) $(SGSPROTO)/$(LIBLINKS)
 141                 $(SYMLINK) $(DYNLIB) $(SGSPROTO)/$(LIBLINKS)
 142 
 143 
 144 # Derived source and header files (messaging).  Make sure that the sgsmsg
 145 # command is constructed - libelf might not be built with the whole sgs.
 146 
 147 catalog:        $(BLTMESG)
 148 
 149 chkmsg:         $(LIBSRCS)
 150                 sh $(CHKMSG) $(CHKMSGFLAGS) $(LIBSRCS)
 151 
 152 $(BLTDEFS) + \
 153 $(BLTDATA):     $(SGSMSG) $(SGSMSGTARG)
 154                 $(SGSMSG) $(SGSMSGFLAGS2) $(SGSMSGTARG)
 155 
 156 $(BLTMESG):     $(SGSMSG) $(SGSMSGALL) xlate.c xlate64.c
 157                 $(SGSMSG) $(SGSMSGFLAGS1) $(SGSMSGALL)
 158 
 159 $(SGSMSG):      FRC
 160                 @ cd $(SGSTOOLS)/$(MACH); pwd; $(MAKE) catalog
 161                 @ pwd
 162 
 163 FRC: