[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