-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathInstallingGo.rtf
200 lines (174 loc) · 4.98 KB
/
InstallingGo.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 LucidaSans-Typewriter;
}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww12220\viewh10800\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\f0\b\fs38 \cf0 Installing the Go! system.
\f1\b0\fs24 \
\
The Go! system is only distributed as source at the moment. At some point I may distribute binary, but I do not have access to a lot of different kinds of machines; so this would be difficult to manage.\
\
There are 3 separate stages to building and installing the system: the OOIO library, the April language system and the Go! language system:\
\
The ooio library is a basic library that supports many functions of the other two packages.\
\
The April language system is a full programming language. It is used only to compile Go! programs, however.\
\
The Go! language system is the complete engine, compiler and documentation for Go!\
\
\f0\b\fs28 Step 0. Deciding where to put everything.
\f1\b0\fs24 \
\
By default, everything is designed to go into specific directories under the /opt root. The reason for this, by the way, is to avoid polluting the standard locations /usr/bin etc. with application specific files. It also makes it easier to uninstall: just remove the /opt/nar, /opt/april and the /opt/go directories and you are done.\
\
You can change this by using \
\
\f2 --prefix=<directory>
\f1 \
\
in the following steps. If you do, be careful to tell the later stages where you put stuff.\
\
It is significantly more convenient if you own the target directories:\
\
\f2 % mkdir /opt/nar /opt/april /opt/go\
% chown <yourUserName> /opt/nar /opt/april /opt/go\
\f1 \
Step 1. Configuring, building and installing the ooio library\
\
After unpacking the ooio tarball, go into the ooio directory and configure it:\
\
\f2 ooio % ./configure
\f1 \
\
if you are going to install it in the standard location, or \
\
\f2 ooio % ./configure --prefix=<ooioprefix>
\f1 \
\
if not.\
\
The configure script finishes with a reminder to make, so do so:\
\f2 ooio% make
\f1 \
\
and then \
\
\f2 ooio% make install
\f1 \
\
if you own the target directory, or\
\
\f2 ooio% sudo make install
\f1 \
\
if not.\
\
Step 2. Configuring, building and installing april\
\
The process is similar to that for the ooio library; with the additional wrinkle of dealing with a non-standard location for the ooio library:\
\
\f2 april5 % ./configure
\f1 \
\
or\
\
\f2 april5 % ./configure --with-ooio=<ooioInstallDir>
\f1 \
\
if ooio was not installed in the default location. You can also give it a prefix for the destination for april:\
\
\f2 april5 % ./configure --prefix=<aprilDir> --with-ooio=<ooioInstallDir>
\f1 \
\
April takes a little longer to configure, but not much. Then you make it:\
\
\f2 april5 % make
\f1 \
\
and install\
\
\f2 april5 % make install
\f1 \
\
Step 3. Configuring, building, checking and installing Go!\
\
By now, you should be used to this:\
\
\f2 go% ./configure
\f1 \
\
or\
\
\f2 go% ./configure --with-ooio=<ooioInstallDir> --with-april=<aprilDir> --prefix=<goDir>
\f1 \
\
\f2 go% make
\f1 \
\
Go! takes quite a lot longer than April or ooio to build. \
\
You can check that you have a viable build by running the check (only implemented for Go!)\
\
\f2 go% make check
\f1 \
\
If that works, install it:\
\
\f2 go% make install
\f1 \
\
Step 4. Setting up your PATH\
\
I suggest that you set up your path to include the april and go locations. You can do this in your .bash_login file:\
\
\f2 export PATH="/opt/april/bin:/opt/go/bin:$\{PATH\}"
\f1 \
\
if you are using bash that is. (If not, why not?)\
\
Step 5. Setting up emacs.\
\
There is a Go! (and April) mode for emacs. To access it you will need to modify your .emacs file. Just edit that file, and make sure that the following lines:\
\
\f2 (add-to-list 'load-path "/opt/go/share/emacs/site-lisp")\
(add-to-list 'load-path "/opt/april/share/emacs/site-lisp")\
\
;;; April mode\
(autoload 'april-mode "april")\
(setq auto-mode-alist (cons '("\\\\.ap\\\\|.ah$" . april-mode) auto-mode-alist))\
(add-hook 'april-mode-hook 'turn-on-font-lock)\
\
;;; Go! mode\
(autoload 'go-mode "go")\
(setq auto-mode-alist (cons '("\\\\.\\\\(go\\\\|gof\\\\|gh\\\\)$" . go-mode) \
auto-mode-alist))\
(add-hook 'go-mode-hook 'turn-on-font-lock)\
\f1 \
are in there somewhere.\
\
With emacs mode turned on, emacs knows how to properly indent Go! programs to the informal 'standard' formatting rules. (Actually, it gets one or two things a little wrong, but it's pretty good.)\
\
That is it, you are done.\
\
If you want to look at some examples, check out:\
\
\f2 /opt/go/Tests
\f1 \
\
If you want to look at the documentation, check out:\
\
\f2 /opt/go/go-ref.pdf
\f1 \
\
for the reference manual, and\
\
\f2 /opt/go/letsgo.pdf
\f1 \
\
for the introductory text.\
\
Good luck, and let me know how you get on.\
\
Frank McCabe\
email:frankmccabe@mac.com}