Adapt script and instructions for alt config.h
diff --git a/configs/README.txt b/configs/README.txt
new file mode 100644
index 0000000..7527fdb
--- /dev/null
+++ b/configs/README.txt
@@ -0,0 +1,24 @@
+This directory contains example configuration files.
+
+The examples are generally focused on a particular usage case (eg, support for
+a restricted number of ciphersuites) and aim at minimizing resource usage for
+this target. They can be used as a basis for custom configurations.
+
+These files are complete replacements for the default config.h. To use one of
+them, you can pick one of the following methods:
+
+1. Replace the default file include/polarssl/config.h with the chosen one.
+
+2. Define POLARSSL_CONFIG_FILE and adjust the include path accordingly.
+   For example, using make:
+
+    CFLAGS="-I$PWD/configs -DPOLARSSL_CONFIG_FILE='<foo.h>'" make
+
+   Or, using cmake:
+
+    rm CMakeCache.txt
+    CFLAGS="-I$PWD/configs -DPOLARSSL_CONFIG_FILE='<foo.h>'" cmake .
+    make
+
+Note that the second method also works if you want to keep your custom
+configuration file outside the PolarSSL tree.
diff --git a/configs/config-mini-tls1_1.h b/configs/config-mini-tls1_1.h
index 81a95f0..f6016e8 100644
--- a/configs/config-mini-tls1_1.h
+++ b/configs/config-mini-tls1_1.h
@@ -2,10 +2,17 @@
  * Minimal configuration for TLS 1.1 (RFC 4346), implementing only the
  * required ciphersuite: TLS_RSA_WITH_3DES_EDE_CBC_SHA
  *
- * Can be activated with:
- *      scripts/activate-config.pl configs/config-mini-tls1_1.h
+ * See README.txt for usage instructions.
  */
 
+#ifndef POLARSSL_CONFIG_H
+#define POLARSSL_CONFIG_H
+
+/* System support */
+#define POLARSSL_HAVE_ASM
+#define POLARSSL_HAVE_TIME
+#define POLARSSL_HAVE_IPV6
+
 /* PolarSSL feature support */
 #define POLARSSL_CIPHER_MODE_CBC
 #define POLARSSL_PKCS1_V15
@@ -44,5 +51,4 @@
 /* For testing with compat.sh */
 #define POLARSSL_FS_IO
 
-/* marker for activate-config.pl
- * \} name SECTION: PolarSSL modules */
+#endif /* POLARSSL_CONFIG_H */
diff --git a/configs/config-psk-rc4-tls1_0.h b/configs/config-psk-rc4-tls1_0.h
index 1da378c..260b713 100644
--- a/configs/config-psk-rc4-tls1_0.h
+++ b/configs/config-psk-rc4-tls1_0.h
@@ -2,10 +2,16 @@
  * Custom compact configuration for TLS 1.0 with PSK and RC4
  * Distinguishing features: no bignum, no PK, no X509.
  *
- * Can be activated with:
- *      scripts/activate-config.pl configs/config-mini-tls1_1.h
+ * See README.txt for usage instructions.
  */
 
+#ifndef POLARSSL_CONFIG_H
+#define POLARSSL_CONFIG_H
+
+/* System support */
+#define POLARSSL_HAVE_TIME
+#define POLARSSL_HAVE_IPV6
+
 /* PolarSSL feature support */
 #define POLARSSL_KEY_EXCHANGE_PSK_ENABLED
 #define POLARSSL_SSL_PROTO_TLS1
@@ -28,5 +34,4 @@
 #define POLARSSL_SSL_SRV_C
 #define POLARSSL_SSL_TLS_C
 
-/* marker for activate-config.pl
- * \} name SECTION: PolarSSL modules */
+#endif /* POLARSSL_CONFIG_H */
diff --git a/configs/config-suite-b.h b/configs/config-suite-b.h
index 2bfb0e1..7f085f4 100644
--- a/configs/config-suite-b.h
+++ b/configs/config-suite-b.h
@@ -1,10 +1,17 @@
 /*
  * Minimal configuration for TLS NSA Suite B Profile (RFC 6460)
  *
- * Can be activated with:
- *      scripts/activate-config.pl configs/config-mini-tls1_1.h
+ * See README.txt for usage instructions.
  */
 
+#ifndef POLARSSL_CONFIG_H
+#define POLARSSL_CONFIG_H
+
+/* System support */
+#define POLARSSL_HAVE_ASM
+#define POLARSSL_HAVE_TIME
+#define POLARSSL_HAVE_IPV6
+
 /* PolarSSL feature support */
 #define POLARSSL_ECP_DP_SECP256R1_ENABLED
 #define POLARSSL_ECP_DP_SECP384R1_ENABLED
@@ -44,5 +51,4 @@
 /* For testing with compat.sh */
 #define POLARSSL_FS_IO
 
-/* marker for activate-config.pl
- * \} name SECTION: PolarSSL modules */
+#endif /* POLARSSL_CONFIG_H */
diff --git a/scripts/activate-config.pl b/scripts/activate-config.pl
index caa8cdc..5b4e8f5 100755
--- a/scripts/activate-config.pl
+++ b/scripts/activate-config.pl
@@ -1,68 +1,9 @@
 #!/usr/bin/perl
 
+# DEPRECATED!
+#
 # activate a pre-defined configuration
 
-use warnings;
-use strict;
-
-my $config_h = "include/polarssl/config.h";
-
-exit( main() );
-
-sub read_default {
-    open my $fh, '<', $config_h or die "Failed to read $config_h: $!\n";
-
-    my (@pre, @post);
-    my $state = 'pre';
-
-    while( my $line = <$fh> ) {
-        if( $state eq 'pre' ) {
-            push @pre, $line;
-            $state = 'skip' if $line =~ /} name SECTION: System support/;
-        }
-        elsif( $state eq 'skip' ) {
-            $state = 'post' if $line =~/} name SECTION: PolarSSL modules/;
-        }
-        else {
-            push @post, $line;
-        }
-    }
-
-    die "Failed to parse $config_h\n" if( $state ne 'post' );
-
-    close $fh;
-
-    push @pre, "\n";
-
-    return \@pre, \@post;
-}
-
-sub read_custom {
-    my ($file_name) = @_;
-
-    open my $fh, '<', $file_name or die "Failed to read $file_name: $!\n";
-    my @content = <$fh>;
-    close $fh;
-
-    return \@content;
-}
-
-sub write_custom {
-    my ($pre, $mid, $post) = @_;
-
-    open my $fh, '>', $config_h or die "Failed to write $config_h: $!\n";
-    print $fh @$pre;
-    print $fh @$mid;
-    print $fh @$post;
-    close $fh;
-}
-
-sub main {
-    my $custom_file_name = $ARGV[0];
-
-    my ($pre, $post) = read_default();
-    my $mine = read_custom( $custom_file_name );
-    write_custom( $pre, $mine, $post );
-
-    return 0;
-}
+print "This script is deprecated!\n";
+print "See configs/README.txt regarding alternative config.h usage\n";
+exit 1;
diff --git a/tests/scripts/test-ref-configs.pl b/tests/scripts/test-ref-configs.pl
index 4577252..42131be 100755
--- a/tests/scripts/test-ref-configs.pl
+++ b/tests/scripts/test-ref-configs.pl
@@ -49,7 +49,7 @@
     print "* Testing configuration: $conf\n";
     print "******************************************\n";
 
-    system( "scripts/activate-config.pl configs/$conf" )
+    system( "cp configs/$conf $config_h" )
         and abort "Failed to activate $conf\n";
 
     system( "make" ) and abort "Failed to build: $conf\n";