diff options
Diffstat (limited to 'srtp/crypto/Makefile')
-rw-r--r-- | srtp/crypto/Makefile | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/srtp/crypto/Makefile b/srtp/crypto/Makefile new file mode 100644 index 0000000..d7ac61f --- /dev/null +++ b/srtp/crypto/Makefile @@ -0,0 +1,130 @@ +# Makefile for libcryptomodule.a +# +# David A. McGrew +# Cisco Systems, Inc. + +srcdir = . +top_srcdir = .. +top_builddir = ../ + + +CC = gcc +INCDIR = -Iinclude -I$(srcdir)/include +DEFS = -DHAVE_CONFIG_H +CPPFLAGS= +CFLAGS = -Wall -O4 -fexpensive-optimizations -funroll-loops +LIBS = +LDFLAGS = -L. +COMPILE = $(CC) $(DEFS) $(INCDIR) $(CPPFLAGS) $(CFLAGS) +CRYPTOLIB = -lcryptomodule + +RANLIB = ranlib + +# EXE defines the suffix on executables - it's .exe for cygwin, and +# null on linux, bsd, and OS X and other OSes. we define this so that +# `make clean` will work on the cygwin platform +EXE = +# Random source. +RNG_OBJS = rand_source.o + +ifdef ARCH + DEFS += -D$(ARCH)=1 +endif + +ifdef sysname + DEFS += -D$(sysname)=1 +endif + +.PHONY: dummy all runtest clean superclean + +dummy : all runtest + +# test applications + +testapp = test/cipher_driver$(EXE) test/datatypes_driver$(EXE) \ + test/stat_driver$(EXE) test/sha1_driver$(EXE) \ + test/kernel_driver$(EXE) test/aes_calc$(EXE) test/rand_gen$(EXE) \ + test/env$(EXE) + +# data values used to test the aes_calc application + +k=000102030405060708090a0b0c0d0e0f +p=00112233445566778899aabbccddeeff +c=69c4e0d86a7b0430d8cdb78070b4c55a + +runtest: libcryptomodule.a $(testapp) + test/env$(EXE) # print out information on the build environment + @echo "running libcryptomodule test applications..." + test `test/aes_calc $k $p` = $c + test/cipher_driver$(EXE) -v >/dev/null + test/datatypes_driver$(EXE) -v >/dev/null + test/stat_driver$(EXE) >/dev/null + test/sha1_driver$(EXE) -v >/dev/null + test/kernel_driver$(EXE) -v >/dev/null + test/rand_gen$(EXE) -n 256 >/dev/null + @echo "libcryptomodule test applications passed." + +# libcryptomodule.a (the crypto engine) + +ciphers = cipher/cipher.o cipher/null_cipher.o \ + cipher/aes.o cipher/aes_icm.o \ + cipher/aes_cbc.o + +hashes = hash/null_auth.o hash/sha1.o \ + hash/hmac.o hash/auth.o + +math = math/datatypes.o math/stat.o + +rng = rng/$(RNG_OBJS) rng/rand_source.o rng/prng.o rng/ctr_prng.o + +err = kernel/err.o + +kernel = kernel/crypto_kernel.o kernel/alloc.o \ + kernel/key.o $(rng) $(err) + +xfm = ae_xfm/xfm.o + +cryptobj = $(ciphers) $(hashes) $(math) $(stat) $(kernel) $(xfm) + +# the rule for making object files and test apps + +%.o: %.c + $(COMPILE) -c $< -o $@ + +%$(EXE): %.c libcryptomodule.a + $(COMPILE) $(LDFLAGS) $< -o $@ $(CRYPTOLIB) $(LIBS) + +ifndef AR + AR=ar +endif + +# and the crypto module library itself + +libcryptomodule.a: $(cryptobj) + $(AR) cr libcryptomodule.a $(cryptobj) + $(RANLIB) libcryptomodule.a + +all: libcryptomodule.a $(testapp) + +# housekeeping functions + +clean: + rm -f libcryptomodule.a + rm -f $(testapp) *.o */*.o + for a in * .* */*; do if [ -f "$$a~" ] ; then rm $$a~; fi; done; + rm -f `find . -name "*.[ch]~*~"` + rm -rf latex + +superclean: clean + rm -f *core TAGS ktrace.out + + +# the target 'package' builds a compressed tar archive of the source code + +distname = crypto-$(shell cat VERSION) + +package: superclean + cd ..; tar cvzf $(distname).tgz crypto/ + + +# EOF |