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