--- gforth/iss.sh 2006/04/08 13:48:22 1.10 +++ gforth/iss.sh 2012/10/08 01:10:30 1.29 @@ -1,12 +1,12 @@ #!/bin/bash -#Copyright (C) 2000,2003,2006 Free Software Foundation, Inc. +#Copyright (C) 2000,2003,2006,2007,2009,2011 Free Software Foundation, Inc. #This file is part of Gforth. #Gforth is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License -#as published by the Free Software Foundation; either version 2 +#as published by the Free Software Foundation, either version 3 #of the License, or (at your option) any later version. #This program is distributed in the hope that it will be useful, @@ -15,8 +15,7 @@ #GNU General Public License for more details. #You should have received a copy of the GNU General Public License -#along with this program; if not, write to the Free Software -#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. +#along with this program; if not, see http://www.gnu.org/licenses/. # This is the horror shell script to create an automatic install for # Windoze. @@ -26,20 +25,29 @@ # copy the resulting *.iss to the location of your Windows installation # of Gforth, and start the setup compiler there. +VERSION=$(cat version) + +for i in lib/gforth/$VERSION/libcc-named/*.la +do + sed "s/dependency_libs='.*'/dependency_libs=''/g" <$i >$i+ + mv $i+ $i +done + cat <&1) -AppCopyright=Copyright © 1995,1996,1997,1998,2000,2003,2006 Free Software Foundation +AppVerName=Gforth $VERSION +AppCopyright=Copyright © 1995,1996,1997,1998,2000,2003,2006,2007,2008,2009,2010,2011 Free Software Foundation DefaultDirName={pf}\gforth DefaultGroupName=Gforth AllowNoIcons=1 InfoBeforeFile=COPYING -Compression=bzip +Compression=lzma DisableStartupPrompt=yes +OutputBaseFilename=gforth-$VERSION [Messages] WizardInfoBefore=License Agreement @@ -64,16 +72,28 @@ done) | sort -u | sed \ -e 's,^\(..*\)$,Name: "{app}\\\1",g') Name: "{app}\doc\gforth" Name: "{app}\doc\vmgen" +Name: "{app}\lib\gforth\\$VERSION\libcc-named" +Name: "{app}\include\gforth\\$VERSION" [Files] ; Parameter quick reference: ; "Source filename", "Dest. filename", Copy mode, Flags Source: "README.txt"; DestDir: "{app}"; Flags: isreadme -Source: "cygwin1.dll"; DestDir: "{app}" -Source: "sh.exe"; DestDir: "{app}" -Source: "gforth.fi"; DestDir: "{app}" +Source: "c:\cygwin\bin\sh.exe"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygwin1.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cyggcc_s-1.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygintl-8.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygiconv-2.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygltdl-7.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygreadline7.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygncursesw-10.dll"; DestDir: "{app}" +Source: "c:\cygwin\bin\cygffi-4.dll"; DestDir: "{app}" +Source: "gforthmi.sh"; DestDir: "{app}" $(ls doc/gforth | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "doc\\gforth\\\1"; DestDir: "{app}\\doc\\gforth"; Components: help,g') $(ls doc/vmgen | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "doc\\vmgen\\\1"; DestDir: "{app}\\doc\\vmgen"; Components: help,g') +$(ls lib/gforth/$VERSION/libcc-named | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "lib\\gforth\\'$VERSION'\\libcc-named\\\1"; DestDir: "{app}\\lib\\gforth\\'$VERSION'\\libcc-named",g') +$(ls lib/gforth/$VERSION/libcc-named/.libs | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "lib\\gforth\\'$VERSION'\\libcc-named\\.libs\\\1"; DestDir: "{app}\\lib\\gforth\\'$VERSION'\\libcc-named\\.libs",g') +$(ls include/gforth/$VERSION | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "engine\\\1"; DestDir: "{app}\\include\\gforth\\'$VERSION'",g') $(make distfiles -f Makedist EXE=.exe | tr ' ' '\n' | grep -v engine.*exe | (while read i; do if [ ! -d $i ]; then echo $i; fi done) | sed \ @@ -92,17 +112,26 @@ Name: "{group}\Gforth"; Filename: "{app} Name: "{group}\Gforth-fast"; Filename: "{app}\gforth-fast.exe"; WorkingDir: "{app}" Name: "{group}\Gforth-dict"; Filename: "{app}\gforth-dict.exe"; WorkingDir: "{app}" Name: "{group}\Gforth-itc"; Filename: "{app}\gforth-itc.exe"; WorkingDir: "{app}" -Name: "{group}\Gforth-prof"; Filename: "{app}\gforth-prof.exe"; WorkingDir: "{app}" Name: "{group}\Gforth Manual"; Filename: "{app}\doc\gforth\index.html"; WorkingDir: "{app}"; Components: help +Name: "{group}\Gforth Manual (PDF)"; Filename: "{app}\doc\gforth.pdf"; WorkingDir: "{app}"; Components: help Name: "{group}\VMgen Manual"; Filename: "{app}\doc\vmgen\index.html"; WorkingDir: "{app}"; Components: help +Name: "{group}\Bash"; Filename: "{app}\sh.exe"; WorkingDir: "{app}" Name: "{group}\Uninstall Gforth"; Filename: "{uninstallexe}" [Run] -Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-fast.exe" -Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-ditc.exe" -Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-itc.exe" -Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-prof.exe" -Filename: "{app}\gforth-fast.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth.exe" +Filename: "{app}\sh.exe"; WorkingDir: "{app}"; Parameters: "-c ""./gforthmi.sh || read""" +Filename: "{app}\sh.exe"; WorkingDir: "{app}"; Parameters: "-c ""./gforth fixpath.fs gforth-fast.exe || read""" +Filename: "{app}\sh.exe"; WorkingDir: "{app}"; Parameters: "-c ""./gforth fixpath.fs gforth-ditc.exe || read""" +Filename: "{app}\sh.exe"; WorkingDir: "{app}"; Parameters: "-c ""./gforth fixpath.fs gforth-itc.exe || read""" +Filename: "{app}\sh.exe"; WorkingDir: "{app}"; Parameters: "-c ""./gforth-fast fixpath.fs gforth.exe || read""" + +[UninstallDelete] +Type: files; Name: "{app}\gforth.fi" +Type: files; Name: "{app}\temp-image.fi1" +Type: files; Name: "{app}\temp-image.fi2" + +[Registry] +Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}"; Check: NeedsAddPath(ExpandConstant('{app}')) ;[Registry] ;registry commented out @@ -120,4 +149,23 @@ Filename: "{app}\gforth-fast.exe"; Worki ;HKCR, "forthblock"; STRING, "Forth Block", ;HKCR, "forthblock", "EditFlags", DWORD, "00000000", ;HKCR, "forthblock\DefaultIcon"; STRING, "{sys}\System32\shell32.dll,61" + +[Code] +function NeedsAddPath(Param: string): boolean; +var + OrigPath: string; +begin + if not RegQueryStringValue(HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', OrigPath) + then begin + Result := True; + exit; + end; + // look for the path with leading and trailing semicolon + // Pos() returns 0 if not found + Result := Pos(';' + UpperCase(Param) + ';', ';' + UpperCase(OrigPath) + ';') = 0; + if Result = True then + Result := Pos(';' + UpperCase(Param) + '\;', ';' + UpperCase(OrigPath) + ';') = 0; +end; EOT + +sed -e 's/$/\r/' README.txt