Makefile revision 386ce4d9144fc190797f4e43a31aeaf76ca2e373
1386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# Makefile for libcryptomodule.a 2386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# 3386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# David A. McGrew 4386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# Cisco Systems, Inc. 5386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 6386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarisrcdir = . 7386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaritop_srcdir = .. 8386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaritop_builddir = ../ 9386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 10386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 11386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariCC = gcc 12386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariINCDIR = -Iinclude -I$(srcdir)/include 13386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariDEFS = -DHAVE_CONFIG_H 14386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariCPPFLAGS= 15386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariCFLAGS = -Wall -O4 -fexpensive-optimizations -funroll-loops 16386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariLIBS = 17386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariLDFLAGS = -L. 18386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariCOMPILE = $(CC) $(DEFS) $(INCDIR) $(CPPFLAGS) $(CFLAGS) 19386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariCRYPTOLIB = -lcryptomodule 20386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 21386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariRANLIB = ranlib 22386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 23386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# EXE defines the suffix on executables - it's .exe for cygwin, and 24386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# null on linux, bsd, and OS X and other OSes. we define this so that 25386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# `make clean` will work on the cygwin platform 26386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariEXE = 27386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# Random source. 28386ce4d9144fc190797f4e43a31aeaf76ca2e373Param ReddappagariRNG_OBJS = rand_source.o 29386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 30386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariifdef ARCH 31386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari DEFS += -D$(ARCH)=1 32386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariendif 33386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 34386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariifdef sysname 35386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari DEFS += -D$(sysname)=1 36386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariendif 37386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 38386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari.PHONY: dummy all runtest clean superclean 39386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 40386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaridummy : all runtest 41386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 42386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# test applications 43386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 44386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaritestapp = test/cipher_driver$(EXE) test/datatypes_driver$(EXE) \ 45386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/stat_driver$(EXE) test/sha1_driver$(EXE) \ 46386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/kernel_driver$(EXE) test/aes_calc$(EXE) test/rand_gen$(EXE) \ 47386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/env$(EXE) 48386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 49386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# data values used to test the aes_calc application 50386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 51386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarik=000102030405060708090a0b0c0d0e0f 52386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarip=00112233445566778899aabbccddeeff 53386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaric=69c4e0d86a7b0430d8cdb78070b4c55a 54386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 55386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariruntest: libcryptomodule.a $(testapp) 56386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/env$(EXE) # print out information on the build environment 57386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari @echo "running libcryptomodule test applications..." 58386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test `test/aes_calc $k $p` = $c 59386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/cipher_driver$(EXE) -v >/dev/null 60386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/datatypes_driver$(EXE) -v >/dev/null 61386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/stat_driver$(EXE) >/dev/null 62386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/sha1_driver$(EXE) -v >/dev/null 63386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/kernel_driver$(EXE) -v >/dev/null 64386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari test/rand_gen$(EXE) -n 256 >/dev/null 65386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari @echo "libcryptomodule test applications passed." 66386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 67386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# libcryptomodule.a (the crypto engine) 68386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 69386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariciphers = cipher/cipher.o cipher/null_cipher.o \ 70386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari cipher/aes.o cipher/aes_icm.o \ 71386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari cipher/aes_cbc.o 72386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 73386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarihashes = hash/null_auth.o hash/sha1.o \ 74386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari hash/hmac.o hash/auth.o 75386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 76386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarimath = math/datatypes.o math/stat.o 77386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 78386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarirng = rng/$(RNG_OBJS) rng/rand_source.o rng/prng.o rng/ctr_prng.o 79386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 80386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarierr = kernel/err.o 81386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 82386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarikernel = kernel/crypto_kernel.o kernel/alloc.o \ 83386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari kernel/key.o $(rng) $(err) 84386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 85386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarixfm = ae_xfm/xfm.o 86386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 87386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaricryptobj = $(ciphers) $(hashes) $(math) $(stat) $(kernel) $(xfm) 88386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 89386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# the rule for making object files and test apps 90386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 91386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari%.o: %.c 92386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari $(COMPILE) -c $< -o $@ 93386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 94386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari%$(EXE): %.c libcryptomodule.a 95386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari $(COMPILE) $(LDFLAGS) $< -o $@ $(CRYPTOLIB) $(LIBS) 96386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 97386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariifndef AR 98386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari AR=ar 99386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariendif 100386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 101386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# and the crypto module library itself 102386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 103386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarilibcryptomodule.a: $(cryptobj) 104386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari $(AR) cr libcryptomodule.a $(cryptobj) 105386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari $(RANLIB) libcryptomodule.a 106386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 107386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariall: libcryptomodule.a $(testapp) 108386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 109386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# housekeeping functions 110386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 111386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagariclean: 112386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari rm -f libcryptomodule.a 113386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari rm -f $(testapp) *.o */*.o 114386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari for a in * .* */*; do if [ -f "$$a~" ] ; then rm $$a~; fi; done; 115386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari rm -f `find . -name "*.[ch]~*~"` 116386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari rm -rf latex 117386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 118386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagarisuperclean: clean 119386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari rm -f *core TAGS ktrace.out 120386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 121386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 122386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# the target 'package' builds a compressed tar archive of the source code 123386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 124386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaridistname = crypto-$(shell cat VERSION) 125386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 126386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagaripackage: superclean 127386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari cd ..; tar cvzf $(distname).tgz crypto/ 128386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 129386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari 130386ce4d9144fc190797f4e43a31aeaf76ca2e373Param Reddappagari# EOF 131