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# 25 26# 27# lib/pkcs11/libsoftcrypto/Makefile.com 28# 29 30# AES 31AES_DIR= $(SRC)/common/crypto/aes 32AES_COMMON_OBJS= aes_impl.o aes_modes.o 33AES_COMMON_SRC= $(AES_COMMON_OBJS:%.o=$(AES_DIR)/%.c) 34AES_FLAGS= -I$(AES_DIR) 35 36# Blowfish 37BLOWFISH_DIR= $(SRC)/common/crypto/blowfish 38BLOWFISH_COMMON_OBJS= blowfish_impl.o 39BLOWFISH_COMMON_SRC= $(BLOWFISH_COMMON_OBJS:%.o=$(BLOWFISH_DIR)/%.c) 40BLOWFISH_FLAGS= -I$(BLOWFISH_DIR) 41 42# ARCFour 43ARCFOUR_DIR= $(SRC)/common/crypto/arcfour 44ARCFOUR_COMMON_OBJS= arcfour_crypt.o 45ARCFOUR_COMMON_SRC= $(ARCFOUR_COMMON_OBJS:%.o=$(ARCFOUR_DIR)/%.c) 46ARCFOUR_FLAGS= -I$(ARCFOUR_DIR) 47 48# DES 49DES_DIR= $(SRC)/common/crypto/des 50DES_COMMON_OBJS= des_impl.o des_ks.o 51DES_COMMON_SRC= $(DES_COMMON_OBJS:%.o=$(DES_DIR)/%.c) 52DES_FLAGS= -I$(DES_DIR) 53 54# BIGNUM -- needed by DH, DSA, RSA 55BIGNUM_DIR= $(SRC)/common/bignum 56BIGNUM_COMMON_OBJS= bignumimpl.o 57BIGNUM_COMMON_SRC= $(BIGNUM_COMMON_OBJS:%.o=$(BIGNUM_DIR)/%.c) 58BIGNUM_FLAGS= -I$(BIGNUM_DIR) 59 60# Modes 61MODES_DIR= $(SRC)/common/crypto/modes 62MODES_COMMON_OBJS= modes.o ecb.o cbc.o ctr.o 63MODES_COMMON_SRC= $(MODES_COMMON_OBJS:%.o=$(MODES_DIR)/%.c) 64MODES_FLAGS= -I$(MODES_DIR) 65 66# DH 67DH_DIR= $(SRC)/common/crypto/dh 68DH_COMMON_OBJS= dh_impl.o 69DH_COMMON_SRC= $(DH_COMMON_OBJS:%.o=$(DH_DIR)/%.c) 70DH_FLAGS= $(BIGNUM_FLAGS) -I$(DH_DIR) 71 72# DSA 73DSA_DIR= $(SRC)/common/crypto/dsa 74DSA_COMMON_OBJS= dsa_impl.o 75DSA_COMMON_SRC= $(DSA_COMMON_OBJS:%.o=$(DSA_DIR)/%.c) 76DSA_FLAGS= $(BIGNUM_FLAGS) -I$(DSA_DIR) 77 78# RSA 79RSA_DIR= $(SRC)/common/crypto/rsa 80RSA_COMMON_OBJS= rsa_impl.o 81RSA_COMMON_SRC= $(RSA_COMMON_OBJS:%.o=$(RSA_DIR)/%.c) 82RSA_FLAGS= $(BIGNUM_FLAGS) -I$(RSA_DIR) 83 84# PADDING -- needed by RSA 85PAD_DIR= $(SRC)/common/crypto/padding 86PAD_COMMON_OBJS= pkcs1.o pkcs7.o 87PAD_COMMON_SRC= $(PAD_COMMON_OBJS:%.o=$(PAD_DIR)/%.c) 88PAD_FLAGS= -I$(PAD_DIR) 89 90# Object setup 91AES_OBJS= $(AES_COMMON_OBJS) $(AES_PSM_OBJS) 92ARCFOUR_OBJS= $(ARCFOUR_COMMON_OBJS) $(ARCFOUR_PSM_OBJS) 93BLOWFISH_OBJS= $(BLOWFISH_COMMON_OBJS) $(BLOWFISH_PSM_OBJS) 94DES_OBJS= $(DES_COMMON_OBJS) $(DES_PSM_OBJS) 95BIGNUM_OBJS= $(BIGNUM_COMMON_OBJS) $(BIGNUM_PSM_OBJS) 96MODES_OBJS= $(MODES_COMMON_OBJS) $(MODES_PSM_OBJS) 97DH_OBJS= $(DH_COMMON_OBJS) $(DH_PSM_OBJS) 98DSA_OBJS= $(DSA_COMMON_OBJS) $(DSA_PSM_OBJS) 99RSA_OBJS= $(RSA_COMMON_OBJS) $(RSA_PSM_OBJS) 100PAD_OBJS= $(PAD_COMMON_OBJS) $(PAD_PSM_OBJS) 101 102OBJECTS= $(AES_OBJS) $(ARCFOUR_OBJS) $(BIGNUM_OBJS) $(BLOWFISH_OBJS) \ 103 $(DES_OBJS) $(MODES_OBJS) $(DH_OBJS) $(DSA_OBJS) \ 104 $(RSA_OBJS) $(PAD_OBJS) 105 106include $(SRC)/lib/Makefile.lib 107 108# Source file setup 109AES_SRC= $(AES_COMMON_SRC) $(AES_PSM_SRC) 110ARCFOUR_SRC= $(ARCFOUR_COMMON_SRC) $(ARCFOUR_PSM_SRC) 111BLOWFISH_SRC= $(BLOWFISH_COMMON_SRC) $(BLOWFISH_PSM_SRC) 112DES_SRC= $(DES_COMMON_SRC) $(DES_PSM_SRC) 113BIGNUM_SRC= $(BIGNUM_COMMON_SRC) $(BIGNUM_PSM_SRC) 114MODES_SRC= $(MODES_COMMON_SRC) $(MODES_PSM_SRC) 115DH_SRC= $(DH_COMMON_SRC) $(DH_PSM_SRC) 116DSA_SRC= $(DSA_COMMON_SRC) $(DSA_PSM_SRC) 117RSA_SRC= $(RSA_COMMON_SRC) $(RSA_PSM_SRC) 118PAD_SRC= $(PAD_COMMON_SRC) $(PAD_PSM_SRC) 119 120SRCS= $(AES_SRC) $(ARCFOUR_SRC) $(BIGNUM_SRC) $(BLOWFISH_SRC) $(DES_SRC) \ 121 $(MODES_SRC) $(DH_SRC) $(DSA_SRC) $(RSA_SRC) \ 122 $(PAD_SRC) 123 124# Do not lint ECC and MPI 125LINTABLE= \ 126 $(AES_SRC) $(ARCFOUR_SRC) $(BIGNUM_SRC) $(BLOWFISH_SRC) $(DES_SRC) \ 127 $(MODES_SRC) $(DH_SRC) $(DSA_SRC) $(RSA_SRC) $(PAD_SRC) 128 129# 130# Compiler settings 131# 132 133SRCDIR= $(SRC)/lib/pkcs11/libsoftcrypto/common/ 134CRYPTODIR= $(SRC)/common/crypto/ 135UTSDIR= $(SRC)/uts/common/ 136ROOTLIBDIR= $(ROOT)/usr/lib 137ROOTLIBDIR64= $(ROOT)/usr/lib/$(MACH64) 138ROOTHWCAPDIR= $(ROOTLIBDIR)/libsoftcrypto 139 140# $(LINTLIB) is not included here; i386_hwcap1/Makefile does not make 141# a lint library, so each of the other platform-specific Makefiles adds 142# the lint library target individually 143LIBS = $(DYNLIB) 144LDLIBS += -lc 145 146CFLAGS += $(CCVERBOSE) $(C_BIGPICFLAGS) 147CPPFLAGS += -I$(SRCDIR) -I$(CRYPTODIR) -I$(UTSDIR) \ 148 $(BIGNUM_FLAGS) \ 149 -D_POSIX_PTHREAD_SEMANTICS 150ASFLAGS = $(AS_PICFLAGS) -P -D__STDC__ -D_ASM 151EXTRA_LINT_FLAGS = \ 152 $(AES_FLAGS) $(BLOWFISH_FLAGS) $(ARCFOUR_FLAGS) $(DES_FLAGS) \ 153 $(BIGNUM_FLAGS) $(MODES_FLAGS) $(DH_FLAGS) $(DSA_FLAGS) \ 154 $(RSA_FLAGS) $(PAD_FLAGS) 155LINTFLAGS += $(EXTRA_LINT_FLAGS) 156LINTFLAGS64 += $(EXTRA_LINT_FLAGS) -errchk=longptr64 157 158LINTLIB= llib-l$(LIBNAME).ln 159$(LINTLIB) := SRCS = $(LINTABLE) 160lintcheck := SRCS = $(LINTABLE) 161 162all: $(LIBS) 163 164lint: lintcheck 165 166pics/%.o: $(AES_DIR)/%.c 167 $(COMPILE.c) $(AES_FLAGS) -o $@ $< 168 $(POST_PROCESS_O) 169 170pics/%.o: $(ARCFOUR_DIR)/%.c 171 $(COMPILE.c) $(ARCFOUR_FLAGS) -o $@ $< 172 $(POST_PROCESS_O) 173 174pics/%.o: $(BIGNUM_DIR)/%.c 175 $(COMPILE.c) $(BIGNUM_FLAGS) -o $@ $< 176 $(POST_PROCESS_O) 177 178pics/%.o: $(BLOWFISH_DIR)/%.c 179 $(COMPILE.c) $(BLOWFISH_FLAGS) -o $@ $< 180 $(POST_PROCESS_O) 181 182pics/%.o: $(DES_DIR)/%.c 183 $(COMPILE.c) $(DES_FLAGS) -o $@ $< 184 $(POST_PROCESS_O) 185 186pics/%.o: $(MODES_DIR)/%.c 187 $(COMPILE.c) $(MODES_FLAGS) -o $@ $< 188 $(POST_PROCESS_O) 189 190pics/%.o: $(DH_DIR)/%.c 191 $(COMPILE.c) $(DH_FLAGS) -o $@ $< 192 $(POST_PROCESS_O) 193 194pics/%.o: $(DSA_DIR)/%.c 195 $(COMPILE.c) $(DSA_FLAGS) -o $@ $< 196 $(POST_PROCESS_O) 197 198pics/%.o: $(RSA_DIR)/%.c 199 $(COMPILE.c) $(RSA_FLAGS) -o $@ $< 200 $(POST_PROCESS_O) 201 202pics/%.o: $(PAD_DIR)/%.c 203 $(COMPILE.c) $(PAD_FLAGS) -o $@ $< 204 $(POST_PROCESS_O) 205 206# 207# Platform-specific targets 208# 209 210 211SOFT_PSR_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib) 212SOFT_PSR_LINKS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib/$(MODULE)) 213 214SOFT_PSR64_DIRS = $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib/$(MACH64)) 215SOFT_PSR64_LINKS = \ 216 $(LINKED_PLATFORMS:%=$(USR_PLAT_DIR)/%/lib/$(MACH64)/$(MODULE)) 217 218INS.slink6 = $(RM) -r $@; \ 219 $(SYMLINK) ../../$(PLATFORM)/lib/$(MODULE) $@ 220INS.slink64 = $(RM) -r $@; \ 221 $(SYMLINK) ../../../$(PLATFORM)/lib/$(MACH64)/$(MODULE) $@ 222 223$(SOFT_PSR_DIRS) \ 224$(SOFT_PSR64_DIRS): 225 -$(INS.dir) 226 227$(SOFT_PSR_LINKS): $(SOFT_PSR_DIRS) 228 -$(INS.slink6) 229 230$(SOFT_PSR64_LINKS): $(SOFT_PSR64_DIRS) 231 -$(INS.slink64) 232 233 234include $(SRC)/lib/Makefile.targ 235