[MLton-commit] r7016

Wesley Terpstra wesley at mlton.org
Tue Feb 3 08:37:35 PST 2009


Fetch tar.gz files needed from the web during MSI construction.
To make the build fully automatic, must deal with files in two packages.
This is done by building a files.wxs including all files in a final pass.
Remove hard-coded paths for my machine.
Add an icon for add/remove programs.


----------------------------------------------------------------------

U   mlton/trunk/package/mingw/License.rtf
U   mlton/trunk/package/mingw/Makefile
D   mlton/trunk/package/mingw/dirs2wix-filesys.sml
A   mlton/trunk/package/mingw/dirs2wix.sml
A   mlton/trunk/package/mingw/dl/binutils.get
A   mlton/trunk/package/mingw/dl/dlfcn.get
A   mlton/trunk/package/mingw/dl/gcc.get
A   mlton/trunk/package/mingw/dl/gdb.get
A   mlton/trunk/package/mingw/dl/gmp.get
A   mlton/trunk/package/mingw/dl/mirrors
A   mlton/trunk/package/mingw/dl/msys.get
A   mlton/trunk/package/mingw/dl/runtime.get
A   mlton/trunk/package/mingw/dl/w32api.get
A   mlton/trunk/package/mingw/files2cmp.sml
D   mlton/trunk/package/mingw/files2wix-component.sml
A   mlton/trunk/package/mingw/files2wix.sml
A   mlton/trunk/package/mingw/mlton.ico
U   mlton/trunk/package/mingw/mlton.wxs

----------------------------------------------------------------------

Modified: mlton/trunk/package/mingw/License.rtf
===================================================================
(Binary files differ)

Modified: mlton/trunk/package/mingw/Makefile
===================================================================
--- mlton/trunk/package/mingw/Makefile	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/Makefile	2009-02-03 16:37:34 UTC (rev 7016)
@@ -1,48 +1,45 @@
-WIX="/c/Programme/Windows Installer XML v3/bin"
-TARDIR=/c/DOKUME~1/terpstra/Desktop/MinGW
 MLTON=../../build/bin/mlton
+PKG=self dbg runtime w32api binutils gcc gmp msys gdb dlfcn
 
-MINGW_WXS=runtime.wxs w32api.wxs binutils.wxs gcc.wxs gmp.wxs msys.wxs gdb.wxs dlfcn.wxs
-MINGW_WIXOBJ=$(patsubst %.wxs,%.wixobj,$(MINGW_WXS))
+PKG_LST=$(patsubst %,%.lst,$(PKG))
+PKG_WXS=$(patsubst %,%.wxs,$(PKG))
+PKG_WIXOBJ=$(patsubst %,%.wixobj,$(PKG))
 
-MLton.msi:	mlton.wixobj self.wixobj dbg.wixobj filesys.wixobj $(MINGW_WIXOBJ)
-	$(WIX)/light -cultures:en-us -ext WixUIExtension -out $@ $^
+MLton.msi:	mlton.wixobj dirs.wixobj files.wixobj $(PKG_WIXOBJ)
+	light -cultures:en-us -ext WixUIExtension -out $@ $^
 
 clean:
-	rm -rf staging MLton.msi *.wixobj *.exe $(MINGW_WXS) self.wxs dbg.wxs filesys.wxs
+	rm -rf staging MLton.msi *.wixobj *.exe $(PKG_WXS) $(PKG_LST) files.wxs dirs.wxs
 
 %.wixobj:	%.wxs
-	$(WIX)/candle -ext WixUIExtension $<
+	candle -ext WixUIExtension $<
 
 %.exe:		%.sml
 	$(MLTON) $<
 
-self.wxs:	files2wix-component.exe
+self.lst:	files2cmp.exe
 	rm -rf staging
 	$(MAKE) -C ../.. PREFIX= install
 	mv ../../install staging
-	cd staging; find * -type f ! -name *-gdb.a | ../files2wix-component MLton > ../$@.tmp
+	cd staging; find * -type f ! -name *-gdb.a > ../$@.tmp
 	mv $@.tmp $@
 
-dbg.wxs:	self.wxs
-	cd staging; find * -type f -name *-gdb.a | ../files2wix-component Debug > ../$@.tmp
+dbg.lst:	self.lst
+	cd staging; find * -type f -name *-gdb.a > ../$@.tmp
 	mv $@.tmp $@
 
-# This has to happen after everything else is unpacked
-filesys.wxs:	dirs2wix-filesys.exe $(MINGW_WIXOBJ) self.wixobj
-	cd staging; find * -type d | ../dirs2wix-filesys > ../$@.tmp
+%.lst:	dl/%.get dbg.lst
+	cd staging; . ../$< | tar --exclude postinstall -t -k | sed 's@^\./@@' > ../$@.tmp
+	cd staging; . ../$< | tar -x
 	mv $@.tmp $@
 
-runtime.wxs:	$(TARDIR)/mingwrt-3.15.1-mingw32-dev.tar.gz self.wxs
-w32api.wxs:	$(TARDIR)/w32api-3.12-mingw32-dev.tar.gz self.wxs
-binutils.wxs:	$(TARDIR)/binutils-20080624-coffgen.tar.gz self.wxs
-gcc.wxs:	$(TARDIR)/gcc-core-3.4.5-20060117-3.tar.gz self.wxs
-msys.wxs:	$(TARDIR)/msysCORE-1.0.11-20080826.tar.gz self.wxs
-gdb.wxs:	$(TARDIR)/gdb-6.8-mingw-3.tar.gz self.wxs
-gmp.wxs:	$(TARDIR)/mingw-gmp-4.2.4-1.tar.gz self.wxs
-dlfcn.wxs:	$(TARDIR)/dlfcn-win32-shared-r11.tar.gz self.wxs
+%.wxs:	%.lst
+	./files2cmp $(*F) < $< > $@
 
-%.wxs:
-	tar --exclude postinstall -tzf $< | ./files2wix-component $(*F) > $@.tmp
-	cd staging; tar -xzf $<
+# This has to happen after everything else is unpacked; depend on PKG_LST
+dirs.wxs:	dirs2wix.exe $(PKG_LST)
+	cd staging; find * -type d | ../dirs2wix > ../$@.tmp
 	mv $@.tmp $@
+files.wxs:	files2wix.exe $(PKG_LST)
+	cat $(PKG_LST) | sort | uniq | ./files2wix > ./$@.tmp
+	mv $@.tmp $@

Deleted: mlton/trunk/package/mingw/dirs2wix-filesys.sml
===================================================================
--- mlton/trunk/package/mingw/dirs2wix-filesys.sml	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dirs2wix-filesys.sml	2009-02-03 16:37:34 UTC (rev 7016)
@@ -1,58 +0,0 @@
-val prefix = "\
-   \<?xml version='1.0' encoding='windows-1252'?>\n\
-   \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\
-   \  <Fragment Id='FragmentFileSys'>\n\
-   \    <DirectoryRef Id='INSTALLDIR'>\n"
-val suffix = "\
-   \    </DirectoryRef>\n\
-   \  </Fragment>\n\
-   \</Wix>\n"
-
-fun tail s =
-    if String.size s < 60 then s else
-    String.extract (s, String.size s - 60, NONE)
-fun escape c = if Char.isAlphaNum c orelse c = #"." then c else #"_"
-val escape = tail o CharVector.map escape
-
-val depth = ref 3
-fun pad () = CharVector.tabulate (!depth * 2, fn _ => #" ")
-fun indent (t, head) =
-  let
-     val path = head @ [t]
-     val paths = String.concatWith "/" path
-     val () =
-        print (pad () ^ "<Directory Id='dir." ^ escape paths ^ "' \
-                                   \Name='" ^ t ^ "'>\n")
-     val () = depth := !depth + 1
-  in
-    head
-  end
-
-fun unindent _ =
-   (depth := !depth - 1
-   ; print (pad () ^ "</Directory>\n"))
-
-fun makeDir (prevArcs, path) =
-  let
-     fun common ([], _) = 0
-       | common (_, []) = 0
-       | common (x :: r, y :: s) =
-           if x = y then 1 + common (r, s) else 0
-     val arcs = #arcs (OS.Path.fromString path)
-     val common = common (prevArcs, arcs)
-     val tailPrev = List.drop (prevArcs, common)
-     val tailPath = List.drop (arcs, common)
-     val () = List.app unindent tailPrev
-     val _ = List.foldl indent (List.take (arcs, common)) tailPath
-  in
-     arcs
-  end
-
-fun trim path = String.substring (path, 0, String.size path - 1)
-fun loop last =
-   case TextIO.inputLine TextIO.stdIn of NONE => last | SOME path =>
-   loop (makeDir (last, trim (path)))
-
-val () = print prefix
-val () = List.app unindent (loop [])
-val () = print suffix

Added: mlton/trunk/package/mingw/dirs2wix.sml
===================================================================
--- mlton/trunk/package/mingw/dirs2wix.sml	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dirs2wix.sml	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,58 @@
+val prefix = "\
+   \<?xml version='1.0' encoding='windows-1252'?>\n\
+   \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\
+   \  <Fragment Id='FragmentDirs'>\n\
+   \    <DirectoryRef Id='INSTALLDIR'>\n"
+val suffix = "\
+   \    </DirectoryRef>\n\
+   \  </Fragment>\n\
+   \</Wix>\n"
+
+fun tail s =
+    if String.size s < 60 then s else
+    String.extract (s, String.size s - 60, NONE)
+fun escape c = if Char.isAlphaNum c orelse c = #"." then c else #"_"
+val escape = tail o CharVector.map escape
+
+val depth = ref 3
+fun pad () = CharVector.tabulate (!depth * 2, fn _ => #" ")
+fun indent (t, head) =
+  let
+     val path = head @ [t]
+     val paths = String.concatWith "/" path
+     val () =
+        print (pad () ^ "<Directory Id='dir." ^ escape paths ^ "' \
+                                   \Name='" ^ t ^ "'>\n")
+     val () = depth := !depth + 1
+  in
+    head
+  end
+
+fun unindent _ =
+   (depth := !depth - 1
+   ; print (pad () ^ "</Directory>\n"))
+
+fun makeDir (prevArcs, path) =
+  let
+     fun common ([], _) = 0
+       | common (_, []) = 0
+       | common (x :: r, y :: s) =
+           if x = y then 1 + common (r, s) else 0
+     val arcs = #arcs (OS.Path.fromString path)
+     val common = common (prevArcs, arcs)
+     val tailPrev = List.drop (prevArcs, common)
+     val tailPath = List.drop (arcs, common)
+     val () = List.app unindent tailPrev
+     val _ = List.foldl indent (List.take (arcs, common)) tailPath
+  in
+     arcs
+  end
+
+fun trim path = String.substring (path, 0, String.size path - 1)
+fun loop last =
+   case TextIO.inputLine TextIO.stdIn of NONE => last | SOME path =>
+   loop (makeDir (last, trim (path)))
+
+val () = print prefix
+val () = List.app unindent (loop [])
+val () = print suffix

Added: mlton/trunk/package/mingw/dl/binutils.get
===================================================================
--- mlton/trunk/package/mingw/dl/binutils.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/binutils.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,6 @@
+. ../dl/mirrors
+#f=binutils-2.19-mingw32-bin.tar.gz
+#get "$MINGW" "$f"
+f=binutils-2.18.50-20080109-2-coffgen.tar.gz
+get "$REBUILT" "$f"
+gzip -dc "$f"

Added: mlton/trunk/package/mingw/dl/dlfcn.get
===================================================================
--- mlton/trunk/package/mingw/dl/dlfcn.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/dlfcn.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=dlfcn-win32-shared-r11.tar.bz2
+get "$GOOGLE" "$f"
+bzip2 -dc "$f"

Added: mlton/trunk/package/mingw/dl/gcc.get
===================================================================
--- mlton/trunk/package/mingw/dl/gcc.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/gcc.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=gcc-core-3.4.5-20060117-3.tar.gz
+get "$MINGW" "$f"
+gzip -dc "$f"

Added: mlton/trunk/package/mingw/dl/gdb.get
===================================================================
--- mlton/trunk/package/mingw/dl/gdb.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/gdb.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=gdb-6.8-mingw-3.tar.bz2
+get "$MINGW" "$f"
+bzip2 -dc "$f"

Added: mlton/trunk/package/mingw/dl/gmp.get
===================================================================
--- mlton/trunk/package/mingw/dl/gmp.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/gmp.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=gmp-4.2.4-static.tar.bz2
+get "$REBUILT" "$f"
+bzip2 -dc "$f"

Added: mlton/trunk/package/mingw/dl/mirrors
===================================================================
--- mlton/trunk/package/mingw/dl/mirrors	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/mirrors	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,9 @@
+MINGW=http://garr.dl.sourceforge.net/sourceforge/mingw
+GOOGLE=http://dlfcn-win32.googlecode.com/files
+REBUILT=http://mlton.org/pages/Experimental/attachments
+
+get () {
+mirror="$1"
+file="$2"
+test -f "$file" || (wget -O "$file.tmp" "$mirror/$file"; mv "$file.tmp" "$file")
+}

Added: mlton/trunk/package/mingw/dl/msys.get
===================================================================
--- mlton/trunk/package/mingw/dl/msys.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/msys.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=msysCORE-1.0.11-20080826.tar.gz
+get "$MINGW" "$f"
+gzip -dc "$f"

Added: mlton/trunk/package/mingw/dl/runtime.get
===================================================================
--- mlton/trunk/package/mingw/dl/runtime.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/runtime.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=mingwrt-3.15.2-mingw32-dev.tar.gz
+get "$MINGW" "$f"
+gzip -dc "$f"

Added: mlton/trunk/package/mingw/dl/w32api.get
===================================================================
--- mlton/trunk/package/mingw/dl/w32api.get	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/dl/w32api.get	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,4 @@
+. ../dl/mirrors
+f=w32api-3.13-mingw32-dev.tar.gz
+get "$MINGW" "$f"
+gzip -dc "$f"

Added: mlton/trunk/package/mingw/files2cmp.sml
===================================================================
--- mlton/trunk/package/mingw/files2cmp.sml	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/files2cmp.sml	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,40 @@
+val myId =
+   case CommandLine.arguments () of
+      [] => (print "Missing component group command-line argument.\n"; "XXX")
+    | (x :: []) => x
+    | (x :: _) => (print "Too many arguments supplied.\n"; x)
+
+val prefix = "\
+   \<?xml version='1.0' encoding='windows-1252'?>\n\
+   \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\
+   \  <Fragment Id='Fragment" ^ myId ^ "'>\n\
+   \    <ComponentGroup Id='component." ^ myId ^ "'>\n"
+val suffix = "\
+   \    </ComponentGroup>\n\
+   \  </Fragment>\n\
+   \</Wix>\n"
+
+fun tail s =
+    if String.size s < 60 then s else
+    String.extract (s, String.size s - 60, NONE)
+fun escape c = if Char.isAlphaNum c orelse c = #"." then c else #"_"
+val escape = tail o CharVector.map escape
+
+fun component path = 
+   case OS.Path.splitDirFile path of {file, dir} =>
+   if file = "" orelse dir = "" then "" 
+   else "      <ComponentRef Id='component." ^ escape path ^ "' />\n"
+ 
+fun tail path = String.substring (path, 0, String.size path - 1)
+fun head path = if String.isPrefix "./" path 
+                then String.extract (path, 2, NONE) 
+                else path
+val trim = head o tail
+fun loop () =
+   case TextIO.inputLine TextIO.stdIn of NONE => () | SOME path =>
+   ((print o component o trim) path; loop ())
+
+val () = MLton.Random.srand (Word.fromLargeInt (Time.toNanoseconds (Time.now ())))
+val () = print prefix
+val () = loop ()
+val () = print suffix

Deleted: mlton/trunk/package/mingw/files2wix-component.sml
===================================================================
--- mlton/trunk/package/mingw/files2wix-component.sml	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/files2wix-component.sml	2009-02-03 16:37:34 UTC (rev 7016)
@@ -1,80 +0,0 @@
-val myId =
-   case CommandLine.arguments () of
-      [] => (print "Missing component group command-line argument.\n"; "XXX")
-    | (x :: []) => x
-    | (x :: _) => (print "Too many arguments supplied.\n"; x)
-
-val prefix = "\
-   \<?xml version='1.0' encoding='windows-1252'?>\n\
-   \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\
-   \  <Fragment Id='Fragment" ^ myId ^ "'>\n"
-val suffix = "\
-   \  </Fragment>\n\
-   \</Wix>\n"
-
-fun tail s =
-    if String.size s < 60 then s else
-    String.extract (s, String.size s - 60, NONE)
-fun escape c = if Char.isAlphaNum c orelse c = #"." then c else #"_"
-val escape = tail o CharVector.map escape
-
-fun feature paths =
-   let
-      val prefix = "\
-         \    <ComponentGroup Id='component." ^ myId ^ "'>\n"
-      fun component path = 
-         case OS.Path.splitDirFile path of {file, dir} =>
-         if file = "" orelse dir = "" then "" else "\
-         \      <ComponentRef Id='component." ^ escape path ^ "' />\n"
-      val suffix = "\
-         \    </ComponentGroup>\n"
-   in
-      print prefix
-      ; List.app (print o component) paths
-      ; print suffix
-   end
- 
-fun dirEntry path =
-   let
-      val {dir, file} = OS.Path.splitDirFile path
-      val dirId = "dir." ^ escape dir
-      val uglypath = escape path
-      val guid = guid path
-   in
-      if file = "" orelse dir = "" then "" else
-      "    <DirectoryRef Id='" ^ dirId ^ "'>\n\
-      \      <Component Id='component." ^ uglypath ^ "' \
-                       \Guid='" ^ guid ^ "'>\n\
-      \         <File Id='file." ^ uglypath ^ "' \
-                     \Name='" ^ file ^ "' DiskId='1' Vital='yes' \
-                     \Source='staging/" ^ path ^ "' />\n\
-      \      </Component>\n\
-      \    </DirectoryRef>\n"
-   end 
-and guid path = 
-   let
-      val w32 = Word32.fromLarge o Word.toLarge o MLton.Random.rand
-      val w16 = Word16.fromLarge o Word.toLarge o MLton.Random.rand
-      val zero = "00000000"
-      fun pad i s = String.substring (zero, 0, i - String.size s) ^ s 
-      val w32 = pad 8 o Word32.toString o w32
-      val w16 = pad 4 o Word16.toString o w16
-   in
-      w32 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^ w32 ()
-   end
-
-fun tail path = String.substring (path, 0, String.size path - 1)
-fun head path = if String.isPrefix "./" path 
-                then String.extract (path, 2, NONE) 
-                else path
-val trim = head o tail
-fun loop files =
-   case TextIO.inputLine TextIO.stdIn of NONE => files | SOME path =>
-   (print (dirEntry (trim path)); loop ((trim path) :: files))
-
-val () = MLton.Random.srand (Word.fromLargeInt (Time.toNanoseconds (Time.now ())))
-val () = print prefix
-val files = loop []
-val () = feature (rev files)
-val () = print suffix
- 

Added: mlton/trunk/package/mingw/files2wix.sml
===================================================================
--- mlton/trunk/package/mingw/files2wix.sml	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/files2wix.sml	2009-02-03 16:37:34 UTC (rev 7016)
@@ -0,0 +1,57 @@
+val prefix = "\
+   \<?xml version='1.0' encoding='windows-1252'?>\n\
+   \<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n\
+   \  <Fragment Id='FragmentFiles'>\n"
+val suffix = "\
+   \  </Fragment>\n\
+   \</Wix>\n"
+
+fun tail s =
+    if String.size s < 60 then s else
+    String.extract (s, String.size s - 60, NONE)
+fun escape c = if Char.isAlphaNum c orelse c = #"." then c else #"_"
+val escape = tail o CharVector.map escape
+
+fun dirEntry path =
+   let
+      val {dir, file} = OS.Path.splitDirFile path
+      val dirId = "dir." ^ escape dir
+      val uglypath = escape path
+      val guid = guid path
+   in
+      if file = "" orelse dir = "" then "" else
+      "    <DirectoryRef Id='" ^ dirId ^ "'>\n\
+      \      <Component Id='component." ^ uglypath ^ "' \
+                       \Guid='" ^ guid ^ "'>\n\
+      \         <File Id='file." ^ uglypath ^ "' \
+                     \Name='" ^ file ^ "' DiskId='1' Vital='yes' \
+                     \Source='staging/" ^ path ^ "' />\n\
+      \      </Component>\n\
+      \    </DirectoryRef>\n"
+   end 
+and guid path = 
+   let
+      val w32 = Word32.fromLarge o Word.toLarge o MLton.Random.rand
+      val w16 = Word16.fromLarge o Word.toLarge o MLton.Random.rand
+      val zero = "00000000"
+      fun pad i s = String.substring (zero, 0, i - String.size s) ^ s 
+      val w32 = pad 8 o Word32.toString o w32
+      val w16 = pad 4 o Word16.toString o w16
+   in
+      w32 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^"-"^ w16 () ^ w32 ()
+   end
+
+fun tail path = String.substring (path, 0, String.size path - 1)
+fun head path = if String.isPrefix "./" path 
+                then String.extract (path, 2, NONE) 
+                else path
+val trim = head o tail
+fun loop () =
+   case TextIO.inputLine TextIO.stdIn of NONE => () | SOME path =>
+   ((print o dirEntry o trim) path; loop ())
+
+val () = MLton.Random.srand (Word.fromLargeInt (Time.toNanoseconds (Time.now ())))
+val () = print prefix
+val () = loop ()
+val () = print suffix
+ 

Added: mlton/trunk/package/mingw/mlton.ico
===================================================================
(Binary files differ)


Property changes on: mlton/trunk/package/mingw/mlton.ico
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Modified: mlton/trunk/package/mingw/mlton.wxs
===================================================================
--- mlton/trunk/package/mingw/mlton.wxs	2009-01-27 15:18:05 UTC (rev 7015)
+++ mlton/trunk/package/mingw/mlton.wxs	2009-02-03 16:37:34 UTC (rev 7016)
@@ -11,6 +11,8 @@
 
     <Media Id='1' Cabinet='MLton.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
     <Property Id='DiskPrompt' Value="MLton Installation CD [1]" />
+    <Property Id="ARPPRODUCTICON" Value="mlton.ico" />
+    <Icon Id="mlton.ico" SourceFile="mlton.ico" />
 
     <Directory Id='TARGETDIR' Name='SourceDir'>
       <Directory Id='ProgramFilesFolder' Name='PFiles'>
@@ -73,20 +75,20 @@
     </DirectoryRef>
 
     <Feature Id='MLton' Title='MLton' Description='A whole-program optimizing Standard ML compiler.' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>
-      <ComponentGroupRef Id='component.MLton' />
+      <ComponentGroupRef Id='component.self' />
       <ComponentRef Id='component.bin_mlton.bat' />
       <ComponentRef Id='component.path' />
       <ComponentRef Id='component.download.url' />
       <ComponentRef Id='component.readme.txt' />
       <ComponentRef Id='component.documentation' />
       <Feature Id='Debug' Title='Debug' Description='The MLton runtime libraries with included debug information.' Level='10' AllowAdvertise='no'>
-        <ComponentGroupRef Id='component.Debug' />
+        <ComponentGroupRef Id='component.dbg' />
       </Feature>
     </Feature>
     <Feature Id='GMP' Title='GMP' Description='An arbitrary precision integer artihmetic library.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>
       <ComponentGroupRef Id='component.gmp' />
     </Feature>
-    <Feature Id='dlfcn' Title='dlfcn-win32' Description='An implementation of the POSIX dynamic linking loader API for Windows.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>
+    <Feature Id='dlfcn' Title='Dlfcn' Description='An implementation of the POSIX dynamic linking loader API for Windows.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>
       <ComponentGroupRef Id='component.dlfcn' />
     </Feature>
     <Feature Id='MinGW' Title='MinGW' Description='The minimalist GNU for Windows C compiler toolchain.' Level='1' ConfigurableDirectory='INSTALLDIR' AllowAdvertise='no'>




More information about the MLton-commit mailing list