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 (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
23 #
24 # This makefile drives the production of the RSA KEF provider.
25 #
26 # intel implementation architecture dependent
27 #
28
29 #
30 # Path to the base of the uts directory tree (usually /usr/src/uts).
31 #
32 UTSBASE = ../..
33 BIGNUMDIR = $(COMMONBASE)/bignum
34 CRYPTODIR = $(COMMONBASE)/crypto
35
36 #
37 # Define the module and object file sets.
38 #
39 MODULE = bignum
40 OBJECTS = $(BIGNUM_OBJS:%=$(OBJS_DIR)/%)
41 LINTS = $(BIGNUM_OBJS:%.o=$(LINTS_DIR)/%.ln)
42 ROOTMODULE = $(ROOT_MISC_DIR)/$(MODULE)
43
44 BIGNUM_OBJS_32 = bignum_i386.o bignum_i386_asm.o
45 BIGNUM_OBJS_64 = bignum_amd64.o bignum_amd64_asm.o
46 BIGNUM_PSR_OBJS = $(BIGNUM_OBJS_$(CLASS))
47
48 #
49 # Include common rules.
50 #
51 include $(UTSBASE)/intel/Makefile.intel
52
53 #
54 # Define targets
55 #
56 ALL_TARGET = $(BINARY)
57 LINT_TARGET = $(MODULE).lint
58 INSTALL_TARGET = $(BINARY) $(ROOTMODULE)
59
60 #
61 # Linkage dependencies
62 #
63 LDFLAGS += -dy -Nmisc/kcf
64
65 CPPFLAGS += -I$(BIGNUMDIR) -I$(CRYPTODIR)
66
73
74 all: $(ALL_DEPS)
75
76 clean: $(CLEAN_DEPS)
77
78 clobber: $(CLOBBER_DEPS)
79
80 lint: $(LINT_DEPS)
81
82 modlintlib: $(MODLINTLIB_DEPS)
83
84 clean.lint: $(CLEAN_LINT_DEPS)
85
86 install: $(INSTALL_DEPS)
87
88 #
89 # Include common targets.
90 #
91 include $(UTSBASE)/intel/Makefile.targ
92
93
94 include Makefile.$(CLASS)
|
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 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
22 # Use is subject to license terms.
23 #
24 # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
25 #
26 # Copyright (c) 2019, Joyent, Inc.
27 #
28
29 #
30 # Path to the base of the uts directory tree (usually /usr/src/uts).
31 #
32 UTSBASE = ../..
33 BIGNUMDIR = $(COMMONBASE)/bignum
34 CRYPTODIR = $(COMMONBASE)/crypto
35
36 #
37 # Define the module and object file sets.
38 #
39 MODULE = bignum
40 OBJECTS = $(BIGNUM_OBJS:%=$(OBJS_DIR)/%)
41 LINTS = $(BIGNUM_OBJS:%.o=$(LINTS_DIR)/%.ln)
42 ROOTMODULE = $(ROOT_MISC_DIR)/$(MODULE)
43
44 BIGNUM_PSR_OBJS = bignum_amd64.o bignum_amd64_asm.o
45
46 #
47 # Include common rules.
48 #
49 include $(UTSBASE)/intel/Makefile.intel
50
51 #
52 # Define targets
53 #
54 ALL_TARGET = $(BINARY)
55 LINT_TARGET = $(MODULE).lint
56 INSTALL_TARGET = $(BINARY) $(ROOTMODULE)
57
58 #
59 # Linkage dependencies
60 #
61 LDFLAGS += -dy -Nmisc/kcf
62
63 CPPFLAGS += -I$(BIGNUMDIR) -I$(CRYPTODIR)
64
71
72 all: $(ALL_DEPS)
73
74 clean: $(CLEAN_DEPS)
75
76 clobber: $(CLOBBER_DEPS)
77
78 lint: $(LINT_DEPS)
79
80 modlintlib: $(MODLINTLIB_DEPS)
81
82 clean.lint: $(CLEAN_LINT_DEPS)
83
84 install: $(INSTALL_DEPS)
85
86 #
87 # Include common targets.
88 #
89 include $(UTSBASE)/intel/Makefile.targ
90
91 # Bignum configuration (BIGNUM_CFG):
92 # PSR_MUL:
93 # There is a processor-specific implementation bignum multiply functions
94 # HWCAP:
95 # There are multiple implementations of bignum functions, and the
96 # appropriate one must be chosen at run time, based on testing
97 # hardware capabilites.
98 #
99 # -DPSR_MUL:
100 # For AMD64, there is a processor-specific implementation of
101 # the bignum multiply functions, which takes advantage of the
102 # 64x64->128 bit multiply instruction.
103 #
104 # -UHWCAP:
105 # There is only one implementation, because the 128 bit multiply using
106 # general-purpose registers is faster than any MMX or SSE2 implementation.
107
108 BIGNUM_CFG = -DPSR_MUL
109 CFLAGS += -xO4 -xcrossfile
110 $(OBJS_DIR)/bignumimpl.o $(LINTS_DIR)/bignumimpl.ln := \
111 CPPFLAGS += $(BIGNUM_CFG)
112 $(OBJS_DIR)/bignum_amd64.o $(LINTS_DIR)/bignum_amd64.ln := \
113 CPPFLAGS += $(BIGNUM_CFG)
114
115 $(OBJS_DIR)/bignum_amd64.o: $(BIGNUMDIR)/amd64/bignum_amd64.c
116 $(COMPILE.c) -o $@ $(BIGNUM_CFG) $(BIGNUMDIR)/amd64/bignum_amd64.c
117 $(CTFCONVERT_O)
118
119 $(OBJS_DIR)/bignum_amd64_asm.o: $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
120 $(COMPILE.s) -P -o $@ $(BIGNUM_CFG) \
121 $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
122
123 $(LINTS_DIR)/bignum_amd64.ln: $(BIGNUMDIR)/amd64/bignum_amd64.c
124 @($(LHEAD) $(LINT.c) $(BIGNUMDIR)/amd64/bignum_amd64.c $(LTAIL))
125
126 $(LINTS_DIR)/bignum_amd64_asm.ln: $(BIGNUMDIR)/amd64/bignum_amd64_asm.s
127 @($(LHEAD) $(LINT.s) $(BIGNUMDIR)/amd64/bignum_amd64_asm.s $(LTAIL))
|