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