Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > fe643c025788dbb3380e7eef6c1c16b1 > files > 759

hugs98-2006.09-10.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Adding packages to a Hugs installation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="The Hugs 98 User's Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Changing the behaviour of Hugs"
HREF="options.html"><LINK
REL="PREVIOUS"
TITLE="Locale-based character encoding"
HREF="locale.html"><LINK
REL="NEXT"
TITLE="Other ways of running Hugs"
HREF="others.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="hugs-ug.css"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Hugs 98 User's Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="locale.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Changing the behaviour of Hugs</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="others.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="PACKAGES"
>3.4. Adding packages to a Hugs installation</A
></H1
><P
>The recommended way to add Haskell libraries and programs to a Hugs
installation (or any other Haskell implementation) is to use the
<A
HREF="http://www.haskell.org/cabal/"
TARGET="_top"
>Cabal</A
> packaging system.
The necessary support library is included in the Hugs installation.
For Hugs, a Cabal package will be installed in the following places,
where <TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
> is the directory prefix given
to the Cabal <B
CLASS="COMMAND"
>setup</B
> script:</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="FILENAME"
><TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
>/lib/hugs/packages/<TT
CLASS="REPLACEABLE"
><I
>package</I
></TT
></TT
></DT
><DD
><P
>A directory containing the module hierarchy for the package,
with associated binary shared objects (if required).
To enable Hugs to find these modules, you will need to ensure that the
Hugs search path (see <A
HREF="options.html#OPTION-SEARCH-PATH"
><I
CLASS="TERM"
><CODE
CLASS="OPTION"
>-P</CODE
><TT
CLASS="REPLACEABLE"
><I
>str</I
></TT
></I
></A
>) includes
<SPAN
CLASS="QUOTE"
>"<TT
CLASS="LITERAL"
><TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
>/lib/hugs/packages/*</TT
>"</SPAN
>
(with a literal <SPAN
CLASS="QUOTE"
>"<TT
CLASS="LITERAL"
>*</TT
>"</SPAN
>).</P
><P
>You can remove the package by simply deleting this directory.</P
></DD
><DT
><TT
CLASS="FILENAME"
><TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
>/lib/hugs/programs/<TT
CLASS="REPLACEABLE"
><I
>program</I
></TT
></TT
></DT
><DD
><P
>A directory containing the modules of an executable Haskell program,
with associated binary shared objects (if required).</P
></DD
><DT
><TT
CLASS="FILENAME"
><TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
>/bin/<TT
CLASS="REPLACEABLE"
><I
>program</I
></TT
></TT
></DT
><DD
><P
>An executable shell script that invokes <B
CLASS="COMMAND"
>runhugs</B
>
(see <A
HREF="others.html#RUNHUGS"
>Section 4.1</A
>) on the <TT
CLASS="LITERAL"
>Main</TT
> module
of an executable Haskell program from the above directory.  This program
will be runnable if your program search path includes the directory
<SPAN
CLASS="QUOTE"
>"<TT
CLASS="FILENAME"
><TT
CLASS="REPLACEABLE"
><I
>prefix</I
></TT
>/bin</TT
>"</SPAN
>.</P
></DD
></DL
></DIV
><P
>The default setting of the module search path
(see <A
HREF="options.html#OPTION-SEARCH-PATH"
><I
CLASS="TERM"
><CODE
CLASS="OPTION"
>-P</CODE
><TT
CLASS="REPLACEABLE"
><I
>str</I
></TT
></I
></A
>) supports the following uses:</P
><P
></P
><UL
><LI
><P
>To prepare to install a package privately, invoke the Cabal setup script with
<PRE
CLASS="SCREEN"
>setup configure --prefix=$HOME</PRE
></P
></LI
><LI
><P
>To prepare to install a package for use by all users of the local host,
invoke the Cabal setup script without a <TT
CLASS="LITERAL"
>--prefix</TT
> option.
The package will then be installed under
<TT
CLASS="FILENAME"
>/usr/local/lib/hugs/packages</TT
>
(assuming you have the necessary permissions).</P
></LI
><LI
><P
>Those preparing binary packages will use <TT
CLASS="LITERAL"
>--prefix=/usr</TT
>
or similar, with an appropriate <TT
CLASS="LITERAL"
>--destdir</TT
>
option to <SPAN
CLASS="QUOTE"
>"<TT
CLASS="LITERAL"
>setup copy</TT
>"</SPAN
>.</P
></LI
></UL
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Cabal should work with Hugs on Windows for simple packages.
More complex ones require a Unix-like environment such as MSYS/MinGW.
Also there is as yet no package manipulation tool <B
CLASS="COMMAND"
>hugs-pkg</B
>.</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="locale.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="others.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Locale-based character encoding</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="options.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Other ways of running Hugs</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>