* Uri.cs: Equals should be case insensitive for all parts except
[mono.git] / monowiz.win32.nsi
index 81f0bbe964c6ccd35fdb82856b93db07fcc8c851..c697efd86f3476e6fad035e2e07d812d7906fae2 100644 (file)
@@ -1,13 +1,16 @@
-; =====================================================
-; mono.nsi - Mono Setup wizard for windows
-; =====================================================
+; =================================================================
+; mono.nsi - This NSIS script creates Mono Setup wizard for Windows
+;
+;            Requires NSIS 2.0 (Nullsoft Scriptable Install System)
+;            From http://nsis.sourceforge.net/site/index.php
+; =================================================================
 ;
 ; (C) Copyright 2003 by Johannes Roith
-; (C) Copyright 2003 by Daniel Morgan
+; (C) Copyright 2003, 2004 by Daniel Morgan
 ;
 ; Authors: 
 ;       Johannes Roith <johannes@jroith.de>
-;       Daniel Morgan <danmorg@sc.rr.com>
+;       Daniel Morgan <danielmorgan@verizon.net>
 ;
 ; This .nsi includes code from the NSIS Archives:
 ; function StrReplace and VersionCheck 
 ; SET MILESTONE & SOURCE DIR
 ; =====================================================
 ; set by makefile!!
-;
-; !define MILESTONE "0.26" ;
-; !define SOURCE_INSTALL_DIR "/usr/monodist\\*" ;
+; !define MILESTONE 0.29 
+; !define SOURCE_INSTALL_DIR E:\cygwin\home\danmorg\mono029\*.*
+
+!define MILESTONE 0.31
+!define SOURCE_INSTALL_DIR c:\b\install\*.* 
+;E:\cygwin\home\danmorg\mono029\*.*
 
 ; =====================================================
 ; SET LOGO
@@ -58,9 +64,6 @@
 ; 4. The output file is mono-[MILESTONE]-win32-1.exe
 ;
 ;
-;
-;
-;
 ; =====================================================
 ; MONO & REGISTRY / DETECTING MONO
 ; =====================================================
 ; GENERAL SETTING - NEED NOT TO BE CHANGED
 ; =====================================================
 
- !define NAME "Mono" ;
- !define TARGET_INSTALL_DIR "$PROGRAMFILES\Mono-${MILESTONE}" ;
- !define OUTFILE "mono-${MILESTONE}-win32-1.exe" ;
+!define NAME "Mono" 
+!define TARGET_INSTALL_DIR "$PROGRAMFILES\Mono-${MILESTONE}" 
+!define OUTFILE mono-${MILESTONE}-win32-1.exe
 
-; =====================================================
-; SCRIPT
-; =====================================================
+Name ${NAME}\r
+Caption "Mono ${MILESTONE} Setup"\r
 
- !define MUI_PRODUCT "${NAME}"
- !define MUI_VERSION "${MILESTONE}"
- !define FULLNAME "${MUI_PRODUCT} ${MUI_VERSION}"
- !define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe"
- !define MUI_ICON "${NSISDIR}\Contrib\Icons\setup.ico"
- !define MUI_UNICON "${NSISDIR}\Contrib\Icons\normal-uninstall.ico"
- !define MUI_WELCOMEPAGE
- !define MUI_DIRECTORYPAGE
- !define MUI_DIRECTORYSELECTIONPAGE
- !include "${NSISDIR}\Contrib\Modern UI\System.nsh"
- !insertmacro MUI_SYSTEM
- !insertmacro MUI_LANGUAGE "ENGLISH"
+!include "MUI.nsh"\r
+!include "Sections.nsh"\r
 
+SetCompressor bzip2\r
+SilentInstall normal\r
+ShowInstDetails show\r
+SetDateSave on\r
+SetDatablockOptimize on\r
+CRCCheck on\r
+BGGradient 000000 800000 FFFFFF\r
+InstallColors FF8080 000030\r
+XPStyle on\r
+AutoCloseWindow false
 
- OutFile "${OUTFILE}"
- InstallDir "${TARGET_INSTALL_DIR}"
+; =====================================================
+; SCRIPT
+; =====================================================
 
+#!define MUI_WELCOMEPAGE
+#!define MUI_DIRECTORYPAGE
+#!define MUI_DIRECTORYSELECTIONPAGE
+!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Mono for Windows.\r\n\r\n\r\n$_CLICK"\r
+\r
+!insertmacro MUI_PAGE_WELCOME\r
+!insertmacro MUI_PAGE_DIRECTORY\r
+!insertmacro MUI_PAGE_INSTFILES\r
+\r
+!define MUI_FINISHPAGE_LINK "Visit Mono's website for the latest news"\r
+!define MUI_FINISHPAGE_LINK_LOCATION "http://www.go-mono.com/"\r
+\r
+!define MUI_FINISHPAGE_NOREBOOTSUPPORT\r
+\r
+!insertmacro MUI_PAGE_FINISH\r
+\r
+!insertmacro MUI_UNPAGE_CONFIRM\r
+!insertmacro MUI_UNPAGE_INSTFILES\r
+!insertmacro MUI_LANGUAGE "ENGLISH"
+
+AutoCloseWindow false\r
+ShowInstDetails show
+
+OutFile ${OUTFILE}
+InstallDir "${TARGET_INSTALL_DIR}"
 
 ;========================
 ; Uninstaller
@@ -186,8 +216,11 @@ SectionEnd
 
  NoAskInstall:
 
+ DetailPrint "Installing Mono Files..."
+ SetOverwrite on
  SetOutPath $INSTDIR
- File /r "${SOURCE_INSTALL_DIR}"
+ File /r ${SOURCE_INSTALL_DIR}
+
  WriteUninstaller Uninst.exe
 
  WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\Mono\${MILESTONE} SdkInstallRoot $INSTDIR
@@ -320,7 +353,7 @@ FileClose $0
 FileOpen $0 "$WINDIR\monobasepath.bat" "w"
 FileWrite $0 'set MONO_BASEPATH="$INSTDIR"$\r$\n'
 FileWrite $0 'set MONO_PATH=$INSTDIR\lib$\r$\n'
-FileWrite $0 'set MONO_CFG_DIR="$INSTDIR\etc\mono"'
+FileWrite $0 'set MONO_CFG_DIR=$INSTDIR\etc'
 FileClose $0
 
 
@@ -340,7 +373,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\mcs.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -362,7 +395,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\mbas.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -384,7 +417,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mint.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -406,7 +439,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 FileClose $0
@@ -427,7 +460,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\monodis.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -449,7 +482,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\monoilasm.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -472,7 +505,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\sqlsharp.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -494,7 +527,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\secutil.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -516,7 +549,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\cert2spec.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -539,7 +572,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\monoresgen.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -561,7 +594,7 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\monosn.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
@@ -573,7 +606,6 @@ FileClose $0
 
 FileOpen $0 "$WINDIR\cilc.bat" "w"
 
-
 FileWrite $0 "@echo off$\r$\n"
 FileWrite $0 "call monobasepath.bat$\r$\n"
 FileWrite $0 "set MONOARGS=$\r$\n"
@@ -584,12 +616,91 @@ FileWrite $0 "shift$\r$\n"
 FileWrite $0 "goto loop$\r$\n"
 FileWrite $0 ":done$\r$\n"
 FileWrite $0 "setlocal$\r$\n"
-FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;%path%"$\r$\n'
+FileWrite $0 'set path="$INSTDIR\bin\;$INSTDIR\lib\;$INSTDIR\icu\bin;%path%"$\r$\n'
 FileWrite $0 '"$INSTDIR\bin\mono.exe" "$INSTDIR\bin\cilc.exe" %MONOARGS%$\r$\n'
 FileWrite $0 "endlocal$\r$\n"
 
 FileClose $0
 
+; ============= glib-2.0.pc ===============\r
+FileOpen $0 "$INSTDIR\lib\pkgconfig\glib-2.0.pc" "w"\r
+FileWrite $0 "prefix=$6$\r$\n"\r
+FileWrite $0 "exec_prefix=$${prefix}$\r$\n"\r
+FileWrite $0 "libdir=$${exec_prefix}/lib$\r$\n"\r
+FileWrite $0 "includedir=$${prefix}/include$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "glib_genmarshal=glib-genmarshal$\r$\n"\r
+FileWrite $0 "gobject_query=gobject-query$\r$\n"\r
+FileWrite $0 "glib_mkenums=glib-mkenums$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "Name: GLib$\r$\n"\r
+FileWrite $0 "Description: C Utility Library$\r$\n"\r
+FileWrite $0 "Version: 2.0.4$\r$\n"\r
+FileWrite $0 "Libs: -L$${libdir} -lglib-2.0 -lintl -liconv $\r$\n"\r
+FileWrite $0 "Cflags: -I$${includedir}/glib-2.0 -I$${libdir}/glib-2.0/include $\r$\n"\r
+FileClose $0
+\r
+; ============= gmodule-2.0.pc ===============\r
+FileOpen $0 "$INSTDIR\lib\pkgconfig\gmodule-2.0.pc" "w"\r
+FileWrite $0 "prefix=$6$\r$\n"\r
+FileWrite $0 "exec_prefix=$${prefix}$\r$\n"\r
+FileWrite $0 "libdir=$${exec_prefix}/lib$\r$\n"\r
+FileWrite $0 "includedir=$${prefix}/include$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "gmodule_supported=true$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "Name: GModule$\r$\n"\r
+FileWrite $0 "Description: Dynamic module loader for GLib$\r$\n"\r
+FileWrite $0 "Requires: glib-2.0$\r$\n"\r
+FileWrite $0 "Version: 2.0.4$\r$\n"\r
+FileWrite $0 "Libs: -L$${libdir} -lgmodule-2.0 $\r$\n"\r
+FileWrite $0 "Cflags:$\r$\n"\r
+FileClose $0\r
+\r
+; ============= gobject-2.0.pc ===============\r
+FileOpen $0 "$INSTDIR\lib\pkgconfig\gobject-2.0.pc" "w"\r
+FileWrite $0 "prefix=$6$\r$\n"\r
+FileWrite $0 "exec_prefix=$${prefix}$\r$\n"\r
+FileWrite $0 "libdir=$${exec_prefix}/lib$\r$\n"\r
+FileWrite $0 "includedir=$${prefix}/include$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "Name: GObject$\r$\n"\r
+FileWrite $0 "Description: GLib Type, Object, Parameter and Signal Library$\r$\n"\r
+FileWrite $0 "Requires: glib-2.0$\r$\n"\r
+FileWrite $0 "Version: 2.0.4$\r$\n"\r
+FileWrite $0 "Libs: -L$${libdir} -lgobject-2.0$\r$\n"\r
+FileWrite $0 "Cflags:$\r$\n"\r
+FileClose $0\r
+\r
+; ============= gthread-2.0.pc ===============\r
+FileOpen $0 "$INSTDIR\lib\pkgconfig\gthread-2.0.pc" "w"\r
+FileWrite $0 "prefix=$6$\r$\n"\r
+FileWrite $0 "exec_prefix=$${prefix}$\r$\n"\r
+FileWrite $0 "libdir=$${exec_prefix}/lib$\r$\n"\r
+FileWrite $0 "includedir=$${prefix}/include$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "Name: GThread$\r$\n"\r
+FileWrite $0 "Description: Thread support for GLib$\r$\n"\r
+FileWrite $0 "Requires: glib-2.0$\r$\n"\r
+FileWrite $0 "Version: 2.0.4$\r$\n"\r
+FileWrite $0 "Libs: -L$${libdir} -lgthread-2.0 $\r$\n"\r
+FileWrite $0 "Cflags: -D_REENTRANT$\r$\n"\r
+FileClose $0\r
+
+; ============= libintl.pc ===============\r
+FileOpen $0 "$INSTDIR\lib\pkgconfig\libintl.pc" "w"\r
+FileWrite $0 "prefix=$6$\r$\n"\r
+FileWrite $0 "exec_prefix=$${prefix}$\r$\n"\r
+FileWrite $0 "libdir=$${exec_prefix}/lib$\r$\n"\r
+FileWrite $0 "includedir=$${prefix}/include$\r$\n"\r
+FileWrite $0 "$\r$\n"\r
+FileWrite $0 "Name: libintl$\r$\n"\r
+FileWrite $0 "Description: The intl library from GNU gettext$\r$\n"\r
+FileWrite $0 "Version: 0.10.40-tml$\r$\n"\r
+FileWrite $0 "Libs: -L$${libdir} -lintl$\r$\n"\r
+FileWrite $0 "Cflags: -I$${includedir}$\r$\n"\r
+FileClose $0\r
+
 NoInstall:
 SectionEnd
 
@@ -696,4 +807,4 @@ Function VersionCheck
   Pop $R0
   Pop $1
   Exch $0
-FunctionEnd
\ No newline at end of file
+FunctionEnd