1*90e502c7SAndroid Build Coastguard Worker# Makefile for crypto test suite 2*90e502c7SAndroid Build Coastguard Worker# 3*90e502c7SAndroid Build Coastguard Worker# David A. McGrew 4*90e502c7SAndroid Build Coastguard Worker# Cisco Systems, Inc. 5*90e502c7SAndroid Build Coastguard Worker 6*90e502c7SAndroid Build Coastguard Workersrcdir = @srcdir@ 7*90e502c7SAndroid Build Coastguard Workertop_srcdir = @top_srcdir@ 8*90e502c7SAndroid Build Coastguard Workertop_builddir = @top_builddir@ 9*90e502c7SAndroid Build Coastguard WorkerVPATH = @srcdir@ 10*90e502c7SAndroid Build Coastguard Worker 11*90e502c7SAndroid Build Coastguard WorkerCC = @CC@ 12*90e502c7SAndroid Build Coastguard WorkerINCDIR = -Iinclude -I$(srcdir)/include -I$(top_srcdir)/include 13*90e502c7SAndroid Build Coastguard WorkerDEFS = @DEFS@ 14*90e502c7SAndroid Build Coastguard WorkerCPPFLAGS= @CPPFLAGS@ 15*90e502c7SAndroid Build Coastguard WorkerCFLAGS = @CFLAGS@ 16*90e502c7SAndroid Build Coastguard WorkerLIBS = @LIBS@ 17*90e502c7SAndroid Build Coastguard WorkerLDFLAGS = @LDFLAGS@ -L. -L.. 18*90e502c7SAndroid Build Coastguard WorkerCOMPILE = $(CC) $(DEFS) $(INCDIR) $(CPPFLAGS) $(CFLAGS) 19*90e502c7SAndroid Build Coastguard WorkerCRYPTOLIB = -lsrtp2 20*90e502c7SAndroid Build Coastguard WorkerCRYPTO_LIBDIR = @CRYPTO_LIBDIR@ 21*90e502c7SAndroid Build Coastguard Worker 22*90e502c7SAndroid Build Coastguard WorkerRANLIB = @RANLIB@ 23*90e502c7SAndroid Build Coastguard Worker 24*90e502c7SAndroid Build Coastguard Worker# Specify how tests should find shared libraries on macOS and Linux 25*90e502c7SAndroid Build Coastguard Worker# 26*90e502c7SAndroid Build Coastguard Worker# macOS purges DYLD_LIBRARY_PATH when spawning subprocesses, so it's 27*90e502c7SAndroid Build Coastguard Worker# not possible to pass this in from the outside; we have to specify 28*90e502c7SAndroid Build Coastguard Worker# it for any subprocesses we call. No support for dynamic linked 29*90e502c7SAndroid Build Coastguard Worker# tests on Windows. 30*90e502c7SAndroid Build Coastguard Workerifneq ($(strip $(CRYPTO_LIBDIR)),) 31*90e502c7SAndroid Build Coastguard Worker ifneq ($(OS),Windows_NT) 32*90e502c7SAndroid Build Coastguard Worker UNAME_S = $(shell uname -s) 33*90e502c7SAndroid Build Coastguard Worker ifeq ($(UNAME_S),Linux) 34*90e502c7SAndroid Build Coastguard Worker FIND_LIBRARIES = LD_LIBRARY_PATH=$(CRYPTO_LIBDIR) 35*90e502c7SAndroid Build Coastguard Worker endif 36*90e502c7SAndroid Build Coastguard Worker ifeq ($(UNAME_S),Darwin) 37*90e502c7SAndroid Build Coastguard Worker FIND_LIBRARIES = DYLD_LIBRARY_PATH=$(CRYPTO_LIBDIR) 38*90e502c7SAndroid Build Coastguard Worker endif 39*90e502c7SAndroid Build Coastguard Worker endif 40*90e502c7SAndroid Build Coastguard Workerendif 41*90e502c7SAndroid Build Coastguard Worker 42*90e502c7SAndroid Build Coastguard Worker# EXE defines the suffix on executables - it's .exe for cygwin, and 43*90e502c7SAndroid Build Coastguard Worker# null on linux, bsd, and OS X and other OSes. we define this so that 44*90e502c7SAndroid Build Coastguard Worker# `make clean` will work on the cygwin platform 45*90e502c7SAndroid Build Coastguard WorkerEXE = @EXE@ 46*90e502c7SAndroid Build Coastguard Worker# Random source. 47*90e502c7SAndroid Build Coastguard WorkerUSE_EXTERNAL_CRYPTO = @USE_EXTERNAL_CRYPTO@ 48*90e502c7SAndroid Build Coastguard Worker 49*90e502c7SAndroid Build Coastguard Workerifdef ARCH 50*90e502c7SAndroid Build Coastguard Worker DEFS += -D$(ARCH)=1 51*90e502c7SAndroid Build Coastguard Workerendif 52*90e502c7SAndroid Build Coastguard Worker 53*90e502c7SAndroid Build Coastguard Workerifdef sysname 54*90e502c7SAndroid Build Coastguard Worker DEFS += -D$(sysname)=1 55*90e502c7SAndroid Build Coastguard Workerendif 56*90e502c7SAndroid Build Coastguard Worker 57*90e502c7SAndroid Build Coastguard Worker.PHONY: dummy all runtest clean superclean 58*90e502c7SAndroid Build Coastguard Worker 59*90e502c7SAndroid Build Coastguard Workerdummy : all runtest 60*90e502c7SAndroid Build Coastguard Worker 61*90e502c7SAndroid Build Coastguard Worker# test applications 62*90e502c7SAndroid Build Coastguard Workerifneq (1, $(USE_EXTERNAL_CRYPTO)) 63*90e502c7SAndroid Build Coastguard WorkerAES_CALC = test/aes_calc$(EXE) 64*90e502c7SAndroid Build Coastguard Workerendif 65*90e502c7SAndroid Build Coastguard Worker 66*90e502c7SAndroid Build Coastguard Workertestapp = test/cipher_driver$(EXE) test/datatypes_driver$(EXE) \ 67*90e502c7SAndroid Build Coastguard Worker test/stat_driver$(EXE) test/sha1_driver$(EXE) \ 68*90e502c7SAndroid Build Coastguard Worker test/kernel_driver$(EXE) $(AES_CALC) \ 69*90e502c7SAndroid Build Coastguard Worker test/env$(EXE) 70*90e502c7SAndroid Build Coastguard Worker 71*90e502c7SAndroid Build Coastguard Worker# data values used to test the aes_calc application for AES-128 72*90e502c7SAndroid Build Coastguard Workerk128=000102030405060708090a0b0c0d0e0f 73*90e502c7SAndroid Build Coastguard Workerp128=00112233445566778899aabbccddeeff 74*90e502c7SAndroid Build Coastguard Workerc128=69c4e0d86a7b0430d8cdb78070b4c55a 75*90e502c7SAndroid Build Coastguard Worker 76*90e502c7SAndroid Build Coastguard Worker 77*90e502c7SAndroid Build Coastguard Worker# data values used to test the aes_calc application for AES-256 78*90e502c7SAndroid Build Coastguard Workerk256=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 79*90e502c7SAndroid Build Coastguard Workerp256=00112233445566778899aabbccddeeff 80*90e502c7SAndroid Build Coastguard Workerc256=8ea2b7ca516745bfeafc49904b496089 81*90e502c7SAndroid Build Coastguard Worker 82*90e502c7SAndroid Build Coastguard Worker 83*90e502c7SAndroid Build Coastguard Workerruntest: $(testapp) 84*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/env$(EXE) # print out information on the build environment 85*90e502c7SAndroid Build Coastguard Worker @echo "running crypto test applications..." 86*90e502c7SAndroid Build Coastguard Workerifneq (1, $(USE_EXTERNAL_CRYPTO)) 87*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test `test/aes_calc $(k128) $(p128)` = $(c128) 88*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test `test/aes_calc $(k256) $(p256)` = $(c256) 89*90e502c7SAndroid Build Coastguard Workerendif 90*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/cipher_driver$(EXE) -v >/dev/null 91*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/datatypes_driver$(EXE) -v >/dev/null 92*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/stat_driver$(EXE) >/dev/null 93*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/sha1_driver$(EXE) -v >/dev/null 94*90e502c7SAndroid Build Coastguard Worker $(FIND_LIBRARIES) test/kernel_driver$(EXE) -v >/dev/null 95*90e502c7SAndroid Build Coastguard Worker @echo "crypto test applications passed." 96*90e502c7SAndroid Build Coastguard Worker 97*90e502c7SAndroid Build Coastguard Worker 98*90e502c7SAndroid Build Coastguard Worker# the rule for making object files and test apps 99*90e502c7SAndroid Build Coastguard Worker 100*90e502c7SAndroid Build Coastguard Worker%.o: %.c 101*90e502c7SAndroid Build Coastguard Worker $(COMPILE) -c $< -o $@ 102*90e502c7SAndroid Build Coastguard Worker 103*90e502c7SAndroid Build Coastguard Worker%$(EXE): %.c $(srcdir)/../test/getopt_s.c 104*90e502c7SAndroid Build Coastguard Worker $(COMPILE) $(LDFLAGS) $< $(srcdir)/../test/getopt_s.c -o $@ $(CRYPTOLIB) $(LIBS) 105*90e502c7SAndroid Build Coastguard Worker 106*90e502c7SAndroid Build Coastguard Workerall: $(testapp) 107*90e502c7SAndroid Build Coastguard Worker 108*90e502c7SAndroid Build Coastguard Worker# housekeeping functions 109*90e502c7SAndroid Build Coastguard Worker 110*90e502c7SAndroid Build Coastguard Workerclean: 111*90e502c7SAndroid Build Coastguard Worker rm -f $(testapp) *.o */*.o 112*90e502c7SAndroid Build Coastguard Worker for a in * .* */*; do if [ -f "$$a~" ] ; then rm $$a~; fi; done; 113*90e502c7SAndroid Build Coastguard Worker rm -f `find . -name "*.[ch]~*~"` 114*90e502c7SAndroid Build Coastguard Worker rm -rf latex 115*90e502c7SAndroid Build Coastguard Worker 116*90e502c7SAndroid Build Coastguard Workersuperclean: clean 117*90e502c7SAndroid Build Coastguard Worker rm -f *core TAGS ktrace.out 118*90e502c7SAndroid Build Coastguard Worker 119*90e502c7SAndroid Build Coastguard Worker# EOF 120