1#!/bin/bash
2
3#Copyright (C) 2000,2003,2006,2007 Free Software Foundation, Inc.
4
5#This file is part of Gforth.
6
7#Gforth is free software; you can redistribute it and/or
8#modify it under the terms of the GNU General Public License
9#as published by the Free Software Foundation, either version 3
10#of the License, or (at your option) any later version.
11
12#This program is distributed in the hope that it will be useful,
13#but WITHOUT ANY WARRANTY; without even the implied warranty of
14#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
15#GNU General Public License for more details.
16
17#You should have received a copy of the GNU General Public License
18#along with this program; if not, see http://www.gnu.org/licenses/.
19
20# This is the horror shell script to create an automatic install for
21# Windoze.
22# Note that I use sed to create a setup file
23
24# use iss.sh >gforth.iss
25# copy the resulting *.iss to the location of your Windows installation
26# of Gforth, and start the setup compiler there.
27
28VERSION=$(cat version)
29
30cat <<EOT
31; This is the setup script for Gforth on Windows
32; Setup program is Inno Setup
33
34[Setup]
35AppName=Gforth
36AppVerName=Gforth $VERSION
37AppCopyright=Copyright � 1995,1996,1997,1998,2000,2003,2006,2007,2008 Free Software Foundation
38DefaultDirName={pf}\gforth
39DefaultGroupName=Gforth
40AllowNoIcons=1
41InfoBeforeFile=COPYING
42Compression=bzip
43DisableStartupPrompt=yes
44OutputBaseFilename=gforth-$VERSION
45
46[Messages]
47WizardInfoBefore=License Agreement
48InfoBeforeLabel=Gforth is free software.
49InfoBeforeClickLabel=You don't have to accept the GPL to run the program. You only have to accept this license if you want to modify, copy, or distribute this program.
50
51[Components]
52Name: "help"; Description: "HTML Documentation"; Types: full
53Name: "info"; Description: "GNU info Documentation"; Types: full
54Name: "print"; Description: "Postscript Documentation for printout"; Types: full
55Name: "objects"; Description: "Compiler generated intermediate stuff"; Types: full
56
57[Dirs]
58$(make distfiles -f Makedist | tr ' ' '\n' | grep -v CVS | (while read i; do
59  while [ ! -z "$i" ]
60  do
61    if [ -d $i ]; then echo $i; fi
62    if [ "${i%/*}" != "$i" ]; then i="${i%/*}"; else i=""; fi
63  done
64done) | sort -u | sed \
65  -e 's:/:\\:g' \
66  -e 's,^\(..*\)$,Name: "{app}\\\1",g')
67Name: "{app}\doc\gforth"
68Name: "{app}\doc\vmgen"
69Name: "{app}\lib\gforth\\$VERSION\libcc-named"
70
71[Files]
72; Parameter quick reference:
73;   "Source filename", "Dest. filename", Copy mode, Flags
74Source: "README.txt"; DestDir: "{app}"; Flags: isreadme
75Source: "cygwin1.dll"; DestDir: "{app}"
76Source: "sh.exe"; DestDir: "{app}"
77Source: "cygintl-8.dll"; DestDir: "{app}"
78Source: "cygiconv-2.dll"; DestDir: "{app}"
79Source: "cygltdl-3.dll"; DestDir: "{app}"
80Source: "cygreadline6.dll"; DestDir: "{app}"
81Source: "cygncurses-8.dll"; DestDir: "{app}"
82Source: "cygffi-2-00-beta.dll"; DestDir: "{app}"
83Source: "gforth.fi"; DestDir: "{app}"
84$(ls doc/gforth | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "doc\\gforth\\\1"; DestDir: "{app}\\doc\\gforth"; Components: help,g')
85$(ls doc/vmgen | sed -e 's:/:\\:g' -e 's,^\(..*\)$,Source: "doc\\vmgen\\\1"; DestDir: "{app}\\doc\\vmgen"; Components: help,g')
86$(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')
87$(make distfiles -f Makedist EXE=.exe | tr ' ' '\n' | grep -v engine.*exe | (while read i; do
88  if [ ! -d $i ]; then echo $i; fi
89done) | sed \
90  -e 's:/:\\:g' \
91  -e 's,^\(..*\)\\\([^\\]*\)$,Source: "\1\\\2"; DestDir: "{app}\\\1",g' \
92  -e 's,^\([^\\]*\)$,Source: "\1"; DestDir: "{app}",g' \
93  -e 's,^\(.*\.[oib]".*\),\1; Components: objects,g' \
94  -e 's,^\(.*\.p\)s\(".*\),\1df\2; Components: print,g' \
95  -e 's,^\(.*\.info.*".*\),\1; Components: info,g')
96
97[Icons]
98; Parameter quick reference:
99;   "Icon title", "File name", "Parameters", "Working dir (can leave blank)",
100;   "Custom icon filename (leave blank to use the default icon)", Icon index
101Name: "{group}\Gforth"; Filename: "{app}\gforth.exe"; WorkingDir: "{app}"
102Name: "{group}\Gforth-fast"; Filename: "{app}\gforth-fast.exe"; WorkingDir: "{app}"
103Name: "{group}\Gforth-dict"; Filename: "{app}\gforth-dict.exe"; WorkingDir: "{app}"
104Name: "{group}\Gforth-itc"; Filename: "{app}\gforth-itc.exe"; WorkingDir: "{app}"
105Name: "{group}\Gforth-prof"; Filename: "{app}\gforth-prof.exe"; WorkingDir: "{app}"
106Name: "{group}\Gforth Manual"; Filename: "{app}\doc\gforth\index.html"; WorkingDir: "{app}"; Components: help
107Name: "{group}\Gforth Manual (PDF)"; Filename: "{app}\doc\gforth.pdf"; WorkingDir: "{app}"; Components: help
108Name: "{group}\VMgen Manual"; Filename: "{app}\doc\vmgen\index.html"; WorkingDir: "{app}"; Components: help
109Name: "{group}\Bash"; Filename: "{app}\sh.exe"; WorkingDir: "{app}"
110Name: "{group}\Uninstall Gforth"; Filename: "{uninstallexe}"
111
112[Run]
113Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-fast.exe"
114Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-ditc.exe"
115Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-itc.exe"
116Filename: "{app}\gforth.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth-prof.exe"
117Filename: "{app}\gforth-fast.exe"; WorkingDir: "{app}"; Parameters: "fixpath.fs {app} gforth.exe"
118
119;[Registry]
120;registry commented out
121; WorkingDir: "{app}"; Parameter quick reference:
122;   "Root key", "Subkey", "Value name", Data type, "Data", Flags
123;HKCR, ".fs"; STRING, "forthstream",
124;HKCR, ".fs", "Content Type", STRING, "application/forth",
125;HKCR, ".fb"; STRING, "forthblock",
126;HKCR, ".fb", "Content Type", STRING, "application/forth-block",
127;HKCR, "forthstream"; STRING, "Forth Source",
128;HKCR, "forthstream", "EditFlags", DWORD, "00000000",
129;HKCR, "forthstream\DefaultIcon"; STRING, "{sys}\System32\shell32.dll,61"
130;HKCR, "forthstream\Shell"; STRING, ""
131;HKCR, "forthstream\Shell\Open\command"; STRING, "{app}\gforth.exe %1"
132;HKCR, "forthblock"; STRING, "Forth Block",
133;HKCR, "forthblock", "EditFlags", DWORD, "00000000",
134;HKCR, "forthblock\DefaultIcon"; STRING, "{sys}\System32\shell32.dll,61"
135EOT
136
137sed -e 's/$/\r/' <README >README.txt
138