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