Gregg M. Townsend
Department of Computer Science
The University of Arizona
Carl Sturtivant
Computer Science & Engineering Department
University of Minnesota
www.cs.arizona.edu/icon/uguide/cygwin.htm
Last updated June 5, 2013
Most contemporary operating systems trace their underlying design to the Unix operating system, as refined and specified today by the POSIX family of standards. Microsoft Windows, however, was developed independently and defines a different set of interfaces for the programmer and the user.
The Cygwin package provides a Unix environment under Microsoft Windows. This allows the latest version of Icon (and many other things) to be built on a Windows system. Successful use of Cygwin requires familiarity with both Windows and Unix.
This document describes some of the peculiarities of the Cygwin port of Icon. These differences are not necessarily identified in other documentation.
Icon is built in a Cygwin shell window using the same process as on
on other platforms.
The configuration name is cygwin
.
See the installation documentation for instructions.
The Cygwin package is available from
www.cygwin.com.
A custom installation of the Cygwin system is required;
the default installation provides a bare-bones system
insufficient for building software.
Icon requires a C compiler and the usual tools and utilities
available on a standard POSIX development system; these are found
in the gcc-core
and make
packages.
Additional Cygwin/X packages must also be included in the installation if Icon is to be built with graphics enabled. The necessary packages are detailed at x.cygwin.com.
Icon is run by commands entered in a Cygwin terminal window.
The simplest command is "icon prog.icn
",
which runs the program contained in the source file prog.icn
.
The translator icont
can create executable programs
from Icon source code.
The Unix-style "man pages" for icon
and icont
describe the command options in a traditionally cryptic manner.
Icon programs require an interpreter for execution.
On Windows, the path of the interpreter is not embedded
in an executable program.
The program must be able to find
iconx.exe
in the search path. Icon programs
must be run from a Cygwin command shell or xterm window.
The Cygwin/X
server must be running, with a correct DISPLAY
variable in the environment, to execute graphics programs.
The Cygwin installation must therefore include Cygwin/X,
in which case the X server may be started from
a shortcut or the Start menu in Windows 7, before a command is issued
to execute such a graphics program.
The symbols _MS_WINDOWS
and _CYGWIN
are defined by the Icon preprocessor.
The symbol _UNIX
is not defined.
The symbol _GRAPHICS
is defined if Icon is built with
graphics enabled, as is the symbol _X_WINDOW_SYSTEM
.
The corresponding strings are produced or omitted, as appropriate,
by the &features
keyword.
The Icon function loadfunc
allows
specially written C code to be loaded and called by an Icon program.
See Loading C Functions in Icon.
When building a loadfunc
library under Cygwin,
link to the import library iconx.a
located in the
bin
directory of the Icon distribution.
This allows callbacks to functions in iconx
,
which happens by default on UNIX-like platforms but not on Windows.