diff --git a/tmp/makelist.pl b/tmp/makelist.pl
new file mode 100755
index 0000000..fd447ee
--- /dev/null
+++ b/tmp/makelist.pl
@@ -0,0 +1,65 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+use utf8;
+use open qw(:std utf8);
+
+# build substitution table from a list of names on stdin or input files
+
+my %special_cases = (
+    'supported_ciphers' => 'mbedtls_cipher_supported',
+    'f'                 => 'mbedtls_entropy_f',
+    'source'            => 'mbedtls_entropy_source',
+    'COLLECT'           => 'MBEDTLS_HAVEGE_COLLECT',
+    'LN'                => 'MBEDTLS_MPI_LN',
+    'key'               => 'mbedtls_ssl_key',
+    'safer'             => 'mbedtls_ssl_safer',
+    'alarmed'           => 'mbedtls_timing_alarmed',
+    'get'               => 'mbedtls_timing_get',
+    'hardclock'         => 'mbedtls_timing_hardclock',
+    'hr'                => 'mbedtls_timing_hr',
+    'm'                 => 'mbedtls_timing_m',
+    'set'               => 'mbedtls_timing_set',
+    'BADCERT'           => 'MBEDTLS_X509_BADCERT',
+    'BADCRL'            => 'MBEDTLS_X509_BADCRL',
+    'EXT'               => 'MBEDTLS_X509_EXT',
+    'KU'                => 'MBEDTLS_X509_KU',
+    'NS'                => 'MBEDTLS_X509_NS',
+    't'                 => 'mbedtls_mpi',
+);
+
+my %subst;
+while( my $name = <> ) {
+    my $new;
+
+    chomp $name;
+
+    while( my ($prefix, $newpref) = each %special_cases ) {
+        if( $name =~ /^$prefix($|_)/ ) {
+            ($new = $name) =~ s/^$prefix/$newpref/;
+            last;
+        }
+    }
+
+    unless( $new ) {
+        if( $name =~ /^POLARSSL_/ ) {
+            ($new = $name) =~ s/POLARSSL/MBEDTLS/;
+        } elsif( $name =~ /^polarssl_/ ) {
+            ($new = $name) =~ s/polarssl/mbedtls/;
+        } elsif( $name =~ /^_[a-z]/ ) {
+            $new = "mbedtls$name";
+        } elsif( $name =~ /^[A-Z]/ ) {
+            $new = "MBEDTLS_$name";
+        } elsif( $name =~ /^[a-z]/ ) {
+            $new = "mbedtls_$name";
+        } else {
+            die "I don't know how to rename '$name'";
+        }
+    }
+
+    $subst{$name} = $new;
+}
+
+printf "%s %s\n", $_, $subst{$_} for sort keys %subst;
