diff --git a/libs/pjproject-1.0.1/third_party/build/gsm/Makefile b/libs/pjproject-1.0.1/third_party/build/gsm/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..a265076e13ec46dc4ad15666b8549d3d21f0c7f0
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/gsm/Makefile
@@ -0,0 +1,64 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export GSM_CODEC_LIB := ../../lib/libgsmcodec-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)../../gsm/inc \
+		   $(CC_INC)../../../pjlib/include
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+export GSM_CODEC_SRCDIR = ../../gsm/src
+export GSM_CODEC_OBJS = add.o code.o decode.o \
+                	gsm_create.o gsm_decode.o gsm_destroy.o \
+                	gsm_encode.o gsm_explode.o gsm_implode.o \
+                	gsm_option.o long_term.o \
+                	lpc.o preprocess.o rpe.o short_term.o \
+                	table.o
+
+export GSM_CODEC_CFLAGS = -DSASR -DWAV49 -DNeedFunctionPrototypes=1 $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libgsmcodec
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libgsmcodec clean realclean distclean
+
+libgsmcodec:
+	$(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $(GSM_CODEC_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=GSM_CODEC app=libgsmcodec $@
+
+
diff --git a/libs/pjproject-1.0.1/third_party/build/ilbc/Makefile b/libs/pjproject-1.0.1/third_party/build/ilbc/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..50b4ab7e7b7055b1555d56fab0b36a9565a17bdc
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/ilbc/Makefile
@@ -0,0 +1,65 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export ILBC_LIB := ../../lib/libilbccodec-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)../../ilbc \
+		   $(CC_INC)../../../pjlib/include
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+export ILBC_SRCDIR = ../../ilbc
+export ILBC_OBJS = FrameClassify.o LPCdecode.o LPCencode.o \
+		   StateConstructW.o StateSearchW.o anaFilter.o \
+		   constants.o createCB.o doCPLC.o \
+		   enhancer.o filter.o gainquant.o \
+		   getCBvec.o helpfun.o hpInput.o \
+		   hpOutput.o iCBConstruct.o iCBSearch.o \
+		   iLBC_decode.o iLBC_encode.o lsf.o \
+		   packing.o syntFilter.o
+export ILBC_CFLAGS = $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libilbccodec
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libilbccodec clean realclean distclean
+
+libilbccodec:
+	$(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $(ILBC_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=ILBC app=libilbccodec $@
+
+
diff --git a/libs/pjproject-1.0.1/third_party/build/milenage/Makefile b/libs/pjproject-1.0.1/third_party/build/milenage/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..094ddeaa7e42e8763816d5e3ae84f8fa21c18cef
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/milenage/Makefile
@@ -0,0 +1,58 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export MILENAGE_LIB := ../../lib/libmilenage-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)../../milenage/include \
+		   $(CC_INC)../../../pjlib/include
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+export MILENAGE_SRCDIR = ../../milenage
+export MILENAGE_OBJS = milenage.o rijndael.o
+export MILENAGE_CFLAGS = $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libmilenage
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libmilenage clean realclean distclean
+
+libmilenage:
+	$(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $(MILENAGE_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=MILENAGE app=libmilenage $@
+
+
diff --git a/libs/pjproject-1.0.1/third_party/build/portaudio/Makefile b/libs/pjproject-1.0.1/third_party/build/portaudio/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ad81571aad2f0581e0012d2211da80cb24080e33
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/portaudio/Makefile
@@ -0,0 +1,68 @@
+# @configure_input@
+include ../../../build.mak
+include $(PJDIR)/build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT)
+
+PORTAUDIO_OBJS += pa_allocation.o \
+		  pa_converters.o \
+		  pa_cpuload.o \
+		  pa_dither.o \
+		  pa_debugprint.o \
+		  pa_front.o \
+		  pa_process.o \
+		  pa_skeleton.o \
+		  pa_stream.o \
+		  pa_trace.o
+
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	+= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)src 
+export _CXXFLAGS+= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS += $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+###############################################################################
+# Defines for building PORTAUDIO library
+#
+export PORTAUDIO_SRCDIR = src
+export PORTAUDIO_OBJS += 
+export PORTAUDIO_CFLAGS += $(_CFLAGS)
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libportaudio
+
+all: $(TARGETS)
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libportaudio clean realclean distclean
+
+libportaudio:
+	$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB)
+
+clean:
+	$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.libportaudio-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
+
diff --git a/libs/pjproject-1.0.1/third_party/build/resample/Makefile b/libs/pjproject-1.0.1/third_party/build/resample/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..32f46ef206fe9b6cdfe6a5688464fdb00cd95e54
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/resample/Makefile
@@ -0,0 +1,58 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export RESAMPLE_LIB := ../../lib/libresample-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)../../resample/include \
+		   $(CC_INC)../../../pjlib/include
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+export RESAMPLE_SRCDIR = ../../resample/src
+export RESAMPLE_OBJS = resamplesubs.o
+export RESAMPLE_CFLAGS = $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libresample
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libresample clean realclean distclean
+
+libresample:
+	$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $(RESAMPLE_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=RESAMPLE app=libresample $@
+
+
diff --git a/libs/pjproject-1.0.1/third_party/build/speex/Makefile b/libs/pjproject-1.0.1/third_party/build/speex/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d31166ea6a2a764fad8800610ee1a2d43742ad53
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/speex/Makefile
@@ -0,0 +1,73 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export SPEEX_LIB := ../../lib/libspeex-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) $(CC_INC). $(CC_INC)../../speex/include \
+		   $(CC_INC)../../speex/libspeex \
+		   $(CC_INC)../../../pjlib/include
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+export SPEEX_SRCDIR = ../../speex/libspeex
+export SPEEX_OBJS = 	bits.o cb_search.o exc_10_16_table.o  \
+			exc_10_32_table.o exc_20_32_table.o \
+			exc_5_256_table.o exc_5_64_table.o \
+			exc_8_128_table.o fftwrap.o filterbank.o \
+			filters.o gain_table.o gain_table_lbr.o \
+			hexc_10_32_table.o hexc_table.o \
+			high_lsp_tables.o \
+			kiss_fft.o kiss_fftr.o lpc.o \
+			lsp.o lsp_tables_nb.o ltp.o \
+			mdf.o modes.o modes_wb.o \
+			nb_celp.o preprocess.o \
+			quant_lsp.o resample.o sb_celp.o smallft.o \
+			speex.o speex_callbacks.o speex_header.o \
+			stereo.o vbr.o vq.o window.o
+
+export SPEEX_CFLAGS = -DHAVE_CONFIG_H $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libspeex
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libspeex clean realclean distclean
+
+libspeex:
+	$(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $(SPEEX_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=SPEEX app=libspeex $@
+
+
diff --git a/libs/pjproject-1.0.1/third_party/build/srtp/Makefile b/libs/pjproject-1.0.1/third_party/build/srtp/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..17cb421711ef97e5509ea7a0e72971bfcc4d0c3a
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/build/srtp/Makefile
@@ -0,0 +1,87 @@
+include ../../../build.mak
+include ../../../build/common.mak
+
+export LIBDIR := ../../lib
+
+RULES_MAK := $(PJDIR)/build/rules.mak
+
+export SRTP_LIB := ../../lib/libsrtp-$(TARGET_NAME)$(LIBEXT)
+
+###############################################################################
+# Gather all flags.
+#
+export _CFLAGS 	:= $(CC_INC). $(CC_INC)../../srtp/crypto/include \
+		   $(CC_INC)../../srtp/include \
+		   $(CC_INC)../../../pjlib/include \
+		   $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
+		   $(CFLAGS) 
+export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
+		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(LDFLAGS) 
+
+# 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/rand_source.o crypto/rng/prng.o crypto/rng/ctr_prng.o
+
+err     = pjlib/srtp_err.o
+
+kernel  = crypto/kernel/crypto_kernel.o  crypto/kernel/alloc.o   \
+          crypto/kernel/key.o $(rng) $(err) # $(ust) 
+
+srtpobj = srtp/srtp.o 
+
+cryptobj =  $(ciphers) $(hashes) $(math) $(stat) $(kernel) $(replay)
+
+export SRTP_SRCDIR = ../../srtp
+export SRTP_OBJS = $(cryptobj) $(srtpobj)
+export SRTP_CFLAGS = -DHAVE_CONFIG_H $(_CFLAGS)
+
+
+export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
+###############################################################################
+# Main entry
+#
+# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
+#
+TARGETS := libsrtp
+
+all: $(TARGETS)
+
+doc:
+	cd .. && doxygen docs/doxygen.cfg
+
+dep: depend
+distclean: realclean
+
+.PHONY: dep depend libsrtp clean realclean distclean
+
+libsrtp:
+	$(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $(SRTP_LIB)
+
+clean print_lib:
+	$(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $@
+
+realclean:
+	$(subst @@,$(subst /,$(HOST_PSEP),.ilbc-$(TARGET_NAME).depend),$(HOST_RMR))
+	
+	$(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $@
+
+depend:
+	$(MAKE) -f $(RULES_MAK) APP=SRTP app=libsrtp $@
+
+
+
diff --git a/libs/pjproject-1.0.1/third_party/srtp/crypto/Makefile b/libs/pjproject-1.0.1/third_party/srtp/crypto/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d7ac61fb14178556037e698f713877281f310a70
--- /dev/null
+++ b/libs/pjproject-1.0.1/third_party/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