blob: 08a0f547139ae577271b5c6fb27e0930411572b6 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Adding A New Target</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="DejaGnu"
HREF="book1.html"><LINK
REL="UP"
TITLE="Extending DejaGnu"
HREF="c1099.html"><LINK
REL="PREVIOUS"
TITLE="Adding A New Tool"
HREF="x1107.html"><LINK
REL="NEXT"
TITLE="Adding A New Board"
HREF="x1214.html"></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"
>DejaGnu: The GNU Testing Framework</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1107.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Extending DejaGnu</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x1214.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="ADDTARGET"
></A
>Adding A New Target</H1
><P
>DejaGnu has some additional requirements for target support, beyond
the general-purpose provisions of configure. DejaGnu must actively
communicate with the target, rather than simply generating or managing
code for the target architecture. Therefore, each tool requires an
initialization module for each target. For new targets, you must supply
a few Tcl procedures to adapt DejaGnu to the target. This permits
DejaGnu itself to remain target independent.</P
><P
>Usually the best way to write a new initialization module is to
edit an existing initialization module; some trial and error will be
required. If necessary, you can use the @samp{--debug} option to see what
is really going on.</P
><P
>When you code an initialization module, be generous in printing
information controlled by the <TT
CLASS="FUNCTION"
>verbose</TT
>
procedure.</P
><P
>For cross targets, most of the work is in getting the
communications right. Communications code (for several situations
involving IP networks or serial lines) is available in a DejaGnu library
file.</P
><P
>If you suspect a communication problem, try running the connection
interactively from <SPAN
CLASS="PRODUCTNAME"
>Expect</SPAN
>. (There are three
ways of running <SPAN
CLASS="PRODUCTNAME"
>Expect</SPAN
> as an interactive
interpreter. You can run <SPAN
CLASS="PRODUCTNAME"
>Expect</SPAN
> with no
arguments, and control it completely interactively; or you can use
<B
CLASS="COMMAND"
>expect -i</B
> together with other command-line options and
arguments; or you can run the command <B
CLASS="COMMAND"
>interpreter</B
> from
any <SPAN
CLASS="PRODUCTNAME"
>Expect</SPAN
> procedure. Use
<B
CLASS="COMMAND"
>return</B
> to get back to the calling procedure (if any),
or <B
CLASS="COMMAND"
>return -tcl</B
> to make the calling procedure itself
return to its caller; use <B
CLASS="COMMAND"
>exi</B
>t or end-of-file to leave
Expect altogether.) Run the program whose name is recorded in
<SPAN
CLASS="SYMBOL"
>$connectmode</SPAN
>, with the arguments in
<SPAN
CLASS="SYMBOL"
>$targetname</SPAN
>, to establish a connection. You should at
least be able to get a prompt from any target that is physically
connected.</P
></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="x1107.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x1214.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Adding A New Tool</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="c1099.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Adding A New Board</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>