diff --git a/swig/perl/IO/Makefile.PL b/swig/perl/IO/Makefile.PL
index ba308b00efc267e970404925b768eae8bb0be756..7d68034fbd12a67c853e4d73276d275f36c3921d 100644
--- a/swig/perl/IO/Makefile.PL
+++ b/swig/perl/IO/Makefile.PL
@@ -16,6 +16,8 @@
 
 use strict;
 
+my @MACRO;
+
 my $BLIB_DIR = '../blib/lib/XML/Xerces';
 if ($XERCES_DEVEL) {
   print STDERR "\tWelcome Xerces Developer!\n";
@@ -41,6 +43,11 @@ TERMINUS
     return $retval;
   }
 
+  my $swig = $SWIG || 'swig';
+  @MACRO = ('macro'       => {
+    'SWIG'         => "$swig",
+  });
+
   *MY::postamble = \&Xerces_IO_postamble;
 }
 
@@ -54,6 +61,7 @@ WriteMakefile(
     'CC'        => $CXX,
     'SKIP'      => [qw( test makeaperl xs_o)],
   @OPTIMIZE,
+  @MACRO,
   @LDFLAGS,
 );
 
diff --git a/swig/perl/SAX/Makefile.PL b/swig/perl/SAX/Makefile.PL
index 3f4e12cdd33ad3a119ea06e6250ac0d980502614..b958b483133b425cfc846f3c4daf2d7e7cd56fd6 100644
--- a/swig/perl/SAX/Makefile.PL
+++ b/swig/perl/SAX/Makefile.PL
@@ -15,6 +15,7 @@
  #
 
 use strict;
+my @MACRO;
 
 my $BLIB_DIR = '../blib/lib/XML/Xerces';
 if ($XERCES_DEVEL) {
@@ -41,6 +42,11 @@ TERMINUS
     return $retval;
   }
 
+  my $swig = $SWIG || 'swig';
+  @MACRO = ('macro'       => {
+    'SWIG'         => "$swig",
+  });
+
   *MY::postamble = \&Xerces_SAX_postamble;
 }
 
@@ -54,6 +60,7 @@ WriteMakefile(
     'CC'        => $CXX,
     'SKIP'      => [qw( test makeaperl xs_o)],
   @OPTIMIZE,
+  @MACRO,
   @LDFLAGS,
 );