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 2009 Sun Microsystems, Inc. All rights reserved.
23 # Use is subject to license terms.
24 #
25 # Copyright (c) 2019, Joyent, Inc.
26
27 #
28 # Path to the base of the uts directory tree (usually /usr/src/uts).
29 #
30 UTSBASE = ../..
31 COMDIR = $(COMMONBASE)/crypto
32
33 #
34 # Define the module and object file sets.
35 #
36 MODULE = sha2
37 SHA2_OBJS_32 =
38 SHA2_OBJS_64 = sha512-x86_64.o sha256-x86_64.o
39 SHA2_OBJS += $(SHA2_OBJS_$(CLASS))
40 OBJECTS = $(SHA2_OBJS:%=$(OBJS_DIR)/%)
41 LINTS = $(SHA2_OBJS:%.o=$(LINTS_DIR)/%.ln)
42 ROOTMODULE = $(ROOT_CRYPTO_DIR)/$(MODULE)
43 ROOTLINK = $(ROOT_MISC_DIR)/$(MODULE)
44
45 #
46 # Include common rules.
47 #
48 include $(UTSBASE)/intel/Makefile.intel
49
50 #
51 # Override defaults
52 #
53 CLEANFILES += sha512-x86_64.s sha256-x86_64.s
54
55 #
56 # Define targets
57 #
58 ALL_TARGET = $(BINARY)
59 LINT_TARGET = $(MODULE).lint
60 INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOTLINK)
61
62 #
63 # Linkage dependencies
64 #
65 LDFLAGS += -dy -Nmisc/kcf
66
67 CFLAGS += -I$(COMDIR)
68 LINTFLAGS += -I$(COMDIR)
69
70 CERRWARN += -_gcc=-Wno-switch
71 CERRWARN += -_gcc=-Wno-uninitialized
72
73 #
74 # Default build targets.
75 #
76 .KEEP_STATE:
77
78 def: $(DEF_DEPS)
79
80 all: $(ALL_DEPS)
81
82 clean: $(CLEAN_DEPS)
83
84 clobber: $(CLOBBER_DEPS)
85
86 lint: $(LINT_DEPS)
87
88 modlintlib: $(MODLINTLIB_DEPS)
89
90 clean.lint: $(CLEAN_LINT_DEPS)
91
92 install: $(INSTALL_DEPS)
93
94 $(ROOTLINK): $(ROOT_MISC_DIR) $(ROOTMODULE)
95 -$(RM) $@; ln $(ROOTMODULE) $@
96
97 #
98 # Include common targets.
99 #
100 include $(UTSBASE)/intel/Makefile.targ
101
102 $(OBJS_DIR)/%.o: %.s
103 $(COMPILE.s) -o $@ ${@F:.o=.s}
104
105 $(OBJS_DIR)/%.ln: %.s
106 @($(LHEAD) $(LINT.c) ${@F:.ln=.s} $(LTAIL))
107
108 sha512-x86_64.s: $(COMDIR)/sha2/amd64/sha512-x86_64.pl
109 $(PERL) $? $@
110
111 sha256-x86_64.s: $(COMDIR)/sha2/amd64/sha512-x86_64.pl
112 $(PERL) $? $@