diff --git a/auto/Makefile b/auto/Makefile
index 21918a6..8d36233 100644
--- a/auto/Makefile
+++ b/auto/Makefile
@@ -83,13 +83,13 @@ $(I.DEST)/glxew.h: $(EXT)/.dummy
 
 $(S.DEST)/glew.c: $(EXT)/.dummy
 	cp -f $(SRC)/glew_pre.c $@
-	$(BIN)/make_struct_def.pl GL $(CORE)/GL_VERSION* $(EXT)/GL_* >> $@
+	$(BIN)/make_def.pl GL $(CORE)/GL_VERSION* $(EXT)/GL_* >> $@
 	echo -e "\n#endif /* !_WIN32 || !GLEW_MX */\n" >> $@
 	echo -e "#if defined(_WIN32) && !defined(GLEW_MX)" >> $@
-	$(BIN)/make_struct_def.pl WGL $(EXT)/WGL_* >> $@
+	$(BIN)/make_def.pl WGL $(EXT)/WGL_* >> $@
 	echo -e "\n#endif /* _WIN32 && !GLEW_MX */\n" >> $@
 	echo -e "#if !(defined(_WIN32) || (defined(__APPLE__) && !defined(GLEW_APPLE_GLX)))" >> $@
-	$(BIN)/make_struct_def.pl GLX $(EXT)/GLX_* >> $@
+	$(BIN)/make_def.pl GLX $(EXT)/GLX_* >> $@
 	echo -e "\n#endif /* !_WIN32 */\n" >> $@
 	$(BIN)/make_init.pl GL $(CORE)/GL_VERSION* >> $@
 	$(BIN)/make_init.pl GL $(EXT)/GL_* >> $@
diff --git a/auto/bin/make_def.pl b/auto/bin/make_def.pl
new file mode 100755
index 0000000..40270ca
--- /dev/null
+++ b/auto/bin/make_def.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+##
+## Copyright (C) 2004, 2003 Marcelo E. Magallon <mmagallo[at]debian org>
+## Copyright (C) 2004, 2003 Milan Ikits <milan ikits[at]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+do 'bin/make.pl';
+
+# function pointer declaration
+sub make_pfn_decl($%)
+{
+    return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
+}
+
+my @extlist = ();
+my %extensions = ();
+
+our $type = shift;
+
+if (@ARGV)
+{
+    @extlist = @ARGV;
+} else {
+    local $/;
+    @extlist = split "\n", (<>);
+}
+
+foreach my $ext (sort @extlist)
+{
+    my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+    output_decls($functions, \&make_pfn_decl);
+}
+
+print "\n";
+
+foreach my $ext (sort @extlist)
+{
+    my ($extname, $exturl, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+    my $extvar = $extname;
+    $extvar =~ s/GL(X*)_/GL$1EW_/;
+    print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
+}