diff options
author | Chris Johns <chrisj@rtems.org> | 2007-08-20 02:12:48 +0000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2007-08-20 02:12:48 +0000 |
commit | 598aab1fe570501e585539ccf30c26450d0b1088 (patch) | |
tree | ba34ec03f23d8c89672f06aee8b89c3db5e0bbe1 /contrib | |
parent | Spacing. (diff) | |
download | rtems-598aab1fe570501e585539ccf30c26450d0b1088.tar.bz2 |
2007-08-20 Chris Johns <chisj@rtems.org>
* filewrite.nsi, getparameters.nsi, instance-check.nsi,
mingw-path.nsi, sm-dummy.nsi, strslash.nsi, strstr.nsi,
options.nsi: Added the shared between the 2 installer scripts.
* msys-path.nsi: Fixed the last LF bug.
* rtems-autotools.nsi, rtems-tools.nsi: Fixed the instance check,
added a start menu, remove pages from target installers.
* rtems.ini: Fixed the URL links. Added support link.
* rtems_logo.bmp: Trimmed a little more to get a better image.
* ba-wrap.sh: Stop on a error.
* build-exes.sh: Use the option parameter variables. Change the
order the section appear in the installer.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/mingw/ChangeLog | 20 | ||||
-rw-r--r-- | contrib/mingw/ba-wrap.sh | 4 | ||||
-rwxr-xr-x | contrib/mingw/build-exes.sh | 6 | ||||
-rw-r--r-- | contrib/mingw/filewrite.nsi | 5 | ||||
-rw-r--r-- | contrib/mingw/getparameters.nsi | 41 | ||||
-rw-r--r-- | contrib/mingw/instance-check.nsi | 23 | ||||
-rw-r--r-- | contrib/mingw/mingw-path.nsi | 69 | ||||
-rw-r--r-- | contrib/mingw/msys-path.nsi | 42 | ||||
-rw-r--r-- | contrib/mingw/options.nsi | 54 | ||||
-rw-r--r-- | contrib/mingw/rtems-autotools.nsi | 171 | ||||
-rw-r--r-- | contrib/mingw/rtems-tools.nsi | 275 | ||||
-rw-r--r-- | contrib/mingw/rtems.ini | 81 | ||||
-rw-r--r-- | contrib/mingw/rtems_logo.bmp | bin | 115974 -> 107766 bytes | |||
-rw-r--r-- | contrib/mingw/sm-dummy.nsi | 36 | ||||
-rw-r--r-- | contrib/mingw/strslash.nsi | 29 | ||||
-rw-r--r-- | contrib/mingw/strstr.nsi | 63 |
16 files changed, 632 insertions, 287 deletions
diff --git a/contrib/mingw/ChangeLog b/contrib/mingw/ChangeLog index 1b8639d7cd..d0a6ac27d3 100644 --- a/contrib/mingw/ChangeLog +++ b/contrib/mingw/ChangeLog @@ -1,3 +1,23 @@ +2007-08-20 Chris Johns <chisj@rtems.org> + + * filewrite.nsi, getparameters.nsi, instance-check.nsi, + mingw-path.nsi, sm-dummy.nsi, strslash.nsi, strstr.nsi, + options.nsi: Added the shared between the 2 installer scripts. + + * msys-path.nsi: Fixed the last LF bug. + + * rtems-autotools.nsi, rtems-tools.nsi: Fixed the instance check, + added a start menu, remove pages from target installers. + + * rtems.ini: Fixed the URL links. Added support link. + + * rtems_logo.bmp: Trimmed a little more to get a better image. + + * ba-wrap.sh: Stop on a error. + + * build-exes.sh: Use the option parameter variables. Change the + order the section appear in the installer. + 2007-08-03 Chris Johns <chisj@rtems.org> * rtems_logo.bmp: Clipped to get the correct proportions in the installer's header. diff --git a/contrib/mingw/ba-wrap.sh b/contrib/mingw/ba-wrap.sh index 8ed89237e8..be73196659 100644 --- a/contrib/mingw/ba-wrap.sh +++ b/contrib/mingw/ba-wrap.sh @@ -12,4 +12,8 @@ echo "Build output: $source/at-log.txt" echo $source/build-autotools.sh $* 2>&1 >> $source/at-log.txt ec=$? +if [ $ec -ne 0 ]; then + echo "ERROR: code '$ec'. Press Any Key to continue" + read +fi exit $ec diff --git a/contrib/mingw/build-exes.sh b/contrib/mingw/build-exes.sh index 2017dd83a4..d21939ccfa 100755 --- a/contrib/mingw/build-exes.sh +++ b/contrib/mingw/build-exes.sh @@ -170,7 +170,7 @@ target_installer_exec() echo " Strcpy \$1 \"\$INSTDIR\\Packages\\$outfile\"" >> $of echo " ${t}_found:" >> $of echo " DetailPrint \"Installing: \$1\"" >> $of - echo " ExecWait '\"\$1\" /S /D=\$INSTDIR' \$0" >> $of + echo " ExecWait '\"\$1\" \$SilentOption \$DebugOption /D=\$INSTDIR' \$0" >> $of echo " BringToFront" >> $of echo " IntCmp \$0 0 +3" >> $of echo " MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \"${!tst} install failed. Do you wish to continue ?\" IDYES +2" >> $of @@ -367,12 +367,14 @@ create_installer() fi echo "!include \"$treloc/rtems-files.nsi\"" >> $of - echo "!include \"$source/rtems-tools.nsi\"" >> $of + echo "!include \"$source/options.nsi\"" >> $of if [ $n = $common_label ]; then echo "!include \"$relocation/rtems-sections.nsi\"" >> $of fi + echo "!include \"$source/rtems-tools.nsi\"" >> $of + echo "cp $source/rtems.ini $treloc/rtems.ini" $cp $source/rtems.ini $treloc/rtems.ini check "coping the dialog definition file: $treloc/rtems.ini" diff --git a/contrib/mingw/filewrite.nsi b/contrib/mingw/filewrite.nsi new file mode 100644 index 0000000000..e18a46fce3 --- /dev/null +++ b/contrib/mingw/filewrite.nsi @@ -0,0 +1,5 @@ +!macro FILE_WRITE_LINE Handle Text + FileWrite ${Handle} `${Text}` + FileWriteByte ${Handle} "13" + FileWriteByte ${Handle} "10" +!macroend diff --git a/contrib/mingw/getparameters.nsi b/contrib/mingw/getparameters.nsi new file mode 100644 index 0000000000..790adc7fe1 --- /dev/null +++ b/contrib/mingw/getparameters.nsi @@ -0,0 +1,41 @@ + ; GetParameters + ; input, none + ; output, top of stack (replaces, with e.g. whatever) + ; modifies no other variables. + +Function GetParameters + + Push $R0 + Push $R1 + Push $R2 + Push $R3 + + StrCpy $R2 1 + StrLen $R3 $CMDLINE + + ;Check for quote or space + StrCpy $R0 $CMDLINE $R2 + StrCmp $R0 '"' 0 +3 + StrCpy $R1 '"' + Goto loop + StrCpy $R1 " " + + loop: + IntOp $R2 $R2 + 1 + StrCpy $R0 $CMDLINE 1 $R2 + StrCmp $R0 $R1 get + StrCmp $R2 $R3 get + Goto loop + + get: + IntOp $R2 $R2 + 1 + StrCpy $R0 $CMDLINE 1 $R2 + StrCmp $R0 " " get + StrCpy $R0 $CMDLINE "" $R2 + + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 + +FunctionEnd diff --git a/contrib/mingw/instance-check.nsi b/contrib/mingw/instance-check.nsi new file mode 100644 index 0000000000..944c560bda --- /dev/null +++ b/contrib/mingw/instance-check.nsi @@ -0,0 +1,23 @@ +; +; $Id$ +; +; RTEMS Tools Installer. +; +; Copyright Chris Johns (chrisj@rtems.org) +; + +Function CheckInstance + Push $R0 + System::Call 'kernel32::CreateMutexA(i 0, i 0, t "RTEMSTools") i .r1 ?e' + Pop $R0 +!ifdef COMMON_FILES + StrCmp $R0 0 +3 + MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." + Abort +!else + StrCmp $R0 0 0 +3 + MessageBox MB_OK|MB_ICONEXCLAMATION "This installer should not be run directly. Please run the rtems${PRODUCT_VERSION}-tools-${RTEMS_BUILD_VERSION}.exe installer." + Abort +!endif + Pop $R0 +FunctionEnd diff --git a/contrib/mingw/mingw-path.nsi b/contrib/mingw/mingw-path.nsi new file mode 100644 index 0000000000..0999d5a7ab --- /dev/null +++ b/contrib/mingw/mingw-path.nsi @@ -0,0 +1,69 @@ +; +; $Id$ +; +; RTEMS Tools Installer. +; +; Copyright Chris Johns (chrisj@rtems.org) +; + +Function MinGWPath + Push $R0 + ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MinGW" "InstallLocation" + Exch $R0 +FunctionEnd + +Function MinGWCheckFile + Exch $R0 + DetailPrint "Checking for MinGW $R0." + IfFileExists "$R0" +5 0 + DetailPrint "Could not find $R0." + Exch $R0 + Return + StrCpy $R0 "ok" + Exch $R0 +FunctionEnd + +Function MinGWCheckExes + Exch $R0 + Push $R1 + StrCpy $R1 "$R0/bin/gcc.exe" + Push $R1 + Call MinGWCheckFile + Pop $R1 + StrCmp "ok" 0 Done + StrCpy $R1 "$R0/bin/as.exe" + Push $R1 + Call MinGWCheckFile + Pop $R1 + StrCmp "ok" 0 Done + StrCpy $R1 "$R0/bin/ld.exe" + Push $R1 + Call MinGWCheckFile + Pop $R1 +Done: + StrCpy $R0 $R1 + Pop $R1 + Exch $R0 +FunctionEnd + +Function MinGWDetect + Push $R0 + Push $R1 + StrCpy $R1 "c:\mingw" + DetailPrint "Checking MinGW default install path: $R1" + Push $R1 + Call MinGWCheckExes + Pop $R0 + StrCmp $R0 "ok" Found + DetailPrint "Checking Registry for MinGW Installed Path" + Call MinGWPath + Pop $R0 + ifErrors 0 +3 + MessageBox MB_OK "MinGW Not Installed. Please install MinGW from http://www.mingw.org/" + Abort + Found: + StrCpy $R0 $R1 + DetailPrint "MinGW Found: $R0" + Pop $R1 + Exch $R0 +FunctionEnd diff --git a/contrib/mingw/msys-path.nsi b/contrib/mingw/msys-path.nsi index e99972b379..c90da3f673 100644 --- a/contrib/mingw/msys-path.nsi +++ b/contrib/mingw/msys-path.nsi @@ -1,3 +1,13 @@ +; +; $Id$ +; +; RTEMS Tools Installer. +; +; Copyright Chris Johns (chrisj@rtems.org) +; + +!include "${RTEMS_SOURCE}/strslash.nsi" + Function MsysPath Push $R0 ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MSYS-1.0_is1" "Inno Setup: App Path" @@ -107,3 +117,35 @@ Function MSYSDetectSilent Pop $R1 Exch $R0 FunctionEnd + +Function MSYSFstabUpdate + Call MSYSDetectSilent + Pop $R0 + Push $R0 + Push $INSTDIR + Push '\\' + Pop $R0 + Call StrSlash + Pop $R1 + Pop $R0 + DetailPrint "Setting MSYS fstab: $R1 -> /opt/rtems-${PRODUCT_VERSION}" + StrCpy $R1 "$R1 /opt/rtems-${PRODUCT_VERSION}$\n" + FileOpen $9 "$R0\etc\fstab" a + ifErrors 0 +3 + MessageBox MB_OK "Cannot open $R0\etc\fstab. MSYS mount point not added." + Goto Close + FileSeek $9 0 SET +ReadLoop: + FileRead $9 $R2 + ifErrors Append + StrCmp $R1 $R2 Close ReadLoop +Append: + FileSeek $9 0 END + StrCpy $R2 $R2 1 -1 + StrCmp $R2 "$\n" +2 0 + FileWrite $9 "$\n" + FileWrite $9 $R1 +Close: + FileClose $9 + ClearErrors +FunctionEnd diff --git a/contrib/mingw/options.nsi b/contrib/mingw/options.nsi new file mode 100644 index 0000000000..b100978fb4 --- /dev/null +++ b/contrib/mingw/options.nsi @@ -0,0 +1,54 @@ +; +; $Id$ +; +; RTEMS Tools Installer. +; +; Copyright Chris Johns (chrisj@rtems.org) +; + +!ifndef OPTIONS_DEFINED +!define OPTIONS_DEFINED + +!include "${RTEMS_SOURCE}/strstr.nsi" +!include "${RTEMS_SOURCE}/getparameters.nsi" + +Var "SilentOption" +Var "DebugOption" +Var "DebugScriptOption" + +Function CheckCmdLineOption + Exch $R0 + Call GetParameters + Push $R0 + Call StrStr + Exch $R1 + StrCmp $R1 "" 0 +2 + StrCpy $R0 "not-found" + Pop $R1 + Exch $R0 +FunctionEnd + +Function CheckSilent + StrCpy $SilentOption "" + Push $R0 + Push "/SILENT" + Call CheckCmdLineOption + Pop $R0 + StrCmp $R0 "not-found" +2 0 + StrCpy $SilentOption "/S" + Pop $R0 +FunctionEnd + +Function CheckDebug + StrCpy $DebugOption "" + Push $R0 + Push "/DEBUG" + Call CheckCmdLineOption + Pop $R0 + StrCmp $R0 "not-found" +3 0 + StrCpy $DebugScriptOption "-d" + StrCpy $DebugOption "/DEBUG" + Pop $R0 +FunctionEnd + +!endif diff --git a/contrib/mingw/rtems-autotools.nsi b/contrib/mingw/rtems-autotools.nsi index 846fb87625..6f60213671 100644 --- a/contrib/mingw/rtems-autotools.nsi +++ b/contrib/mingw/rtems-autotools.nsi @@ -12,6 +12,10 @@ !define PRODUCT_VERSION ${RTEMS_VERSION} !define PRODUCT_PUBLISHER "RTEM Project Team" !define PRODUCT_WEB_SITE "http://www.rtems.org/" +!define PRODUCT_TITLE "${PRODUCT_NAME} ${PRODUCT_VERSION} (${RTEMS_TARGET})" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" +!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" ; MUI 1.66 compatible ------ !include "MUI.nsh" @@ -26,21 +30,18 @@ !define MUI_COMPONENTSPAGE_SMALLDESC -; Welcome page -!insertmacro MUI_PAGE_WELCOME -; Details of what will happen. -Page custom RTEMSMessage -; License page -;!define MUI_LICENSEPAGE_CHECKBOX -!insertmacro MUI_PAGE_LICENSE "${RTEMS_LICENSE_FILE}" -; Components page -!insertmacro MUI_PAGE_COMPONENTS -; Directory page -!insertmacro MUI_PAGE_DIRECTORY +; Start Menu Support +!include "${RTEMS_SOURCE}/sm-dummy.nsi" +var smfolder +!define MUI_STARTMENUPAGE_DISABLE +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "RTEMS ${PRODUCT_VERSION}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" +!insertmacro MUI_PAGE_STARTMENU_DUMMY Application $smfolder + ; Instfiles page !insertmacro MUI_PAGE_INSTFILES -; Finish page -!insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES @@ -63,15 +64,21 @@ ShowInstDetails show ShowUnInstDetails show BrandingText "RTEMS ${RTEMS_TARGET} Tools v${PRODUCT_VERSION}" AllowRootDirInstall false -AutoCloseWindow false +AutoCloseWindow true CRCCheck force +!include "${RTEMS_SOURCE}/instance-check.nsi" +!include "${RTEMS_SOURCE}/mingw-path.nsi" !include "${RTEMS_SOURCE}/msys-path.nsi" +!include "${RTEMS_SOURCE}/options.nsi" +!include "${RTEMS_SOURCE}/filewrite.nsi" Section "RTEMS ${RTEMS_TARGET} Tools" SecTools SetDetailsView show AddSize ${RTEMS_TOOLS_SIZE} + Call MSYSFstabUpdate + /* * Detect if MSYS is installed. */ @@ -117,8 +124,8 @@ Section "RTEMS ${RTEMS_TARGET} Tools" SecTools Pop $R0 Call StrSlash Pop $R0 - DetailPrint "Building autoconf. Command window closes automatically." - ExecWait '"$9\bin\sh" --login -c "$R1 -p /opt/rtems-${PRODUCT_VERSION} -b $R2 -c $R0"' $0 + DetailPrint "Building automake. Command window closes automatically. Debug:$DebugScriptOption" + ExecWait '"$9\bin\sh" --login -c "$R1 $DebugScriptOption -p /opt/rtems-${PRODUCT_VERSION} -b $R2 -c $R0"' $0 BringToFront IntCmp $0 0 +3 MessageBox MB_OK "Autoconf build failed. See $INSTDIR\Packages\Source\at-log.txt" @@ -137,8 +144,8 @@ Section "RTEMS ${RTEMS_TARGET} Tools" SecTools Pop $R0 Call StrSlash Pop $R0 - DetailPrint "Building automake. Command window closes automatically." - ExecWait '"$9\bin\sh" --login -c "$R1 -p /opt/rtems-${PRODUCT_VERSION} -b $R2 -c $R0"' $0 + DetailPrint "Building automake. Command window closes automatically. Debug:$DebugScriptOption" + ExecWait '"$9\bin\sh" --login -c "$R1 $DebugScriptOption -p /opt/rtems-${PRODUCT_VERSION} -b $R2 -c $R0"' $0 BringToFront IntCmp $0 0 +3 MessageBox MB_OK "Automake build failed. See $INSTDIR\Packages\Source\at-log.txt" @@ -153,74 +160,15 @@ Section "RTEMS ${RTEMS_TARGET} Tools" SecTools RMDir /r "$INSTDIR\Packages\Build" SectionEnd -!macro FILE_WRITE_LINE Handle Text - FileWrite ${Handle} `${Text}` - FileWriteByte ${Handle} "13" - FileWriteByte ${Handle} "10" -!macroend - Function .onInit - ;Extract InstallOptions INI files - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "rtems.ini" -FunctionEnd - -Function RTEMSMessage - - !insertmacro MUI_HEADER_TEXT \ - "RTEMS Tools (Autoconf/Automake)" \ - "A tool set for the RTEMS operating system." - - ;Display the Install Options dialog - - Push $R0 - Push $R1 - Push $R2 - - InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\rtems.ini" - Pop $R0 - - GetDlgItem $R1 $R0 1200 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1201 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "12" "700" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1202 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1203 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1204 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1205 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1206 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - InstallOptions::show - Pop $R0 - - Pop $R2 - Pop $R1 - Pop $R0 - + ;Check if we are the correct instance for our mode. + Call CheckInstance + ;Handle the Command line options + Call CheckSilent + Call CheckDebug + ;See if MinGW and MSYS are installed + Call MinGWDetect + Call MSYSDetect FunctionEnd Var FileList @@ -323,54 +271,31 @@ Function un.RemoveFilesFromFile Pop $R7 FunctionEnd -; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') -; Push '\\' -; Pop $R0 -; Call StrSlash -; Pop $R0 -; ;Now $R0 contains 'c:/this/and/that/filename.htm' -Function StrSlash - Exch $R0 - Push $R1 - Push $R2 - StrCpy $R1 0 -loop: - IntOp $R1 $R1 - 1 - StrCpy $R2 $R0 1 $R1 - StrCmp $R2 "" done - StrCmp $R2 "\" 0 loop ;" keep to get Emacs for fontlock - StrCpy $R2 $R0 $R1 - Push $R1 - IntOp $R1 $R1 + 1 - StrCpy $R1 $R0 "" $R1 - StrCpy $R0 "$R2/$R1" - Pop $R1 - IntOp $R1 $R1 - 1 - Goto loop -done: - Pop $R2 - Pop $R1 - Exch $R0 -FunctionEnd - Section -Post StrCpy $R0 "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-${RTEMS_TARGET}-uninst.exe" + StrCpy $R1 "RTEMS ${RTEMS_TARGET} Tools.lnk" WriteUninstaller "$R0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "DisplayName" "$(^Name)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "UninstallString" "$R0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "DisplayVersion" "${PRODUCT_VERSION} Build-${RTEMS_BUILD_VERSION}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "URLInfoAbout" "${PRODUCT_WEB_SITE}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "Publisher" "${PRODUCT_PUBLISHER}" + !insertmacro MUI_STARTMENU_GETFOLDER "Application" $R2 + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$R2" + CreateDirectory "$SMPROGRAMS\$R2\Uninstall" + CreateShortCut "$SMPROGRAMS\$R2\Uninstall\$R1" "$R0" + !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section Uninstall SetDetailsView show - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" DetailPrint "Delete the installed files" Push "$INSTDIR\Uninstall\${RTEMS_AUTOCONF}-files" call un.RemoveFilesFromFile @@ -388,8 +313,10 @@ Section Uninstall !insertmacro RTEMS_DELETE_AUTOMAKE_PATCHES RMDir "$INSTDIR\Packages\Source" RMDir "$INSTDIR\Packages\Build" + !insertmacro MUI_STARTMENU_GETFOLDER "Application" $smfolder + Delete "$SMPROGRAMS\$smfolder\Uninstall\RTEMS ${RTEMS_TARGET} Tools.lnk" Delete $INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-${RTEMS_TARGET}-uninst.exe RMDir "$INSTDIR" DetailPrint "All done." - SetAutoClose false + SetAutoClose true SectionEnd diff --git a/contrib/mingw/rtems-tools.nsi b/contrib/mingw/rtems-tools.nsi index 92787e6188..251f429d48 100644 --- a/contrib/mingw/rtems-tools.nsi +++ b/contrib/mingw/rtems-tools.nsi @@ -12,11 +12,20 @@ !define PRODUCT_VERSION ${RTEMS_VERSION} !define PRODUCT_PUBLISHER "RTEMS Project Team" !define PRODUCT_WEB_SITE "http://www.rtems.org/" +!ifdef COMMON_FILES +!define PRODUCT_TITLE "${PRODUCT_NAME} ${PRODUCT_VERSION} (Build ${RTEMS_BUILD_VERSION})" +!else +!define PRODUCT_TITLE "${PRODUCT_NAME} ${PRODUCT_VERSION} (${RTEMS_TARGET})" +!endif +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" +!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" ; MUI 1.66 compatible ------ !include "MUI.nsh" ; MUI Settings +!define MUI_FUNCTION_GUIINIT !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" @@ -26,21 +35,45 @@ !define MUI_COMPONENTSPAGE_SMALLDESC +!ifdef COMMON_FILES ; Welcome page !insertmacro MUI_PAGE_WELCOME ; Details of what will happen. Page custom RTEMSMessage ; License page -;!define MUI_LICENSEPAGE_CHECKBOX !insertmacro MUI_PAGE_LICENSE "${RTEMS_LICENSE_FILE}" ; Components page !insertmacro MUI_PAGE_COMPONENTS + ; Directory page +!define MUI_PAGE_HEADER_SUBTEXT "Choose the folder in which to install the RTEMS Tools." +!define MUI_DIRECTORYPAGE_TEXT_TOP "${PRODUCT_NAME} will install RTEMS Tools in the following directory. To install in a different folder click Browse and select another folder. Click Next to continue." !insertmacro MUI_PAGE_DIRECTORY +!endif + +; Start menu page +!ifndef COMMON_FILES +!include "${RTEMS_SOURCE}/sm-dummy.nsi" +!endif +var smfolder +!define MUI_STARTMENUPAGE_NODISABLE +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "RTEMS ${PRODUCT_VERSION}" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" +!ifdef COMMON_FILES +!insertmacro MUI_PAGE_STARTMENU Application $smfolder +!else +!insertmacro MUI_PAGE_STARTMENU_DUMMY Application $smfolder +!endif + ; Instfiles page !insertmacro MUI_PAGE_INSTFILES + +!ifdef COMMON_FILES ; Finish page !insertmacro MUI_PAGE_FINISH +!endif ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES @@ -56,21 +89,27 @@ Page custom RTEMSMessage ReserveFile "rtems.ini" !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS -Name "${PRODUCT_NAME} ${PRODUCT_VERSION} (${RTEMS_TARGET})" !ifdef COMMON_FILES +Name "${PRODUCT_NAME} ${PRODUCT_VERSION} (Build ${RTEMS_BUILD_VERSION})" OutFile "${RTEMS_BINARY}/rtems${PRODUCT_VERSION}-tools-${RTEMS_BUILD_VERSION}.exe" +BrandingText "RTEMS Tools v${PRODUCT_VERSION}" +AutoCloseWindow false !else +Name "${PRODUCT_NAME} ${PRODUCT_VERSION} (${RTEMS_TARGET})" OutFile "${RTEMS_BINARY}/${RTEMS_OUTFILE}" +BrandingText "RTEMS ${RTEMS_TARGET} Tools v${PRODUCT_VERSION}" +AutoCloseWindow true !endif InstallDir "C:\opt\rtems-${PRODUCT_VERSION}" ShowInstDetails show ShowUnInstDetails show -BrandingText "RTEMS ${RTEMS_TARGET} Tools v${PRODUCT_VERSION}" AllowRootDirInstall false -AutoCloseWindow false CRCCheck force +!include "${RTEMS_SOURCE}/instance-check.nsi" !include "${RTEMS_SOURCE}/msys-path.nsi" +!include "${RTEMS_SOURCE}/options.nsi" +!include "${RTEMS_SOURCE}/filewrite.nsi" Section -SecFiles AddSize ${RTEMS_TOOLS_SIZE} @@ -86,21 +125,20 @@ Section -SecCommon SectionEnd !endif -!macro FILE_WRITE_LINE Handle Text - FileWrite ${Handle} `${Text}` - FileWriteByte ${Handle} "13" - FileWriteByte ${Handle} "10" -!macroend - Function .onInit + ;Check if we are the correct instance for our mode. + Call CheckInstance ;Extract InstallOptions INI files !insertmacro MUI_INSTALLOPTIONS_EXTRACT "rtems.ini" + ;Handle the Command line options + Call CheckSilent + Call CheckDebug + Call MSYSFstabUpdate FunctionEnd Function RTEMSMessage - !insertmacro MUI_HEADER_TEXT \ - "RTEMS Tools (${RTEMS_TARGET})" \ + "RTEMS Tools (Build ${RTEMS_BUILD_VERSION})" \ "A tool set for the RTEMS operating system." ;Display the Install Options dialog @@ -109,86 +147,54 @@ Function RTEMSMessage Push $R1 Push $R2 - InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\rtems.ini" - Pop $R0 - - GetDlgItem $R1 $R0 1200 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1201 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "12" "700" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1202 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1203 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1204 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1205 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - GetDlgItem $R1 $R0 1206 ;1200 + Field number - 1 - ;$R1 contains the HWND of the first field - CreateFont $R2 "Tahoma" "8" "300" - SendMessage $R1 ${WM_SETFONT} $R2 0 - - InstallOptions::show - Pop $R0 + InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\rtems.ini" + Pop $R0 + GetDlgItem $R1 $R0 1200 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1201 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "12" "700" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1202 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1203 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1204 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1205 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + GetDlgItem $R1 $R0 1206 ;1200 + Field number - 1 + ;$R1 contains the HWND of the first field + CreateFont $R2 "Tahoma" "8" "300" + SendMessage $R1 ${WM_SETFONT} $R2 0 + + InstallOptions::show + Pop $R0 Pop $R2 Pop $R1 Pop $R0 - -FunctionEnd - -; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') -; Push '\\' -; Pop $R0 -; Call StrSlash -; Pop $R0 -; ;Now $R0 contains 'c:/this/and/that/filename.htm' -Function StrSlash - Exch $R0 - Push $R1 - Push $R2 - StrCpy $R1 0 -loop: - IntOp $R1 $R1 - 1 - StrCpy $R2 $R0 1 $R1 - StrCmp $R2 "" done - StrCmp $R2 "\" 0 loop ; " - StrCpy $R2 $R0 $R1 - Push $R1 - IntOp $R1 $R1 + 1 - StrCpy $R1 $R0 "" $R1 - StrCpy $R0 "$R2/$R1" - Pop $R1 - IntOp $R1 $R1 - 1 - Goto loop -done: - Pop $R2 - Pop $R1 - Exch $R0 FunctionEnd !ifdef COMMON_FILES Section -BatchFiles - FileOpen $9 $INSTDIR\rtems.bat w + FileOpen $9 $INSTDIR\rtems-env.bat w !insertmacro FILE_WRITE_LINE $9 "@echo off" !insertmacro FILE_WRITE_LINE $9 "rem RTEMS batch file: ${RTEMS_VERSION}-${RTEMS_BUILD_VERSION}" !insertmacro FILE_WRITE_LINE $9 "set PATH=$INSTDIR\bin;c:\mingw\bin;c:\msys\1.0\bin;%PATH%" @@ -201,14 +207,14 @@ Section -BatchFiles !insertmacro FILE_WRITE_LINE $9 ":Finished" FileClose $9 - FileOpen $9 $INSTDIR\rtems-cmd.bat w + FileOpen $9 $INSTDIR\rtems.bat w !insertmacro FILE_WRITE_LINE $9 "@echo off" !insertmacro FILE_WRITE_LINE $9 "rem RTEMS batch file: ${RTEMS_VERSION}-${RTEMS_BUILD_VERSION}" !insertmacro FILE_WRITE_LINE $9 "If $\"x%OS%x$\" == $\"xWindows_NTx$\" Goto WinNT" - !insertmacro FILE_WRITE_LINE $9 "start command.com /e:4096 /k $INSTDIR\rtems.bat %1 %2 %3 %4" + !insertmacro FILE_WRITE_LINE $9 "start command.com /e:4096 /k $INSTDIR\rtems-env.bat %1 %2 %3 %4" !insertmacro FILE_WRITE_LINE $9 "exit" !insertmacro FILE_WRITE_LINE $9 ":WinNT" - !insertmacro FILE_WRITE_LINE $9 "start cmd.exe /k $INSTDIR\rtems.bat %1 %2 %3 %4" + !insertmacro FILE_WRITE_LINE $9 "start cmd.exe /k $INSTDIR\rtems-env.bat %1 %2 %3 %4" !insertmacro FILE_WRITE_LINE $9 "exit" FileClose $9 @@ -216,7 +222,7 @@ Section -BatchFiles !insertmacro FILE_WRITE_LINE $9 "@echo off" !insertmacro FILE_WRITE_LINE $9 "rem RTEMS batch file: ${RTEMS_VERSION}-${RTEMS_BUILD_VERSION}" !insertmacro FILE_WRITE_LINE $9 "rem We can only handle 9 parameters. More is too hard." - !insertmacro FILE_WRITE_LINE $9 "call $INSTDIR\rtems.bat" + !insertmacro FILE_WRITE_LINE $9 "call $INSTDIR\rtems-env.bat" !insertmacro FILE_WRITE_LINE $9 "%1 %2 %3 %4 %5 %6 %7 %8 %9" FileClose $9 @@ -235,94 +241,101 @@ Section -BatchFiles !insertmacro FILE_WRITE_LINE $9 " -e 's/s:\([0-9]*\):/s(\1):/'" FileClose $9 SectionEnd - -Section -MSYSLinks - Call MSYSDetectSilent - Pop $R0 - ifFileExists "$R0\etc\fstab" 0 Done - Push $R0 - Push $INSTDIR - Push '\\' - Pop $R0 - Call StrSlash - Pop $R1 - Pop $R0 - DetailPrint "Setting MSYS fstab: $R1 -> /opt/rtems-${PRODUCT_VERSION}" - StrCpy $R1 "$R1 /opt/rtems-${PRODUCT_VERSION}$\n" - FileOpen $9 "$R0\etc\fstab" a - ifErrors 0 +3 - MessageBox MB_OK "Cannot open $R0\etc\fstab. MSYS mount point no added." - Goto Close - FileSeek $9 0 SET - ReadLoop: - FileRead $9 $R2 - ifErrors Append - StrCmp $R1 $R2 Close ReadLoop - Append: - FileSeek $9 0 END - FileWrite $9 $R1 - Close: - FileClose $9 - Done: - ClearErrors -SectionEnd !endif Section -Post !ifdef COMMON_FILES StrCpy $R0 "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-uninst.exe" + StrCpy $R1 "RTEMS Tools.lnk" !else StrCpy $R0 "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-${RTEMS_TARGET}-uninst.exe" + StrCpy $R1 "RTEMS ${RTEMS_TARGET} Tools.lnk" + !insertmacro MUI_STARTMENU_GETFOLDER "Application" $smfolder !endif WriteUninstaller "$R0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "DisplayName" "$(^Name)" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "UninstallString" "$R0" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "DisplayVersion" "${PRODUCT_VERSION} Build-${RTEMS_BUILD_VERSION}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "URLInfoAbout" "${PRODUCT_WEB_SITE}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_TITLE}" \ "Publisher" "${PRODUCT_PUBLISHER}" + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$smfolder" +!ifdef COMMON_FILES + SetOutPath $INSTDIR + WriteIniStr "$INSTDIR\RTEMS.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" + WriteIniStr "$INSTDIR\RTEMS-Wiki.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}wiki" + WriteIniStr "$INSTDIR\RTEMS-Documentation.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}onlinedocs/releases/rtemsdocs-4.7.99.2/share/rtems/html/" + WriteIniStr "$INSTDIR\RTEMS-Support.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}support.html" + CreateShortCut "$SMPROGRAMS\$smfolder\RTEMS Tools.lnk" "$INSTDIR\rtems.bat" + CreateShortCut "$SMPROGRAMS\$smfolder\RTEMS Website.lnk" "$INSTDIR\RTEMS.url" + CreateShortCut "$SMPROGRAMS\$smfolder\RTEMS Wiki.lnk" "$INSTDIR\RTEMS-Wiki.url" + CreateShortCut "$SMPROGRAMS\$smfolder\RTEMS Documentation.lnk" "$INSTDIR\RTEMS-Documentation.url" + CreateShortCut "$SMPROGRAMS\$smfolder\RTEMS Support.lnk" "$INSTDIR\RTEMS-Support.url" +!endif + CreateDirectory "$SMPROGRAMS\$smfolder\Uninstall" + CreateShortCut "$SMPROGRAMS\$smfolder\Uninstall\$R1" "$R0" + !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \ - "Are you sure you want to uninstall RTEMS Tools (${RTEMS_TARGET})?" IDYES +2 + "Are you sure you want to uninstall ${PRODUCT_TITLE} ?" IDYES +2 Abort FunctionEnd Section Uninstall SetDetailsView show - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" - DetailPrint "Delete the installed files" - !insertmacro RTEMS_DELETE_FILES + StrCpy $2 0 !ifdef COMMON_FILES FindFirst $0 $1 "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-*-uninst.exe" Uninstall_Targets: StrCmp $1 "" Uninstall_Targets_Done + IntCmp $2 0 0 +3 + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \ + "You have tools installed. Are you sure you want to uninstall all RTEMS Tools ?" IDYES +2 + Abort + StrCpy $2 1 DetailPrint "Uninstalling $1" - ExecWait '"$INSTDIR\$1" /S' + ExecWait '"$INSTDIR\$1" $SilentOption $DebugOption' Delete $1 BringToFront FindNext $0 $1 Goto Uninstall_Targets Uninstall_Targets_Done: FindClose $0 +!endif + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" + DetailPrint "Delete the installed files" + !insertmacro RTEMS_DELETE_FILES + !insertmacro MUI_STARTMENU_GETFOLDER "Application" $smfolder +!ifdef COMMON_FILES Delete "$INSTDIR\AUTHORS" Delete "$INSTDIR\COPYING" Delete "$INSTDIR\README" Delete "$INSTDIR\rtems.bat" - Delete "$INSTDIR\rtems-cmd.bat" + Delete "$INSTDIR\rtems-env.bat" Delete "$INSTDIR\sh-run.bat" Delete "$INSTDIR\vs-make.sh" + Delete "$INSTDIR\RTEMS.url" + Delete "$INSTDIR\RTEMS-Wiki.url" + Delete "$INSTDIR\RTEMS-Documentation.url" + Delete "$INSTDIR\RTEMS-Support.url" + RMDir /r "$SMPROGRAMS\$smfolder" Delete "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-uninst.exe" !else + Delete "$SMPROGRAMS\$smfolder\Uninstall\RTEMS ${RTEMS_TARGET} Tools.lnk" Delete "$INSTDIR\rtems${PRODUCT_VERSION}-${RTEMS_BUILD_VERSION}-tools-${RTEMS_TARGET}-uninst.exe" - Delete "$INSTDIR\Packages" !endif RMDir "$INSTDIR" DetailPrint "All done." +!ifdef COMMON_FILES SetAutoClose false +!else + SetAutoClose true +!endif SectionEnd diff --git a/contrib/mingw/rtems.ini b/contrib/mingw/rtems.ini index d4a0185daa..225ae371aa 100644 --- a/contrib/mingw/rtems.ini +++ b/contrib/mingw/rtems.ini @@ -7,15 +7,15 @@ ; [Settings] -NumFields=8 +NumFields=10 [Field 1] Type=Label -Text=RTEMS Tools for Windows is a set of MinGW tools suitable for compiling RTEMS and RTEMS applications. You should install download and install the MinGW runtime and if you wish to build RTEMS and if you need autoconf or automake support the MSYS and MSYS DTK packages as well. You can find the MinGW and MSYS installers on the MinGW web site.\r\n\r\nFurther information and the source code with patches can be located via the Wiki. +Text=RTEMS Tools for Windows is a set of MinGW tools suitable for compiling RTEMS and RTEMS applications. You should download and install the MinGW runtime and if you wish to build RTEMS or if you need autoconf or automake support the MSYS and MSYS DTK packages as well. You can find the MinGW and MSYS installers on the MinGW web site under the link below.\r\n\r\nFurther information and the source code with patches can be located via the Wiki. Left=0 Right=292 -Top=25 -Bottom=87 +Top=15 +Bottom=74 [Field 2] Type=Label @@ -29,50 +29,67 @@ Bottom=12 Type=Link Text=http://www.rtems.org/wiki/index.php/MinGW_Tools_for_Windows State=http://www.rtems.org/wiki/index.php/MinGW_Tools_for_Windows -Left=71 -Right=292 -Top=100 -Bottom=108 +Left=50 +Right=271 +Top=117 +Bottom=125 [Field 4] Type=Link -Text=http://www.rtems.org/ -State=http://www.rtems.org/ -Left=71 -Right=187 -Top=89 +Text=http://www.rtems.org/support.html +State=http://www.rtems.org/support.html +Left=78 +Right=217 +Top=91 Bottom=99 [Field 5] Type=Link +Text=http://www.rtems.org/ +State=http://www.rtems.org/ +Left=50 +Right=166 +Top=106 +Bottom=116 + +[Field 6] +Type=Link Text=http://www.mingw.org/ State=http://www.mingw.org/ -Left=71 -Right=196 -Top=112 -Bottom=120 +Left=50 +Right=175 +Top=127 +Bottom=135 -[Field 6] +[Field 7] Type=Label -Text=RTEMS Website -Left=2 -Right=65 -Top=89 -Bottom=97 +Text=RTEMS +Left=16 +Right=44 +Top=106 +Bottom=114 -[Field 7] +[Field 8] Type=Label Text=Tools Wiki -Left=2 +Left=6 Right=46 -Top=101 -Bottom=109 +Top=116 +Bottom=124 -[Field 8] +[Field 9] Type=Label Text=MinGW Website -Left=2 -Right=57 -Top=112 -Bottom=120 +Left=18 +Right=45 +Top=127 +Bottom=135 + +[Field 10] +Type=Label +Text=Professional RTEMS Support is available from OAR. Contact them for a quote. +Left=8 +Right=292 +Top=78 +Bottom=88 diff --git a/contrib/mingw/rtems_logo.bmp b/contrib/mingw/rtems_logo.bmp Binary files differindex 03bb2b4e93..f34238fdd2 100644 --- a/contrib/mingw/rtems_logo.bmp +++ b/contrib/mingw/rtems_logo.bmp diff --git a/contrib/mingw/sm-dummy.nsi b/contrib/mingw/sm-dummy.nsi new file mode 100644 index 0000000000..5ba9cda6dd --- /dev/null +++ b/contrib/mingw/sm-dummy.nsi @@ -0,0 +1,36 @@ +; +; Copy the the MUI code with the page bit missing +; + +!macro MUI_PAGE_STARTMENU_DUMMY ID VAR + + !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}STARTMENUPAGE + + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_DEFAULTFOLDER "$(^Name)" + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_TOP "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_TOP)" + !insertmacro MUI_DEFAULT MUI_STARTMENUPAGE_TEXT_CHECKBOX "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}INNERTEXT_STARTMENU_CHECKBOX)" + + !define MUI_STARTMENUPAGE_VARIABLE "${VAR}" + !define "MUI_STARTMENUPAGE_${ID}_VARIABLE" "${MUI_STARTMENUPAGE_VARIABLE}" + !define "MUI_STARTMENUPAGE_${ID}_DEFAULTFOLDER" "${MUI_STARTMENUPAGE_DEFAULTFOLDER}" + !ifdef MUI_STARTMENUPAGE_REGISTRY_ROOT + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_ROOT" "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" + !endif + !ifdef MUI_STARTMENUPAGE_REGISTRY_KEY + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_KEY" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" + !endif + !ifdef MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !define "MUI_STARTMENUPAGE_${ID}_REGISTRY_VALUENAME" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}" + !endif + + !undef MUI_STARTMENUPAGE_VARIABLE + !undef MUI_STARTMENUPAGE_TEXT_TOP + !undef MUI_STARTMENUPAGE_TEXT_CHECKBOX + !undef MUI_STARTMENUPAGE_DEFAULTFOLDER + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_NODISABLE + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_ROOT + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_KEY + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_REGISTRY_VALUENAME + !insertmacro MUI_UNSET MUI_STARTMENUPAGE_BGCOLOR + +!macroend diff --git a/contrib/mingw/strslash.nsi b/contrib/mingw/strslash.nsi new file mode 100644 index 0000000000..5a0c1fa6a1 --- /dev/null +++ b/contrib/mingw/strslash.nsi @@ -0,0 +1,29 @@ +; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm') +; Push '\\' +; Pop $R0 +; Call StrSlash +; Pop $R0 +; ;Now $R0 contains 'c:/this/and/that/filename.htm' +Function StrSlash + Exch $R0 + Push $R1 + Push $R2 + StrCpy $R1 0 +loop: + IntOp $R1 $R1 - 1 + StrCpy $R2 $R0 1 $R1 + StrCmp $R2 "" done + StrCmp $R2 "\" 0 loop ; " + StrCpy $R2 $R0 $R1 + Push $R1 + IntOp $R1 $R1 + 1 + StrCpy $R1 $R0 "" $R1 + StrCpy $R0 "$R2/$R1" + Pop $R1 + IntOp $R1 $R1 - 1 + Goto loop +done: + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd diff --git a/contrib/mingw/strstr.nsi b/contrib/mingw/strstr.nsi new file mode 100644 index 0000000000..22c4f68c5b --- /dev/null +++ b/contrib/mingw/strstr.nsi @@ -0,0 +1,63 @@ +!define StrStr "!insertmacro StrStr" + +!macro StrStr ResultVar String SubString + Push `${String}` + Push `${SubString}` + Call StrStr + Pop `${ResultVar}` +!macroend + +Function StrStr +/*After this point: + ------------------------------------------ + $R0 = SubString (input) + $R1 = String (input) + $R2 = SubStringLen (temp) + $R3 = StrLen (temp) + $R4 = StartCharPos (temp) + $R5 = TempStr (temp)*/ + + ;Get input from user + Exch $R0 + Exch + Exch $R1 + Push $R2 + Push $R3 + Push $R4 + Push $R5 + + ;Get "String" and "SubString" length + StrLen $R2 $R0 + StrLen $R3 $R1 + ;Start "StartCharPos" counter + StrCpy $R4 0 + + ;Loop until "SubString" is found or "String" reaches its end + loop: + ;Remove everything before and after the searched part ("TempStr") + StrCpy $R5 $R1 $R2 $R4 + + ;Compare "TempStr" with "SubString" + StrCmp $R5 $R0 done + ;If not "SubString", this could be "String"'s end + IntCmp $R4 $R3 done 0 done + ;If not, continue the loop + IntOp $R4 $R4 + 1 + Goto loop + done: + +/*After this point: + ------------------------------------------ + $R0 = ResultVar (output)*/ + + ;Remove part before "SubString" on "String" (if there has one) + StrCpy $R0 $R1 `` $R4 + + ;Return output to user + Pop $R5 + Pop $R4 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 +FunctionEnd |