Add custom configurations with activation script
diff --git a/scripts/activate-config.pl b/scripts/activate-config.pl
new file mode 100755
index 0000000..561e067
--- /dev/null
+++ b/scripts/activate-config.pl
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+
+# 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;
+}