- Made changes for better compatibility with old-style C compilers

diff --git a/library/Makefile b/library/Makefile
index d8a0241..205c6a2 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -1,7 +1,7 @@
 
 # Also see "include/polarssl/config.h"
 
-CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64
+CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement
 OFLAGS	= -O
 
 # MicroBlaze specific options:
diff --git a/library/camellia.c b/library/camellia.c
index 571d6a4..a24bfb5 100644
--- a/library/camellia.c
+++ b/library/camellia.c
@@ -197,7 +197,7 @@
 	}
 };
 
-static const char indexes[2][4][20] =
+static const signed char indexes[2][4][20] =
 {
 	{
 		{  0,  1,  2,  3,  8,  9, 10, 11, 38, 39,
@@ -221,7 +221,7 @@
 	}
 };
 
-static const char transposes[2][20] =
+static const signed char transposes[2][20] =
 {
 	{
 		21, 22, 23, 20,
@@ -279,7 +279,6 @@
 
 void camellia_feistel(unsigned long x[2], unsigned long k[2], unsigned long z[2])
 {
-	unsigned char t[8];
 	unsigned long I0, I1;
 	I0 = x[0] ^ k[0];
 	I1 = x[1] ^ k[1];
@@ -310,6 +309,9 @@
     int i, idx;
     unsigned long *RK;
     unsigned char t[64];
+    unsigned long SIGMA[6][2];
+    unsigned long KC[16];
+    unsigned long TK[20];
 
     RK = ctx->rk;
 
@@ -335,7 +337,6 @@
     /*
      * Prepare SIGMA values
      */
-    unsigned long SIGMA[6][2];
     for (i = 0; i < 6; i++) {
     	GET_ULONG_BE(SIGMA[i][0], SIGMA_CHARS[i], 0);
     	GET_ULONG_BE(SIGMA[i][1], SIGMA_CHARS[i], 4);
@@ -345,7 +346,6 @@
      * Key storage in KC
      * Order: KL, KR, KA, KB
      */
-    unsigned long KC[16];
     memset(KC, 0, sizeof(KC));
 
     /* Store KL, KR */
@@ -377,7 +377,6 @@
     /*
      * Generating subkeys
      */ 
-    unsigned long TK[20];
 
     /* Manipulating KL */
     SHIFT_AND_PLACE(idx, 0);
@@ -456,8 +455,8 @@
                     unsigned char input[16],
                     unsigned char output[16] )
 {
-    int i, NR;
-    unsigned long *RK, X[4], Y[4], T;
+    int NR;
+    unsigned long *RK, X[4];
 
     NR = ctx->nr;
     RK = ctx->rk;
@@ -736,10 +735,9 @@
  */
 int camellia_self_test( int verbose )
 {
-    int i, j, u, v, offset;
+    int i, j, u, v;
     unsigned char key[32];
     unsigned char buf[64];
-    unsigned char prv[16];
     unsigned char src[16];
     unsigned char dst[16];
     unsigned char iv[16];
diff --git a/library/x509parse.c b/library/x509parse.c
index dcb8ea9..9b68af4 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -42,6 +42,8 @@
 #include "polarssl/md4.h"
 #include "polarssl/md5.h"
 #include "polarssl/sha1.h"
+#include "polarssl/sha2.h"
+#include "polarssl/sha4.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/programs/Makefile b/programs/Makefile
index a87ae3e..8f3894e 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -2,7 +2,7 @@
 # To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS
 # To compile on MinGW: add "-lws2_32" to LDFLAGS
 
-CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64
+CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement
 OFLAGS	= -O
 LDFLAGS	= -L../library -lpolarssl
 
diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c
index 066e136..72d5e4a 100644
--- a/programs/pkey/rsa_genkey.c
+++ b/programs/pkey/rsa_genkey.c
@@ -41,7 +41,6 @@
     havege_state hs;
     FILE *fpub  = NULL;
     FILE *fpriv = NULL;
-    x509_raw cert;
 
     printf( "\n  . Seeding the random number generator..." );
     fflush( stdout );
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 0b8c97f..35e29d9 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -34,6 +34,7 @@
 #include "polarssl/md5.h"
 #include "polarssl/sha1.h"
 #include "polarssl/sha2.h"
+#include "polarssl/sha4.h"
 #include "polarssl/arc4.h"
 #include "polarssl/des.h"
 #include "polarssl/aes.h"
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index 25b2c21..82c002a 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -38,6 +38,7 @@
 #include "polarssl/arc4.h"
 #include "polarssl/des.h"
 #include "polarssl/aes.h"
+#include "polarssl/camellia.h"
 #include "polarssl/base64.h"
 #include "polarssl/bignum.h"
 #include "polarssl/rsa.h"
diff --git a/programs/test/ssl_cert_test.c b/programs/test/ssl_cert_test.c
index 7ec3370..1be4341 100644
--- a/programs/test/ssl_cert_test.c
+++ b/programs/test/ssl_cert_test.c
@@ -83,6 +83,8 @@
          * 1.2. Load own certificate
          */
 	char	name[512];
+	int flags;
+
 	snprintf(name, 512, "ssl/test-ca/%s", client_certificates[i]);
 
         printf( "  . Loading the client certificatei %s...", name );
@@ -105,8 +107,6 @@
 	printf( "  . Verify the client certificate with CA certificate..." );
 	fflush( stdout );
 
-	int flags;
-
 	ret = x509parse_verify( &clicert, &cacert, NULL, &flags );
 	if( ret != 0 )
 	{
diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c
index 9d06bd1..32ea1c1 100644
--- a/programs/test/ssl_test.c
+++ b/programs/test/ssl_test.c
@@ -127,8 +127,8 @@
     int client_fd;
     int bytes_to_read;
     int bytes_to_write;
-    int offset_to_read;
-    int offset_to_write;
+    int offset_to_read = 0;
+    int offset_to_write = 0;
 
     long int nb_read;
     long int nb_written;
@@ -136,8 +136,8 @@
     unsigned long read_state[5];
     unsigned long write_state[5];
 
-    unsigned char *read_buf;
-    unsigned char *write_buf;
+    unsigned char *read_buf = NULL;
+    unsigned char *write_buf = NULL;
 
     struct hr_time t;
     havege_state hs;