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) 2010, Oracle and/or its affiliates. All rights reserved.
  23 #
  24 # Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  25 #
  26 # Copyright (c) 2019, Joyent, Inc.
  27 #
  28 
  29 COBJS =         brand_util.o
  30 ASOBJS =        crt.o handler.o runexe.o
  31 OFFSETS_SRC =   ../common/offsets.in
  32 OFFSETS_H =     assym.h
  33 OBJECTS =       $(COBJS) $(ASOBJS)
  34 CLOBBERFILES += $(OFFSETS_H)
  35 
  36 include $(SRC)/lib/Makefile.lib
  37 
  38 SRCDIR =        ../common
  39 CSRCS =         $(COBJS:%o=../common/%c)
  40 ASSRCS =        $(ASOBJS:%o=$(ISASRCDIR)/%s)
  41 SRCS =          $(CSRCS) $(ASSRCS)
  42 
  43 #
  44 # Ugh, this is a gross hack.  Our assembly routines uses lots of defines
  45 # to simplify variable access.  All these defines work fine for amd64
  46 # compiles because when compiling for amd64 we use the GNU assembler,
  47 # gas.  For 32-bit code we use the Sun assembler, as.  Unfortunatly
  48 # as does not handle certian constructs that gas does.  So rather than
  49 # make our code less readable, we'll just use gas to compile our 32-bit
  50 # code as well.
  51 #
  52 i386_AS         = $(amd64_AS)
  53 
  54 CPPFLAGS +=     -D_REENTRANT -U_ASM -I. -I../sys
  55 CFLAGS +=       $(CCVERBOSE)
  56 ASFLAGS =       -P $(ASFLAGS_$(CURTYPE)) -D_ASM -I. -I../sys
  57 
  58 .KEEP_STATE:
  59 
  60 #
  61 # build the offset header before trying to compile any files.  (it's included
  62 # by brand_misc.h, so it's needed for all objects, not just assembly ones.)
  63 #
  64 # Note we have to build assym.h via its dependency on pics/% so that the
  65 # target dependent assignment of CTF_FLAGS will be there, otherwise make
  66 # will see two different commands to build it (endless rebuilds).
  67 #
  68 all: pics .WAIT $$(PICS)
  69 
  70 lint: lintcheck
  71 
  72 $(OBJECTS:%=pics/%): $(OFFSETS_H)
  73 
  74 $(OFFSETS_H): $(OFFSETS_SRC)
  75         $(OFFSETS_CREATE) < $(OFFSETS_SRC) >$@
  76 
  77 pics/%.o: $(ISASRCDIR)/%.s
  78         $(COMPILE.s) -o $@ $<
  79         $(POST_PROCESS_S_O)
  80 
  81 include $(SRC)/lib/Makefile.targ