summaryrefslogtreecommitdiff
path: root/doc/build.htm
blob: 1982cb696d107feb6b8cd8185603357561a59159 (plain)
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
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
    <TITLE>Building Version 9.5 of Icon from Source</TITLE>
    <LINK REL="STYLESHEET" TYPE="text/css" HREF="istyle.css">
    <LINK REL="SHORTCUT ICON" HREF="shortcut.gif">
</HEAD>
<BODY>

<P><A HREF="http://www.cs.arizona.edu/icon/"> <IMG SRC="wwwcube.gif"
ALT="[Icon home]" WIDTH=128 HEIGHT=144 BORDER=0 ALIGN=RIGHT> </A>

<H1>Building Version 9.5 of Icon from Source</H1>

<P> Gregg M. Townsend
<BR> <SMALL> Department of Computer Science </SMALL>
<BR> <SMALL> The University of Arizona </SMALL>

<P> <SMALL> www.cs.arizona.edu/icon/v950/build.htm
<BR> Last updated November 8, 2009 </SMALL>
<!-- $Id: build.htm,v 1.27 2009/11/08 21:53:08 gmt Exp $ -->

<H2> Introduction </H2>

<P> These instructions explain how to build and install the source code of
<A HREF=relnotes.htm>Version 9.5 of Icon</A> under Unix.
For instructions on installing a binary release, see
<A HREF=install.htm>Installing Icon Binaries</A>.

<P> These instructions assume that you have unpacked the Icon 
distribution file into a directory.
All commands are issued in that directory.

<H2> Configuring </H2>

<P> The Icon source package contains configurations for a variety of
Unix platforms.
Type <CODE>make Configure</CODE> to see the list of known configurations.
A status report for any system can be viewed by entering
<BLOCKQUOTE>
	<CODE>make Status name=</CODE><VAR>name</VAR>
</BLOCKQUOTE>
Choose the configuration name that matches your system's
operating system, and be sure to note
any special considerations given in its status report.

<P><SMALL> (If your system is not among those listed, you will need to
port the code.  
This is usually a fairly simple matter that involves copying an existing
configuration and editing it to match the target system.
See <A HREF=port.htm>Porting Icon</A>.)
</SMALL>

<P> Most Unix systems include the X11 window system; type
<BLOCKQUOTE>
	<CODE>make X-Configure name=</CODE><VAR>name</VAR>
</BLOCKQUOTE>
to configure Icon with graphics.
If your computer does not have the X window system, type
<BLOCKQUOTE>
	<CODE>make Configure name=</CODE><VAR>name</VAR>
</BLOCKQUOTE>
to configure Icon without graphics.

<P> Installation using any of the supplied configurations <EM>should</EM>
be routine, but some of those were contributed for systems we cannot test,
and it is possible that some minor tweaking may be required.
If so, or if you develop a new configuration, we'd like to hear about it
by e-mail to
<A HREF="mailto:icon-project@cs.arizona.edu">icon-project@cs.arizona.edu</A>.

<H2> Building </H2> 

<P> After Configuring, type <CODE>make</CODE> to build the Icon system.
This single step builds:
<UL>
    <LI> The Icon translator and interpreter
    <LI> Program library procedures
    <LI> VIB and other graphics utilities, if graphics are enabled
</UL>

<P> There may be a few warnings on some platforms, but there should be
no fatal errors.
If there are problems,
fix them in the <CODE>config/</CODE><VAR>platform</VAR>
directory and repeat the configuration step.

<H2> Testing </H2> 

<P> To verify a successful build, type <CODE>make Test</CODE>.
This command compiles and executes a series of Icon programs,
comparing their outputs with a set of standard results.
A normal run concludes with the phrase "All tests passed."

<P> A successful graphics build can be confirmed by executing
<CODE>bin/colrbook</CODE>, the color book utility, with no arguments.
It should display a spectrum of colors along the left and a set
of recessed panes to the right.
Click anywhere on the spectrum to fill colors in the panes.
Click <CODE>QUIT</CODE> (in the upper left corner) to exit.

<H2> Installing </H2> 

<P> Icon can be run directly from the location in which it was built.
To do this, simply add the <CODE>bin</CODE> directory to your shell's
search path.
See the man pages for <A HREF=icon.txt><CODE>icon</CODE></A>
and <A HREF=icont.txt><CODE>icont</CODE></A>
for instructions on building and running Icon programs.

<P> If you wish to install the binaries elsewhere,
choose a location for a directory dedicated to Icon &mdash;
for example, <CODE>/opt/icon</CODE> or <CODE>/usr/local/icon</CODE>.
If you are replacing an existing directory, delete the old one first.
Enter
<BLOCKQUOTE>
	<CODE>make Install dest=</CODE><VAR>directory</VAR>
</BLOCKQUOTE>
to create <VAR>directory</VAR> and install Icon in its
<CODE>bin</CODE>, <CODE>lib</CODE>,
<CODE>doc</CODE>, and <CODE>man</CODE> subdirectories.
All files are created using the default permissions
<CITE>(umask)</CITE> of the current user.

<P> You can make symbolic links from other locations
to programs in the Icon <CODE>bin</CODE> directory.
For example, you can link
<CODE>/usr/local/bin/icon</CODE> to <CODE>/opt/icon/bin/icon</CODE>.
If you do this, link all of <CODE>icon</CODE>, <CODE>icont</CODE>,
<CODE>iconx</CODE>, and (if present) <CODE>vib</CODE>.

<P> If you'd like to bundle up a gzipped tar file of the binaries
created by the build process, enter <CODE>make Package</CODE>.
Such a package can be used to install binaries on other 
systems of the same architecture.

<H2> Cleaning Up </H2>

<P> Type <CODE>make Clean</CODE> to remove intermediate files created
during the build process.  This command preserves the contents of the
<CODE>bin</CODE> and <CODE>lib</CODE> directories, so the built system
remains functional.

<P> To restore everything to its original state, type <CODE>make Pure</CODE>.
This removes all the configuration information and newly built files.

<P> <HR>

</BODY>
</HTML>