Index: Configure.pl
===================================================================
RCS file: /cvs/public/parrot/Configure.pl,v
retrieving revision 1.140
diff -u -b -r1.140 Configure.pl
--- Configure.pl	13 Apr 2004 14:18:16 -0000	1.140
+++ Configure.pl	20 Apr 2004 16:40:20 -0000
@@ -167,9 +167,23 @@
 be one of: C<gc>, C<libc>, C<malloc> or C<malloc-trace>. The default is
 C<gc>.
 
+=back
+
+ICU Options
+
+=over
+
+=item C<--icuplatform=(platform)>
+
+Use the given platform name to pass to ICU's runConfigureICU. (See icu/source/runConfigureICU for the list of available "platform" names, which specify both operating system and compiler.)
+
+=item C<--icuconfigureargs=(arguments)>
+
+Pass the given arguments to ICU's configuration script, instead of the default.
+
 =item C<--icudatadir=(path)>
 
-Use the given directory to locate ICU's data file(s)
+Use the given directory to locate ICU's data file(s) at runtime
 
 =back
 
@@ -279,7 +293,11 @@
    --gc=(type)          Determine the type of garbage collection
                         type=(gc|libc|malloc|malloc-trace) default is gc
 
-   --icudatadir=(path)  Use the given directory to locate ICU's data file(s)
+ICU Options:
+
+   --icuplatform=(platform)   Platform name to pass to ICU's runConfigureICU
+   --icuconfigureargs=(args)  Arguments to pass to ICU's configuration script
+   --icudatadir=(path)        Directory to locate ICU's data file(s)
 
 Other Options (may not be implemented):
 
Index: config/gen/icu.pl
===================================================================
RCS file: /cvs/public/parrot/config/gen/icu.pl,v
retrieving revision 1.8
diff -u -b -r1.8 icu.pl
--- config/gen/icu.pl	13 Apr 2004 14:18:23 -0000	1.8
+++ config/gen/icu.pl	20 Apr 2004 16:40:21 -0000
@@ -20,16 +20,26 @@
 
 $description="Configuring ICU if requested...";
 
-@args=qw(buildicu verbose icudatadir);
+@args=qw(buildicu verbose icudatadir icuplatform icuconfigureargs);
 
 sub runstep {
-  my ($buildicu, $verbose, $icudatadir) = @_;
+  my ($buildicu, $verbose, $icudatadir, $icuplatform, $icuconfigureargs) = @_;
+  my $icu_configure_command;
 
   if( !defined $icudatadir )
   {
 	  $icudatadir = 'blib/lib/icu/2.6.1';
   }
 
+  if( defined $icuplatform )
+  {
+	  $icu_configure_command = "./runConfigureICU $icuplatform";
+  }
+  else
+  {
+	  $icu_configure_command = "./configure";
+  }
+
   Configure::Data->set( icudatadir => $icudatadir );
 
 #  unless ($buildicu) {
@@ -137,9 +147,14 @@
     return;
   }
 
-  # Below we use a configure line suggested by icu/README.parrot
+  if( !defined $icuconfigureargs )
+  {
   my $cwd = cwd();
 
+      # Default to a configure line suggested by icu/README.parrot
+	  $icuconfigureargs = "--disable-layout --disable-tests --disable-samples --quiet '--prefix=$cwd/blib' --enable-static --disable-shared --disable-extras '--oldincludedir=$cwd/blib/old' --with-data-packaging=archive";
+  }
+  
   Configure::Data->set(
     buildicu => 1,
     icu_headers => 'blib/include/unicode/ucnv.h blib/include/unicode/utypes.h blib/include/unicode/uchar.h',
@@ -164,7 +179,7 @@
 \$(ICU_H_FILES) : \$(LIBICUCORE)
 
 \$(LIBICUCORE) \$(LIBICUDATA) :
-	cd icu/source; ./configure --disable-layout --disable-tests --disable-samples --quiet '--prefix=$cwd/blib' --enable-static --disable-shared --disable-extras '--oldincludedir=$cwd/blib/old' --with-data-packaging=archive
+	cd icu/source; $icu_configure_command $icuconfigureargs
 	\$(MAKE_C) icu/source/stubdata install
 	\$(MAKE_C) icu/source/common install
 	\$(MAKE_C) icu/source/i18n
