1# 2# This file and its contents are supplied under the terms of the 3# Common Development and Distribution License ("CDDL"), version 1.0. 4# You may only use this file in accordance with the terms of version 5# 1.0 of the CDDL. 6# 7# A full copy of the text of the CDDL should have accompanied this 8# source. A copy of the CDDL is also available via the Internet at 9# http://www.illumos.org/license/CDDL. 10# 11 12# 13# Copyright (c) 2012 by Delphix. All rights reserved. 14# Copyright 2015 Nexenta Systems, Inc. All rights reserved. 15# Copyright 2019 Joyent, Inc. 16# Copyright 2020 Oxide Computer Company 17# 18 19include $(SRC)/cmd/Makefile.cmd 20include $(SRC)/test/Makefile.com 21include $(SRC)/cmd/Makefile.ctf 22 23PROGS_32 = $(CRYPTO:%=$(BASEPROG)_32_%) 24PROGS_64 = $(CRYPTO:%=$(BASEPROG)_64_%) 25PROGS = $(PROGS_32) $(PROGS_64) 26 27COMMON_OBJS_32 = $(COMMON_OBJS:%.o=%.32.o) 28COMMON_OBJS_64 = $(COMMON_OBJS:%.o=%.64.o) 29 30# Some tests may only be relevant for PKCS#11 or KCF. One can use 31# a statement like 'CRYPTO_kcf = $(POUND_SIGN)' in a test's Makefile to 32# disable creation of tests for a given framework. For an example, see 33# modes/aes/cbc_pad/Makefile 34$(CRYPTO_pkcs)PROGS_pkcs = $(BASEPROG:%=%_32_pkcs) $(BASEPROG:%=%_64_pkcs) 35$(CRYPTO_kcf)PROGS_kcf = $(BASEPROG:%=%_32_kcf) $(BASEPROG:%=%_64_kcf) 36 37# $(TESTROOT) must be set by whatever includes this file 38$(CRYPTO_pkcs)TESTDIR_pkcs = $(TESTROOT)/pkcs 39$(CRYPTO_kcf)TESTDIR_kcf = $(TESTROOT)/kcf 40 41COMMONDIR = $(SRC)/test/crypto-tests/tests/common 42$(PROGS_32) := OBJS += $(BASEPROG:%=%.32.o) $(COMMON_OBJS_32) 43$(PROGS_64) := OBJS += $(BASEPROG:%=%.64.o) $(COMMON_OBJS_64) 44$(PROGS_32) := OBJS += $(COMMONDIR)/testfuncs.32.o 45$(PROGS_64) := OBJS += $(COMMONDIR)/testfuncs.64.o 46$(PROGS_64) := LDLIBS.cmd = $(LDLIBS64) 47$(CRYPTO_pkcs)$(BASEPROG)_32_pkcs := OBJS += $(COMMONDIR)/cryptotest_pkcs.32.o 48$(CRYPTO_pkcs)$(BASEPROG)_64_pkcs := OBJS += $(COMMONDIR)/cryptotest_pkcs.64.o 49$(CRYPTO_kcf)$(BASEPROG)_32_kcf := OBJS += $(COMMONDIR)/cryptotest_kcf.32.o 50$(CRYPTO_kcf)$(BASEPROG)_64_kcf := OBJS += $(COMMONDIR)/cryptotest_kcf.64.o 51 52$(CRYPTO_pkcs)$(PROGS_pkcs) := LDLIBS += -lpkcs11 -lcryptoutil 53 54CSTD = $(CSTD_GNU99) 55 56$(CRYPTO_pkcs)CMDS_pkcs = $(PROGS_pkcs:%_pkcs=$(TESTDIR_pkcs)/%) 57$(CRYPTO_kcf)CMDS_kcf = $(PROGS_kcf:%_kcf=$(TESTDIR_kcf)/%) 58CMDS = $(CMDS_pkcs) $(CMDS_kcf) 59 60$(CMDS) := FILEMODE = 0555 61 62CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 63CPPFLAGS += -I$(COMMONDIR) -I$(SRC)/common/crypto/ 64 65all: $(PROGS) 66 67%_32_pkcs: %.32.o $(COMMON_OBJS_32) 68 $(LINK.c) $(OBJS) -o $@ $(LDLIBS) 69 $(POST_PROCESS) 70 71%_64_pkcs: %.64.o $(COMMON_OBJS_64) 72 $(LINK64.c) $(OBJS) -o $@ $(LDLIBS) 73 $(POST_PROCESS) 74 75%_32_kcf: %.32.o $(COMMON_OBJS_32) 76 $(LINK.c) $(OBJS) -o $@ $(LDLIBS) 77 $(POST_PROCESS) 78 79%_64_kcf: %.64.o $(COMMON_OBJS_64) 80 $(LINK64.c) $(OBJS) -o $@ $(LDLIBS) 81 $(POST_PROCESS) 82 83%.32.o: %.c 84 $(COMPILE.c) -o $@ $< 85 $(POST_PROCESS_O) 86 87%.64.o: %.c 88 $(COMPILE64.c) -o $@ $< 89 $(POST_PROCESS_O) 90 91install: all $(CMDS) 92 93clobber: clean 94 -$(RM) $(PROGS) 95 96clean: 97 -$(RM) *.o $(COMMON_OBJS_32) $(COMMON_OBJS_64) $(PROGS) 98 99$(CMDS): $(TESTDIR_pkcs) $(TESTDIR_kcf) $(PROGS) 100 101$(TESTDIR_pkcs) $(TESTDIR_kcf): 102 $(INS.dir) 103 104$(TESTDIR_pkcs)/%_32: %_32_pkcs 105 $(INS.rename) 106 107$(TESTDIR_pkcs)/%_64: %_64_pkcs 108 $(INS.rename) 109 110$(TESTDIR_kcf)/%_32: %_32_kcf 111 $(INS.rename) 112 113$(TESTDIR_kcf)/%_64: %_64_kcf 114 $(INS.rename) 115