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 (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright 2017 Jason King
  25 # Copyright (c) 2018, Joyent, Inc.
  26 #
  27 # Copyright (c) 2018, Joyent, Inc.
  28 
  29 LIBRARY =       libsoftcrypto.a
  30 VERS =          .1
  31 
  32 include         ../Makefile.com
  33 
  34 AES_PSM_OBJS =  aes_amd64.o aes_intel.o aeskey.o
  35 ARCFOUR_PSM_OBJS = arcfour-x86_64.o
  36 BIGNUM_PSM_OBJS = bignum_amd64.o bignum_amd64_asm.o
  37 MODES_PSM_OBJS = gcm_intel.o
  38 
  39 include         $(SRC)/lib/Makefile.lib
  40 include         $(SRC)/lib/Makefile.lib.64
  41 
  42 CERRWARN +=     -_gcc=-Wno-type-limits
  43 CERRWARN +=     -_gcc=-Wno-parentheses
  44 CERRWARN +=     -_gcc=-Wno-uninitialized
  45 
  46 # not linted
  47 SMATCH=off
  48 
  49 AES_PSM_SRC =   $(AES_DIR)/$(MACH64)/aes_amd64.s \
  50                 $(AES_DIR)/$(MACH64)/aes_intel.s \
  51                 $(AES_DIR)/$(MACH64)/aeskey.c
  52 ARCFOUR_PSM_SRC = arcfour-x86_64.s
  53 BIGNUM_PSM_SRC = $(BIGNUM_DIR)/$(MACH64)/bignum_amd64.c \
  54                 $(BIGNUM_DIR)/$(MACH64)/bignum_amd64_asm.s
  55 
  56 MODES_PSM_SRC = $(MODES_DIR)/$(MACH64)/gcm_intel.s
  57 
  58 # Sources need to be redefined after Makefile.lib inclusion.
  59 SRCS =          $(AES_SRC) $(ARCFOUR_SRC) $(BIGNUM_SRC) $(BLOWFISH_SRC) \
  60                 $(DES_SRC) $(MODES_SRC) $(DH_SRC) $(DSA_SRC) $(RSA_SRC) \
  61                 $(PAD_SRC)
  62 
  63 SRCDIR =        $(SRC)/lib/pkcs11/libsoftcrypto/common
  64 
  65 LIBS =          $(DYNLIB) $(LINTLIB)
  66 MAPFILEDIR =    ../common
  67 
  68 CFLAGS +=       -xO4 -xcrossfile
  69 CPPFLAGS +=     -I$(CRYPTODIR) -I$(UTSDIR) -D_POSIX_PTHREAD_SEMANTICS
  70 ASFLAGS +=      $(AS_PICFLAGS) -P -D__STDC__ -D_ASM
  71 BIGNUM_FLAGS += -DPSR_MUL
  72 CLEANFILES +=   arcfour-x86_64.s
  73 LDLIBS +=       -lcryptoutil -lc
  74 LINTFLAGS64 +=  $(EXTRA_LINT_FLAGS)
  75 
  76 .KEEP_STATE:
  77 
  78 all:            $(LIBS)
  79 
  80 lint:           $(SRCS)
  81 
  82 install:        all $(ROOTLIBS64) $(ROOTLINKS64) $(ROOTLINT64)
  83 
  84 pics/%.o: $(AES_DIR)/$(MACH64)/%.c
  85                 $(COMPILE.c) $(AES_FLAGS) -o $@ $<
  86                 $(POST_PROCESS_O)
  87 
  88 pics/%.o: $(AES_DIR)/$(MACH64)/%.s
  89                 $(COMPILE.s) $(AES_FLAGS) -o $@ $<
  90                 $(POST_PROCESS_O)
  91 
  92 pics/%.o: $(BIGNUM_DIR)/$(MACH64)/%.c
  93                 $(COMPILE.c) $(BIGNUM_FLAGS) -o $@ $<
  94                 $(POST_PROCESS_O)
  95 
  96 pics/%.o: $(BIGNUM_DIR)/$(MACH64)/%.s
  97                 $(COMPILE64.s) $(BIGNUM_FLAGS) -o $@ $<
  98                 $(POST_PROCESS_O)
  99 
 100 pics/%.o: $(MODES_DIR)/$(MACH64)/%.s
 101                 $(COMPILE64.s) $(MODES_FLAGS) -o $@ $<
 102                 $(POST_PROCESS_O)
 103 
 104 include         ../Makefile.targ
 105 
 106 arcfour-x86_64.s: $(ARCFOUR_DIR)/amd64/arcfour-x86_64.pl
 107                 $(PERL) $? $@
 108 
 109 pics/%.o: arcfour-x86_64.s
 110                 $(COMPILE64.s) $(ARCFOUR_FLAGS) -o $@ $<
 111                 $(POST_PROCESS_O)