Index: ./config/gen/icu.pl
===================================================================
RCS file: /cvs/public/parrot/config/gen/icu.pl,v
retrieving revision 1.6
diff -u -b -r1.6 icu.pl
--- ./config/gen/icu.pl	10 Apr 2004 08:21:20 -0000	1.6
+++ ./config/gen/icu.pl	11 Apr 2004 23:34:41 -0000
@@ -42,9 +42,38 @@
   my ($cc) = Configure::Data->get(qw(cc));
   my $is_msvc = grep { $cc eq $_ } ( qw(cl cl.exe) );
   if ($is_msvc && -e 'icu\source\allinone\allinone.dsw') {
+    # We build from MS VC++ Project Files. If these do not have Win32 line endings, it will
+    # not accept them. Thus we need to ensure they do.
+    my @dspfiles = ('icu\source\allinone\all\all.dsp', 'icu\source\common\common.dsp',
+                    'icu\source\tools\ctestfw\ctestfw.dsp', 'icu\source\tools\gencmn\decmn.dsp',
+                    'icu\source\tools\gencmn\gencmn.dsp', 'icu\source\tools\genrb\derb.dsp',
+                    'icu\source\tools\genrb\genrb.dsp', 'icu\source\tools\genbrk\genbrk.dsp',
+                    'icu\source\tools\genccode\genccode.dsp', 'icu\source\tools\gencnval\gencnval.dsp',
+                    'icu\source\tools\genidna\genidna.dsp', 'icu\source\tools\gennames\gennames.dsp',
+                    'icu\source\tools\gennorm\gennorm.dsp', 'icu\source\tools\genpname\genpname.dsp',
+                    'icu\source\tools\genprops\genprops.dsp', 'icu\source\tools\gentest\gentest.dsp',
+                    'icu\source\tools\gentz\gentz.dsp', 'icu\source\tools\genuca\genuca.dsp',
+                    'icu\source\tools\makeconv\makeconv.dsp', 'icu\source\tools\pkgdata\pkgdata.dsp',
+                    'icu\source\tools\toolutil\toolutil.dsp', 'icu\source\i18n\i18n.dsp',
+                    'icu\source\stubdata\stubdata.dsp', 'icu\source\data\makedata.dsp');
+    foreach (@dspfiles) {
+        open DSPFILE, "< $_" or die "Cannot open $_: $!\n";
+        my $file = join('', <DSPFILE>);
+        close DSPFILE;
+        $file =~ s/([^\r])\n/$1\r\n/g;
+        open DSPFILE, "> $_" or die "Cannot open $_: $!\n";;
+        print DSPFILE $file;
+        close DSPFILE;
+    }
+    
+    # Set up makefile entries.
     Configure::Data->set(
       buildicu => 1,
-      icu_make => <<'RULES',
+      icu_headers => 'blib\include\unicode\ucnv.h blib\include\unicode\utypes.h blib\include\unicode\uchar.h',
+	blib_lib_libsicuuc_a => 'blib\lib\libicuuc$(A)',
+      blib_lib_libsicudata_a => 'blib\lib\libicudata$(A)',
+      cc_inc => Configure::Data->get(qw(cc_inc)).' -I.\blib\include',
+      TEMP_icu_make => <<'RULES',
 ###############################################################################
 #
 # Build ICU:
@@ -54,8 +83,44 @@
 icu : icu.dummy
 
 icu.dummy :
-	msdev icu\source\allinone\allinone.dsw /MAKE "ALL"
 
+icu.clean :
+	msdev icu\source\allinone\allinone.dsw /MAKE "ALL" /CLEAN
+
+$(ICU_H_FILES) : $(LIBICUCORE)
+
+$(LIBICUCORE) $(LIBICUDATA) :
+	msdev icu\source\allinone\allinone.dsw /MAKE "stubdata - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "common - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "i18n - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "ctestfw - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "decmn - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gencmn - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "derb - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genrb - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genbrk - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genccode - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gencnval - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genidna - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gennames - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gennorm - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genpname - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genprops - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gentest - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "gentz - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "genuca - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "makeconv - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "pkgdata - Win32 Debug"
+	msdev icu\source\allinone\allinone.dsw /MAKE "toolutil - Win32 Debug"
+	mkdir blib
+	mkdir blib\lib
+	copy icu\lib\icuucd$(A) $(LIBICUCORE)
+	copy icu\lib\icudata$(A) $(LIBICUDATA)
+	mkdir blib\include
+	mkdir blib\include\unicode
+	copy icu\include\unicode\*.h blib\include\unicode
+	copy icu\bin\icuuc26d.dll .
+	copy icu\bin\*.dll .
 RULES
     );
     return;
