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 #
  23 # Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 # Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
  27 #
  28 
  29 include         ../../../../../lib/Makefile.lib
  30 include         ../../../Makefile.com
  31 
  32 CAP_LIB=        cap.so
  33 CAP_OBJ=        cap_msg.o cap32.o cap64.o
  34 
  35 DYN_LIB=        dyn.so
  36 DYN_OBJ=        dyn_msg.o dyn32.o dyn64.o
  37 
  38 EHDR_LIB=       ehdr.so
  39 EHDR_OBJ=       ehdr_msg.o ehdr32.o ehdr64.o
  40 
  41 PHDR_LIB=       phdr.so
  42 PHDR_OBJ=       phdr_msg.o phdr32.o phdr64.o
  43 
  44 SHDR_LIB=       shdr.so
  45 SHDR_OBJ=       shdr_msg.o shdr32.o shdr64.o
  46 
  47 STR_LIB=        str.so
  48 STR_OBJ=        str_msg.o str32.o str64.o
  49 
  50 SYM_LIB=        sym.so
  51 SYM_OBJ=        sym_msg.o sym32.o sym64.o
  52 
  53 SYMINFO_LIB=    syminfo.so
  54 SYMINFO_OBJ=    syminfo_msg.o syminfo32.o syminfo64.o
  55 
  56 ELFEDITLIBS=    $(CAP_LIB) $(DYN_LIB) $(EHDR_LIB) $(PHDR_LIB) \
  57                 $(SHDR_LIB) $(STR_LIB) $(SYM_LIB) $(SYMINFO_LIB)
  58 
  59 PICDIR=         pics
  60 
  61 CAP_PICS=       $(CAP_OBJ:%.o=$(PICDIR)/%.o)
  62 DYN_PICS=       $(DYN_OBJ:%.o=$(PICDIR)/%.o)
  63 EHDR_PICS=      $(EHDR_OBJ:%.o=$(PICDIR)/%.o)
  64 PHDR_PICS=      $(PHDR_OBJ:%.o=$(PICDIR)/%.o)
  65 SHDR_PICS=      $(SHDR_OBJ:%.o=$(PICDIR)/%.o)
  66 STR_PICS=       $(STR_OBJ:%.o=$(PICDIR)/%.o)
  67 SYM_PICS=       $(SYM_OBJ:%.o=$(PICDIR)/%.o)
  68 SYMINFO_PICS=   $(SYMINFO_OBJ:%.o=$(PICDIR)/%.o)
  69 
  70 LDLIBS +=       $(ELFLIBDIR) -lelf $(LDDBGLIBDIR) $(LDDBG_LIB) \
  71                 $(CONVLIBDIR) $(CONV_LIB) -lc
  72 
  73 $(CAP_LIB):=            PICS = $(CAP_PICS)
  74 $(DYN_LIB):=            PICS = $(DYN_PICS)
  75 $(EHDR_LIB):=           PICS = $(EHDR_PICS)
  76 $(PHDR_LIB):=           PICS = $(PHDR_PICS)
  77 $(SHDR_LIB):=           PICS = $(SHDR_PICS)
  78 $(STR_LIB):=            PICS = $(STR_PICS)
  79 $(SYM_LIB):=            PICS = $(SYM_PICS)
  80 $(SYMINFO_LIB):=        PICS = $(SYMINFO_PICS)
  81 
  82 $(CAP_LIB):=            SONAME = $(CAP_LIB)
  83 $(DYN_LIB):=            SONAME = $(DYN_LIB)
  84 $(EHDR_LIB):=           SONAME = $(EHDR_LIB)
  85 $(PHDR_LIB):=           SONAME = $(PHDR_LIB)
  86 $(SHDR_LIB):=           SONAME = $(SHDR_LIB)
  87 $(STR_LIB):=            SONAME = $(STR_LIB)
  88 $(SYM_LIB):=            SONAME = $(SYM_LIB)
  89 $(SYMINFO_LIB):=        SONAME = $(SYMINFO_LIB)
  90 
  91 # All the modules use a shared mapfile
  92 MAPFILES = ../common/mapfile-vers
  93 
  94 CPPFLAGS +=     -I../../../include -I../../../include/$(MACH) \
  95                 -I../$(SRCBASE)/lib/libc/inc  -D_REENTRANT
  96 LLDFLAGS =      '-R$$ORIGIN/../../../lib'
  97 LLDFLAGS64 =    '-R$$ORIGIN/../../../../lib/$(MACH64)'
  98 LDFLAGS +=      $(CC_USE_PROTO) $(LLDFLAGS)
  99 DYNFLAGS +=     $(VERSREF)
 100 
 101 CERRWARN +=     -_gcc=-Wno-switch
 102 CERRWARN +=     -_gcc=-Wno-uninitialized
 103 
 104 BLTDEFS =       $(ELFEDITLIBS:%.so=%_msg.h)
 105 BLTDATA =       $(ELFEDITLIBS:%.so=%_msg.c)
 106 BLTFILES =      $(BLTDEFS) $(BLTDATA)
 107 
 108 CLEANFILES +=   $(BLTFILES) $(PICDIR)/*
 109 CLOBBERFILES += $(ELFEDITLIBS)
 110 
 111 ROOTELFEDITDIR=         $(ROOT)/usr/lib/elfedit
 112 ROOTELFEDITDIR64=       $(ROOT)/usr/lib/elfedit/$(MACH64)
 113 ROOTELFEDITLIBS=        $(ROOTELFEDITDIR)/$(MTARG)$(CAP_LIB) \
 114                         $(ROOTELFEDITDIR)/$(MTARG)$(DYN_LIB) \
 115                         $(ROOTELFEDITDIR)/$(MTARG)$(EHDR_LIB) \
 116                         $(ROOTELFEDITDIR)/$(MTARG)$(PHDR_LIB) \
 117                         $(ROOTELFEDITDIR)/$(MTARG)$(SHDR_LIB) \
 118                         $(ROOTELFEDITDIR)/$(MTARG)$(STR_LIB) \
 119                         $(ROOTELFEDITDIR)/$(MTARG)$(SYM_LIB) \
 120                         $(ROOTELFEDITDIR)/$(MTARG)$(SYMINFO_LIB)
 121 
 122 
 123 FILEMODE=       0755
 124 
 125 .PARALLEL:      $(ELFEDITLIBS)