summaryrefslogtreecommitdiff
path: root/InstallShield
diff options
context:
space:
mode:
Diffstat (limited to 'InstallShield')
-rw-r--r--InstallShield/Component Definitions/Default.cdf178
-rw-r--r--InstallShield/Component Definitions/Default.fgl48
-rw-r--r--InstallShield/File Groups/Default.fdf87
-rw-r--r--InstallShield/File Groups/HTML Help Files.fgl187
-rw-r--r--InstallShield/File Groups/PDF Help Files.fgl8
-rw-r--r--InstallShield/File Groups/Profiling Libraries.fgl258
-rw-r--r--InstallShield/File Groups/Program Executable Files.fgl370
-rw-r--r--InstallShield/Glasgow Haskell Compiler.ipr58
-rw-r--r--InstallShield/README30
-rw-r--r--InstallShield/Registry Entries/Default.rge6
-rw-r--r--InstallShield/Script Files/Setup.Inxbin0 -> 3931 bytes
-rw-r--r--InstallShield/Script Files/Setup.Obsbin0 -> 132 bytes
-rw-r--r--InstallShield/Script Files/Setup.dbgbin0 -> 2960 bytes
-rw-r--r--InstallShield/Script Files/Setup.inobin0 -> 4350 bytes
-rw-r--r--InstallShield/Script Files/Setup.insbin0 -> 5413 bytes
-rw-r--r--InstallShield/Script Files/Setup.map574
-rw-r--r--InstallShield/Script Files/setup.rul950
-rw-r--r--InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/ANNOUNCE116
-rw-r--r--InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/_IsUser.dllbin0 -> 32768 bytes
-rw-r--r--InstallShield/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmpbin0 -> 162278 bytes
-rw-r--r--InstallShield/Shell Objects/Default.shl12
-rw-r--r--InstallShield/String Tables/0009-English/value.shl28
-rw-r--r--InstallShield/String Tables/Default.shl94
-rw-r--r--InstallShield/Text Substitutions/Build.tsb31
-rw-r--r--InstallShield/Text Substitutions/Setup.tsb86
-rw-r--r--InstallShield/decyg.pl21
-rw-r--r--InstallShield/runexe.c59
27 files changed, 3201 insertions, 0 deletions
diff --git a/InstallShield/Component Definitions/Default.cdf b/InstallShield/Component Definitions/Default.cdf
new file mode 100644
index 0000000000..011554a913
--- /dev/null
+++ b/InstallShield/Component Definitions/Default.cdf
@@ -0,0 +1,178 @@
+[Info]
+Name=
+Type=CompDef
+Version=2.10.000
+
+[HTML Help Files]
+OBJECT=No
+DESCRIPTION=
+STATUS=
+VISIBLE=Yes
+DISK=ANYDISK
+FILENEED=STANDARD
+INCLUDEINBUILD=Yes
+PASSWORD=
+ENCRYPT=No
+COMPRESSIFSEPARATE=No
+UNINSTALLABLE=Yes
+COMMENT=
+DEFSELECTION=Yes
+SELECTED=Yes
+IMAGE=
+TARGETDIRCDROM=
+DISPLAYTEXT=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+GUID=b949531f-1f21-4183-a2a6-fa687ebd44c6
+_SPLIT_BEFORE=
+_SPLIT_AFTER=
+_DATAASFILES=
+_NO_SPLIT=
+_NO_SPLIT_BEFORE=
+VOLATILE=
+filegroup0=HTML Help Files
+HANDLERONInstalling=
+HANDLERONInstalled=
+HANDLERONUnInstalling=
+HANDLERONUnInstalled=
+
+[Components]
+component0=HTML Help Files
+component1=Program Files
+component2=Profiling Libraries
+component3=PDF Help Files
+
+[Program Files]
+OBJECT=No
+DESCRIPTION=
+STATUS=
+VISIBLE=Yes
+DISK=ANYDISK
+FILENEED=STANDARD
+INCLUDEINBUILD=Yes
+PASSWORD=
+ENCRYPT=No
+COMPRESSIFSEPARATE=No
+UNINSTALLABLE=Yes
+COMMENT=
+DEFSELECTION=Yes
+SELECTED=Yes
+IMAGE=
+TARGETDIRCDROM=
+DISPLAYTEXT=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+GUID=dd5fef6d-14fb-4b93-a8a8-8de303e79c40
+_SPLIT_BEFORE=
+_SPLIT_AFTER=
+_DATAASFILES=
+_NO_SPLIT=
+_NO_SPLIT_BEFORE=
+VOLATILE=
+filegroup0=Program Executable Files
+HANDLERONInstalling=
+HANDLERONInstalled=
+HANDLERONUnInstalling=
+HANDLERONUnInstalled=
+
+[Profiling Libraries]
+OBJECT=No
+DESCRIPTION=
+STATUS=
+VISIBLE=Yes
+DISK=ANYDISK
+FILENEED=STANDARD
+INCLUDEINBUILD=Yes
+PASSWORD=
+ENCRYPT=No
+COMPRESSIFSEPARATE=No
+UNINSTALLABLE=Yes
+COMMENT=
+DEFSELECTION=Yes
+SELECTED=Yes
+IMAGE=
+TARGETDIRCDROM=
+DISPLAYTEXT=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+GUID=6b59e9c4-d87a-4587-9836-7d0b73dcfd4d
+_SPLIT_BEFORE=
+_SPLIT_AFTER=
+_DATAASFILES=
+_NO_SPLIT=
+_NO_SPLIT_BEFORE=
+VOLATILE=
+filegroup0=Profiling Libraries
+HANDLERONInstalling=
+HANDLERONInstalled=
+HANDLERONUnInstalling=
+HANDLERONUnInstalled=
+
+[PDF Help Files]
+OBJECT=No
+DESCRIPTION=
+STATUS=
+VISIBLE=Yes
+DISK=ANYDISK
+FILENEED=STANDARD
+INCLUDEINBUILD=Yes
+PASSWORD=
+ENCRYPT=No
+COMPRESSIFSEPARATE=No
+UNINSTALLABLE=Yes
+COMMENT=
+DEFSELECTION=Yes
+SELECTED=Yes
+IMAGE=
+TARGETDIRCDROM=
+DISPLAYTEXT=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+GUID=3778b9f0-b9bc-4e6e-956d-add64a73f290
+_SPLIT_BEFORE=
+_SPLIT_AFTER=
+_DATAASFILES=
+_NO_SPLIT=
+_NO_SPLIT_BEFORE=
+VOLATILE=
+filegroup0=PDF Help Files
+HANDLERONInstalling=
+HANDLERONInstalled=
+HANDLERONUnInstalling=
+HANDLERONUnInstalled=
+
+[TopComponents]
+component0=Program Files
+component1=HTML Help Files
+component2=PDF Help Files
+component3=Profiling Libraries
+
+[SetupType]
+setuptype0=Compact
+setuptype1=Typical
+setuptype2=Custom
+
+[SetupTypeItem-Compact]
+Comment=
+Descrip=
+DisplayText=
+item0=Program Files
+
+[SetupTypeItem-Typical]
+Comment=
+Descrip=
+DisplayText=
+item0=HTML Help Files
+item1=Program Files
+
+[SetupTypeItem-Custom]
+Comment=
+Descrip=
+DisplayText=
+item0=HTML Help Files
+item1=Program Files
+
diff --git a/InstallShield/Component Definitions/Default.fgl b/InstallShield/Component Definitions/Default.fgl
new file mode 100644
index 0000000000..5b73147452
--- /dev/null
+++ b/InstallShield/Component Definitions/Default.fgl
@@ -0,0 +1,48 @@
+[General]
+Type=FILELIST
+Version=1.10.000
+
+[TopDir]
+SubDir0=<WINDIR>
+SubDir1=<PROGRAMFILES>
+SubDir2=<TARGETDIR>
+SubDir3=USERDEFINED
+
+[<WINDIR>]
+fulldirectory=
+SubDir0=<WINDIR>\<WINSYSDIR>
+DISPLAYTEXT=Windows Operating System
+TYPE=TEXTSUBFIXED
+
+[<WINDIR>\<WINSYSDIR>]
+fulldirectory=
+DISPLAYTEXT=Windows System Folder
+TYPE=TEXTSUBFIXED
+
+[<PROGRAMFILES>]
+fulldirectory=
+SubDir0=<PROGRAMFILES>\<COMMONFILES>
+DISPLAYTEXT=Program Files Folder
+TYPE=TEXTSUBFIXED
+
+[<PROGRAMFILES>\<COMMONFILES>]
+fulldirectory=
+DISPLAYTEXT=Common Files Folder
+TYPE=TEXTSUBFIXED
+
+[<TARGETDIR>]
+fulldirectory=
+DISPLAYTEXT=General Application Destination
+TYPE=TEXTSUBFIXED
+
+[USERDEFINED]
+fulldirectory=
+SubDir0=USERDEFINED\<DOCDIR>
+DISPLAYTEXT=Script-defined Folders
+TYPE=USERSTART
+
+[USERDEFINED\<DOCDIR>]
+fulldirectory=
+DISPLAYTEXT=
+TYPE=TEXTSUB
+
diff --git a/InstallShield/File Groups/Default.fdf b/InstallShield/File Groups/Default.fdf
new file mode 100644
index 0000000000..eddf00ec71
--- /dev/null
+++ b/InstallShield/File Groups/Default.fdf
@@ -0,0 +1,87 @@
+[Info]
+Name=
+Type=FileGrp
+Version=2.10.000
+
+[HTML Help Files]
+LINKTYPE=Static Link
+INFOTYPE=Standard
+UNINSTALLABLE=Yes
+FILETYPE=No
+SELFREGISTERING=No
+POTENTIALLY=No
+COMPRESS=Yes
+OPERATINGSYSTEM=
+LANGUAGE=
+COMMENT=
+COMPRESSDLL=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+INSTALLATION=ALWAYSOVERWRITE
+TARGET=<DOCDIR>
+TARGETHIDDEN=Script-defined Folders\<DOCDIR>
+
+[FileGroups]
+group0=HTML Help Files
+group1=Program Executable Files
+group2=Profiling Libraries
+group3=PDF Help Files
+
+[Program Executable Files]
+LINKTYPE=Static Link
+INFOTYPE=Standard
+UNINSTALLABLE=Yes
+FILETYPE=No
+SELFREGISTERING=No
+POTENTIALLY=No
+COMPRESS=Yes
+OPERATINGSYSTEM=
+LANGUAGE=
+COMMENT=
+COMPRESSDLL=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+INSTALLATION=ALWAYSOVERWRITE
+TARGET=<TARGETDIR>
+TARGETHIDDEN=General Application Destination
+
+[Profiling Libraries]
+LINKTYPE=Static Link
+INFOTYPE=Standard
+UNINSTALLABLE=Yes
+FILETYPE=No
+SELFREGISTERING=No
+POTENTIALLY=No
+COMPRESS=Yes
+OPERATINGSYSTEM=
+LANGUAGE=
+COMMENT=
+COMPRESSDLL=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+INSTALLATION=ALWAYSOVERWRITE
+TARGET=<TARGETDIR>
+TARGETHIDDEN=General Application Destination
+
+[PDF Help Files]
+LINKTYPE=Static Link
+INFOTYPE=Standard
+UNINSTALLABLE=Yes
+FILETYPE=No
+SELFREGISTERING=No
+POTENTIALLY=No
+COMPRESS=Yes
+OPERATINGSYSTEM=
+LANGUAGE=
+COMMENT=
+COMPRESSDLL=
+HTTPLOCATION=
+FTPLOCATION=
+MISC=
+INSTALLATION=ALWAYSOVERWRITE
+TARGET=<DOCDIR>
+TARGETHIDDEN=Script-defined Folders\<DOCDIR>
+
diff --git a/InstallShield/File Groups/HTML Help Files.fgl b/InstallShield/File Groups/HTML Help Files.fgl
new file mode 100644
index 0000000000..bf792474d5
--- /dev/null
+++ b/InstallShield/File Groups/HTML Help Files.fgl
@@ -0,0 +1,187 @@
+[General]
+Type=FILELIST
+Version=1.10.000
+
+[TopDir]
+file0=C:\TEMP\fptools\ghc\ANNOUNCE
+SubDir0=doc
+
+[doc]
+fulldirectory=C:\usr\fptools-3.03\fptools\html\ghc-3.03
+SubDir0=doc\building-guide
+SubDir1=doc\user-guide
+
+[doc\building-guide]
+fulldirectory=
+file0=C:\TEMP\fptools\docs\building\winbuild.html
+file1=C:\TEMP\fptools\docs\building\docbook.css
+file2=C:\TEMP\fptools\docs\building\sec-booting-from-c.html
+file3=C:\TEMP\fptools\docs\building\sec-build-checks.html
+file4=C:\TEMP\fptools\docs\building\sec-building-from-source.html
+file5=C:\TEMP\fptools\docs\building\sec-build-pitfalls.html
+file6=C:\TEMP\fptools\docs\building\sec-makefile-arch.html
+file7=C:\TEMP\fptools\docs\building\sec-port-info.html
+file8=C:\TEMP\fptools\docs\building\sec-pre-supposed.html
+file9=C:\TEMP\fptools\docs\building\building-guide.html
+SubDir0=doc\building-guide\stylesheet-images
+
+[doc\building-guide\stylesheet-images]
+fulldirectory=
+file0=C:\TEMP\fptools\docs\building\stylesheet-images\warning.gif
+file1=C:\TEMP\fptools\docs\building\stylesheet-images\home.gif
+file2=C:\TEMP\fptools\docs\building\stylesheet-images\important.gif
+file3=C:\TEMP\fptools\docs\building\stylesheet-images\next.gif
+file4=C:\TEMP\fptools\docs\building\stylesheet-images\note.gif
+file5=C:\TEMP\fptools\docs\building\stylesheet-images\prev.gif
+file6=C:\TEMP\fptools\docs\building\stylesheet-images\tip.gif
+file7=C:\TEMP\fptools\docs\building\stylesheet-images\toc-blank.gif
+file8=C:\TEMP\fptools\docs\building\stylesheet-images\toc-minus.gif
+file9=C:\TEMP\fptools\docs\building\stylesheet-images\toc-plus.gif
+file10=C:\TEMP\fptools\docs\building\stylesheet-images\up.gif
+file11=C:\TEMP\fptools\docs\building\stylesheet-images\caution.gif
+
+[doc\user-guide]
+fulldirectory=
+file0=C:\TEMP\fptools\ghc\docs\set\set\wrong-compilee.html
+file1=C:\TEMP\fptools\ghc\docs\set\set\book-users-guide.html
+file2=C:\TEMP\fptools\ghc\docs\set\set\bug-reports.html
+file3=C:\TEMP\fptools\ghc\docs\set\set\building-docs.html
+file4=C:\TEMP\fptools\ghc\docs\set\set\compile-what-really-happens.html
+file5=C:\TEMP\fptools\ghc\docs\set\set\concurrent-and-parallel.html
+file6=C:\TEMP\fptools\ghc\docs\set\set\device-specific-functions.html
+file7=C:\TEMP\fptools\ghc\docs\set\set\docbook.css
+file8=C:\TEMP\fptools\ghc\docs\set\set\error-reporting-and-handling.html
+file9=C:\TEMP\fptools\ghc\docs\set\set\existential-quantification.html
+file10=C:\TEMP\fptools\ghc\docs\set\set\faster.html
+file11=C:\TEMP\fptools\ghc\docs\set\set\ffi.html
+file12=C:\TEMP\fptools\ghc\docs\set\set\files-and-directories.html
+file13=C:\TEMP\fptools\ghc\docs\set\set\file-suffixes.html
+file14=C:\TEMP\fptools\ghc\docs\set\set\finitemap.html
+file15=C:\TEMP\fptools\ghc\docs\set\set\ghc-language-features.html
+file16=C:\TEMP\fptools\ghc\docs\set\set\glasgow-prim-arrays.html
+file17=C:\TEMP\fptools\ghc\docs\set\set\glasgow-st-monad.html
+file18=C:\TEMP\fptools\ghc\docs\set\set\happy.html
+file19=C:\TEMP\fptools\ghc\docs\set\set\hard-core-debug.html
+file20=C:\TEMP\fptools\ghc\docs\set\set\hp2ps.html
+file21=C:\TEMP\fptools\ghc\docs\set\set\hslibs-intro.html
+file22=C:\TEMP\fptools\ghc\docs\set\set\input-output.html
+file23=C:\TEMP\fptools\ghc\docs\set\set\introduction-ghc.html
+file24=C:\TEMP\fptools\ghc\docs\set\set\license.html
+file25=C:\TEMP\fptools\ghc\docs\set\set\mailing-lists-ghc.html
+file26=C:\TEMP\fptools\ghc\docs\set\set\matchps.html
+file27=C:\TEMP\fptools\ghc\docs\set\set\memo-library.html
+file28=C:\TEMP\fptools\ghc\docs\set\set\multi-param-type-classes.html
+file29=C:\TEMP\fptools\ghc\docs\set\set\mutablearray.html
+file30=C:\TEMP\fptools\ghc\docs\set\set\options-debugging.html
+file31=C:\TEMP\fptools\ghc\docs\set\set\options-help.html
+file32=C:\TEMP\fptools\ghc\docs\set\set\options-optimise.html
+file33=C:\TEMP\fptools\ghc\docs\set\set\options-order.html
+file34=C:\TEMP\fptools\ghc\docs\set\set\options-output.html
+file35=C:\TEMP\fptools\ghc\docs\set\set\options-phases.html
+file36=C:\TEMP\fptools\ghc\docs\set\set\options-sanity.html
+file37=C:\TEMP\fptools\ghc\docs\set\set\packedstring.html
+file38=C:\TEMP\fptools\ghc\docs\set\set\pattern-guards.html
+file39=C:\TEMP\fptools\ghc\docs\set\set\pphs.html
+file40=C:\TEMP\fptools\ghc\docs\set\set\pragmas.html
+file41=C:\TEMP\fptools\ghc\docs\set\set\process-environment.html
+file42=C:\TEMP\fptools\ghc\docs\set\set\process-primitives.html
+file43=C:\TEMP\fptools\ghc\docs\set\set\prof-compiler-options.html
+file44=C:\TEMP\fptools\ghc\docs\set\set\prof-heap.html
+file45=C:\TEMP\fptools\ghc\docs\set\set\profiling.html
+file46=C:\TEMP\fptools\ghc\docs\set\set\prof-rts-options.html
+file47=C:\TEMP\fptools\ghc\docs\set\set\prof-xml-tool.html
+file48=C:\TEMP\fptools\ghc\docs\set\set\readline.html
+file49=C:\TEMP\fptools\ghc\docs\set\set\regex.html
+file50=C:\TEMP\fptools\ghc\docs\set\set\regexstring.html
+file51=C:\TEMP\fptools\ghc\docs\set\set\release-4-08.html
+file52=C:\TEMP\fptools\ghc\docs\set\set\rewrite-rules.html
+file53=C:\TEMP\fptools\ghc\docs\set\set\runtime-control.html
+file54=C:\TEMP\fptools\ghc\docs\set\set\scoped-type-variables.html
+file55=C:\TEMP\fptools\ghc\docs\set\set\sec-assertions.html
+file56=C:\TEMP\fptools\ghc\docs\set\set\sec-bits.html
+file57=C:\TEMP\fptools\ghc\docs\set\set\sec-byte-array.html
+file58=C:\TEMP\fptools\ghc\docs\set\set\sec-ccall.html
+file59=C:\TEMP\fptools\ghc\docs\set\set\sec-concurrency-abstractions.html
+file60=C:\TEMP\fptools\ghc\docs\set\set\sec-concurrency-basics.html
+file61=C:\TEMP\fptools\ghc\docs\set\set\sec-concurrent.html
+file62=C:\TEMP\fptools\ghc\docs\set\set\sec-concurrent-libiface.html
+file63=C:\TEMP\fptools\ghc\docs\set\set\sec-ctypes.html
+file64=C:\TEMP\fptools\ghc\docs\set\set\sec-ctypesiso.html
+file65=C:\TEMP\fptools\ghc\docs\set\set\sec-data.html
+file66=C:\TEMP\fptools\ghc\docs\set\set\sec-dynamic.html
+file67=C:\TEMP\fptools\ghc\docs\set\set\sec-entry.html
+file68=C:\TEMP\fptools\ghc\docs\set\set\sec-exception.html
+file69=C:\TEMP\fptools\ghc\docs\set\set\sec-ffi.html
+file70=C:\TEMP\fptools\ghc\docs\set\set\sec-foreign.html
+file71=C:\TEMP\fptools\ghc\docs\set\set\sec-foreignobj.html
+file72=C:\TEMP\fptools\ghc\docs\set\set\sec-ghc-concurrency.html
+file73=C:\TEMP\fptools\ghc\docs\set\set\sec-glaexts.html
+file74=C:\TEMP\fptools\ghc\docs\set\set\sec-iarray.html
+file75=C:\TEMP\fptools\ghc\docs\set\set\sec-installing-bin-distrib.html
+file76=C:\TEMP\fptools\ghc\docs\set\set\sec-install-windows.html
+file77=C:\TEMP\fptools\ghc\docs\set\set\sec-int.html
+file78=C:\TEMP\fptools\ghc\docs\set\set\sec-ioexts.html
+file79=C:\TEMP\fptools\ghc\docs\set\set\sec-lang.html
+file80=C:\TEMP\fptools\ghc\docs\set\set\sec-lazyst.html
+file81=C:\TEMP\fptools\ghc\docs\set\set\sec-marray.html
+file82=C:\TEMP\fptools\ghc\docs\set\set\sec-net.html
+file83=C:\TEMP\fptools\ghc\docs\set\set\sec-num.html
+file84=C:\TEMP\fptools\ghc\docs\set\set\sec-numexts.html
+file85=C:\TEMP\fptools\ghc\docs\set\set\sec-parsec.html
+file86=C:\TEMP\fptools\ghc\docs\set\set\sec-posix.html
+file87=C:\TEMP\fptools\ghc\docs\set\set\sec-pretty.html
+file88=C:\TEMP\fptools\ghc\docs\set\set\sec-prim-dynamic.html
+file89=C:\TEMP\fptools\ghc\docs\set\set\sec-primitive.html
+file90=C:\TEMP\fptools\ghc\docs\set\set\sec-quickcheck.html
+file91=C:\TEMP\fptools\ghc\docs\set\set\sec-scheduling.html
+file92=C:\TEMP\fptools\ghc\docs\set\set\sec-showfunctions.html
+file93=C:\TEMP\fptools\ghc\docs\set\set\sec-st.html
+file94=C:\TEMP\fptools\ghc\docs\set\set\sec-stable.html
+file95=C:\TEMP\fptools\ghc\docs\set\set\sec-stable-names.html
+file96=C:\TEMP\fptools\ghc\docs\set\set\sec-stable-pointers.html
+file97=C:\TEMP\fptools\ghc\docs\set\set\sec-storable.html
+file98=C:\TEMP\fptools\ghc\docs\set\set\sec-text.html
+file99=C:\TEMP\fptools\ghc\docs\set\set\sec-uri.html
+file100=C:\TEMP\fptools\ghc\docs\set\set\sec-using-concurrent.html
+file101=C:\TEMP\fptools\ghc\docs\set\set\sec-using-parallel.html
+file102=C:\TEMP\fptools\ghc\docs\set\set\sec-util.html
+file103=C:\TEMP\fptools\ghc\docs\set\set\sec-weak.html
+file104=C:\TEMP\fptools\ghc\docs\set\set\sec-win32.html
+file105=C:\TEMP\fptools\ghc\docs\set\set\sec-word.html
+file106=C:\TEMP\fptools\ghc\docs\set\set\select.html
+file107=C:\TEMP\fptools\ghc\docs\set\set\separate-compilation.html
+file108=C:\TEMP\fptools\ghc\docs\set\set\set.html
+file109=C:\TEMP\fptools\ghc\docs\set\set\set1.html
+file110=C:\TEMP\fptools\ghc\docs\set\set\smaller.html
+file111=C:\TEMP\fptools\ghc\docs\set\set\socket.html
+file112=C:\TEMP\fptools\ghc\docs\set\set\socketprim.html
+file113=C:\TEMP\fptools\ghc\docs\set\set\sooner-faster-quicker.html
+file114=C:\TEMP\fptools\ghc\docs\set\set\stingier.html
+file115=C:\TEMP\fptools\ghc\docs\set\set\system-database.html
+file116=C:\TEMP\fptools\ghc\docs\set\set\ticky-ticky.html
+file117=C:\TEMP\fptools\ghc\docs\set\set\universal-quantification.html
+file118=C:\TEMP\fptools\ghc\docs\set\set\using-ghc.html
+file119=C:\TEMP\fptools\ghc\docs\set\set\utils.html
+file120=C:\TEMP\fptools\ghc\docs\set\set\vs-haskell-defn.html
+file121=C:\TEMP\fptools\ghc\docs\set\set\win32-dlls.html
+file122=C:\TEMP\fptools\ghc\docs\set\set\win32-dlls-create.html
+file123=C:\TEMP\fptools\ghc\docs\set\set\win32-dlls-linking-static.html
+file124=C:\TEMP\fptools\ghc\docs\set\set\wrong.html
+file125=C:\TEMP\fptools\ghc\docs\set\set\book-hslibs.html
+SubDir0=doc\user-guide\stylesheet-images
+
+[doc\user-guide\stylesheet-images]
+fulldirectory=
+file0=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\warning.gif
+file1=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\home.gif
+file2=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\important.gif
+file3=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\next.gif
+file4=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\note.gif
+file5=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\prev.gif
+file6=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\tip.gif
+file7=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\toc-blank.gif
+file8=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\toc-minus.gif
+file9=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\toc-plus.gif
+file10=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\up.gif
+file11=C:\TEMP\fptools\ghc\docs\set\set\stylesheet-images\caution.gif
+
diff --git a/InstallShield/File Groups/PDF Help Files.fgl b/InstallShield/File Groups/PDF Help Files.fgl
new file mode 100644
index 0000000000..32199b630f
--- /dev/null
+++ b/InstallShield/File Groups/PDF Help Files.fgl
@@ -0,0 +1,8 @@
+[General]
+Type=FILELIST
+Version=1.10.000
+
+[TopDir]
+file0=C:\TEMP\fptools\docs\building.pdf
+file1=C:\TEMP\fptools\ghc\docs\set\set.pdf
+
diff --git a/InstallShield/File Groups/Profiling Libraries.fgl b/InstallShield/File Groups/Profiling Libraries.fgl
new file mode 100644
index 0000000000..8614722c73
--- /dev/null
+++ b/InstallShield/File Groups/Profiling Libraries.fgl
@@ -0,0 +1,258 @@
+[General]
+Type=FILELIST
+Version=1.10.000
+
+[TopDir]
+SubDir0=lib
+
+[lib]
+fulldirectory=
+file0=C:\TEMP\fptools\ghc\lib\std\libHSstd_p.a
+file1=C:\TEMP\fptools\ghc\rts\libHSrts_p.a
+file2=C:\TEMP\fptools\hslibs\concurrent\libHSconcurrent_p.a
+file3=C:\TEMP\fptools\hslibs\data\libHSdata_p.a
+file4=C:\TEMP\fptools\hslibs\lang\libHSlang_p.a
+file5=C:\TEMP\fptools\hslibs\net\libHSnet_p.a
+file6=C:\TEMP\fptools\hslibs\text\libHStext_p.a
+file7=C:\TEMP\fptools\hslibs\util\libHSutil_p.a
+file8=C:\TEMP\fptools\hslibs\win32\src\libHSwin32_p.a
+file9=C:\TEMP\fptools\greencard\lib\ghc\libHSgreencard_p.a
+SubDir0=lib\imports
+
+[lib\imports]
+fulldirectory=
+SubDir0=lib\imports\concurrent
+SubDir1=lib\imports\data
+SubDir2=lib\imports\greencard
+SubDir3=lib\imports\lang
+SubDir4=lib\imports\net
+SubDir5=lib\imports\num
+SubDir6=lib\imports\std
+SubDir7=lib\imports\text
+SubDir8=lib\imports\util
+SubDir9=lib\imports\win32
+
+[lib\imports\concurrent]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\concurrent\Strategies.p_hi
+file1=C:\TEMP\fptools\hslibs\concurrent\Channel.p_hi
+file2=C:\TEMP\fptools\hslibs\concurrent\ChannelVar.p_hi
+file3=C:\TEMP\fptools\hslibs\concurrent\Concurrent.p_hi
+file4=C:\TEMP\fptools\hslibs\concurrent\CVar.p_hi
+file5=C:\TEMP\fptools\hslibs\concurrent\Merge.p_hi
+file6=C:\TEMP\fptools\hslibs\concurrent\MVar.p_hi
+file7=C:\TEMP\fptools\hslibs\concurrent\Parallel.p_hi
+file8=C:\TEMP\fptools\hslibs\concurrent\QSem.p_hi
+file9=C:\TEMP\fptools\hslibs\concurrent\QSemN.p_hi
+file10=C:\TEMP\fptools\hslibs\concurrent\SampleVar.p_hi
+file11=C:\TEMP\fptools\hslibs\concurrent\Semaphore.p_hi
+file12=C:\TEMP\fptools\hslibs\concurrent\Chan.p_hi
+
+[lib\imports\data]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\data\Set.p_hi
+file1=C:\TEMP\fptools\hslibs\data\FiniteMap.p_hi
+file2=C:\TEMP\fptools\hslibs\data\edison\EdisonPrelude.p_hi
+file3=C:\TEMP\fptools\hslibs\data\edison\Assoc\Assoc.p_hi
+file4=C:\TEMP\fptools\hslibs\data\edison\Assoc\AssocDefaults.p_hi
+file5=C:\TEMP\fptools\hslibs\data\edison\Assoc\AssocList.p_hi
+file6=C:\TEMP\fptools\hslibs\data\edison\Assoc\PatriciaLoMap.p_hi
+file7=C:\TEMP\fptools\hslibs\data\edison\Coll\UnbalancedSet.p_hi
+file8=C:\TEMP\fptools\hslibs\data\edison\Coll\CollectionDefaults.p_hi
+file9=C:\TEMP\fptools\hslibs\data\edison\Coll\CollectionUtils.p_hi
+file10=C:\TEMP\fptools\hslibs\data\edison\Coll\LazyPairingHeap.p_hi
+file11=C:\TEMP\fptools\hslibs\data\edison\Coll\LeftistHeap.p_hi
+file12=C:\TEMP\fptools\hslibs\data\edison\Coll\MinHeap.p_hi
+file13=C:\TEMP\fptools\hslibs\data\edison\Coll\SkewHeap.p_hi
+file14=C:\TEMP\fptools\hslibs\data\edison\Coll\SplayHeap.p_hi
+file15=C:\TEMP\fptools\hslibs\data\edison\Coll\TestOrdBag.p_hi
+file16=C:\TEMP\fptools\hslibs\data\edison\Coll\TestOrdSet.p_hi
+file17=C:\TEMP\fptools\hslibs\data\edison\Coll\Collection.p_hi
+file18=C:\TEMP\fptools\hslibs\data\edison\Seq\TestSeq.p_hi
+file19=C:\TEMP\fptools\hslibs\data\edison\Seq\BinaryRandList.p_hi
+file20=C:\TEMP\fptools\hslibs\data\edison\Seq\BraunSeq.p_hi
+file21=C:\TEMP\fptools\hslibs\data\edison\Seq\JoinList.p_hi
+file22=C:\TEMP\fptools\hslibs\data\edison\Seq\ListSeq.p_hi
+file23=C:\TEMP\fptools\hslibs\data\edison\Seq\MyersStack.p_hi
+file24=C:\TEMP\fptools\hslibs\data\edison\Seq\RandList.p_hi
+file25=C:\TEMP\fptools\hslibs\data\edison\Seq\RevSeq.p_hi
+file26=C:\TEMP\fptools\hslibs\data\edison\Seq\Sequence.p_hi
+file27=C:\TEMP\fptools\hslibs\data\edison\Seq\SequenceDefaults.p_hi
+file28=C:\TEMP\fptools\hslibs\data\edison\Seq\SimpleQueue.p_hi
+file29=C:\TEMP\fptools\hslibs\data\edison\Seq\SizedSeq.p_hi
+file30=C:\TEMP\fptools\hslibs\data\edison\Seq\BankersQueue.p_hi
+
+[lib\imports\greencard]
+fulldirectory=
+file0=C:\TEMP\fptools\greencard\lib\ghc\StdDIS.p_hi
+
+[lib\imports\lang]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\lang\Word.p_hi
+file1=C:\TEMP\fptools\hslibs\lang\ArrayBase.p_hi
+file2=C:\TEMP\fptools\hslibs\lang\Bits.p_hi
+file3=C:\TEMP\fptools\hslibs\lang\ByteArray.p_hi
+file4=C:\TEMP\fptools\hslibs\lang\CCall.p_hi
+file5=C:\TEMP\fptools\hslibs\lang\CString.p_hi
+file6=C:\TEMP\fptools\hslibs\lang\CTypes.p_hi
+file7=C:\TEMP\fptools\hslibs\lang\CTypesISO.p_hi
+file8=C:\TEMP\fptools\hslibs\lang\Dynamic.p_hi
+file9=C:\TEMP\fptools\hslibs\lang\Exception.p_hi
+file10=C:\TEMP\fptools\hslibs\lang\Foreign.p_hi
+file11=C:\TEMP\fptools\hslibs\lang\ForeignObj.p_hi
+file12=C:\TEMP\fptools\hslibs\lang\GlaExts.p_hi
+file13=C:\TEMP\fptools\hslibs\lang\IArray.p_hi
+file14=C:\TEMP\fptools\hslibs\lang\Int.p_hi
+file15=C:\TEMP\fptools\hslibs\lang\IOExts.p_hi
+file16=C:\TEMP\fptools\hslibs\lang\LazyST.p_hi
+file17=C:\TEMP\fptools\hslibs\lang\MutableArray.p_hi
+file18=C:\TEMP\fptools\hslibs\lang\NativeInfo.p_hi
+file19=C:\TEMP\fptools\hslibs\lang\NumExts.p_hi
+file20=C:\TEMP\fptools\hslibs\lang\PackedString.p_hi
+file21=C:\TEMP\fptools\hslibs\lang\ShowFunctions.p_hi
+file22=C:\TEMP\fptools\hslibs\lang\ST.p_hi
+file23=C:\TEMP\fptools\hslibs\lang\Stable.p_hi
+file24=C:\TEMP\fptools\hslibs\lang\StableName.p_hi
+file25=C:\TEMP\fptools\hslibs\lang\StablePtr.p_hi
+file26=C:\TEMP\fptools\hslibs\lang\Storable.p_hi
+file27=C:\TEMP\fptools\hslibs\lang\TimeExts.p_hi
+file28=C:\TEMP\fptools\hslibs\lang\Weak.p_hi
+file29=C:\TEMP\fptools\hslibs\lang\Addr.p_hi
+file30=C:\TEMP\fptools\hslibs\lang\monads\Monoid.p_hi
+file31=C:\TEMP\fptools\hslibs\lang\monads\MonadError.p_hi
+file32=C:\TEMP\fptools\hslibs\lang\monads\MonadFix.p_hi
+file33=C:\TEMP\fptools\hslibs\lang\monads\MonadIdentity.p_hi
+file34=C:\TEMP\fptools\hslibs\lang\monads\MonadReader.p_hi
+file35=C:\TEMP\fptools\hslibs\lang\monads\MonadRWS.p_hi
+file36=C:\TEMP\fptools\hslibs\lang\monads\MonadState.p_hi
+file37=C:\TEMP\fptools\hslibs\lang\monads\MonadTrans.p_hi
+file38=C:\TEMP\fptools\hslibs\lang\monads\MonadWriter.p_hi
+file39=C:\TEMP\fptools\hslibs\lang\monads\MonadEither.p_hi
+file40=C:\TEMP\fptools\hslibs\lang\MArray.p_hi
+
+[lib\imports\net]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\net\URI.p_hi
+file1=C:\TEMP\fptools\hslibs\net\Socket.p_hi
+file2=C:\TEMP\fptools\hslibs\net\SocketPrim.p_hi
+file3=C:\TEMP\fptools\hslibs\net\BSD.p_hi
+
+[lib\imports\num]
+fulldirectory=
+
+[lib\imports\std]
+fulldirectory=
+file0=C:\TEMP\fptools\ghc\lib\std\Array.p_hi
+file1=C:\TEMP\fptools\ghc\lib\std\Char.p_hi
+file2=C:\TEMP\fptools\ghc\lib\std\Complex.p_hi
+file3=C:\TEMP\fptools\ghc\lib\std\CPUTime.p_hi
+file4=C:\TEMP\fptools\ghc\lib\std\Directory.p_hi
+file5=C:\TEMP\fptools\ghc\lib\std\IO.p_hi
+file6=C:\TEMP\fptools\ghc\lib\std\Ix.p_hi
+file7=C:\TEMP\fptools\ghc\lib\std\List.p_hi
+file8=C:\TEMP\fptools\ghc\lib\std\Locale.p_hi
+file9=C:\TEMP\fptools\ghc\lib\std\Maybe.p_hi
+file10=C:\TEMP\fptools\ghc\lib\std\Monad.p_hi
+file11=C:\TEMP\fptools\ghc\lib\std\Numeric.p_hi
+file12=C:\TEMP\fptools\ghc\lib\std\PrelAddr.p_hi
+file13=C:\TEMP\fptools\ghc\lib\std\PrelArr.p_hi
+file14=C:\TEMP\fptools\ghc\lib\std\PrelArrExtra.p_hi
+file15=C:\TEMP\fptools\ghc\lib\std\PrelBase.p_hi
+file16=C:\TEMP\fptools\ghc\lib\std\PrelByteArr.p_hi
+file17=C:\TEMP\fptools\ghc\lib\std\PrelConc.p_hi
+file18=C:\TEMP\fptools\ghc\lib\std\PrelDynamic.p_hi
+file19=C:\TEMP\fptools\ghc\lib\std\PrelEnum.p_hi
+file20=C:\TEMP\fptools\ghc\lib\std\PrelErr.p_hi
+file21=C:\TEMP\fptools\ghc\lib\std\PrelException.p_hi
+file22=C:\TEMP\fptools\ghc\lib\std\PrelFloat.p_hi
+file23=C:\TEMP\fptools\ghc\lib\std\PrelForeign.p_hi
+file24=C:\TEMP\fptools\ghc\lib\std\PrelHandle.p_hi
+file25=C:\TEMP\fptools\ghc\lib\std\PrelIO.p_hi
+file26=C:\TEMP\fptools\ghc\lib\std\PrelIOBase.p_hi
+file27=C:\TEMP\fptools\ghc\lib\std\PrelList.p_hi
+file28=C:\TEMP\fptools\ghc\lib\std\PrelMain.p_hi
+file29=C:\TEMP\fptools\ghc\lib\std\PrelMaybe.p_hi
+file30=C:\TEMP\fptools\ghc\lib\std\PrelNum.p_hi
+file31=C:\TEMP\fptools\ghc\lib\std\PrelPack.p_hi
+file32=C:\TEMP\fptools\ghc\lib\std\PrelRead.p_hi
+file33=C:\TEMP\fptools\ghc\lib\std\PrelReal.p_hi
+file34=C:\TEMP\fptools\ghc\lib\std\PrelShow.p_hi
+file35=C:\TEMP\fptools\ghc\lib\std\PrelST.p_hi
+file36=C:\TEMP\fptools\ghc\lib\std\PrelStable.p_hi
+file37=C:\TEMP\fptools\ghc\lib\std\PrelTup.p_hi
+file38=C:\TEMP\fptools\ghc\lib\std\Prelude.p_hi
+file39=C:\TEMP\fptools\ghc\lib\std\PrelWeak.p_hi
+file40=C:\TEMP\fptools\ghc\lib\std\Random.p_hi
+file41=C:\TEMP\fptools\ghc\lib\std\Ratio.p_hi
+file42=C:\TEMP\fptools\ghc\lib\std\System.p_hi
+file43=C:\TEMP\fptools\ghc\lib\std\Time.p_hi
+file44=C:\TEMP\fptools\ghc\lib\std\PrelGHC.p_hi
+
+[lib\imports\text]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\text\RegexString.p_hi
+file1=C:\TEMP\fptools\hslibs\text\Pretty.p_hi
+file2=C:\TEMP\fptools\hslibs\text\Regex.p_hi
+file3=C:\TEMP\fptools\hslibs\text\MatchPS.p_hi
+file4=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlTypes.p_hi
+file5=C:\TEMP\fptools\hslibs\text\haxml\lib\ParseSTLib.p_hi
+file6=C:\TEMP\fptools\hslibs\text\haxml\lib\Xml2Haskell.p_hi
+file7=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlCombinators.p_hi
+file8=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlGen.p_hi
+file9=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlParse.p_hi
+file10=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlPP.p_hi
+file11=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlLex.p_hi
+file12=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlLib.p_hi
+file13=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlParse.p_hi
+file14=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlPP.p_hi
+file15=C:\TEMP\fptools\hslibs\text\haxml\lib\Haskell2Xml.p_hi
+file16=C:\TEMP\fptools\hslibs\text\html\HtmlBlockTable.p_hi
+file17=C:\TEMP\fptools\hslibs\text\html\Html.p_hi
+file18=C:\TEMP\fptools\hslibs\text\parsec\ParsecToken.p_hi
+file19=C:\TEMP\fptools\hslibs\text\parsec\ParsecExpr.p_hi
+file20=C:\TEMP\fptools\hslibs\text\parsec\ParsecLanguage.p_hi
+file21=C:\TEMP\fptools\hslibs\text\parsec\ParsecError.p_hi
+file22=C:\TEMP\fptools\hslibs\text\parsec\Parsec.p_hi
+
+[lib\imports\util]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\util\Memo.p_hi
+file1=C:\TEMP\fptools\hslibs\util\MD5.p_hi
+file2=C:\TEMP\fptools\hslibs\util\GetOpt.p_hi
+file3=C:\TEMP\fptools\hslibs\util\check\QuickCheckUtils.p_hi
+file4=C:\TEMP\fptools\hslibs\util\check\QuickCheckBatch.p_hi
+file5=C:\TEMP\fptools\hslibs\util\check\QuickCheckPoly.p_hi
+file6=C:\TEMP\fptools\hslibs\util\check\QuickCheck.p_hi
+
+[lib\imports\win32]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\win32\src\Win32Window.p_hi
+file1=C:\TEMP\fptools\hslibs\win32\src\Win32.p_hi
+file2=C:\TEMP\fptools\hslibs\win32\src\Win32Bitmap.p_hi
+file3=C:\TEMP\fptools\hslibs\win32\src\Win32Brush.p_hi
+file4=C:\TEMP\fptools\hslibs\win32\src\Win32Clip.p_hi
+file5=C:\TEMP\fptools\hslibs\win32\src\Win32Control.p_hi
+file6=C:\TEMP\fptools\hslibs\win32\src\Win32Dialogue.p_hi
+file7=C:\TEMP\fptools\hslibs\win32\src\Win32DLL.p_hi
+file8=C:\TEMP\fptools\hslibs\win32\src\Win32File.p_hi
+file9=C:\TEMP\fptools\hslibs\win32\src\Win32Font.p_hi
+file10=C:\TEMP\fptools\hslibs\win32\src\Win32Graphics2D.p_hi
+file11=C:\TEMP\fptools\hslibs\win32\src\Win32HDC.p_hi
+file12=C:\TEMP\fptools\hslibs\win32\src\Win32Icon.p_hi
+file13=C:\TEMP\fptools\hslibs\win32\src\Win32Key.p_hi
+file14=C:\TEMP\fptools\hslibs\win32\src\Win32Menu.p_hi
+file15=C:\TEMP\fptools\hslibs\win32\src\Win32Misc.p_hi
+file16=C:\TEMP\fptools\hslibs\win32\src\Win32MM.p_hi
+file17=C:\TEMP\fptools\hslibs\win32\src\Win32NLS.p_hi
+file18=C:\TEMP\fptools\hslibs\win32\src\Win32Palette.p_hi
+file19=C:\TEMP\fptools\hslibs\win32\src\Win32Path.p_hi
+file20=C:\TEMP\fptools\hslibs\win32\src\Win32Pen.p_hi
+file21=C:\TEMP\fptools\hslibs\win32\src\Win32Process.p_hi
+file22=C:\TEMP\fptools\hslibs\win32\src\Win32Region.p_hi
+file23=C:\TEMP\fptools\hslibs\win32\src\Win32Registry.p_hi
+file24=C:\TEMP\fptools\hslibs\win32\src\Win32Resource.p_hi
+file25=C:\TEMP\fptools\hslibs\win32\src\Win32SystemInfo.p_hi
+file26=C:\TEMP\fptools\hslibs\win32\src\Win32Types.p_hi
+file27=C:\TEMP\fptools\hslibs\win32\src\GDITypes.p_hi
+file28=C:\TEMP\fptools\hslibs\win32\src\Win32WinMessage.p_hi
+
diff --git a/InstallShield/File Groups/Program Executable Files.fgl b/InstallShield/File Groups/Program Executable Files.fgl
new file mode 100644
index 0000000000..14790cd555
--- /dev/null
+++ b/InstallShield/File Groups/Program Executable Files.fgl
@@ -0,0 +1,370 @@
+[General]
+Type=FILELIST
+Version=1.10.000
+
+[TopDir]
+file0=C:\TEMP\fptools\glafp-utils\mkdirhier\mkdirhier
+file1=C:\TEMP\fptools\ghc\ANNOUNCE
+file2=C:\TEMP\fptools\aclocal.m4
+file3=C:\TEMP\fptools\configure.ac
+file4=C:\TEMP\fptools\config.status
+file5=C:\TEMP\fptools\configure
+file6=C:\TEMP\fptools\config.guess
+file7=C:\TEMP\fptools\install-sh
+file8=C:\TEMP\fptools\config.sub
+file9=C:\TEMP\fptools\distrib\INSTALL
+file10=C:\TEMP\fptools\distrib\Makefile-bin.in
+SubDir0=bin
+SubDir1=lib
+
+[bin]
+fulldirectory=C:\ISRelease\fptools\bin
+file0=C:\bin\perl.exe
+file1=C:\TEMP\fptools\ghc\utils\hp2ps\hp2ps.exe
+file2=C:\TEMP\fptools\hslibs\win32\src\HSwin32.dll
+file3=C:\TEMP\fptools\ghc\utils\stat2resid\stat2resid
+file4=C:\TEMP\fptools\dll\HSutil_cbits.dll
+file5=C:\TEMP\fptools\dll\HSconcurrent.dll
+file6=C:\TEMP\fptools\dll\HSdata.dll
+file7=C:\TEMP\fptools\dll\HSlang.dll
+file8=C:\TEMP\fptools\dll\HSlang_cbits.dll
+file9=C:\TEMP\fptools\dll\HSnet.dll
+file10=C:\TEMP\fptools\dll\HSnet_cbits.dll
+file11=C:\TEMP\fptools\dll\HSrts.dll
+file12=C:\TEMP\fptools\dll\HSstd.dll
+file13=C:\TEMP\fptools\dll\HSstd_cbits.dll
+file14=C:\TEMP\fptools\dll\HStext.dll
+file15=C:\TEMP\fptools\dll\HStext_cbits.dll
+file16=C:\TEMP\fptools\dll\HSutil.dll
+file17=C:\TEMP\fptools\dll\gmp.dll
+file18=C:\TEMP\fptools\dll\HSgreencard.dll
+file19=C:\TEMP\fptools\ghc\driver\ghc-4.08.1
+
+[lib]
+fulldirectory=C:\ISRelease\fptools\lib
+file0=C:\TEMP\fptools\hslibs\util\cbits\libHSutil_cbits.a
+file1=C:\TEMP\fptools\hslibs\util\cbits\libHSutil_cbits_imp.a
+file2=C:\TEMP\fptools\hslibs\util\libHSutil.a
+file3=C:\TEMP\fptools\hslibs\util\libHSutil_imp.a
+file4=C:\TEMP\fptools\hslibs\text\cbits\libHStext_cbits.a
+file5=C:\TEMP\fptools\hslibs\text\cbits\libHStext_cbits_imp.a
+file6=C:\TEMP\fptools\hslibs\text\libHStext.a
+file7=C:\TEMP\fptools\hslibs\text\libHStext_imp.a
+file8=C:\TEMP\fptools\hslibs\net\cbits\libHSnet_cbits.a
+file9=C:\TEMP\fptools\hslibs\net\cbits\libHSnet_cbits_imp.a
+file10=C:\TEMP\fptools\hslibs\lang\cbits\libHSlang_cbits.a
+file11=C:\TEMP\fptools\hslibs\lang\cbits\libHSlang_cbits_imp.a
+file12=C:\TEMP\fptools\hslibs\lang\libHSlang.a
+file13=C:\TEMP\fptools\hslibs\lang\libHSlang_imp.a
+file14=C:\TEMP\fptools\hslibs\data\libHSdata_imp.a
+file15=C:\TEMP\fptools\hslibs\data\libHSdata.a
+file16=C:\TEMP\fptools\hslibs\concurrent\libHSconcurrent.a
+file17=C:\TEMP\fptools\hslibs\concurrent\libHSconcurrent_imp.a
+file18=C:\TEMP\fptools\ghc\rts\gmp\libgmp.a
+file19=C:\TEMP\fptools\ghc\rts\gmp\libgmp_imp.a
+file20=C:\TEMP\fptools\ghc\rts\libHSrts.a
+file21=C:\TEMP\fptools\ghc\rts\libHSrts_imp.a
+file22=C:\TEMP\fptools\ghc\driver\ghc-asm.prl
+file23=C:\TEMP\fptools\ghc\driver\ghc-consist.prl
+file24=C:\TEMP\fptools\ghc\driver\ghc-iface.prl
+file25=C:\TEMP\fptools\ghc\driver\ghc-split.prl
+file26=C:\TEMP\fptools\ghc\utils\stat2resid\parse-gcstats.prl
+file27=C:\TEMP\fptools\ghc\utils\stat2resid\process-gcstats.prl
+file28=C:\TEMP\fptools\ghc\compiler\hsc.exe
+file29=C:\TEMP\fptools\ghc\utils\unlit\unlit.exe
+file30=C:\TEMP\fptools\ghc\rts\Main.dll_o
+file31=C:\TEMP\fptools\ghc\lib\std\PrelMain.dll_o
+file32=C:\TEMP\fptools\ghc\lib\std\libHSstd.a
+file33=C:\TEMP\fptools\ghc\lib\std\libHSstd_imp.a
+file34=C:\TEMP\fptools\ghc\lib\std\cbits\libHSstd_cbits.a
+file35=C:\TEMP\fptools\ghc\lib\std\cbits\libHSstd_cbits_imp.a
+file36=C:\TEMP\fptools\hslibs\win32\src\libHSwin32_imp.a
+file37=C:\TEMP\fptools\hslibs\win32\src\libHSwin32.a
+file38=C:\TEMP\fptools\greencard\lib\ghc\libHSgreencard_imp.a
+file39=C:\TEMP\fptools\greencard\lib\ghc\libHSgreencard.a
+file40=C:\TEMP\fptools\ghc\utils\hscpp\hscpp
+file41=C:\TEMP\fptools\ghc\utils\mkdependHS\mkdependHS
+file42=C:\TEMP\fptools\hslibs\net\libHSnet_imp.a
+file43=C:\TEMP\fptools\hslibs\net\libHSnet.a
+SubDir0=lib\imports
+SubDir1=lib\includes
+
+[lib\imports]
+fulldirectory=C:\usr\fptools-BUILDS\new-rts-20\ghc-4.03\lib\i386-unknown-mingw32\ghc-4.03\imports
+SubDir0=lib\imports\std
+SubDir1=lib\imports\win32
+SubDir2=lib\imports\data
+SubDir3=lib\imports\lang
+SubDir4=lib\imports\net
+SubDir5=lib\imports\util
+SubDir6=lib\imports\num
+SubDir7=lib\imports\text
+SubDir8=lib\imports\greencard
+SubDir9=lib\imports\concurrent
+
+[lib\imports\std]
+fulldirectory=C:\usr\fptools-BUILDS\new-rts-20\ghc-4.03\lib\i386-unknown-mingw32\ghc-4.03\imports\std
+file0=C:\TEMP\fptools\ghc\lib\std\Array.hi
+file1=C:\TEMP\fptools\ghc\lib\std\Char.hi
+file2=C:\TEMP\fptools\ghc\lib\std\Complex.hi
+file3=C:\TEMP\fptools\ghc\lib\std\CPUTime.hi
+file4=C:\TEMP\fptools\ghc\lib\std\Locale.hi
+file5=C:\TEMP\fptools\ghc\lib\std\IO.hi
+file6=C:\TEMP\fptools\ghc\lib\std\Ix.hi
+file7=C:\TEMP\fptools\ghc\lib\std\List.hi
+file8=C:\TEMP\fptools\ghc\lib\std\Directory.hi
+file9=C:\TEMP\fptools\ghc\lib\std\PrelDynamic.hi
+file10=C:\TEMP\fptools\ghc\lib\std\Monad.hi
+file11=C:\TEMP\fptools\ghc\lib\std\Numeric.hi
+file12=C:\TEMP\fptools\ghc\lib\std\PrelAddr.hi
+file13=C:\TEMP\fptools\ghc\lib\std\PrelArr.hi
+file14=C:\TEMP\fptools\ghc\lib\std\PrelArrExtra.hi
+file15=C:\TEMP\fptools\ghc\lib\std\PrelBase.hi
+file16=C:\TEMP\fptools\ghc\lib\std\PrelByteArr.hi
+file17=C:\TEMP\fptools\ghc\lib\std\PrelConc.hi
+file18=C:\TEMP\fptools\ghc\lib\std\Maybe.hi
+file19=C:\TEMP\fptools\ghc\lib\std\PrelMain.hi
+file20=C:\TEMP\fptools\ghc\lib\std\PrelErr.hi
+file21=C:\TEMP\fptools\ghc\lib\std\PrelException.hi
+file22=C:\TEMP\fptools\ghc\lib\std\PrelFloat.hi
+file23=C:\TEMP\fptools\ghc\lib\std\PrelForeign.hi
+file24=C:\TEMP\fptools\ghc\lib\std\PrelGHC.hi
+file25=C:\TEMP\fptools\ghc\lib\std\PrelHandle.hi
+file26=C:\TEMP\fptools\ghc\lib\std\PrelIOBase.hi
+file27=C:\TEMP\fptools\ghc\lib\std\PrelList.hi
+file28=C:\TEMP\fptools\ghc\lib\std\PrelEnum.hi
+file29=C:\TEMP\fptools\ghc\lib\std\PrelNum.hi
+file30=C:\TEMP\fptools\ghc\lib\std\PrelPack.hi
+file31=C:\TEMP\fptools\ghc\lib\std\PrelRead.hi
+file32=C:\TEMP\fptools\ghc\lib\std\PrelReal.hi
+file33=C:\TEMP\fptools\ghc\lib\std\PrelShow.hi
+file34=C:\TEMP\fptools\ghc\lib\std\PrelST.hi
+file35=C:\TEMP\fptools\ghc\lib\std\PrelStable.hi
+file36=C:\TEMP\fptools\ghc\lib\std\PrelTup.hi
+file37=C:\TEMP\fptools\ghc\lib\std\Prelude.hi
+file38=C:\TEMP\fptools\ghc\lib\std\PrelWeak.hi
+file39=C:\TEMP\fptools\ghc\lib\std\Random.hi
+file40=C:\TEMP\fptools\ghc\lib\std\Ratio.hi
+file41=C:\TEMP\fptools\ghc\lib\std\System.hi
+file42=C:\TEMP\fptools\ghc\lib\std\Time.hi
+file43=C:\TEMP\fptools\ghc\lib\std\PrelMaybe.hi
+file44=C:\TEMP\fptools\ghc\lib\std\PrelIO.hi
+
+[lib\imports\win32]
+fulldirectory=C:\usr\fptools-BUILDS\new-rts-20\ghc-4.03\lib\i386-unknown-mingw32\ghc-4.03\imports\win32
+file0=C:\TEMP\fptools\hslibs\win32\src\Win32Types.hi
+file1=C:\TEMP\fptools\hslibs\win32\src\Win32Bitmap.hi
+file2=C:\TEMP\fptools\hslibs\win32\src\Win32Brush.hi
+file3=C:\TEMP\fptools\hslibs\win32\src\Win32Clip.hi
+file4=C:\TEMP\fptools\hslibs\win32\src\Win32Control.hi
+file5=C:\TEMP\fptools\hslibs\win32\src\Win32Dialogue.hi
+file6=C:\TEMP\fptools\hslibs\win32\src\GDITypes.hi
+file7=C:\TEMP\fptools\hslibs\win32\src\Win32Window.hi
+file8=C:\TEMP\fptools\hslibs\win32\src\Win32WinMessage.hi
+file9=C:\TEMP\fptools\hslibs\win32\src\Win32DLL.hi
+file10=C:\TEMP\fptools\hslibs\win32\src\Win32File.hi
+file11=C:\TEMP\fptools\hslibs\win32\src\Win32Font.hi
+file12=C:\TEMP\fptools\hslibs\win32\src\Win32Graphics2D.hi
+file13=C:\TEMP\fptools\hslibs\win32\src\Win32Menu.hi
+file14=C:\TEMP\fptools\hslibs\win32\src\Win32Key.hi
+file15=C:\TEMP\fptools\hslibs\win32\src\Win32SystemInfo.hi
+file16=C:\TEMP\fptools\hslibs\win32\src\Win32HDC.hi
+file17=C:\TEMP\fptools\hslibs\win32\src\Win32Icon.hi
+file18=C:\TEMP\fptools\hslibs\win32\src\Win32Misc.hi
+file19=C:\TEMP\fptools\hslibs\win32\src\Win32MM.hi
+file20=C:\TEMP\fptools\hslibs\win32\src\Win32Palette.hi
+file21=C:\TEMP\fptools\hslibs\win32\src\Win32Path.hi
+file22=C:\TEMP\fptools\hslibs\win32\src\Win32Pen.hi
+file23=C:\TEMP\fptools\hslibs\win32\src\Win32Process.hi
+file24=C:\TEMP\fptools\hslibs\win32\src\Win32Region.hi
+file25=C:\TEMP\fptools\hslibs\win32\src\Win32Registry.hi
+file26=C:\TEMP\fptools\hslibs\win32\src\Win32Resource.hi
+file27=C:\TEMP\fptools\hslibs\win32\src\Win32.hi
+file28=C:\TEMP\fptools\hslibs\win32\src\Win32NLS.hi
+
+[lib\imports\data]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\data\FiniteMap.hi
+file1=C:\TEMP\fptools\hslibs\data\Set.hi
+file2=C:\TEMP\fptools\hslibs\data\edison\Assoc\Assoc.hi
+file3=C:\TEMP\fptools\hslibs\data\edison\Assoc\AssocDefaults.hi
+file4=C:\TEMP\fptools\hslibs\data\edison\Assoc\AssocList.hi
+file5=C:\TEMP\fptools\hslibs\data\edison\Assoc\PatriciaLoMap.hi
+file6=C:\TEMP\fptools\hslibs\data\edison\EdisonPrelude.hi
+file7=C:\TEMP\fptools\hslibs\data\edison\Coll\Collection.hi
+file8=C:\TEMP\fptools\hslibs\data\edison\Coll\CollectionDefaults.hi
+file9=C:\TEMP\fptools\hslibs\data\edison\Coll\CollectionUtils.hi
+file10=C:\TEMP\fptools\hslibs\data\edison\Coll\LazyPairingHeap.hi
+file11=C:\TEMP\fptools\hslibs\data\edison\Coll\LeftistHeap.hi
+file12=C:\TEMP\fptools\hslibs\data\edison\Coll\MinHeap.hi
+file13=C:\TEMP\fptools\hslibs\data\edison\Coll\SkewHeap.hi
+file14=C:\TEMP\fptools\hslibs\data\edison\Coll\SplayHeap.hi
+file15=C:\TEMP\fptools\hslibs\data\edison\Coll\TestOrdBag.hi
+file16=C:\TEMP\fptools\hslibs\data\edison\Coll\TestOrdSet.hi
+file17=C:\TEMP\fptools\hslibs\data\edison\Coll\UnbalancedSet.hi
+file18=C:\TEMP\fptools\hslibs\data\edison\Seq\BankersQueue.hi
+file19=C:\TEMP\fptools\hslibs\data\edison\Seq\BinaryRandList.hi
+file20=C:\TEMP\fptools\hslibs\data\edison\Seq\BraunSeq.hi
+file21=C:\TEMP\fptools\hslibs\data\edison\Seq\JoinList.hi
+file22=C:\TEMP\fptools\hslibs\data\edison\Seq\ListSeq.hi
+file23=C:\TEMP\fptools\hslibs\data\edison\Seq\MyersStack.hi
+file24=C:\TEMP\fptools\hslibs\data\edison\Seq\RandList.hi
+file25=C:\TEMP\fptools\hslibs\data\edison\Seq\RevSeq.hi
+file26=C:\TEMP\fptools\hslibs\data\edison\Seq\Sequence.hi
+file27=C:\TEMP\fptools\hslibs\data\edison\Seq\SequenceDefaults.hi
+file28=C:\TEMP\fptools\hslibs\data\edison\Seq\SimpleQueue.hi
+file29=C:\TEMP\fptools\hslibs\data\edison\Seq\SizedSeq.hi
+file30=C:\TEMP\fptools\hslibs\data\edison\Seq\TestSeq.hi
+
+[lib\imports\lang]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\lang\Bits.hi
+file1=C:\TEMP\fptools\hslibs\lang\CCall.hi
+file2=C:\TEMP\fptools\hslibs\lang\Weak.hi
+file3=C:\TEMP\fptools\hslibs\lang\Word.hi
+file4=C:\TEMP\fptools\hslibs\lang\ArrayBase.hi
+file5=C:\TEMP\fptools\hslibs\lang\ByteArray.hi
+file6=C:\TEMP\fptools\hslibs\lang\CString.hi
+file7=C:\TEMP\fptools\hslibs\lang\CTypes.hi
+file8=C:\TEMP\fptools\hslibs\lang\CTypesISO.hi
+file9=C:\TEMP\fptools\hslibs\lang\Dynamic.hi
+file10=C:\TEMP\fptools\hslibs\lang\Exception.hi
+file11=C:\TEMP\fptools\hslibs\lang\Foreign.hi
+file12=C:\TEMP\fptools\hslibs\lang\ForeignObj.hi
+file13=C:\TEMP\fptools\hslibs\lang\GlaExts.hi
+file14=C:\TEMP\fptools\hslibs\lang\IArray.hi
+file15=C:\TEMP\fptools\hslibs\lang\Int.hi
+file16=C:\TEMP\fptools\hslibs\lang\IOExts.hi
+file17=C:\TEMP\fptools\hslibs\lang\LazyST.hi
+file18=C:\TEMP\fptools\hslibs\lang\MArray.hi
+file19=C:\TEMP\fptools\hslibs\lang\MutableArray.hi
+file20=C:\TEMP\fptools\hslibs\lang\NativeInfo.hi
+file21=C:\TEMP\fptools\hslibs\lang\NumExts.hi
+file22=C:\TEMP\fptools\hslibs\lang\PackedString.hi
+file23=C:\TEMP\fptools\hslibs\lang\ShowFunctions.hi
+file24=C:\TEMP\fptools\hslibs\lang\ST.hi
+file25=C:\TEMP\fptools\hslibs\lang\Stable.hi
+file26=C:\TEMP\fptools\hslibs\lang\StableName.hi
+file27=C:\TEMP\fptools\hslibs\lang\StablePtr.hi
+file28=C:\TEMP\fptools\hslibs\lang\Storable.hi
+file29=C:\TEMP\fptools\hslibs\lang\TimeExts.hi
+file30=C:\TEMP\fptools\hslibs\lang\Addr.hi
+file31=C:\TEMP\fptools\hslibs\lang\monads\Monoid.hi
+file32=C:\TEMP\fptools\hslibs\lang\monads\MonadError.hi
+file33=C:\TEMP\fptools\hslibs\lang\monads\MonadFix.hi
+file34=C:\TEMP\fptools\hslibs\lang\monads\MonadIdentity.hi
+file35=C:\TEMP\fptools\hslibs\lang\monads\MonadReader.hi
+file36=C:\TEMP\fptools\hslibs\lang\monads\MonadRWS.hi
+file37=C:\TEMP\fptools\hslibs\lang\monads\MonadState.hi
+file38=C:\TEMP\fptools\hslibs\lang\monads\MonadTrans.hi
+file39=C:\TEMP\fptools\hslibs\lang\monads\MonadWriter.hi
+file40=C:\TEMP\fptools\hslibs\lang\monads\MonadEither.hi
+
+[lib\imports\net]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\net\SocketPrim.hi
+file1=C:\TEMP\fptools\hslibs\net\Socket.hi
+file2=C:\TEMP\fptools\hslibs\net\BSD.hi
+file3=C:\TEMP\fptools\hslibs\net\URI.hi
+
+[lib\imports\util]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\util\GetOpt.hi
+file1=C:\TEMP\fptools\hslibs\util\MD5.hi
+file2=C:\TEMP\fptools\hslibs\util\Memo.hi
+file3=C:\TEMP\fptools\hslibs\util\check\QuickCheckUtils.hi
+file4=C:\TEMP\fptools\hslibs\util\check\QuickCheckBatch.hi
+file5=C:\TEMP\fptools\hslibs\util\check\QuickCheckPoly.hi
+file6=C:\TEMP\fptools\hslibs\util\check\QuickCheck.hi
+
+[lib\imports\num]
+fulldirectory=
+
+[lib\imports\text]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\text\RegexString.hi
+file1=C:\TEMP\fptools\hslibs\text\MatchPS.hi
+file2=C:\TEMP\fptools\hslibs\text\Pretty.hi
+file3=C:\TEMP\fptools\hslibs\text\Regex.hi
+file4=C:\TEMP\fptools\hslibs\text\html\Html.hi
+file5=C:\TEMP\fptools\hslibs\text\html\HtmlBlockTable.hi
+file6=C:\TEMP\fptools\hslibs\text\parsec\Parsec.hi
+file7=C:\TEMP\fptools\hslibs\text\parsec\ParsecError.hi
+file8=C:\TEMP\fptools\hslibs\text\parsec\ParsecExpr.hi
+file9=C:\TEMP\fptools\hslibs\text\parsec\ParsecLanguage.hi
+file10=C:\TEMP\fptools\hslibs\text\parsec\ParsecToken.hi
+file11=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlTypes.hi
+file12=C:\TEMP\fptools\hslibs\text\haxml\lib\ParseSTLib.hi
+file13=C:\TEMP\fptools\hslibs\text\haxml\lib\Xml2Haskell.hi
+file14=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlCombinators.hi
+file15=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlGen.hi
+file16=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlParse.hi
+file17=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlHtmlPP.hi
+file18=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlLex.hi
+file19=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlLib.hi
+file20=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlParse.hi
+file21=C:\TEMP\fptools\hslibs\text\haxml\lib\XmlPP.hi
+file22=C:\TEMP\fptools\hslibs\text\haxml\lib\Haskell2Xml.hi
+
+[lib\imports\greencard]
+fulldirectory=
+file0=C:\TEMP\fptools\greencard\lib\ghc\StdDIS.hi
+
+[lib\imports\concurrent]
+fulldirectory=
+file0=C:\TEMP\fptools\hslibs\concurrent\Strategies.hi
+file1=C:\TEMP\fptools\hslibs\concurrent\Channel.hi
+file2=C:\TEMP\fptools\hslibs\concurrent\ChannelVar.hi
+file3=C:\TEMP\fptools\hslibs\concurrent\Concurrent.hi
+file4=C:\TEMP\fptools\hslibs\concurrent\CVar.hi
+file5=C:\TEMP\fptools\hslibs\concurrent\Merge.hi
+file6=C:\TEMP\fptools\hslibs\concurrent\MVar.hi
+file7=C:\TEMP\fptools\hslibs\concurrent\Parallel.hi
+file8=C:\TEMP\fptools\hslibs\concurrent\QSem.hi
+file9=C:\TEMP\fptools\hslibs\concurrent\QSemN.hi
+file10=C:\TEMP\fptools\hslibs\concurrent\SampleVar.hi
+file11=C:\TEMP\fptools\hslibs\concurrent\Semaphore.hi
+file12=C:\TEMP\fptools\hslibs\concurrent\Chan.hi
+
+[lib\includes]
+fulldirectory=C:\usr\fptools-BUILDS\new-rts-20\ghc-4.03\lib\i386-unknown-mingw32\ghc-4.03\includes
+file0=C:\TEMP\fptools\ghc\includes\StgStorage.h
+file1=C:\TEMP\fptools\ghc\includes\Block.h
+file2=C:\TEMP\fptools\ghc\includes\CCall.h
+file3=C:\TEMP\fptools\ghc\includes\ClosureMacros.h
+file4=C:\TEMP\fptools\ghc\includes\Closures.h
+file5=C:\TEMP\fptools\ghc\includes\ClosureTypes.h
+file6=C:\TEMP\fptools\ghc\includes\config.h
+file7=C:\TEMP\fptools\ghc\includes\Constants.h
+file8=C:\TEMP\fptools\ghc\includes\gmp.h
+file9=C:\TEMP\fptools\ghc\includes\GranSim.h
+file10=C:\TEMP\fptools\ghc\includes\Hooks.h
+file11=C:\TEMP\fptools\ghc\includes\HsFFI.h
+file12=C:\TEMP\fptools\ghc\includes\ieee-flpt.h
+file13=C:\TEMP\fptools\ghc\includes\InfoMacros.h
+file14=C:\TEMP\fptools\ghc\includes\InfoTables.h
+file15=C:\TEMP\fptools\ghc\includes\MachDeps.h
+file16=C:\TEMP\fptools\ghc\includes\MachRegs.h
+file17=C:\TEMP\fptools\ghc\includes\NativeDefs.h
+file18=C:\TEMP\fptools\ghc\includes\options.h
+file19=C:\TEMP\fptools\ghc\includes\Parallel.h
+file20=C:\TEMP\fptools\ghc\includes\PrimOps.h
+file21=C:\TEMP\fptools\ghc\includes\Regs.h
+file22=C:\TEMP\fptools\ghc\includes\Rts.h
+file23=C:\TEMP\fptools\ghc\includes\RtsAPI.h
+file24=C:\TEMP\fptools\ghc\includes\RtsTypes.h
+file25=C:\TEMP\fptools\ghc\includes\SchedAPI.h
+file26=C:\TEMP\fptools\ghc\includes\SMP.h
+file27=C:\TEMP\fptools\ghc\includes\Stable.h
+file28=C:\TEMP\fptools\ghc\includes\Stg.h
+file39=C:\TEMP\fptools\ghc\includes\StgDLL.h
+file30=C:\TEMP\fptools\ghc\includes\StgMacros.h
+file31=C:\TEMP\fptools\ghc\includes\StgMiscClosures.h
+file32=C:\TEMP\fptools\ghc\includes\StgProf.h
+file33=C:\TEMP\fptools\ghc\includes\Assembler.h
+file34=C:\TEMP\fptools\ghc\includes\StgTicky.h
+file35=C:\TEMP\fptools\ghc\includes\StgTypes.h
+file36=C:\TEMP\fptools\ghc\includes\TailCalls.h
+file37=C:\TEMP\fptools\ghc\includes\TSO.h
+file38=C:\TEMP\fptools\ghc\includes\Updates.h
+
diff --git a/InstallShield/Glasgow Haskell Compiler.ipr b/InstallShield/Glasgow Haskell Compiler.ipr
new file mode 100644
index 0000000000..e9412ec8fb
--- /dev/null
+++ b/InstallShield/Glasgow Haskell Compiler.ipr
@@ -0,0 +1,58 @@
+[Language]
+LanguageSupport0=0009
+
+[OperatingSystem]
+OSSupport=0000000000011010
+
+[Data]
+CurrentMedia=rel
+set_mifserial=
+ProductName=Glasgow Haskell Compiler
+CurrentComponentDef=Default.cdf
+set_dlldebug=No
+AppExe=ghc
+DevEnvironment=Microsoft Visual C++ 6
+set_mif=No
+set_testmode=No
+Instructions=Instructions.txt
+EmailAddresss=glasgow-haskell-users@haskell.org
+SummaryText=
+Department=
+Type=Software Development Application
+Author=
+HomeURL=http://www.haskell.org/ghc/
+InstallRoot=C:\TEMP\fptools-head\fptools\ghc\InstallShield
+set_level=Level 3
+InstallationGUID=6db5bb92-3160-48f2-92d1-f9141c99d48a
+Version=4.08.1
+set_miffile=Status.mif
+set_args=
+set_maxerr=50
+Notes=Notes.txt
+CurrentFileGroupDef=Default.fdf
+set_dllcmdline=
+set_warnaserr=No
+Copyright=See LICENSE
+set_preproc=
+Category=
+CurrentPlatform=
+set_compileb4build=No
+set_crc=Yes
+set_maxwarn=50
+Description=Description.txt
+CompanyName=University of Glasgow
+CurrentLanguage=English
+set_libraries=isrt.obl ifx.obl
+set_linkpath=
+
+[MediaInfo]
+mediadata0=release/Media\release
+mediadata1=New Media/Media\New Media
+mediadata2=rel/Media\rel
+
+[General]
+Type=INSTALLMAIN
+Version=2.20.000
+ReadOnly=N
+PassData=
+
diff --git a/InstallShield/README b/InstallShield/README
new file mode 100644
index 0000000000..81a1c70357
--- /dev/null
+++ b/InstallShield/README
@@ -0,0 +1,30 @@
+This is the InstallShield setup for GHC; it can be used as a model for other
+IS setups.
+
+Notes:
+
+1. This IS setup is for the full version of IS, *not* the one that
+ comes with MS Visual Studio.
+
+2. Merely checking out this tree will not give you a functioning IS
+ setup, unfortunately. This is because there are various empty
+ directories (which CVS doesn't like). I've not done the usual trick
+ of putting spurious files in them in case InstallShield takes
+ exception to that.
+
+3. The InstallShield script generates some files entirely by
+ itself. These are:
+
+ a. the specs file for gcc
+ b. the "front-end" to autoconf (so that it can find its library
+ files).
+
+It might be useful to record for posterity why some of the less
+obvious binaries are in ghc/extra-bin:
+
+uname: for config.guess (used in gmp's configure script)
+
+basename: to find the basename of binaries such as gzip in the main
+configure script
+
+uniq: somewhere... \ No newline at end of file
diff --git a/InstallShield/Registry Entries/Default.rge b/InstallShield/Registry Entries/Default.rge
new file mode 100644
index 0000000000..f73a93c2a4
--- /dev/null
+++ b/InstallShield/Registry Entries/Default.rge
@@ -0,0 +1,6 @@
+[Data]
+
+[General]
+Type=REGISTRYDATA
+Version=2.10.000
+
diff --git a/InstallShield/Script Files/Setup.Inx b/InstallShield/Script Files/Setup.Inx
new file mode 100644
index 0000000000..4aef7fa618
--- /dev/null
+++ b/InstallShield/Script Files/Setup.Inx
Binary files differ
diff --git a/InstallShield/Script Files/Setup.Obs b/InstallShield/Script Files/Setup.Obs
new file mode 100644
index 0000000000..53425bdaea
--- /dev/null
+++ b/InstallShield/Script Files/Setup.Obs
Binary files differ
diff --git a/InstallShield/Script Files/Setup.dbg b/InstallShield/Script Files/Setup.dbg
new file mode 100644
index 0000000000..7c86870878
--- /dev/null
+++ b/InstallShield/Script Files/Setup.dbg
Binary files differ
diff --git a/InstallShield/Script Files/Setup.ino b/InstallShield/Script Files/Setup.ino
new file mode 100644
index 0000000000..421984ed6b
--- /dev/null
+++ b/InstallShield/Script Files/Setup.ino
Binary files differ
diff --git a/InstallShield/Script Files/Setup.ins b/InstallShield/Script Files/Setup.ins
new file mode 100644
index 0000000000..156a8eecdc
--- /dev/null
+++ b/InstallShield/Script Files/Setup.ins
Binary files differ
diff --git a/InstallShield/Script Files/Setup.map b/InstallShield/Script Files/Setup.map
new file mode 100644
index 0000000000..3039284bcd
--- /dev/null
+++ b/InstallShield/Script Files/Setup.map
@@ -0,0 +1,574 @@
+***** External Functions *****
+1 CloseFile isrt.obl(Files.obs)
+2 CmdGetHwndDlg isrt.obl(CustomDlg.obs)
+3 CommitSharedFiles isrt.obl(Misc.obs)
+4 ComponentCompareSizeRequired isrt.obl(component.obs)
+5 ComponentError isrt.obl(component.obs)
+6 ComponentErrorInfo isrt.obl(component.obs)
+7 ComponentFilterLanguage isrt.obl(component.obs)
+8 ComponentFilterOS isrt.obl(component.obs)
+9 ComponentGetData isrt.obl(component.obs)
+10 ComponentGetTotalCost isrt.obl(component.obs)
+11 ComponentIsItemSelected isrt.obl(component.obs)
+12 ComponentListItems isrt.obl(component.obs)
+13 ComponentMoveData isrt.obl(component.obs)
+14 ComponentReinstall isrt.obl(component.obs)
+15 ComponentRemoveAll isrt.obl(component.obs)
+16 ComponentSaveTarget isrt.obl(component.obs)
+17 ComponentSelectItem isrt.obl(component.obs)
+18 ComponentSetTarget isrt.obl(component.obs)
+19 ComponentSetupTypeSet isrt.obl(component.obs)
+20 ComponentTransferData isrt.obl(component.obs)
+21 ComponentTreeInit isrt.obl(Dialogs.obs)
+22 ComponentViewCreate isrt.obl(CmptView.obs)
+23 CopyFile isrt.obl(Files.obs)
+24 CreateDir isrt.obl(Files.obs)
+25 CreateFile isrt.obl(Files.obs)
+26 CreateInstallationInfo isrt.obl(Registry.obs)
+27 CreateRegistrySet isrt.obl(component.obs)
+28 CreateShellObjects isrt.obl(component.obs)
+29 CtrlGetCurSel isrt.obl(CustomDlg.obs)
+30 CtrlGetNotificationCode isrt.obl(CustomDlg.obs)
+31 CtrlGetState isrt.obl(CustomDlg.obs)
+32 CtrlGetText isrt.obl(CustomDlg.obs)
+33 CtrlPGroups isrt.obl(CustomDlg.obs)
+34 CtrlSelectText isrt.obl(CustomDlg.obs)
+35 CtrlSetCurSel isrt.obl(CustomDlg.obs)
+36 CtrlSetList isrt.obl(CustomDlg.obs)
+37 CtrlSetMLEText isrt.obl(CustomDlg.obs)
+38 CtrlSetState isrt.obl(CustomDlg.obs)
+39 CtrlSetText isrt.obl(CustomDlg.obs)
+40 DefineDialog isrt.obl(CustomDlg.obs)
+41 DeinstallStart isrt.obl(Registry.obs)
+42 Delay isrt.obl(Misc.obs)
+43 DeleteFile isrt.obl(Files.obs)
+44 DialogSetDefaultFont isrt.obl(Dialogs.obs)
+45 DialogSetFont isrt.obl(Dialogs.obs)
+46 DialogSetInfo isrt.obl(Dialogs.obs)
+47 Disable isrt.obl(Enable.obs)
+48 DiskSizeToStr isrt.obl(SDINT.obs)
+49 Divide isrt.obl(Misc.obs)
+50 DllSizeOf isrt.obl(Str.obs)
+51 Do isrt.obl(Misc.obs)
+52 Enable isrt.obl(Enable.obs)
+53 EndDialog isrt.obl(CustomDlg.obs)
+54 EnterDisk isrt.obl(EnterDisk.obs)
+55 ExistsDir isrt.obl(Files.obs)
+56 ExistsDisk isrt.obl(Files.obs)
+57 EzDefineDialog isrt.obl(CustomDlg.obs)
+58 FinalConstruct ifx.obl(Events.obs)
+59 FinalRelease ifx.obl(Events.obs)
+60 FindFile isrt.obl(Files.obs)
+61 FormatMessage isrt.obl(Misc.obs)
+62 GDI32.CreateRectRgn isrt.obl(AskDestPath.obs)
+63 GDI32.GetDeviceCaps isrt.obl(AskDestPath.obs)
+64 GetBillboard isrt.obl(SysVars.obs)
+65 GetDialogTitle isrt.obl(Dialogs.obs)
+66 GetDir isrt.obl(Str.obs)
+67 GetDisk isrt.obl(Str.obs)
+68 GetDiskSpace isrt.obl(GSI.obs)
+69 GetDiskSpaceEx isrt.obl(GSI.obs)
+70 GetErrorMsg isrt.obl(Dialogs.obs)
+71 GetErrorTitle isrt.obl(Dialogs.obs)
+72 GetExtents isrt.obl(GSI.obs)
+73 GetFolderNameList isrt.obl(Shell.obs)
+74 GetFolderPrograms isrt.obl(SysVars.obs)
+75 GetISRes isrt.obl(SysVars.obs)
+76 GetLine isrt.obl(Files.obs)
+77 GetLog isrt.obl(SysVars.obs)
+78 GetMaintenance isrt.obl(SysVars.obs)
+79 GetOpenFileMode isrt.obl(Files.obs)
+80 GetProductGUID isrt.obl(SysVars.obs)
+81 GetProfString isrt.obl(Profile.obs)
+82 GetProgramFiles isrt.obl(SysVars.obs)
+83 GetSelectedLanguage isrt.obl(SysVars.obs)
+84 GetSelectedTreeComponent isrt.obl(CmptView.obs)
+85 GetSupportDir isrt.obl(SysVars.obs)
+86 GetSystemInfo isrt.obl(GSI.obs)
+87 GetWinDir isrt.obl(SysVars.obs)
+88 GetWinSysDir isrt.obl(SysVars.obs)
+89 GetWindowHandle isrt.obl(Misc.obs)
+90 HIWORD isrt.obl(Misc.obs)
+91 HexStrToNum isrt.obl(Str.obs)
+92 ISDeterminePlatform isrt.obl(OsInfo.obs)
+93 ISMIF32.InstallStatusMIF isrt.obl(MIF.obs)
+94 ISRT.ComponentViewCreateWindow isrt.obl(CmptView.obs)
+95 ISRT.ComponentViewDestroy isrt.obl(CmptView.obs)
+96 ISRT.ComponentViewRefresh isrt.obl(CmptView.obs)
+97 ISRT.ComponentViewSetInfo isrt.obl(CmptView.obs)
+98 ISRT.ComponentViewSetInfoEx isrt.obl(Dialogs.obs)
+99 ISRT.EnableHourGlass isrt.obl(Enable.obs)
+100 ISRT.EnumFoldersItems isrt.obl(Shell.obs)
+101 ISRT.GetCPUType isrt.obl(GSI.obs)
+102 ISRT.GetFontSub isrt.obl(Dialogs.obs)
+103 ISRT.GetHandle Setup.Obs
+104 ISRT.GetPorts isrt.obl(GSI.obs)
+105 ISRT.IsEmpty Setup.Obs
+106 ISRT.IsNTAdmin isrt.obl(Is.obs)
+107 ISRT.IsObject Setup.Obs
+108 ISRT.LangLoadString isrt.obl(SDINT.obs)
+109 ISRT.MessageBeepP Setup.Obs
+110 ISRT.PathCompactPathPixel isrt.obl(CustomDlg.obs)
+111 ISRT.PathGetDir isrt.obl(Str.obs)
+112 ISRT.PathGetDrive isrt.obl(Str.obs)
+113 ISRT.PathGetFile isrt.obl(Str.obs)
+114 ISRT.PathGetFileExt isrt.obl(Str.obs)
+115 ISRT.PathGetFileName isrt.obl(Str.obs)
+116 ISRT.PathGetPath isrt.obl(Str.obs)
+117 ISRT.PathGetSpecialFolder isrt.obl(SysVars.obs)
+118 ISRT.PathIsValidSyntax isrt.obl(Is.obs)
+119 ISRT._BrowseForFolder isrt.obl(SelectDir.obs)
+120 ISRT._CleanupInet isrt.obl(MIO.obs)
+121 ISRT._CloseFile isrt.obl(Files.obs)
+122 ISRT._CmdGetHwndDlg isrt.obl(CustomDlg.obs)
+123 ISRT._ComponentCompareSizeRequired isrt.obl(component.obs)
+124 ISRT._ComponentError isrt.obl(component.obs)
+125 ISRT._ComponentErrorInfo isrt.obl(component.obs)
+126 ISRT._ComponentFilterLanguage isrt.obl(component.obs)
+127 ISRT._ComponentFilterOS isrt.obl(component.obs)
+128 ISRT._ComponentGetData isrt.obl(component.obs)
+129 ISRT._ComponentGetTotalCost isrt.obl(component.obs)
+130 ISRT._ComponentIsItemSelected isrt.obl(component.obs)
+131 ISRT._ComponentListItems isrt.obl(component.obs)
+132 ISRT._ComponentMoveData isrt.obl(component.obs)
+133 ISRT._ComponentReinstall isrt.obl(component.obs)
+134 ISRT._ComponentRemoveAll isrt.obl(component.obs)
+135 ISRT._ComponentSaveTarget isrt.obl(component.obs)
+136 ISRT._ComponentSelectItem isrt.obl(component.obs)
+137 ISRT._ComponentSetupTypeSet isrt.obl(component.obs)
+138 ISRT._ComponentTransferData isrt.obl(component.obs)
+139 ISRT._ComponentViewCreate isrt.obl(CmptView.obs)
+140 ISRT._CreateDir isrt.obl(Files.obs)
+141 ISRT._CreateRegistrySet isrt.obl(component.obs)
+142 ISRT._CreateShellObjects isrt.obl(component.obs)
+143 ISRT._CtrlGetNotificationCode isrt.obl(CustomDlg.obs)
+144 ISRT._DefineDialog isrt.obl(CustomDlg.obs)
+145 ISRT._DialogSetFont isrt.obl(Dialogs.obs)
+146 ISRT._DisableStatus isrt.obl(Enable.obs)
+147 ISRT._Divide isrt.obl(Misc.obs)
+148 ISRT._DoSprintf isrt.obl(MsgBox.obs)
+149 ISRT._EnableDialogCache isrt.obl(Enable.obs)
+150 ISRT._EnablePrevDialog isrt.obl(AskDestPath.obs)
+151 ISRT._EnableStatus isrt.obl(Enable.obs)
+152 ISRT._EndDialog isrt.obl(CustomDlg.obs)
+153 ISRT._ExistsDir isrt.obl(Files.obs)
+154 ISRT._ExistsDisk isrt.obl(Files.obs)
+155 ISRT._ExistsFile isrt.obl(Files.obs)
+156 ISRT._FileCopy isrt.obl(Files.obs)
+157 ISRT._GetDiskSpaceEx isrt.obl(GSI.obs)
+158 ISRT._GetLine isrt.obl(Files.obs)
+159 ISRT._GetSelectedTreeComponent isrt.obl(CmptView.obs)
+160 ISRT._GetSupportDir isrt.obl(SysVars.obs)
+161 ISRT._InetEndofTransfer isrt.obl(iftw.obs)
+162 ISRT._InetGetLastError isrt.obl(iftw.obs)
+163 ISRT._InetGetNextDisk isrt.obl(iftw.obs)
+164 ISRT._ListAddItem isrt.obl(scrlist.obs)
+165 ISRT._ListAddString isrt.obl(scrlist.obs)
+166 ISRT._ListCount isrt.obl(scrlist.obs)
+167 ISRT._ListCreate isrt.obl(scrlist.obs)
+168 ISRT._ListCurrentString isrt.obl(scrlist.obs)
+169 ISRT._ListDeleteString isrt.obl(scrlist.obs)
+170 ISRT._ListDestroy isrt.obl(scrlist.obs)
+171 ISRT._ListFindString isrt.obl(scrlist.obs)
+172 ISRT._ListGetFirstItem isrt.obl(scrlist.obs)
+173 ISRT._ListGetFirstString isrt.obl(scrlist.obs)
+174 ISRT._ListGetNextItem isrt.obl(scrlist.obs)
+175 ISRT._ListGetNextString isrt.obl(scrlist.obs)
+176 ISRT._ListGetType isrt.obl(scrlist.obs)
+177 ISRT._ListReadFromFile isrt.obl(scrlist.obs)
+178 ISRT._ListSetIndex isrt.obl(scrlist.obs)
+179 ISRT._OpenFile isrt.obl(Files.obs)
+180 ISRT._Rebooted Setup.Obs
+181 ISRT._RegCreateKey isrt.obl(Registry.obs)
+182 ISRT._RegExistsKey isrt.obl(Registry.obs)
+183 ISRT._RegQueryKeyBinaryValue isrt.obl(Registry.obs)
+184 ISRT._RegQueryKeyValue isrt.obl(Registry.obs)
+185 ISRT._RegSetKeyBinaryValue isrt.obl(Registry.obs)
+186 ISRT._RegSetKeyValue isrt.obl(Registry.obs)
+187 ISRT._ReleaseDialog isrt.obl(CustomDlg.obs)
+188 ISRT._SetAltMainImage isrt.obl(Dialogs.obs)
+189 ISRT._SetColor isrt.obl(ui.obs)
+190 ISRT._SetDisplayEffect isrt.obl(ui.obs)
+191 ISRT._SetPaletteFile isrt.obl(MIO.obs)
+192 ISRT._SetTitle isrt.obl(ui.obs)
+193 ISRT._SetupInet isrt.obl(MIO.obs)
+194 ISRT._ShowObjWizardPages isrt.obl(Objects.obs)
+195 ISRT._StatusUpdate isrt.obl(ui.obs)
+196 ISRT._TreeViewCreate isrt.obl(CmptView.obs)
+197 ISRT._WaitOnDialog isrt.obl(CustomDlg.obs)
+198 ISRT._WriteLine isrt.obl(Files.obs)
+199 ISRT.__CreateObjectContext isrt.obl(ISRTInit.obs)
+200 ISRT.__GetCmdLineOptions isrt.obl(ISRTInit.obs)
+201 ISRT.__GetContextGUID isrt.obl(ISRTInit.obs)
+202 ISRT.__GetFileRegistrar isrt.obl(ISRTInit.obs)
+203 ISRT.__GetInfo isrt.obl(ISRTInit.obs)
+204 ISRT.__GetLog isrt.obl(SysVars.obs)
+205 ISRT.__GetLogDB isrt.obl(ISRTInit.obs)
+206 ISRT.__GetMainWindow Setup.Obs
+207 ISRT.__GetMaintenanceMode isrt.obl(SysVars.obs)
+208 ISRT.__GetProductGuid isrt.obl(SysVars.obs)
+209 ISRT.__GetProgress Setup.Obs
+210 ISRT.__GetReboot isrt.obl(ISRTInit.obs)
+211 ISRT.__GetTextSub isrt.obl(ISRTInit.obs)
+212 ISRT.__GetUser isrt.obl(MIO.obs)
+213 ISRT.__ISRTGetPropertyBag ifx.obl(PersistPropertyBag.obs)
+214 ISRT.__ISRTReleasePropertyBag ifx.obl(PersistPropertyBag.obs)
+215 ISRT.__LoadString isrt.obl(LoadStr.obs)
+216 ISRT.__ReleaseObjectContext isrt.obl(ISRTInit.obs)
+217 ISRT.__RestoreMainLog isrt.obl(ISRTInit.obs)
+218 ISRT.__SetComponentLog isrt.obl(ISRTInit.obs)
+219 IfxFilterComponents ifx.obl(MoveData.obs)
+220 IfxFinalConstruct ifx.obl(EventsMIO.obs)
+221 IfxFinalRelease ifx.obl(EventsMIO.obs)
+222 IfxInitProperties ifx.obl(PersistPropertyBag.obs)
+223 IfxMoveFileData ifx.obl(MoveData.obs)
+224 IfxOnAbortInstall ifx.obl(Events.obs)
+225 IfxOnAppSearch ifx.obl(Events.obs)
+226 IfxOnCCPSearch ifx.obl(Events.obs)
+227 IfxOnCanceling ifx.obl(Events.obs)
+228 IfxOnDisk1Installed ifx.obl(EventsMIO.obs)
+229 IfxOnDisk1Installing ifx.obl(EventsMIO.obs)
+230 IfxOnExitInstall ifx.obl(EventsMIO.obs)
+231 IfxOnFileError ifx.obl(Exceptions.obs)
+232 IfxOnFileLocked ifx.obl(Exceptions.obs)
+233 IfxOnFileReadOnly ifx.obl(Exceptions.obs)
+234 IfxOnHelp ifx.obl(Events.obs)
+235 IfxOnInitInstall ifx.obl(EventsMIO.obs)
+236 IfxOnInternetError ifx.obl(Exceptions.obs)
+237 IfxOnMD5Error ifx.obl(Exceptions.obs)
+238 IfxOnNextDisk ifx.obl(Exceptions.obs)
+239 IfxOnRebooted ifx.obl(Events.obs)
+240 IfxOnRemovingSharedFile ifx.obl(Exceptions.obs)
+241 IfxOnShowWizardPages ifx.obl(UserInterfaceMIO.obs)
+242 IfxOnTransferred ifx.obl(Events.obs)
+243 IfxOnTransferring ifx.obl(EventsMIO.obs)
+244 IfxOnUnhandledException ifx.obl(Events.obs)
+245 IfxReadProperties ifx.obl(PersistPropertyBag.obs)
+246 IfxRunAfterReboot ifx.obl(Driver.obs)
+247 IfxWriteProperties ifx.obl(PersistPropertyBag.obs)
+248 InetEndofTransfer isrt.obl(iftw.obs)
+249 InetErrorDisplayMode isrt.obl(iftw.obs)
+250 InetGetLastError isrt.obl(iftw.obs)
+251 InetNextDisk isrt.obl(iftw.obs)
+252 InitProperties ifx.obl(PersistPropertyBag.obs)
+253 InstallationInfo isrt.obl(Registry.obs)
+254 Is isrt.obl(Is.obs)
+255 IsInetInstall isrt.obl(iftw.obs)
+256 KERNEL.GetModuleHandle Setup.Obs
+257 KERNEL32.CloseHandle isrt.obl(AskDestPath.obs)
+258 KERNEL32.CreateFileA isrt.obl(AskDestPath.obs)
+259 KERNEL32.DeleteFileA isrt.obl(AskDestPath.obs)
+260 KERNEL32.FileTimeToLocalFileTime isrt.obl(AskDestPath.obs)
+261 KERNEL32.FileTimeToSystemTime isrt.obl(AskDestPath.obs)
+262 KERNEL32.FindClose isrt.obl(AskDestPath.obs)
+263 KERNEL32.FindFirstFileA isrt.obl(AskDestPath.obs)
+264 KERNEL32.FindNextFileA isrt.obl(AskDestPath.obs)
+265 KERNEL32.FormatMessageA isrt.obl(AskDestPath.obs)
+266 KERNEL32.GetDriveType isrt.obl(AskDestPath.obs)
+267 KERNEL32.GetFileAttributesA isrt.obl(AskDestPath.obs)
+268 KERNEL32.GetFileTime isrt.obl(AskDestPath.obs)
+269 KERNEL32.GetLocalTime isrt.obl(AskDestPath.obs)
+270 KERNEL32.GetLocaleInfo isrt.obl(AskDestPath.obs)
+271 KERNEL32.GetPrivateProfileString isrt.obl(AskDestPath.obs)
+272 KERNEL32.GetPrivateProfileStringA isrt.obl(AskDestPath.obs)
+273 KERNEL32.GetProfileStringA isrt.obl(AskDestPath.obs)
+274 KERNEL32.GetSystemDefaultLCID isrt.obl(AskDestPath.obs)
+275 KERNEL32.GetUserDefaultLangID isrt.obl(AskDestPath.obs)
+276 KERNEL32.GetVersion isrt.obl(AskDestPath.obs)
+277 KERNEL32.GetVersionEx isrt.obl(AskDestPath.obs)
+278 KERNEL32.GetVolumeInformation isrt.obl(AskDestPath.obs)
+279 KERNEL32.GetWindowsDirectory isrt.obl(AskDestPath.obs)
+280 KERNEL32.GlobalMemoryStatus isrt.obl(AskDestPath.obs)
+281 KERNEL32.LocalFileTimeToFileTime isrt.obl(AskDestPath.obs)
+282 KERNEL32.MoveFileA isrt.obl(AskDestPath.obs)
+283 KERNEL32.SetFileAttributesA isrt.obl(AskDestPath.obs)
+284 KERNEL32.SetFileTime isrt.obl(AskDestPath.obs)
+285 KERNEL32.Sleep isrt.obl(AskDestPath.obs)
+286 KERNEL32.SystemTimeToFileTime isrt.obl(AskDestPath.obs)
+287 KERNEL32.WritePrivateProfileString isrt.obl(AskDestPath.obs)
+288 KERNEL32.WritePrivateProfileStringA isrt.obl(AskDestPath.obs)
+289 KERNEL32.WriteProfileStringA isrt.obl(AskDestPath.obs)
+290 KERNEL32.lstrlen isrt.obl(AskDestPath.obs)
+291 LOWORD isrt.obl(Misc.obs)
+292 ListAddItem isrt.obl(scrlist.obs)
+293 ListAddString isrt.obl(scrlist.obs)
+294 ListCount isrt.obl(scrlist.obs)
+295 ListCreate isrt.obl(scrlist.obs)
+296 ListCurrentString isrt.obl(scrlist.obs)
+297 ListDeleteString isrt.obl(scrlist.obs)
+298 ListDestroy isrt.obl(scrlist.obs)
+299 ListFindString isrt.obl(scrlist.obs)
+300 ListGetFirstItem isrt.obl(scrlist.obs)
+301 ListGetFirstString isrt.obl(scrlist.obs)
+302 ListGetNextItem isrt.obl(scrlist.obs)
+303 ListGetNextString isrt.obl(scrlist.obs)
+304 ListGetType isrt.obl(scrlist.obs)
+305 ListReadFromFile isrt.obl(scrlist.obs)
+306 ListSetIndex isrt.obl(scrlist.obs)
+307 LongPathToQuote isrt.obl(Str.obs)
+308 MAKELONG isrt.obl(Misc.obs)
+309 MIFCreateMIFFile isrt.obl(MIF.obs)
+310 MIFDeleteMIFFile isrt.obl(MIF.obs)
+311 MIFInitialize isrt.obl(MIF.obs)
+312 MIFSetInformation isrt.obl(MIF.obs)
+313 MIFUnInitialize isrt.obl(MIF.obs)
+314 MIFWasSetInformationCalled isrt.obl(MIF.obs)
+315 MIOShutdown isrt.obl(MIO.obs)
+316 MIOStartup isrt.obl(MIO.obs)
+317 MaintenanceStart isrt.obl(Registry.obs)
+318 MessageBeep isrt.obl(Misc.obs)
+319 MessageBox isrt.obl(MsgBox.obs)
+320 OnAbort ifx.obl(Events.obs)
+321 OnAppSearch ifx.obl(Events.obs)
+322 OnBegin ifx.obl(Events.obs)
+323 OnCCPSearch ifx.obl(Events.obs)
+324 OnCanceling ifx.obl(EventsMIO.obs)
+325 OnComponentError ifx.obl(Exceptions.obs)
+326 OnEnd ifx.obl(Events.obs)
+327 OnFileError ifx.obl(Exceptions.obs)
+328 OnFileLocked ifx.obl(Exceptions.obs)
+329 OnFileReadOnly ifx.obl(Exceptions.obs)
+330 OnFirstUIAfter ifx.obl(UserInterfaceMIO.obs)
+331 OnFirstUIBefore ifx.obl(UserInterfaceMIO.obs)
+332 OnHelp ifx.obl(Events.obs)
+333 OnInternetError ifx.obl(Exceptions.obs)
+334 OnMD5Error ifx.obl(Exceptions.obs)
+335 OnMaintUIAfter ifx.obl(UserInterfaceMIO.obs)
+336 OnMaintUIBefore ifx.obl(UserInterfaceMIO.obs)
+337 OnMoved ifx.obl(Events.obs)
+338 OnMoving ifx.obl(Events.obs)
+339 OnNextDisk ifx.obl(Exceptions.obs)
+340 OnRebooted ifx.obl(Events.obs)
+341 OnRemovingSharedFile ifx.obl(Exceptions.obs)
+342 OnSelfRegistrationError ifx.obl(Events.obs)
+343 OnUnhandledException ifx.obl(Events.obs)
+344 OpenFile isrt.obl(Files.obs)
+345 OpenFileMode isrt.obl(Files.obs)
+346 ParsePath isrt.obl(Str.obs)
+347 ProgDefGroupType isrt.obl(Shell.obs)
+348 ProgGetGroupType isrt.obl(Shell.obs)
+349 PthFixPath isrt.obl(Pth.obs)
+350 PthIsAbsPath isrt.obl(Pth.obs)
+351 ReadProperties ifx.obl(PersistPropertyBag.obs)
+352 Rebooted isrt.obl(Driver.obs)
+353 RegDBCreateKeyEx isrt.obl(Registry.obs)
+354 RegDBGetKeyValueEx isrt.obl(Registry.obs)
+355 RegDBInit isrt.obl(Registry.obs)
+356 RegDBKeyExist isrt.obl(Registry.obs)
+357 RegDBQueryValue isrt.obl(Registry.obs)
+358 RegDBSetDefaultRoot isrt.obl(Registry.obs)
+359 RegDBSetItem isrt.obl(Registry.obs)
+360 RegDBSetKeyValueEx isrt.obl(Registry.obs)
+361 RegDBSetValue isrt.obl(Registry.obs)
+362 ReleaseDialog isrt.obl(CustomDlg.obs)
+363 RenameFile isrt.obl(Files.obs)
+364 SdAskDestPath isrt.obl(SDADPATH.obs)
+365 SdCloseDlg isrt.obl(SDINT.obs)
+366 SdComponentDialog2 isrt.obl(SDCOMDL2.obs)
+367 SdComponentDlgCheckSpace isrt.obl(SDINT.obs)
+368 SdComponentTree isrt.obl(SDCOMTREE.obs)
+369 SdCreateComponentView isrt.obl(SDINT.obs)
+370 SdDlgToTop isrt.obl(SDINT.obs)
+371 SdDoStdButton isrt.obl(SDINT.obs)
+372 SdEnablement isrt.obl(SDINT.obs)
+373 SdError isrt.obl(SDINT.obs)
+374 SdExceptions isrt.obl(SdExceptions.obs)
+375 SdFinish isrt.obl(SDFINISH.obs)
+376 SdFinishEx isrt.obl(SdFinishEx.obs)
+377 SdFinishReboot isrt.obl(SDFINBOT.obs)
+378 SdGeneralInit isrt.obl(SDINT.obs)
+379 SdInit isrt.obl(SDINT.obs)
+380 SdIsShellExplorer isrt.obl(SDINT.obs)
+381 SdIsStdButton isrt.obl(SDINT.obs)
+382 SdLoadString isrt.obl(SDINT.obs)
+383 SdMakeName isrt.obl(SDINT.obs)
+384 SdPlugInProductName isrt.obl(SDINT.obs)
+385 SdProductName isrt.obl(SDPRODCT.obs)
+386 SdRemoveEndSpace isrt.obl(SDINT.obs)
+387 SdSelectFolder isrt.obl(SDSFDR.obs)
+388 SdSetDlgTitle isrt.obl(SDINT.obs)
+389 SdSetStatic isrt.obl(SDINT.obs)
+390 SdShowInfoList isrt.obl(SDSINFOL.obs)
+391 SdStartCopy isrt.obl(SDSCOPY.obs)
+392 SdUnInit isrt.obl(SDINT.obs)
+393 SdVerifyFolder isrt.obl(SDINT.obs)
+394 SdWelcome isrt.obl(SDWEL.obs)
+395 SdWelcomeMaint isrt.obl(SdWelcomeMaint.obs)
+396 SelectDir isrt.obl(SelectDir.obs)
+397 SelectDirNoLog isrt.obl(SelectDir.obs)
+398 SendMessage isrt.obl(Misc.obs)
+399 SetCmdLine isrt.obl(SysVars.obs)
+400 SetColor isrt.obl(ui.obs)
+401 SetDialogTitle isrt.obl(Dialogs.obs)
+402 SetDisplayEffect isrt.obl(ui.obs)
+403 SetFileInfo isrt.obl(Files.obs)
+404 SetFolderDesktop isrt.obl(SysVars.obs)
+405 SetFolderPrograms isrt.obl(SysVars.obs)
+406 SetFolderStartMenu isrt.obl(SysVars.obs)
+407 SetFolderStartup isrt.obl(SysVars.obs)
+408 SetInstallationInfo isrt.obl(Registry.obs)
+409 SetStatusWindow isrt.obl(ui.obs)
+410 SetTitle isrt.obl(ui.obs)
+411 SetupType isrt.obl(SetupType.obs)
+412 ShowObjWizardPages isrt.obl(Objects.obs)
+413 SilentCreateFile isrt.obl(Silent.obs)
+414 SilentDoGeneralInfo isrt.obl(Silent.obs)
+415 SilentFailed isrt.obl(Silent.obs)
+416 SilentFinish isrt.obl(Silent.obs)
+417 SilentGetMode isrt.obl(Silent.obs)
+418 SilentInit isrt.obl(Silent.obs)
+419 SilentLogWriteData isrt.obl(Silent.obs)
+420 SilentReadData isrt.obl(Silent.obs)
+421 SilentSetInfo isrt.obl(Silent.obs)
+422 SilentSetMode isrt.obl(Silent.obs)
+423 SilentWriteData isrt.obl(Silent.obs)
+424 Sprintf isrt.obl(Str.obs)
+425 SprintfBox isrt.obl(MsgBox.obs)
+426 StatusUpdate isrt.obl(ui.obs)
+427 StrGetTokens isrt.obl(Str.obs)
+428 StrLength isrt.obl(Str.obs)
+429 StrRemoveLastSlash isrt.obl(Str.obs)
+430 StrRemoveSpaces isrt.obl(Str.obs)
+431 StrToUpper isrt.obl(Str.obs)
+432 SysVarsInit isrt.obl(SysVars.obs)
+433 SysVarsUnInit isrt.obl(SysVars.obs)
+434 System isrt.obl(Misc.obs)
+435 TreeViewCreate isrt.obl(CmptView.obs)
+436 USER.EnableWindow Setup.Obs
+437 USER.GetClassName Setup.Obs
+438 USER.GetClientRect Setup.Obs
+439 USER.GetDC Setup.Obs
+440 USER.GetDlgItem Setup.Obs
+441 USER.GetFocus Setup.Obs
+442 USER.GetWindowLong Setup.Obs
+443 USER.GetWindowRect Setup.Obs
+444 USER.IsIconic Setup.Obs
+445 USER.IsWindow Setup.Obs
+446 USER.IsWindowVisible isrt.obl(AskDestPath.obs)
+447 USER.MoveWindow Setup.Obs
+448 USER.ReleaseDC Setup.Obs
+449 USER.SendMessageA isrt.obl(AskDestPath.obs)
+450 USER.SetFocus Setup.Obs
+451 USER.SetForegroundWindow isrt.obl(AskDestPath.obs)
+452 USER.SetWindowPos Setup.Obs
+453 USER.SetWindowText Setup.Obs
+454 USER.ShowWindow Setup.Obs
+455 USER32.CharUpperBuffA isrt.obl(AskDestPath.obs)
+456 USER32.DrawText isrt.obl(AskDestPath.obs)
+457 USER32.GetDesktopWindow isrt.obl(AskDestPath.obs)
+458 USER32.GetSystemMetrics isrt.obl(AskDestPath.obs)
+459 USER32.GetWindowText isrt.obl(AskDestPath.obs)
+460 USER32.GetWindowTextLength isrt.obl(AskDestPath.obs)
+461 USER32.MessageBoxA isrt.obl(AskDestPath.obs)
+462 USER32.ScreenToClient isrt.obl(AskDestPath.obs)
+463 USER32.SendMessageA isrt.obl(AskDestPath.obs)
+464 USER32.SetWindowLong isrt.obl(AskDestPath.obs)
+465 USER32.SetWindowRgn isrt.obl(AskDestPath.obs)
+466 VarRestore isrt.obl(SysVars.obs)
+467 VarSave isrt.obl(SysVars.obs)
+468 WaitOnDialog isrt.obl(CustomDlg.obs)
+469 WriteLine isrt.obl(Files.obs)
+470 WriteProfString isrt.obl(Profile.obs)
+471 WriteProperties ifx.obl(PersistPropertyBag.obs)
+472 _HandleException isrt.obl(exceptions.obs)
+473 _WinSubEnableControl isrt.obl(WINSUB.obs)
+474 _WinSubEnableWindow isrt.obl(WINSUB.obs)
+475 _WinSubGetChildWindow isrt.obl(WINSUB.obs)
+476 _WinSubIsWindow isrt.obl(WINSUB.obs)
+477 __DefaultExitHandler isrt.obl(handlers.obs)
+478 __ISRTDoExit isrt.obl(Misc.obs)
+479 __ISRTInit isrt.obl(ISRTInit.obs)
+480 __ISRTRestoreMainLog isrt.obl(ISRTInit.obs)
+481 __ISRTSetComponentLog isrt.obl(ISRTInit.obs)
+482 __ISRTUnInit isrt.obl(ISRTInit.obs)
+483 __LoadIScriptString isrt.obl(LoadStr.obs)
+484 program Setup.Obs
+485 sfc.SRSetRestorePoint Setup.Obs
+
+
+***** External Variables *****
+1 BATCH_INSTALL Setup.Obs
+2 CMDLINE isrt.obl(DebugSymbols.obs)
+3 COMMONFILES isrt.obl(DebugSymbols.obs)
+4 DISK1TARGET Setup.Obs
+5 ERRORFILENAME Setup.Obs
+6 Err Setup.Obs
+7 FILETIME isrt.obl(AskDestPath.obs)
+8 FIND_DATA isrt.obl(AskDestPath.obs)
+9 FOLDER_DESKTOP isrt.obl(DebugSymbols.obs)
+10 FOLDER_PROGRAMS isrt.obl(DebugSymbols.obs)
+11 FOLDER_STARTMENU isrt.obl(DebugSymbols.obs)
+12 FOLDER_STARTUP isrt.obl(DebugSymbols.obs)
+13 FileRegistrar Setup.Obs
+14 ISRES isrt.obl(DebugSymbols.obs)
+15 ISUSER isrt.obl(DebugSymbols.obs)
+16 ISVERSION isrt.obl(DebugSymbols.obs)
+17 InetSRCDIR Setup.Obs
+18 LAST_RESULT Setup.Obs
+19 LogDB Setup.Obs
+20 MAINTENANCE isrt.obl(DebugSymbols.obs)
+21 MEDIA Setup.Obs
+22 MEMORYSTATUS isrt.obl(AskDestPath.obs)
+23 MODE isrt.obl(DebugSymbols.obs)
+24 NOTHING Setup.Obs
+25 OSINFO_PLATFORM_INFO Setup.Obs
+26 OSVERSIONINFO isrt.obl(AskDestPath.obs)
+27 PRODUCT_GUID isrt.obl(DebugSymbols.obs)
+28 PROGRAMFILES isrt.obl(DebugSymbols.obs)
+29 RECT isrt.obl(AskDestPath.obs)
+30 Reboot Setup.Obs
+31 SELECTED_LANGUAGE isrt.obl(DebugSymbols.obs)
+32 SHELL_OBJECT_FOLDER Setup.Obs
+33 SRCDIR Setup.Obs
+34 SRCDISK isrt.obl(DebugSymbols.obs)
+35 SUPPORTDIR isrt.obl(DebugSymbols.obs)
+36 SYSTEMTIME isrt.obl(AskDestPath.obs)
+37 SetupInfo Setup.Obs
+38 StatusDlg Setup.Obs
+39 TARGETDIR Setup.Obs
+40 TARGETDISK isrt.obl(DebugSymbols.obs)
+41 TextSub Setup.Obs
+42 UNINST Setup.Obs
+43 UNINSTALL_STRING Setup.Obs
+44 WINDIR isrt.obl(DebugSymbols.obs)
+45 WINDISK isrt.obl(DebugSymbols.obs)
+46 WINSYSDIR isrt.obl(DebugSymbols.obs)
+47 WINSYSDISK isrt.obl(DebugSymbols.obs)
+48 _INT64 Setup.Obs
+49 _RESTOREINFO_ Setup.Obs
+50 _RESTOREPTINFO Setup.Obs
+51 _SMGRSTATUS Setup.Obs
+52 _SMGSTATUS_ Setup.Obs
+53 _WIN9X Setup.Obs
+54 _WINNT Setup.Obs
+55 __SYSTEMINFORMATION Setup.Obs
+56 __hContext isrt.obl(AskYesNo.obs)
+57 __objGlobalTextSub Setup.Obs
+58 __szGUID isrt.obl(ISRTInit.obs)
+59 bBackButton Setup.Obs
+60 bCancelButton Setup.Obs
+61 bEnterDiskBeep isrt.obl(AskDestPath.obs)
+62 bFinishButton Setup.Obs
+63 bIFXLFNoToAll Setup.Obs
+64 bIFXLFOnRebootToAll Setup.Obs
+65 bIFXLFYesToAll Setup.Obs
+66 bIFXMD5IgnoreToAll Setup.Obs
+67 bIFXRONoToAll Setup.Obs
+68 bIFXROYesToAll Setup.Obs
+69 bIFXSFNoToAll Setup.Obs
+70 bIFXSFYesToAll Setup.Obs
+71 bIfxPCHInitialized Setup.Obs
+72 bIfxPCHOn Setup.Obs
+73 bInstall16 Setup.Obs
+74 bNextButton Setup.Obs
+75 bSdInit Setup.Obs
+76 bViewCmptKunits Setup.Obs
+77 bViewCmptUseDecimal Setup.Obs
+78 g_bSuppressMissingStringWarning isrt.obl(Enable.obs)
+79 nIFXROKey ifx.obl(EventsMIO.obs)
+80 nIFXSFKey ifx.obl(EventsMIO.obs)
+81 nIfxPCHType Setup.Obs
+82 szAppKey Setup.Obs
+83 szInstallDeinstKey Setup.Obs
+84 szSdProduct Setup.Obs
+85 szSdStr_NotEnoughSpace Setup.Obs
diff --git a/InstallShield/Script Files/setup.rul b/InstallShield/Script Files/setup.rul
new file mode 100644
index 0000000000..28fc24aa2e
--- /dev/null
+++ b/InstallShield/Script Files/setup.rul
@@ -0,0 +1,950 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// IIIIIII SSSSSS
+// II SS InstallShield (R)
+// II SSSSSS (c) 1996-1997, InstallShield Software Corporation
+// II SS (c) 1990-1996, InstallShield Corporation
+// IIIIIII SSSSSS All Rights Reserved.
+//
+//
+// This code is generated as a starting setup template. You should
+// modify it to provide all necessary steps for your setup.
+//
+//
+// File Name: Setup.rul
+//
+// Description: InstallShield script
+//
+// Comments: This template script performs a basic setup on a
+// Windows 95 or Windows NT 4.0 platform. With minor
+// modifications, this template can be adapted to create
+// new, customized setups.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+
+ // Include header file
+#include "ifx.h"
+
+////////////////////// string defines ////////////////////////////
+
+#define UNINST_LOGFILE_NAME "Uninst.isu"
+
+//////////////////// installation declarations ///////////////////
+
+ // ----- DLL prototypes -----
+
+
+ // your DLL prototypes
+
+
+ // ---- script prototypes -----
+
+ // generated
+ prototype ShowDialogs();
+ prototype MoveFileData();
+ prototype HandleMoveDataError( NUMBER );
+ prototype ProcessBeforeDataMove();
+ prototype ProcessAfterDataMove();
+ prototype SetupRegistry();
+ prototype SetupFolders();
+ prototype CleanUpInstall();
+ prototype SetupInstall();
+ prototype SetupScreen();
+ prototype CheckListScreen();
+ prototype CheckRequirements();
+ prototype DialogShowSdWelcome();
+ prototype DialogShowSdShowInfoList();
+ prototype DialogShowSdAskDestPath();
+ prototype DialogShowSdSetupType();
+ prototype DialogShowSdComponentDialog2();
+ prototype DialogShowSdSelectFolder();
+ prototype DialogShowSdFinishReboot();
+
+ // your prototypes
+ prototype MyParsePath ( STRING );
+ prototype ForwardSlashify ( STRING, BYREF STRING );
+ prototype CreateExecPerlScript ( STRING, STRING );
+ prototype DropSuffix ( STRING, BYREF STRING );
+ prototype BaseName ( STRING, BYREF STRING );
+
+ // ----- global variables ------
+
+ // generated
+ BOOL bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
+ STRING svDir;
+ STRING svName, svCompany, svSerial;
+ STRING szAppPath;
+ STRING svSetupType;
+ LIST listPath;
+
+
+ // your global variables
+ //STRING szRawCpp
+ STRING szPerlPath;
+ STRING szBinDir, szBinDirUnslashed,
+ szLibDir, szLibDirUnslashed,
+ szDataDir, szLibExecDir;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// MAIN PROGRAM
+//
+// The setup begins here by hiding the visible setup
+// window. This is done to allow all the titles, images, etc. to
+// be established before showing the main window. The following
+// logic then performs the setup in a series of steps.
+//
+///////////////////////////////////////////////////////////////////////////////
+program
+ Disable( BACKGROUND );
+
+ CheckRequirements();
+
+ SetupInstall();
+
+ SetupScreen();
+
+ if (ShowDialogs()<0) goto end_install;
+
+ if (ProcessBeforeDataMove()<0) goto end_install;
+
+ if (MoveFileData()<0) goto end_install;
+
+ if (ProcessAfterDataMove()<0) goto end_install;
+
+ if (SetupRegistry()<0) goto end_install;
+
+ if (SetupFolders()<0) goto end_install;
+
+ CheckListScreen();
+
+ end_install:
+
+ CleanUpInstall();
+
+ // If an unrecoverable error occurred, clean up the partial installation.
+ // Otherwise, exit normally.
+
+ if (bInstallAborted) then
+ abort;
+ endif;
+
+endprogram
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ShowDialogs //
+// //
+// Purpose: This function manages the display and navigation //
+// the standard dialogs that exist in a setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ShowDialogs()
+ NUMBER nResult;
+ begin
+
+ Dlg_Start:
+ // beginning of dialogs label
+
+ Dlg_SdWelcome:
+ nResult = DialogShowSdWelcome();
+ if (nResult = BACK) goto Dlg_Start;
+
+ Dlg_SdShowInfoList:
+ nResult = DialogShowSdShowInfoList();
+ if (nResult = BACK) goto Dlg_SdWelcome;
+
+ Dlg_SdAskDestPath:
+ nResult = DialogShowSdAskDestPath();
+ if (nResult = BACK) goto Dlg_SdShowInfoList;
+
+ Dlg_SdSetupType:
+ nResult = DialogShowSdSetupType();
+ if (nResult = BACK) goto Dlg_SdAskDestPath;
+
+ Dlg_SdComponentDialog2:
+ if ((nResult = BACK) && (svSetupType != "Custom") && (svSetupType != "")) then
+ goto Dlg_SdSetupType;
+ endif;
+ nResult = DialogShowSdComponentDialog2();
+ if (nResult = BACK) goto Dlg_SdSetupType;
+
+ Dlg_SdSelectFolder:
+ //nResult = DialogShowSdSelectFolder();
+ //if (nResult = BACK) goto Dlg_SdComponentDialog2;
+
+ return 0;
+
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ProcessBeforeDataMove //
+// //
+// Purpose: This function performs any necessary operations prior to the //
+// actual data move operation. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ProcessBeforeDataMove()
+ STRING svLogFile;
+ NUMBER nResult;
+ begin
+
+ InstallationInfo( @COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY );
+
+ svLogFile = UNINST_LOGFILE_NAME;
+
+ nResult = DeinstallStart( svDir, svLogFile, @UNINST_KEY, 0 );
+ if (nResult < 0) then
+ MessageBox( @ERROR_UNINSTSETUP, WARNING );
+ endif;
+
+ szAppPath = TARGETDIR; // TODO : if your application .exe is in a subdir of TARGETDIR then add subdir
+
+ if ((bIs32BitSetup) && (bIsShellExplorer)) then
+ RegDBSetItem( REGDB_APPPATH, szAppPath );
+ RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY );
+ RegDBSetItem( REGDB_UNINSTALL_NAME, @UNINST_DISPLAY_NAME );
+ endif;
+ // TODO : update any items you want to process before moving the data
+ //
+
+ ComponentSetTarget( MEDIA, "<DOCDIR>", TARGETDIR ^ "\\doc" );
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: MoveFileData //
+// //
+// Purpose: This function handles the data movement for //
+// the setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function MoveFileData()
+ NUMBER nResult, nDisk;
+ begin
+
+ nDisk = 1;
+ SetStatusWindow( 0, "" );
+ Disable( DIALOGCACHE );
+ Enable( STATUS );
+ StatusUpdate( ON, 100 );
+ nResult = ComponentMoveData( MEDIA, nDisk, 0 );
+
+ HandleMoveDataError( nResult );
+
+ Disable( STATUS );
+
+ return nResult;
+
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: HandleMoveDataError //
+// //
+// Purpose: This function handles the error (if any) during the move data //
+// operation. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function HandleMoveDataError( nResult )
+ STRING szErrMsg, svComponent , svFileGroup , svFile;
+ begin
+
+ svComponent = "";
+ svFileGroup = "";
+ svFile = "";
+
+ switch (nResult)
+ case 0:
+ return 0;
+ default:
+ ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult );
+ szErrMsg = @ERROR_MOVEDATA + "\n\n" +
+ @ERROR_COMPONENT + " " + svComponent + "\n" +
+ @ERROR_FILEGROUP + " " + svFileGroup + "\n" +
+ @ERROR_FILE + " " + svFile;
+ SprintfBox( SEVERE, @TITLE_CAPTIONBAR, szErrMsg, nResult );
+ bInstallAborted = TRUE;
+ return nResult;
+ endswitch;
+
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: ProcessAfterDataMove //
+// //
+// Purpose: This function performs any necessary operations needed after //
+// all data has been moved. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function ProcessAfterDataMove()
+ STRING szPath, szGcc, szGccDir;
+ STRING szTemp, szRes, szPathEntry, szDrive;
+ NUMBER nvSize,nvType, nResult, nPos, nSuccess;
+ LIST listDirs;
+ begin
+
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+ RegDBGetKeyValueEx ( "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment" ,
+ "path" , nvType, szPath , nvSize );
+
+ // Spin through path looking for perl.exe.
+ // Our task is made considerably harder since the
+ // the free version of InstallShield doesn't support
+ // functions such as StrGetTokens() or ParsePath().
+ // TODO: Convert this back to IS Prof Edn
+
+ MyParsePath ( szPath );
+ nResult = ListGetFirstString ( listPath, szPathEntry);
+ szPathEntry = ""; szPerlPath="";
+ while ( nResult != END_OF_LIST )
+ if ( FindFile (szPathEntry, "perl.exe", szRes ) = 0 ) then
+ szPerlPath = szPathEntry + "/" + szRes;
+ nResult = END_OF_LIST;
+ else
+ nResult = ListGetNextString ( listPath, szPathEntry );
+ endif;
+ endwhile;
+ if ( StrCompare ( szPerlPath, "" ) = 0 ) then
+ // If not found in global env. block, look in the
+ // user-specific part.
+ RegDBSetDefaultRoot ( HKEY_CURRENT_USER );
+ RegDBGetKeyValueEx ( "Environment", "path", nvType, szPath, nvSize);
+ MyParsePath ( szPath );
+ nResult = ListGetFirstString ( listPath, szPathEntry);
+ szPathEntry = ""; szPerlPath="";
+ while ( nResult != END_OF_LIST )
+ if ( FindFile (szPathEntry, "perl.exe", szRes ) = 0 ) then
+ szPerlPath = szPathEntry + "/" + szRes;
+ nResult = END_OF_LIST;
+ else
+ nResult = ListGetNextString ( listPath, szPathEntry );
+ endif;
+ endwhile;
+ endif;
+
+ if ( StrCompare ( szPerlPath, "" ) = 0 ) then
+ // Default it to /bin/perl
+ MessageBox ("Unable to find perl in your PATH. Not to worry, this installer includes a version that should be useable." +
+ "When the installer has finished, please copy it from the bin/ directory of the ghc installation to /bin/perl",
+ INFORMATION);
+ szPerlPath = "/bin/perl.exe";
+ else
+ // strip initial drive spec.
+ GetDir ( szPerlPath, szTemp);
+ ForwardSlashify ( szTemp, szPerlPath );
+ endif;
+ DropSuffix (szPerlPath, szTemp);
+ szPerlPath = szTemp;
+
+ ListDestroy (listPath);
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupRegistry //
+// //
+// Purpose: This function makes the registry entries for this setup. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupRegistry()
+ NUMBER nResult,nWays,i;
+ STRING szProjectDir, szProjectVersionDir, szTargetDir;
+ STRING szSyslib, szWay, szSyslibsDir;
+ STRING szLib, szSyslibsKey;
+ //LIST syslib_list, way_list;
+ begin
+
+ // TODO : Add all your registry entry keys here
+ //
+ //
+
+ nResult = CreateRegistrySet( "" );
+
+ // By now, we will have had the following Registry
+ // entries generated (see ProcessBeforeDataMove() ):
+ //
+ // HK_L_M\Software\Glasgow University\GHC\<version no.>
+ //
+ // For GHC, we store and use the install info inside
+ // HK_L_M\Software\Haskell\GHC (== %ROOT%)
+
+ // So, we perform the following tasks here:
+ //
+ // * Checks to see if %ROOT% is defined.
+ // If not, creates it.
+ // * Checks for %ROOT%\Version is defined.
+ // * Create %ROOT%\<version>.
+ // * Create %ROOT%\<version>\libdir
+ // (This key will be given a value later.)
+ // * Create %ROOT%\syslib\ and fill it in
+ // with the syslibs that has been installed.
+ // * %ROOT%\syslib\name\<way>
+ // is added for each kind (e.g., seq, conc)
+ // syslib we're installing.
+
+ // When we eventually reach the end, the registry
+ // should be ready for use by the installed app.
+
+ // Check to see if we've already installed
+ // a version of GHC on this box..
+ RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
+
+ szProjectDir = @HASKELL_REG_ROOT ^ @PRODUCT_NAME;
+
+ // check whether we've already got the Registry sub-tree we're
+ // about to add to. If not, then we create it
+ // level-by-level, so as to ensure that the uninstaller
+ // can clean up after us.
+ if ( RegDBKeyExist ( @HASKELL_REG_ROOT ) < 0) then
+ RegDBCreateKeyEx (@HASKELL_REG_ROOT, "");
+ endif;
+ if ( RegDBKeyExist ( szProjectDir ) < 0 ) then
+ RegDBCreateKeyEx ( szProjectDir, "");
+ endif;
+
+ // Note: we overwrite any existing value.
+ RegDBSetKeyValueEx( szProjectDir, "Version", REGDB_STRING,
+ @PRODUCT_KEY, -1);
+
+ szProjectVersionDir = szProjectDir ^ @PRODUCT_KEY;
+
+ if ( RegDBKeyExist ( szProjectVersionDir ) < 0) then
+ RegDBCreateKeyEx ( szProjectVersionDir, "");
+ endif;
+
+ // Here starts the GHC specific part
+
+ ForwardSlashify (TARGETDIR, szTargetDir);
+ // fill in the all-important path to where the archives
+ // and interface files have been parked.
+ szLibDir = szTargetDir + "/lib";
+ szLibDirUnslashed = TARGETDIR ^ "\\lib";
+ RegDBSetKeyValueEx ( szProjectVersionDir, "libdir", REGDB_STRING,
+ szLibDir , -1);
+ // libexecdir
+ szLibExecDir = szTargetDir + "/lib";
+ RegDBSetKeyValueEx ( szProjectVersionDir, "libexecdir", REGDB_STRING,
+ szLibExecDir , -1);
+ // bindir
+ szBinDir = szTargetDir + "/bin";
+ szBinDirUnslashed = TARGETDIR ^ "\\bin";
+ RegDBSetKeyValueEx ( szProjectVersionDir, "bindir", REGDB_STRING,
+ szBinDir , -1);
+
+ return 0;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Function: SetupFolders
+//
+// Purpose: This function creates all the folders and shortcuts for the
+// setup. This includes program groups and items for Windows 3.1.
+//
+///////////////////////////////////////////////////////////////////////////////
+function SetupFolders()
+ NUMBER nResult;
+ begin
+
+
+ // TODO : Add all your folder (program group) along with shortcuts (program items)
+ //
+ //
+ // CreateProgramFolder, AddFolderIcon....
+ //
+
+ CreateExecPerlScript ( szBinDirUnslashed, "ghc-" + @PRODUCT_VERSION );
+ CreateExecPerlScript ( szBinDirUnslashed, "stat2resid" );
+ CreateExecPerlScript ( szLibDirUnslashed, "hscpp" );
+ CreateExecPerlScript ( szLibDirUnslashed, "mkdependHS" );
+
+ VarSave (SRCTARGETDIR);
+ SRCDIR = szBinDirUnslashed;
+ TARGETDIR = szBinDirUnslashed;
+ CopyFile( "ghc-" + @PRODUCT_VERSION, "ghc");
+ VarRestore (SRCTARGETDIR);
+
+ nResult = CreateShellObjects( "" );
+
+ return nResult;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: CleanUpInstall //
+// //
+// Purpose: This cleans up the setup. Anything that should //
+// be released or deleted at the end of the setup should //
+// be done here. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function CleanUpInstall()
+ begin
+
+
+ if (bInstallAborted) then
+ return 0;
+ endif;
+
+ DialogShowSdFinishReboot();
+
+ if (BATCH_INSTALL) then // ensure locked files are properly written
+ CommitSharedFiles(0);
+ endif;
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupInstall //
+// //
+// Purpose: This will setup the installation. Any general initialization //
+// needed for the installation should be performed here. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupInstall()
+
+ begin
+
+ Enable( CORECOMPONENTHANDLING );
+
+ bInstallAborted = FALSE;
+
+ GetDisk(WINDIR, svDir);
+
+ if (bIs32BitSetup) then
+ svDir = svDir + "\\" ^ @PRODUCT_NAME_SHORT ^ @PRODUCT_KEY;
+ else
+ // We're (=>ghc) 32 through and through, but for the sake of
+ // completenes.
+ svDir = svDir + "\\" ^ @PRODUCT_NAME_SHORT ^ @PRODUCT_NAME16;
+ endif;
+
+ TARGETDIR = svDir;
+
+ SdProductName( @PRODUCT_NAME );
+
+ Enable( DIALOGCACHE );
+
+ return 0;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: SetupScreen //
+// //
+// Purpose: This function establishes the screen look. This includes //
+// colors, fonts, and text to be displayed. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function SetupScreen()
+ begin
+
+ SetColor ( BACKGROUND, BLUE );
+ Enable( FULLWINDOWMODE );
+ Enable( INDVFILESTATUS );
+
+ SetTitle( @TITLE_MAIN, 24, WHITE );
+
+ SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
+
+ Enable( BACKGROUND );
+
+ Delay( 1 );
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: CheckRequirements //
+// //
+// Purpose: This function checks all minimum requirements for the //
+// application being installed. If any fail, then the user //
+// is informed and the setup is terminated. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function CheckRequirements()
+ NUMBER nvDx, nvDy, nvResult;
+ STRING svResult;
+
+ begin
+
+ bWinNT = FALSE;
+ bIsShellExplorer = FALSE;
+
+ // Check screen resolution.
+ GetExtents( nvDx, nvDy );
+
+ if (nvDy < 480) then
+ MessageBox( @ERROR_VGARESOLUTION, WARNING );
+ abort;
+ endif;
+
+ // set 'setup' operation mode
+ bIs32BitSetup = TRUE;
+ GetSystemInfo( ISTYPE, nvResult, svResult );
+ if (nvResult = 16) then
+ bIs32BitSetup = FALSE; // running 16-bit setup
+ return 0; // no additional information required
+ endif;
+
+ // --- 32-bit testing after this point ---
+
+ // Determine the target system's operating system.
+ GetSystemInfo( OS, nvResult, svResult );
+
+ if (nvResult = IS_WINDOWSNT) then
+ // Running Windows NT.
+ bWinNT = TRUE;
+
+ // Check to see if the shell being used is EXPLORER shell.
+ if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
+ if (nvResult >= 4) then
+ bIsShellExplorer = TRUE;
+ endif;
+ endif;
+
+ elseif (nvResult = IS_WINDOWS95 ) then
+ bIsShellExplorer = TRUE;
+
+ endif;
+
+end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdWelcome //
+// //
+// Purpose: This function handles the standard welcome dialog. //
+// //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdWelcome()
+ NUMBER nResult;
+ STRING szTitle, szMsg;
+ begin
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SdWelcome( szTitle, szMsg );
+
+ return nResult;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdShowInfoList //
+// //
+// Purpose: This function displays the general information list dialog. //
+// //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdShowInfoList()
+ NUMBER nResult;
+ LIST list;
+ STRING szTitle, szMsg, szFile;
+ begin
+
+ szFile = SUPPORTDIR ^ "announce";
+
+ list = ListCreate( STRINGLIST );
+ ListReadFromFile( list, szFile );
+ szTitle = "";
+ szMsg = " ";
+ nResult = SdShowInfoList( szTitle, szMsg, list );
+
+ ListDestroy( list );
+
+ return nResult;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdAskDestPath //
+// //
+// Purpose: This function asks the user for the destination directory. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdAskDestPath()
+ NUMBER nResult;
+ STRING szTitle, szMsg;
+ begin
+
+ szTitle = "";
+ szMsg = "WARNING! The path must not contain spaces.";
+ nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
+
+ TARGETDIR = svDir;
+
+ return nResult;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdSetupType //
+// //
+// Purpose: This function displays the standard setup type dialog. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdSetupType()
+ NUMBER nResult, nType;
+ STRING szTitle, szMsg;
+ begin
+
+ switch (svSetupType)
+ case "Typical":
+ nType = TYPICAL;
+ case "Custom":
+ nType = CUSTOM;
+ case "Compact":
+ nType = COMPACT;
+ case "":
+ svSetupType = "Typical";
+ nType = TYPICAL;
+ endswitch;
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SetupType( szTitle, szMsg, "", nType, 0 );
+
+ switch (nResult)
+ case COMPACT:
+ svSetupType = "Compact";
+ case TYPICAL:
+ svSetupType = "Typical";
+ case CUSTOM:
+ svSetupType = "Custom";
+ endswitch;
+
+ return nResult;
+ end;
+
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdComponentDialog2 //
+// //
+// Purpose: This function displays the custom component dialog. //
+// //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdComponentDialog2()
+ NUMBER nResult;
+ STRING szTitle, szMsg;
+ begin
+
+ if ((svSetupType != "Custom") && (svSetupType != "")) then
+ return 0;
+ endif;
+
+ szTitle = "";
+ szMsg = "";
+ nResult = SdComponentDialog2( szTitle, szMsg, svDir, "" );
+
+ return nResult;
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: CheckListScreen //
+// //
+// Purpose: Show a check-list of post-install user actions. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function CheckListScreen()
+ BOOL bDone;
+ NUMBER nCmdValue;
+ begin
+ EzDefineDialog("CHECKLIST", "", "", 30001);
+
+ bDone = FALSE;
+ while (bDone=FALSE)
+ nCmdValue = WaitOnDialog("CHECKLIST");
+ switch (nCmdValue)
+ case DLG_INIT:
+ // Process the Next button.
+ case SD_PBUT_CONTINUE:
+ bDone = TRUE;
+ // Process the Cancel button.
+ case SD_PBUT_EXITSETUP:
+ bDone = TRUE;
+ // Process the close dialog box button.
+ case DLG_CLOSE:
+ bDone = TRUE;
+ // Process dialog box errors.
+ case DLG_ERR:
+ MessageBox("Internal dialog box error", SEVERE);
+ bDone = TRUE;
+ endswitch;
+ endwhile;
+ // Identify the end of dialog box processing.
+ EndDialog("CHECKLIST");
+ // Free the dialog box and list from memory.
+ ReleaseDialog("CHECKLIST");
+ end;
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// Function: DialogShowSdFinishReboot //
+// //
+// Purpose: This function will show the last dialog of the product. //
+// It will allow the user to reboot and/or show some readme text. //
+// //
+///////////////////////////////////////////////////////////////////////////////
+function DialogShowSdFinishReboot()
+ NUMBER nResult, nDefOptions;
+ STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
+ NUMBER bOpt1, bOpt2;
+ begin
+
+ if (!BATCH_INSTALL) then
+ bOpt1 = FALSE;
+ bOpt2 = FALSE;
+ szMsg1 = "";
+ szMsg2 = "";
+ szOption1 = "";
+ szOption2 = "";
+ szTitle = "Installation is now complete.";
+ nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
+ return 0;
+ else
+ nDefOptions = SYS_BOOTMACHINE;
+ szTitle = "";
+ szMsg1 = "";
+ szMsg2 = "";
+ nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
+ return nResult;
+ endif;
+ end;
+
+function MyParsePath(szPath)
+ STRING szTmp,szPth;
+ NUMBER nPos;
+ begin
+ szPth = szPath;
+ listPath = ListCreate( STRINGLIST );
+
+ // Man, all I want is map. Please? :-)
+ nPos = StrFind ( szPth, ";");
+ while ( nPos > 0 )
+ StrSub ( szTmp, szPth, 0, nPos);
+ ListAddString ( listPath, szTmp, AFTER );
+ StrSub ( szTmp, szPth, nPos + 1, StrLength ( szPth) - nPos );
+ szPth = szTmp;
+ nPos = StrFind ( szPth, ";" );
+ endwhile;
+
+ return 0;
+ end;
+
+ function ForwardSlashify ( szStr , theRes )
+ NUMBER nPos;
+ STRING szTemp, szRes;
+ begin
+ // Tortuous piece of code to convert backslashes into
+ // forward ones.
+ nPos = StrFind ( szStr, "\\");
+ szRes="";
+ while ( nPos >= 0 )
+ StrSub ( szTemp, szStr, 0, nPos);
+ szRes = szRes + szTemp + "/";
+ StrSub ( szTemp, szStr, nPos + 1, StrLength ( szStr) - nPos );
+ szStr = szTemp;
+ nPos = StrFind ( szStr, "\\" );
+ endwhile;
+ StrSub ( szTemp, szStr, 0, StrLength (szStr));
+ szRes = szRes + szTemp;
+ theRes = szRes;
+ return 0;
+ end;
+
+ function CreateExecPerlScript ( szPath, szFileName )
+ NUMBER nResult, writeHandle, readHandle;
+ STRING szLine;
+ begin
+ VarSave (SRCTARGETDIR);
+ SRCDIR = szPath;
+ TARGETDIR = szPath;
+ DeleteFile ( szFileName + ".bak");
+ RenameFile ( szFileName, szFileName + ".bak");
+ VarRestore (SRCTARGETDIR);
+
+ OpenFileMode (FILE_MODE_APPEND);
+ if ( CreateFile ( writeHandle, szPath, szFileName ) < 0 ) then
+ MessageBox ("CreateFile " + szPath ^ szFileName + " failed", INFORMATION);
+ endif;
+ // append
+ WriteLine (writeHandle, "#!" + szPerlPath );
+ WriteLine (writeHandle, "$libdir='" + szLibDir + "';");
+ WriteLine (writeHandle, "$bindir='" + szBinDir + "';");
+ WriteLine (writeHandle, "$libexecdir='" + szLibExecDir + "';");
+ WriteLine (writeHandle, "$datadir='" + szDataDir + "';");
+ WriteLine (writeHandle, "$SED='sed';");
+ WriteLine (writeHandle, "$TMPDIR='C:/TEMP';");
+ WriteLine (writeHandle, "$RAWCPP='gcc -E';");
+ // For the benefit of mkdependHS, which doesn't get this prepended
+ WriteLine (writeHandle, "$INSTALLING=1;");
+
+ OpenFileMode (FILE_MODE_NORMAL);
+ if ( OpenFile ( readHandle, szPath, szFileName + ".bak") < 0 ) then
+ MessageBox ("OpenFile " + szPath ^ szFileName + ".bak failed", INFORMATION);
+ endif;
+
+ // copy the template over.
+ nResult = GetLine ( readHandle, szLine);
+ while ( nResult >= 0 )
+ WriteLine ( writeHandle, szLine);
+ nResult = GetLine ( readHandle, szLine);
+ endwhile;
+ if ( CloseFile( readHandle ) < 0 ) then
+ MessageBox ( "CloseFile " + szPath ^ szFileName + ".bak failed",
+ INFORMATION);
+ endif;
+ if ( CloseFile( writeHandle ) < 0 ) then
+ MessageBox ( "CloseFile " + szPath ^ szFileName + " failed",
+ INFORMATION);
+ endif;
+ // There's no way to set the 'x' bit using
+ // SetFileInfo(), but luckily it is not needed to run #! scripts
+ // under cygwin.
+ SetFileInfo ( szPath ^ szFileName, FILE_ATTRIBUTE, FILE_ATTR_NORMAL, "");
+ // Delete the .bak file
+ DeleteFile ( szPath ^ szFileName + ".bak");
+
+ return 0;
+ end;
+
+ function DropSuffix ( szInp, szOut )
+ NUMBER nResult, nLen;
+ STRING szTemp, szTemp2;
+ begin
+ nLen = 0;
+ szTemp2 = szInp;
+ nResult = StrFind ( szTemp2 , ".");
+ while ( nResult >= 0 )
+ nLen = nLen + nResult;
+ StrSub ( szTemp, szTemp2, nResult + 1, StrLength ( szTemp2) - nResult );
+ szTemp2 = szTemp;
+ nResult = StrFind ( szTemp2, "." );
+ if ( nResult >= 0 ) then
+ nLen = nLen + 1; // incl the previous . if there's more.
+ endif;
+ endwhile;
+ StrSub ( szOut, szInp, 0, nLen);
+ return 0;
+ end; \ No newline at end of file
diff --git a/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/ANNOUNCE b/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/ANNOUNCE
new file mode 100644
index 0000000000..87417db348
--- /dev/null
+++ b/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/ANNOUNCE
@@ -0,0 +1,116 @@
+ The Glasgow Haskell Compiler -- version 4.08
+ ==============================================
+
+We are pleased to announce a new release of the Glasgow Haskell
+Compiler (GHC), version 4.08. The source distribution is freely
+available via the World-Wide Web and through anon. FTP; details below.
+
+Haskell is "the" standard lazy functional programming language; the
+current language version is Haskell 98, agreed in December 1998.
+Haskell related information is available from the Haskell home page at
+
+ http://www.haskell.org/
+
+GHC's Web page lives at
+
+ http://www.haskell.org/ghc/
+
++ What's new
+=============
+
+This should be a stable release. There have been many enhancements
+since 4.06, and shed-loads of bug-fixes (one shed (imperial) ~ one ton
+(US)).
+
+There are the following changes
+
+ - New profiling subsystem, based on cost-centre stacks.
+
+ - Working x86 native code generator: now it works properly, runs
+ about twice as fast as compiling via C, and is on a par for
+ run-time speed (except in FP-intensive programs).
+
+ - Implicit parameters (i.e. dynamic scoping without the pain).
+
+ - DEPRECATED pragma for marking obsolescent interfaces.
+
+ - In the wake of hslibs, a new package system for
+ libraries. -package should now be used instead of -syslib.
+
+ - Result type signatures work.
+
+ - Many tiresome long-standing bugs and problems (e.g. the trace
+ problem) have been fixed.
+
+ - Many error messages have been made more helpful and/or
+ accurate.
+
+For full details see the release notes:
+
+ http://www.haskell.org/ghc/docs/4.08/users_guide/release-4-08.html
+
+
++ Mailing lists
+================
+
+We run mailing lists for GHC users and bug reports; to subscribe, send
+mail to majordomo@haskell.org; the msg body should be:
+
+ subscribe glasgow-haskell-{users,bugs} Your Name <you@where.soever>
+
+or
+
+ subscribe cvs-ghc Your Name <you@where.soever>
+
+Please send bug reports about GHC to glasgow-haskell-bugs@haskell.org;
+GHC users hang out on glasgow-haskell-users@haskell.org. Bleeding
+edge CVS users party on cvs-ghc@haskell.org.
+
+
++ On-line GHC-related resources
+================================
+
+Relevant URLs on the World-Wide Web:
+
+GHC home page http://www.haskell.org/ghc/
+Haskell home page http://www.haskell.org/
+comp.lang.functional FAQ http://www.cs.nott.ac.uk/~gmh/faq.html
+
+
++ How to get it
+================
+
+The easy way is to go to the WWW page, which should be
+self-explanatory:
+
+ http://www.haskell.org/ghc/
+
+Once you have the distribution, please follow the pointers in the
+README file to find all of the documentation about this release. NB:
+preserve modification times when un-tarring the files (no `m' option
+for tar, please)!
+
+
++ System requirements
+======================
+
+To compile the sources, you need a machine with 32+MB memory, GNU C
+(`gcc'), `perl' plus a version of GHC installed (3.02 at least). This
+release is known to work on the following platforms:
+
+ * i386-unknown-{linux,freebsd,netbsd,cygwin32,mingw32}
+ * sparc-sun-{sunos4,solaris2}
+ * hppa1.1-hp-hpux{9,10}
+
+Ports to the following platforms should be relatively easy (for a
+wunderhacker), but haven't been tested due to lack of time/hardware:
+
+ * i386-unknown-solaris2
+ * alpha-dec-osf{2,3}
+ * mips-sgi-irix{5,6}
+ * {rs6000,powerpc}-ibm-aix
+
+The builder's guide included in distribution gives a complete
+run-down of what ports work; an on-line version can be found at
+
+ http://www.haskell.org/ghc/docs/4.08/building/building-guide.html
diff --git a/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/_IsUser.dll b/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/_IsUser.dll
new file mode 100644
index 0000000000..836275022b
--- /dev/null
+++ b/InstallShield/Setup Files/Compressed Files/Language Independent/OS Independent/_IsUser.dll
Binary files differ
diff --git a/InstallShield/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp b/InstallShield/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp
new file mode 100644
index 0000000000..82459b0a38
--- /dev/null
+++ b/InstallShield/Setup Files/Uncompressed Files/Language Independent/OS Independent/setup.bmp
Binary files differ
diff --git a/InstallShield/Shell Objects/Default.shl b/InstallShield/Shell Objects/Default.shl
new file mode 100644
index 0000000000..8ba3176785
--- /dev/null
+++ b/InstallShield/Shell Objects/Default.shl
@@ -0,0 +1,12 @@
+[Data]
+Folder3=<FOLDER_STARTUP>
+Group0=Main
+Group1=Startup
+Folder0=<FOLDER_DESKTOP>
+Folder1=<FOLDER_STARTMENU>
+Folder2=<FOLDER_PROGRAMS>
+
+[Info]
+Type=ShellObject
+Version=2.10.000
+
diff --git a/InstallShield/String Tables/0009-English/value.shl b/InstallShield/String Tables/0009-English/value.shl
new file mode 100644
index 0000000000..17ffc5217b
--- /dev/null
+++ b/InstallShield/String Tables/0009-English/value.shl
@@ -0,0 +1,28 @@
+[Data]
+TITLE_MAIN=Glasgow Haskell Compiler - version 4.08.1 (September '00)
+HASKELL_REG_ROOT=Software\\Haskell
+GHC_SYSLIBS_WAYS=seq
+COMPANY_NAME=University of Glasgow
+ERROR_COMPONENT=Component:
+COMPANY_NAME16=University of Glasgow
+GHC_SYSLIBS=std lang data num util text net greencard win32
+PRODUCT_VERSION=4.08.1
+ERROR_MOVEDATA=An error occurred during the move data process: %d
+ERROR_FILEGROUP=File Group:
+PRODUCT_NAME_SHORT=ghc
+UNINST_KEY=Glasgow Haskell Compiler
+TITLE_CAPTIONBAR=Glasgow Haskell Compiler Setup
+PRODUCT_NAME16=Glasgow Haskell Compiler
+ERROR_VGARESOLUTION=This program requires VGA or better resolution.
+ERROR_FILE=File:
+FOLDER_NAME=GHC
+UNINST_DISPLAY_NAME=Glasgow Haskell Compiler - version 4.08.1 (September '00)
+PRODUCT_KEY=ghc-4.08.1
+PRODUCT_NAME=Glasgow Haskell Compiler
+ERROR_UNINSTSETUP=unInstaller setup failed to initialize. You may not be able to uninstall this product.
+
+[General]
+Language=0009
+Type=STRINGTABLESPECIFIC
+Version=1.00.000
+
diff --git a/InstallShield/String Tables/Default.shl b/InstallShield/String Tables/Default.shl
new file mode 100644
index 0000000000..2d5860379b
--- /dev/null
+++ b/InstallShield/String Tables/Default.shl
@@ -0,0 +1,94 @@
+[TITLE_MAIN]
+Comment=
+
+[HASKELL_REG_ROOT]
+Comment=
+
+[GHC_SYSLIBS_WAYS]
+Comment=
+
+[COMPANY_NAME]
+Comment=
+
+[ERROR_COMPONENT]
+Comment=
+
+[COMPANY_NAME16]
+Comment=
+
+[GHC_SYSLIBS]
+Comment=
+
+[PRODUCT_VERSION]
+Comment=
+
+[ERROR_MOVEDATA]
+Comment=
+
+[ERROR_FILEGROUP]
+Comment=
+
+[PRODUCT_NAME_SHORT]
+Comment=
+
+[Language]
+Lang0=0009
+CurrentLang=0
+
+[UNINST_KEY]
+Comment=
+
+[TITLE_CAPTIONBAR]
+Comment=
+
+[Data]
+Entry0=ERROR_VGARESOLUTION
+Entry18=GHC_SYSLIBS_WAYS
+Entry1=TITLE_MAIN
+Entry19=FOLDER_NAME
+Entry2=TITLE_CAPTIONBAR
+Entry3=UNINST_KEY
+Entry4=UNINST_DISPLAY_NAME
+Entry5=COMPANY_NAME
+Entry6=PRODUCT_NAME
+Entry7=PRODUCT_VERSION
+Entry8=PRODUCT_KEY
+Entry20=PRODUCT_NAME_SHORT
+Entry9=ERROR_MOVEDATA
+Entry10=ERROR_UNINSTSETUP
+Entry11=COMPANY_NAME16
+Entry12=PRODUCT_NAME16
+Entry13=ERROR_COMPONENT
+Entry14=ERROR_FILEGROUP
+Entry15=ERROR_FILE
+Entry16=HASKELL_REG_ROOT
+Entry17=GHC_SYSLIBS
+
+[PRODUCT_NAME16]
+Comment=
+
+[ERROR_VGARESOLUTION]
+Comment=
+
+[ERROR_FILE]
+Comment=
+
+[FOLDER_NAME]
+Comment=
+
+[General]
+Type=STRINGTABLE
+Version=1.00.000
+
+[UNINST_DISPLAY_NAME]
+Comment=
+
+[PRODUCT_KEY]
+Comment=
+
+[PRODUCT_NAME]
+Comment=
+
+[ERROR_UNINSTSETUP]
+Comment=
+
diff --git a/InstallShield/Text Substitutions/Build.tsb b/InstallShield/Text Substitutions/Build.tsb
new file mode 100644
index 0000000000..786d796baf
--- /dev/null
+++ b/InstallShield/Text Substitutions/Build.tsb
@@ -0,0 +1,31 @@
+[<PROGRAMFILES>]
+Value=
+KeyType=4
+
+[<WINSYSDIR>]
+Value=
+KeyType=4
+
+[<COMMONFILES>]
+Value=
+KeyType=4
+
+[<WINDIR>]
+Value=
+KeyType=4
+
+[Data]
+Key0=<PROGRAMFILES>
+Key1=<COMMONFILES>
+Key2=<WINDIR>
+Key3=<WINSYSDIR>
+Key4=<ISPROJECTDIR>
+
+[<ISPROJECTDIR>]
+Value=
+KeyType=4
+
+[General]
+Type=TEXTSUB
+Version=1.20.000
+
diff --git a/InstallShield/Text Substitutions/Setup.tsb b/InstallShield/Text Substitutions/Setup.tsb
new file mode 100644
index 0000000000..41ab3803c7
--- /dev/null
+++ b/InstallShield/Text Substitutions/Setup.tsb
@@ -0,0 +1,86 @@
+[<SRCDIR>]
+Value=
+KeyType=4
+
+[<HKUS>]
+Value=
+KeyType=4
+
+[<HKCR>]
+Value=
+KeyType=4
+
+[<PROGRAMFILES>]
+Value=
+KeyType=4
+
+[<TARGETDIR>]
+Value=
+KeyType=4
+
+[<WINSYSDIR>]
+Value=
+KeyType=4
+
+[<COMMONFILES>]
+Value=
+KeyType=4
+
+[<WINDIR>]
+Value=
+KeyType=4
+
+[Data]
+Key0=<PROGRAMFILES>
+Key1=<COMMONFILES>
+Key2=<WINDIR>
+Key3=<WINSYSDIR>
+Key4=<TARGETDIR>
+Key5=<SUPPORTDIR>
+Key10=<HKDD>
+Key6=<SRCDIR>
+Key11=<HKUS>
+Key7=<HKLM>
+Key12=<HKCR>
+Key8=<HKCU>
+Key13=<SHELL_OBJECT_FOLDER>
+Key9=<HKCC>
+Key14=<DOCDIR>
+Key15=<UNINST>
+
+[<DOCDIR>]
+Value=
+KeyType=3
+
+[<SUPPORTDIR>]
+Value=
+KeyType=4
+
+[<SHELL_OBJECT_FOLDER>]
+Value=
+KeyType=4
+
+[General]
+Type=TEXTSUB
+Version=1.10.000
+
+[<HKLM>]
+Value=
+KeyType=4
+
+[<HKCU>]
+Value=
+KeyType=4
+
+[<HKCC>]
+Value=
+KeyType=4
+
+[<HKDD>]
+Value=
+KeyType=4
+
+[<UNINST>]
+Value=
+KeyType=4
+
diff --git a/InstallShield/decyg.pl b/InstallShield/decyg.pl
new file mode 100644
index 0000000000..7bcfd7e285
--- /dev/null
+++ b/InstallShield/decyg.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+# Patch a DLL or EXE to change the name of the Cygwin DLL it uses or is, so that we can
+# include our own Cygwin DLL that doesn't interfere with the rest of the system, for great justice
+
+@ARGV = ('-') unless @ARGV;
+@FILES = @ARGV;
+while ($ARGV = shift) {
+ $out = $ARGV . ".new";
+ open(IN, $ARGV) or warn "Can't open $ARGV: $!\n";
+ open(OUT, ">$out") or warn "Can't open $out: $!\n";
+ binmode IN;
+ while (<IN>) {
+ s/cygwin1/aybabtu/g;
+ s/c\000y\000g\000w\000i\000n\0001/a\000y\000b\000a\000b\000t\000u/g;
+ print OUT;
+ }
+ close IN;
+ close OUT;
+ unlink $ARGV;
+ rename $out, $ARGV;
+}
diff --git a/InstallShield/runexe.c b/InstallShield/runexe.c
new file mode 100644
index 0000000000..c1becfbcaa
--- /dev/null
+++ b/InstallShield/runexe.c
@@ -0,0 +1,59 @@
+#include <stdarg.h>
+#include <stdio.h>
+#include <windows.h>
+
+const char *prog = "runexe";
+
+#define BUFLEN 65537
+
+void die(char *fmt, ...)
+{
+ va_list ap = va_start(ap, fmt);
+
+ fprintf(stderr, "%s: ", prog);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ va_end(ap);
+ exit(1);
+}
+
+void warn(char *fmt, ...)
+{
+ va_list ap = va_start(ap, fmt);
+
+ fprintf(stderr, "%s: ", prog);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, "\n");
+ va_end(ap);
+}
+
+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
+{
+ STARTUPINFO sInfo;
+ PROCESS_INFORMATION pInfo;
+ TCHAR buf[BUFLEN];
+ DWORD retCode;
+
+ sInfo.cb = sizeof(STARTUPINFO);
+ sInfo.lpReserved = NULL;
+ sInfo.lpReserved2 = NULL;
+ sInfo.cbReserved2 = 0;
+ sInfo.lpDesktop = NULL;
+ sInfo.lpTitle = NULL;
+ sInfo.dwFlags = 0;
+
+ if (GetCurrentDirectory(BUFLEN, buf) == 0) die("couldn't get current directory");
+ if (strlen(lpszCmdParam) == 0) die("no parameters given");
+ warn("cwd: %s\n", buf);
+ warn("runexing >>>%s<<<\n", lpszCmdParam);
+ if (!CreateProcess(NULL, lpszCmdParam, NULL, NULL, TRUE, 0, NULL, NULL, &sInfo, &pInfo))
+ die("could not create process");
+
+ WaitForSingleObject(pInfo.hProcess, INFINITE);
+ if (GetExitCodeProcess(pInfo.hProcess, &retCode) == 0) retCode = -1;
+ CloseHandle(pInfo.hProcess);
+ CloseHandle(pInfo.hThread);
+ printf("return code %ld\n", retCode);
+
+ return retCode;
+}