diff -Naur perlftlib-1.2.old/FreeType/Makefile.PL perlftlib-1.2.new/FreeType/Makefile.PL
--- perlftlib-1.2.old/FreeType/Makefile.PL	Mon Dec 14 14:13:26 1998
+++ perlftlib-1.2.new/FreeType/Makefile.PL	Mon Nov 11 00:31:37 2002
@@ -4,7 +4,7 @@
 WriteMakefile(
     'NAME'	=> 'FreeType',
     'VERSION_FROM' => 'FreeType.pm', # finds $VERSION
-    'LIBS'	=> ['-L/usr/local/X11R6.3/lib -lttf'],   # e.g., '-lm' 
+    'LIBS'	=> ['-L@PREFIX@/lib -lttf'],   # e.g., '-lm' 
     'DEFINE'	=> '',     # e.g., '-DHAVE_SOMETHING' 
-    'INC'	=> '-I/usr/local/X11R6.3/include',     # e.g., '-I/usr/include/other' 
+    'INC'	=> '-I@PREFIX@/include/freetype',     # e.g., '-I/usr/include/other' 
 );
diff -Naur perlftlib-1.2.old/FreeType/typemap perlftlib-1.2.new/FreeType/typemap
--- perlftlib-1.2.old/FreeType/typemap	Mon Dec 14 14:13:26 1998
+++ perlftlib-1.2.new/FreeType/typemap	Mon Nov 11 00:31:13 2002
@@ -42,6 +42,7 @@
 T_Handle
 	{
 		void **ptrImage;
+		int na;
 		if (SvTYPE($arg) == SVt_PV &&
 		    ((ptrImage = (void **)SvPV($arg, na)),
 		     na == sizeof($var.z)))
@@ -94,6 +95,7 @@
 	if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
 		HV *obj = (HV*)SvRV($arg);
 		SV *sv;
+		int na;
 		FETCH_OBJ_IV(obj, &$var, rows, $var);
 		FETCH_OBJ_IV(obj, &$var, cols, $var);
 		FETCH_OBJ_IV(obj, &$var, width, $var);
diff -Naur perlftlib-1.2.old/Makefile.PL perlftlib-1.2.new/Makefile.PL
--- perlftlib-1.2.old/Makefile.PL	Thu Jan  1 09:00:00 1970
+++ perlftlib-1.2.new/Makefile.PL	Mon Nov 11 00:35:54 2002
@@ -0,0 +1,10 @@
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+WriteMakefile(
+    'NAME'		=> 'FreeType',
+    'VERSION_FROM'	=> 'FreeType/FreeType.pm',
+    'PM' => {	'FreeTypeWrapper.pm' => '$(INST_LIBDIR)/FreeTypeWrapper.pm',
+		'ftinfo.pl' => '$(INST_SCRIPT)/ftinfo',
+		'mkttfdir.pl' => '$(INST_SCRIPT)/mkttfdir'}
+);
diff -Naur perlftlib-1.2.old/ftinfo.pl perlftlib-1.2.new/ftinfo.pl
--- perlftlib-1.2.old/ftinfo.pl	Mon Dec 14 14:13:26 1998
+++ perlftlib-1.2.new/ftinfo.pl	Mon Nov 11 01:02:27 2002
@@ -1,4 +1,4 @@
-#! /usr/local/bin/perl
+#! /usr/bin/perl
 'di ';
 'ds 00 \"';
 'ig 00 ';
@@ -32,10 +32,10 @@
 #
 
 use FreeTypeWrapper;
-require "jcode.pl";
-require 'getopts.pl';
+use Jcode;
+use Getopt::Std;
 
-Getopts('daclhinopMm:s:');
+getopts('daclhinopMm:s:', \%opts);
 
 die "Usage: $0 [-daclhinopM] [-m char] [-s scale (point)] font-names...
   -d: debug mode
@@ -53,22 +53,15 @@
   -s point: scale glyph into # point
 " unless @ARGV;
 
-$opt_c = 1 if $opt_a;
-$opt_l = 1 if $opt_a;
-$opt_h = 1 if $opt_a;
-$opt_i = 1 if $opt_a;
-$opt_n = 1 if $opt_a;
-$opt_o = 1 if $opt_a;
-$opt_p = 1 if $opt_a;
-
-$opt_s = 10 unless defined $opt_s;
+@opts{qw(c l h i n o p)} = (1) x 7 if $opts{a};
+$opts{'s'} = 10 unless defined $opts{'s'};
 
 foreach $fn (@ARGV) {
-    $font = new FreeTypeWrapper($fn);
+    my $font = new FreeTypeWrapper($fn);
     warn "open failed: $fn\n" unless defined $font;
     next unless defined $font;
     for ($i = 0; $i < $font->facenum; $i++) {
-	$face = $font->open_collection($i);
+	my $face = $font->open_collection($i);
 	warn "open_collection failed: $fn\n" unless defined $face;
 	next unless defined $face;
 
@@ -77,7 +70,7 @@
 
 	print "$fn: $i face\n";
 
-	if ($opt_c) {
+	if ($opts{'c'}) {
 	    my $charmapnum = $face->charmapnum;
 	    for (my $j = 0; $j < $charmapnum; $j++) {
 		my $charmap = new FreeTypeCharMap($face, $j);
@@ -87,46 +80,46 @@
 		    next;
 		}
 		printf("$fn: $i: $j charmap: platformID=%d encoding=%d\n",
-		       $charmap->platformID, $charmap->encodingID) if $opt_d;
+		       $charmap->platformID, $charmap->encodingID) if $opts{'d'};
 		printf("$fn: $i: $j charmap: %s, %s\n",
-		       $charmap->platform, $charmap->encoding) unless $opt_d;
+		       $charmap->platform, $charmap->encoding) unless $opts{'d'};
 	    }
 	}
 
-	if ($opt_l) {
+	if ($opts{'l'}) {
 	    foreach $j (sort (keys %{$prop})) {
 		print "$fn: $i: $j: $prop->{$j}\n";
 	    }
 	}
 
-	if ($opt_h) {
+	if ($opts{'h'}) {
 	    foreach $j (sort (keys %{$prop->{header}})) {
 		print "$fn: $i: header: $j: $prop->{header}->{$j}\n";
 	    }
 	}
 
-	if ($opt_i) {
+	if ($opts{'i'}) {
 	    foreach $j (sort (keys %{$prop->{horizontal}})) {
 		print "$fn: $i: horizontal: $j: $prop->{horizontal}->{$j}\n";
 	    }
 	}
 
-	if ($opt_n) {
+	if ($opts{'n'}) {
 	    for ($j = 0; $j < $count; $j++) {
 		$name = new FreeTypeName($face, $j);
 		$string = $name->string();
 
-		jcode::convert(*string, 'euc', 'sjis');
+		Jcode::convert(*string, 'euc', 'sjis');
 		printf("$fn: $i: $j name: platformID=%d encoding=%d languageID=%d nameID=%d, name=\"%s\"\n",
 		       $name->platformID, $name->encodingID, $name->languageID,
-		       $name->namedescID, $string) if $opt_d;
+		       $name->namedescID, $string) if $opts{'d'};
 		printf("$fn: $i: $j name: %s, %s, %s, %s: %s\n",
 		       $name->platform, $name->encoding, $name->language,
-		       $name->namedesc, $string) unless $opt_d;
+		       $name->namedesc, $string) unless $opts{'d'};
 	    }
 	}
 
-	if ($opt_o) {
+	if ($opts{'o'}) {
 	    print("$fn: $i: os2: code page range: ",
 		  $face->get_codepagerange, "\n");
 	    print("$fn: $i: os2: unicode range: ",
@@ -154,13 +147,13 @@
 	    }
 	}
 
-	if ($opt_p) {
+	if ($opts{'p'}) {
 	    foreach $j (sort (keys %{$prop->{postscript}})) {
 		print "$fn: $i: postscript: $j: $prop->{postscript}->{$j}\n";
 	    }
 	}
 
-	if ($opt_M) {
+	if ($opts{'M'}) {
 	    my $charmapnum = $face->charmapnum;
 	    my $charmap;
 	    my $j;
@@ -175,7 +168,7 @@
 	    my $instance = $face->new_instance();
 	    $instance->set_resolutions(100, 100);
 	    $instance->set_flags(1, 1);
-	    $instance->set_charsize($opt_s * 64);
+	    $instance->set_charsize($opts{'s'} * 64);
 	    my $metrics = $instance->metrics();
 	    foreach $mval (sort (keys %{$metrics})) {
 		printf("$fn: $i: Instance Metrics: %s -> %s\n",
@@ -183,7 +176,7 @@
 	    }
 	}
 
-	if ($opt_m) {
+	if ($opts{'m'}) {
 	    my $charmapnum = $face->charmapnum;
 	    my $charmap;
 	    my $j;
@@ -198,15 +191,15 @@
 	    my $instance = $face->new_instance();
 	    $instance->set_resolutions(100, 100);
 	    $instance->set_flags(1, 1);
-	    $instance->set_charsize($opt_s * 64);
+	    $instance->set_charsize($opts{'s'} * 64);
 
-	    $opt_m = "\"$opt_m\"" if length $opt_m == 1;
-	    foreach $val (eval $opt_m) {
+	    $opts{'m'} = "\"$opts{'m'}\"" if length $opts{'m'} == 1;
+	    foreach $val (eval $opts{'m'}) {
 		$val = ord($val) if $val !~ /^\d/;
 		$val = oct($val) if $val =~ /^0/;
 		my $code = $charmap->convert($val);
 		printf("$fn: $i: char 0x%x: converted into 0x%x, %d " .
-		       "pt scaled\n", $val, $code, $opt_s);
+		       "pt scaled\n", $val, $code, $opts{'s'});
 
 		my $g = new FreeTypeGlyph($instance, $code);
 		my $metrics = $g->metrics();
diff -Naur perlftlib-1.2.old/mkttfdir.pl perlftlib-1.2.new/mkttfdir.pl
--- perlftlib-1.2.old/mkttfdir.pl	Mon Dec 14 14:13:26 1998
+++ perlftlib-1.2.new/mkttfdir.pl	Mon Nov 11 01:02:27 2002
@@ -1,4 +1,4 @@
-#!/usr/local/bin/perl
+#!/usr/bin/perl
 'di ';
 'ds 00 \"';
 'ig 00 ';
@@ -32,9 +32,9 @@
 #
 
 use FreeTypeWrapper;
-require 'getopts.pl';
+use Getopt::Std;
 
-Getopts('dhejoi:');
+getopts('dhejoi:', \%opts);
 
 die "Usage: $0 [-dheo] [-inum] [directory-name...]
     -d: dump fonts.dir screen instead of fonts.dir file
@@ -44,9 +44,9 @@
         (for wrong header fonts)
     -o: add -o- fonts for each font
     -i num: value for auto-italic option (default 0.2)
-" if $opt_h;
+" if $opts{'h'};
 $ai = 0.2;
-$ai = $opt_i if defined $opt_i;
+$ai = $opts{'i'} if defined $opts{'i'};
 
 push @ARGV, "." unless @ARGV;
 
@@ -122,14 +122,14 @@
     @files = grep { (/.ttf$/i || /.ttc$/i) && -f "$dir/$_" } readdir(DIR);
     closedir DIR;
 
-    undef @lines;
+    my ($face, $name, $subname, @lines);
     foreach $filename (@files) {
 	my $fn = "$dir/$filename";
-	$font = new FreeTypeWrapper($fn);
+	my $font = new FreeTypeWrapper($fn);
 	warn "open failed: $fn\n" unless defined $font;
 	next unless defined $font;
 
-	$face = $font->open_face($font);
+	my $face = $font->open_face($font);
 	warn "open_face failed: $fn\n" unless defined $face;
 	next unless defined $face;
 
@@ -281,14 +281,14 @@
 	     "-$fontname-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-iso8859-1\n")
-	    if $opt_e || $face->get_codepagerange =~ /Latin 1/;
+	    if $opts{'e'} || $face->get_codepagerange =~ /Latin 1/;
 	push(@lines, "ai=$ai:$filename " .
 	     "-$foundry-$family_name-$weight_name-o-" .
 	     "$setwidth_name-$add_style_name-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-iso8859-1\n")
-	    if ($opt_e || $face->get_codepagerange =~ /Latin 1/) &&
-		$opt_o && $slant eq "r";
+	    if ($opts{'e'} || $face->get_codepagerange =~ /Latin 1/) &&
+		$opts{'o'} && $slant eq "r";
 
 	# If it has "Japanese" language description, it
 	# may have iso8859-1, jisx0201.1976-0 and jisx0208.1983-0 encoding.
@@ -297,44 +297,44 @@
 	     "-$fontname-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-jisx0208.1983-0\n")
-	    if $opt_j || $face->get_codepagerange =~ /JIS\/Japan/;
+	    if $opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/;
 	push(@lines, "ai=$ai:$filename " .
 	     "-$foundry-$family_name-$weight_name-o-" .
 	     "$setwidth_name-$add_style_name-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-jisx0208.1983-0\n")
-	    if ($opt_j || $face->get_codepagerange =~ /JIS\/Japan/) &&
-		$opt_o && $slant eq "r";
+	    if ($opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/) &&
+		$opts{'o'} && $slant eq "r";
 	push(@lines, "bw=0.5:$filename " .
 	     "-$fontname-" . 
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-jisx0201.1976-0\n")
-	    if $opt_j || $face->get_codepagerange =~ /JIS\/Japan/;
+	    if $opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/;
 	push(@lines, "ai=$ai:bw=0.5:$filename " .
 	     "-$foundry-$family_name-$weight_name-o-" .
 	     "$setwidth_name-$add_style_name-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-jisx0201.1976-0\n")
-	    if ($opt_j || $face->get_codepagerange =~ /JIS\/Japan/) &&
-		$opt_o && $slant eq "r";
+	    if ($opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/) &&
+		$opts{'o'} && $slant eq "r";
 	push(@lines, "bw=0.5:$filename " .
 	     "-$fontname-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-iso8859-1\n")
-	    if $opt_j || $face->get_codepagerange =~ /JIS\/Japan/;
+	    if $opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/;
 	push(@lines, "ai=$ai:bw=0.5:$filename " .
 	     "-$foundry-$family_name-$weight_name-o-" .
 	     "$setwidth_name-$add_style_name-" .
 	     "$pixel_size-$point_size-$resolution_x-$resolution_y-" .
 	     "$spacing-$average_width-iso8859-1\n")
-	    if ($opt_j || $face->get_codepagerange =~ /JIS\/Japan/) &&
-		$opt_o && $slant eq "r";
+	    if ($opts{'j'} || $face->get_codepagerange =~ /JIS\/Japan/) &&
+		$opts{'o'} && $slant eq "r";
 
 	# Should I do something about Symbol?
     }
 
     if (@lines) {
-	if ($opt_d) {
+	if ($opts{'d'}) {
 	    print $#lines + 1, "\n";
 	    foreach $l (sort @lines) {
 		print $l;
