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 # Copyright (c) 2018, Joyent, Inc.
  26 
  27 LIBRARY= pkcs11_kernel.a
  28 VERS= .1
  29 
  30 CORE_OBJECTS= \
  31         kernelGeneral.o         \
  32         kernelSlottable.o       \
  33         kernelSlotToken.o       \
  34         kernelObject.o          \
  35         kernelDigest.o          \
  36         kernelSign.o            \
  37         kernelVerify.o          \
  38         kernelDualCrypt.o       \
  39         kernelKeys.o            \
  40         kernelRand.o            \
  41         kernelSession.o         \
  42         kernelSessionUtil.o     \
  43         kernelUtil.o            \
  44         kernelEncrypt.o         \
  45         kernelDecrypt.o         \
  46         kernelObjectUtil.o      \
  47         kernelAttributeUtil.o   \
  48         kernelEmulate.o
  49 
  50 OTHER_OBJECTS = kernelSoftCommon.o
  51 ST_OBJECTS = softDigestUtil.o softMAC.o
  52 
  53 OBJECTS= \
  54         $(CORE_OBJECTS)         \
  55         $(OTHER_OBJECTS)        \
  56         $(ST_OBJECTS)
  57 
  58 AESDIR=         $(SRC)/common/crypto/aes
  59 ARCFOURDIR=     $(SRC)/common/crypto/arcfour
  60 BLOWFISHDIR=    $(SRC)/common/crypto/blowfish
  61 DESDIR=         $(SRC)/common/crypto/des
  62 ECCDIR=         $(SRC)/common/crypto/ecc
  63 CRYPTDIR=       $(SRC)/common/crypto
  64 ST_DIR=         $(SRC)/lib/pkcs11/pkcs11_softtoken/common
  65 
  66 lint \
  67 pics/kernelAttributeUtil.o := \
  68         CPPFLAGS += -I$(AESDIR) -I$(BLOWFISHDIR) -I$(ARCFOURDIR) -I$(DESDIR) \
  69         -I$(ECCDIR) -I$(CRYPTDIR)
  70 pics/kernelKeys.o := \
  71         CPPFLAGS += -I$(ECCDIR)
  72 pics/kernelSoftCommon.o := \
  73         CPPFLAGS = -I$(ST_DIR) $(CPPFLAGS.master)
  74 
  75 include $(SRC)/lib/Makefile.lib
  76 
  77 #       set signing mode
  78 POST_PROCESS_SO +=      ; $(ELFSIGN_CRYPTO)
  79 
  80 SRCDIR=         ../common
  81 CORESRCS =  \
  82         $(CORE_OBJECTS:%.o=$(SRCDIR)/%.c)
  83 
  84 LIBS    =       $(DYNLIB)
  85 LDLIBS  +=      -lc -lcryptoutil -lmd
  86 
  87 CFLAGS  +=      $(CCVERBOSE)
  88 
  89 CERRWARN +=     $(CNOWARN_UNINIT)
  90 CERRWARN +=     -_gcc=-Wno-unused-label
  91 
  92 # not linted
  93 SMATCH=off
  94 
  95 ROOTLIBDIR=     $(ROOT)/usr/lib/security
  96 ROOTLIBDIR64=   $(ROOT)/usr/lib/security/$(MACH64)
  97 
  98 .KEEP_STATE:
  99 
 100 all:    $(LIBS)
 101 
 102 # we don't need to lint ST_OBJECTS since they are linted elsewhere.
 103 lintcheck := SRCS = $(CORESRCS)
 104 lintother := OSRCS = ../common/kernelSoftCommon.c
 105 lintother := CPPFLAGS = -I$(ST_DIR) $(CPPFLAGS.master)
 106 
 107 lintother: $$(OSRCS)
 108         $(LINT.c) $(LINTCHECKFLAGS) $(OSRCS) $(LDLIBS)
 109 
 110 lint: lintcheck lintother
 111 
 112 pics/%.o:       $(ST_DIR)/%.c
 113         $(COMPILE.c) -o $@ $< -I$(ST_DIR)
 114         $(POST_PROCESS_O)
 115 
 116 include $(SRC)/lib/Makefile.targ