| Index: libsrtp/Makefile.in
|
| ===================================================================
|
| --- libsrtp/Makefile.in (revision 0)
|
| +++ libsrtp/Makefile.in (revision 0)
|
| @@ -0,0 +1,237 @@
|
| +# Makefile for secure rtp
|
| +#
|
| +# David A. McGrew
|
| +# Cisco Systems, Inc.
|
| +
|
| +# targets:
|
| +#
|
| +# runtest runs test applications
|
| +# test builds test applications
|
| +# libcrypt.a static library implementing crypto engine
|
| +# libsrtp.a static library implementing srtp
|
| +# clean removes objects, libs, and executables
|
| +# distribution cleans and builds a .tgz
|
| +# tags builds etags file from all .c and .h files
|
| +
|
| +.PHONY: all test build_table_apps
|
| +
|
| +all: test
|
| +
|
| +runtest: build_table_apps test
|
| + @echo "running libsrtp test applications..."
|
| + crypto/test/cipher_driver$(EXE) -v >/dev/null
|
| + crypto/test/kernel_driver$(EXE) -v >/dev/null
|
| + test/rdbx_driver$(EXE) -v >/dev/null
|
| + test/srtp_driver$(EXE) -v >/dev/null
|
| + test/roc_driver$(EXE) -v >/dev/null
|
| + test/replay_driver$(EXE) -v >/dev/null
|
| + test/dtls_srtp_driver$(EXE) >/dev/null
|
| + cd test; $(abspath $(srcdir))/test/rtpw_test.sh >/dev/null
|
| + @echo "libsrtp test applications passed."
|
| + $(MAKE) -C crypto runtest
|
| +
|
| +# makefile variables
|
| +
|
| +CC = @CC@
|
| +INCDIR = -Icrypto/include -I$(srcdir)/include -I$(srcdir)/crypto/include
|
| +DEFS = @DEFS@
|
| +CPPFLAGS= @CPPFLAGS@
|
| +CFLAGS = @CFLAGS@
|
| +LIBS = @LIBS@
|
| +LDFLAGS = @LDFLAGS@ -L.
|
| +COMPILE = $(CC) $(DEFS) $(INCDIR) $(CPPFLAGS) $(CFLAGS)
|
| +SRTPLIB = -lsrtp
|
| +
|
| +RANLIB = @RANLIB@
|
| +INSTALL = @INSTALL@
|
| +
|
| +# EXE defines the suffix on executables - it's .exe for Windows, and
|
| +# null on linux, bsd, and OS X and other OSes.
|
| +EXE = @EXE@
|
| +# gdoi is the group domain of interpretation for isakmp, a group key
|
| +# management system which can provide keys for srtp
|
| +gdoi = @GDOI_OBJS@
|
| +# Random source.
|
| +RNG_OBJS = @RNG_OBJS@
|
| +
|
| +srcdir = @srcdir@
|
| +top_srcdir = @top_srcdir@
|
| +top_builddir = @top_builddir@
|
| +VPATH = @srcdir@
|
| +prefix = @prefix@
|
| +exec_prefix = @exec_prefix@
|
| +includedir = @includedir@
|
| +libdir = @libdir@
|
| +
|
| +
|
| +# implicit rules for object files and test apps
|
| +
|
| +%.o: %.c
|
| + $(COMPILE) -c $< -o $@
|
| +
|
| +%$(EXE): %.c
|
| + $(COMPILE) $(LDFLAGS) $< -o $@ $(SRTPLIB) $(LIBS)
|
| +
|
| +
|
| +# libcrypt.a (the crypto engine)
|
| +ciphers = crypto/cipher/cipher.o crypto/cipher/null_cipher.o \
|
| + crypto/cipher/aes.o crypto/cipher/aes_icm.o \
|
| + crypto/cipher/aes_cbc.o
|
| +
|
| +hashes = crypto/hash/null_auth.o crypto/hash/sha1.o \
|
| + crypto/hash/hmac.o crypto/hash/auth.o # crypto/hash/tmmhv2.o
|
| +
|
| +replay = crypto/replay/rdb.o crypto/replay/rdbx.o \
|
| + crypto/replay/ut_sim.o
|
| +
|
| +math = crypto/math/datatypes.o crypto/math/stat.o
|
| +
|
| +ust = crypto/ust/ust.o
|
| +
|
| +rng = crypto/rng/$(RNG_OBJS) crypto/rng/prng.o crypto/rng/ctr_prng.o
|
| +
|
| +err = crypto/kernel/err.o
|
| +
|
| +kernel = crypto/kernel/crypto_kernel.o crypto/kernel/alloc.o \
|
| + crypto/kernel/key.o $(rng) $(err) # $(ust)
|
| +
|
| +cryptobj = $(ciphers) $(hashes) $(math) $(stat) $(kernel) $(replay)
|
| +
|
| +# libsrtp.a (implements srtp processing)
|
| +
|
| +srtpobj = srtp/srtp.o srtp/ekt.o
|
| +
|
| +libsrtp.a: $(srtpobj) $(cryptobj) $(gdoi)
|
| + ar cr libsrtp.a $^
|
| + $(RANLIB) libsrtp.a
|
| +
|
| +# libcryptomath.a contains general-purpose routines that are used to
|
| +# generate tables and verify cryptoalgorithm implementations - this
|
| +# library is not meant to be included in production code
|
| +
|
| +cryptomath = crypto/math/math.o crypto/math/gf2_8.o
|
| +
|
| +libcryptomath.a: $(cryptomath)
|
| + ar cr libcryptomath.a $(cryptomath)
|
| + $(RANLIB) libcryptomath.a
|
| +
|
| +
|
| +# test applications
|
| +
|
| +crypto_testapp = crypto/test/aes_calc$(EXE) crypto/test/cipher_driver$(EXE) \
|
| + crypto/test/datatypes_driver$(EXE) crypto/test/kernel_driver$(EXE) \
|
| + crypto/test/rand_gen$(EXE) crypto/test/sha1_driver$(EXE) \
|
| + crypto/test/stat_driver$(EXE)
|
| +
|
| +testapp = $(crypto_testapp) test/srtp_driver$(EXE) test/replay_driver$(EXE) \
|
| + test/roc_driver$(EXE) test/rdbx_driver$(EXE) test/rtpw$(EXE) \
|
| + test/dtls_srtp_driver$(EXE)
|
| +
|
| +$(testapp): libsrtp.a
|
| +
|
| +test/rtpw$(EXE): test/rtpw.c test/rtp.c test/getopt_s.c
|
| + $(COMPILE) $(LDFLAGS) -o $@ $^ $(LIBS) $(SRTPLIB)
|
| +
|
| +test/srtp_driver$(EXE): test/srtp_driver.c test/getopt_s.c
|
| + $(COMPILE) $(LDFLAGS) -o $@ $^ $(LIBS) $(SRTPLIB)
|
| +
|
| +test/rdbx_driver$(EXE): test/rdbx_driver.c test/getopt_s.c
|
| + $(COMPILE) $(LDFLAGS) -o $@ $^ $(LIBS) $(SRTPLIB)
|
| +
|
| +test/dtls_srtp_driver$(EXE): test/dtls_srtp_driver.c test/getopt_s.c
|
| + $(COMPILE) $(LDFLAGS) -o $@ $^ $(LIBS) $(SRTPLIB)
|
| +
|
| +test: $(testapp)
|
| + @echo "Build done. Please run '$(MAKE) runtest' to run self tests."
|
| +
|
| +memtest: test/srtp_driver
|
| + @test/srtp_driver -v -d "alloc" > tmp
|
| + @grep freed tmp | wc -l > freed
|
| + @grep allocated tmp | wc -l > allocated
|
| + @echo "checking for memory leaks (only works with --enable-stdout)"
|
| + cmp -s allocated freed
|
| + @echo "passed (same number of alloc() and dealloc() calls found)"
|
| + @rm freed allocated tmp
|
| +
|
| +# tables_apps are used to generate the tables used in the crypto
|
| +# implementations; these need only be generated during porting, not
|
| +# for building libsrtp or the test applications
|
| +
|
| +table_apps = tables/aes_tables
|
| +
|
| +build_table_apps: $(table_apps)
|
| +
|
| +# in the tables/ subdirectory, we use libcryptomath instead of libsrtp
|
| +
|
| +tables/%: tables/%.c libcryptomath.a
|
| + $(COMPILE) $(LDFLAGS) $< -o $@ $(LIBS) libcryptomath.a
|
| +
|
| +# the target 'plot' runs the timing test (test/srtp_driver -t) then
|
| +# uses gnuplot to produce plots of the results - see the script file
|
| +# 'timing'
|
| +
|
| +plot: test/srtp_driver
|
| + test/srtp_driver -t > timing.dat
|
| +
|
| +
|
| +# bookkeeping: tags, clean, and distribution
|
| +
|
| +tags:
|
| + etags */*.[ch] */*/*.[ch]
|
| +
|
| +
|
| +# documentation - the target libsrtpdoc builds a PDF file documenting
|
| +# libsrtp
|
| +
|
| +libsrtpdoc:
|
| + $(MAKE) -C doc
|
| +
|
| +.PHONY: clean superclean distclean install
|
| +
|
| +install:
|
| + @if [ -r $(DESTDIR)$(includedir)/srtp/srtp.h ]; then \
|
| + echo "you should run 'make uninstall' first"; exit 1; \
|
| + fi
|
| + $(INSTALL) -d $(DESTDIR)$(includedir)/srtp
|
| + $(INSTALL) -d $(DESTDIR)$(libdir)
|
| + cp $(srcdir)/include/*.h $(DESTDIR)$(includedir)/srtp
|
| + cp $(srcdir)/crypto/include/*.h $(DESTDIR)$(includedir)/srtp
|
| + if [ "$(srcdir)" != "." ]; then cp crypto/include/*.h $(DESTDIR)$(includedir)/srtp; fi
|
| + if [ -f libsrtp.a ]; then cp libsrtp.a $(DESTDIR)$(libdir)/; fi
|
| +
|
| +uninstall:
|
| + rm -f $(DESTDIR)$(includedir)/srtp/*.h
|
| + rm -f $(DESTDIR)$(libdir)/libsrtp.a
|
| + -rmdir $(DESTDIR)$(includedir)/srtp
|
| +
|
| +clean:
|
| + rm -rf $(cryptobj) $(srtpobj) $(cryptomath) TAGS \
|
| + libcryptomath.a libsrtp.a core *.core test/core
|
| + for a in * */* */*/*; do \
|
| + if [ -f "$$a~" ] ; then rm -f $$a~; fi; \
|
| + done;
|
| + for a in $(testapp) $(table_apps); do rm -rf $$a$(EXE); done
|
| + rm -rf *.pict *.jpg *.dat
|
| + rm -rf freed allocated tmp
|
| + $(MAKE) -C doc clean
|
| + $(MAKE) -C crypto clean
|
| +
|
| +
|
| +superclean: clean
|
| + rm -rf crypto/include/config.h config.log config.cache config.status \
|
| + Makefile crypto/Makefile doc/Makefile \
|
| + .gdb_history test/.gdb_history .DS_Store
|
| + rm -rf autom4te.cache
|
| +
|
| +distclean: superclean
|
| +
|
| +distname = srtp-$(shell cat VERSION)
|
| +
|
| +distribution: runtest superclean
|
| + if ! [ -f VERSION ]; then exit 1; fi
|
| + if [ -f ../$(distname).tgz ]; then \
|
| + mv ../$(distname).tgz ../$(distname).tgz.bak; \
|
| + fi
|
| + cd ..; tar cvzf $(distname).tgz srtp
|
| +
|
| +# EOF
|
|
|