Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 1266

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- systools</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth ||
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){
                if (obj.addEventListener){
                obj.addEventListener(evType, fn, true);
                return true;
              } else if (obj.attachEvent){
                var r = obj.attachEvent("on"+evType, fn);
                return r;
              } else {
                return false;
              }
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/sasl-2.2.1.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>System Application Support Libraries (SASL)</strong><br><strong>Reference Manual</strong><br><small>Version 2.2.1</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu">
<li title="sasl (App)"><a href="sasl_app.html">sasl (App)
                </a></li>
<li id="no" title="alarm_handler " expanded="false">alarm_handler<ul>
<li><a href="alarm_handler.html">
                  Top of manual page
                </a></li>
<li title="clear_alarm-1"><a href="alarm_handler.html#clear_alarm-1">clear_alarm/1</a></li>
<li title="get_alarms-0"><a href="alarm_handler.html#get_alarms-0">get_alarms/0</a></li>
<li title="set_alarm-1"><a href="alarm_handler.html#set_alarm-1">set_alarm/1</a></li>
</ul>
</li>
<li id="no" title="overload " expanded="false">overload<ul>
<li><a href="overload.html">
                  Top of manual page
                </a></li>
<li title="request-0"><a href="overload.html#request-0">request/0</a></li>
<li title="get_overload_info-0"><a href="overload.html#get_overload_info-0">get_overload_info/0</a></li>
</ul>
</li>
<li id="no" title="rb " expanded="false">rb<ul>
<li><a href="rb.html">
                  Top of manual page
                </a></li>
<li title="filter-1"><a href="rb.html#filter-1">filter/1</a></li>
<li title="filter-2"><a href="rb.html#filter-2">filter/2</a></li>
<li title="grep-1"><a href="rb.html#grep-1">grep/1</a></li>
<li title="h-0"><a href="rb.html#h-0">h/0</a></li>
<li title="help-0"><a href="rb.html#help-0">help/0</a></li>
<li title="list-0"><a href="rb.html#list-0">list/0</a></li>
<li title="list-1"><a href="rb.html#list-1">list/1</a></li>
<li title="rescan-0"><a href="rb.html#rescan-0">rescan/0</a></li>
<li title="rescan-1"><a href="rb.html#rescan-1">rescan/1</a></li>
<li title="show-0"><a href="rb.html#show-0">show/0</a></li>
<li title="show-1"><a href="rb.html#show-1">show/1</a></li>
<li title="start-0"><a href="rb.html#start-0">start/0</a></li>
<li title="start-1"><a href="rb.html#start-1">start/1</a></li>
<li title="start_log-1"><a href="rb.html#start_log-1">start_log/1</a></li>
<li title="stop-0"><a href="rb.html#stop-0">stop/0</a></li>
<li title="stop_log-0"><a href="rb.html#stop_log-0">stop_log/0</a></li>
</ul>
</li>
<li id="no" title="release_handler " expanded="false">release_handler<ul>
<li><a href="release_handler.html">
                  Top of manual page
                </a></li>
<li title="check_install_release-1"><a href="release_handler.html#check_install_release-1">check_install_release/1</a></li>
<li title="check_install_release-2"><a href="release_handler.html#check_install_release-2">check_install_release/2</a></li>
<li title="create_RELEASES-4"><a href="release_handler.html#create_RELEASES-4">create_RELEASES/4</a></li>
<li title="install_file-2"><a href="release_handler.html#install_file-2">install_file/2</a></li>
<li title="install_release-1"><a href="release_handler.html#install_release-1">install_release/1</a></li>
<li title="install_release-2"><a href="release_handler.html#install_release-2">install_release/2</a></li>
<li title="make_permanent-1"><a href="release_handler.html#make_permanent-1">make_permanent/1</a></li>
<li title="remove_release-1"><a href="release_handler.html#remove_release-1">remove_release/1</a></li>
<li title="reboot_old_release-1"><a href="release_handler.html#reboot_old_release-1">reboot_old_release/1</a></li>
<li title="set_removed-1"><a href="release_handler.html#set_removed-1">set_removed/1</a></li>
<li title="set_unpacked-2"><a href="release_handler.html#set_unpacked-2">set_unpacked/2</a></li>
<li title="unpack_release-1"><a href="release_handler.html#unpack_release-1">unpack_release/1</a></li>
<li title="which_releases-0"><a href="release_handler.html#which_releases-0">which_releases/0</a></li>
<li title="which_releases-1"><a href="release_handler.html#which_releases-1">which_releases/1</a></li>
<li title="upgrade_app-2"><a href="release_handler.html#upgrade_app-2">upgrade_app/2</a></li>
<li title="downgrade_app-2"><a href="release_handler.html#downgrade_app-2">downgrade_app/2</a></li>
<li title="downgrade_app-3"><a href="release_handler.html#downgrade_app-3">downgrade_app/3</a></li>
<li title="upgrade_script-2"><a href="release_handler.html#upgrade_script-2">upgrade_script/2</a></li>
<li title="downgrade_script-3"><a href="release_handler.html#downgrade_script-3">downgrade_script/3</a></li>
<li title="eval_appup_script-4"><a href="release_handler.html#eval_appup_script-4">eval_appup_script/4</a></li>
</ul>
</li>
<li id="loadscrollpos" title="systools " expanded="true">systools<ul>
<li><a href="systools.html">
                  Top of manual page
                </a></li>
<li title="make_relup-3"><a href="systools.html#make_relup-3">make_relup/3</a></li>
<li title="make_relup-4"><a href="systools.html#make_relup-4">make_relup/4</a></li>
<li title="make_script-1"><a href="systools.html#make_script-1">make_script/1</a></li>
<li title="make_script-2"><a href="systools.html#make_script-2">make_script/2</a></li>
<li title="make_tar-1"><a href="systools.html#make_tar-1">make_tar/1</a></li>
<li title="make_tar-2"><a href="systools.html#make_tar-2">make_tar/2</a></li>
<li title="script2boot-1"><a href="systools.html#script2boot-1">script2boot/1</a></li>
</ul>
</li>
<li title="appup"><a href="appup.html">appup</a></li>
<li title="rel"><a href="rel.html">rel</a></li>
<li title="relup"><a href="relup.html">relup</a></li>
<li title="script"><a href="script.html">script</a></li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>systools</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">systools</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">A Set of Release Handling Tools.</div>
  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p>This module contains functions to generate boot scripts
      (<span class="code">.boot</span>, <span class="code">.script</span>), release upgrade scripts
      (<span class="code">relup</span>), and release packages.</p>
  </p></div>
  <h3>EXPORTS</h3>
    <p><a name="make_relup-3"><span class="bold_code">make_relup(Name, UpFrom, DownTo) -&gt; Result</span></a><br><a name="make_relup-4"><span class="bold_code">make_relup(Name, UpFrom, DownTo, [Opt]) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">UpFrom = DownTo = [Name | {Name,Descr}]</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Descr = term()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Opt = {path,[Dir]} | restart_emulator | silent | noexec | {outdir,Dir}
	| warnings_as_errors</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Dir = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | error | {ok,Relup,Module,Warnings} | {error,Module,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Relup - see relup(4)</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Warnings = Error = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Generates a release upgrade file <span class="code">relup</span> containing a
          script which describes how to upgrade the system from a number
          of previous releases, and how to downgrade to a number of
          previous releases. The script is used by
          <span class="code">release_handler</span> when installing a new version of a
          release in run-time.</p>
        <p>By default, <span class="code">relup</span> is placed in the current working
          directory. If the option <span class="code">{outdir,Dir}</span> is provided,
          <span class="code">relup</span> is placed in <span class="code">Dir</span> instead.</p>
        <p>The release resource file <span class="code">Name.rel</span> is compared with
          all release resource files <span class="code">Name2.rel</span> specified in
          <span class="code">UpFrom</span> and <span class="code">DownTo</span>. For each such pair, it is
          deducted:</p>
        <ul>
          <li>
            <p>Which applications should be deleted, that is
              applications which are listed in <span class="code">Name.rel</span> but not
              in <span class="code">Name2.rel</span>.</p>
          </li>
          <li>
            <p>Which applications should be added, that is applications
              which are listed in <span class="code">Name2.rel</span> but not in
              <span class="code">Name.rel</span>.</p>
          </li>
          <li>
            <p>Which applications should be upgraded/downgraded, that
              is applications listed in both <span class="code">Name.rel</span> and
              <span class="code">Name2.rel</span>, but with different versions.</p>
          </li>
          <li>
            <p>If the emulator needs to be restarted after upgrading or
              downgrading, that is if the ERTS version differs between
              <span class="code">Name.rel</span> and <span class="code">Name2.rel</span>.</p>
          </li>
        </ul>
        <p>Instructions for this are added to the <span class="code">relup</span> script in
          the above order. Instructions for upgrading or downgrading
          between application versions are fetched from the relevant
          application upgrade files <span class="code">App.appup</span>, sorted in
          the same order as when generating a boot script, see
          <span class="code">make_script/1,2</span>. High-level instructions are translated
          into low-level instructions and the result is printed to
          <span class="code">relup</span>.</p>
        <p>The optional <span class="code">Descr</span> parameter is included as-is in
          the <span class="code">relup</span> script, see <span class="code">relup(4)</span>. Defaults to
          the empty list.</p>
        <p>All the files are searched for in the code path. It is
          assumed that the <span class="code">.app</span> and <span class="code">.appup</span> file for an
          application is located in the same directory.</p>
        <p>If the option <span class="code">{path,[Dir]}</span> is provided, this path is
          appended to the current path. The wildcard <span class="code">*</span> is
          expanded to all matching directories.
          Example: <span class="code">lib/*/ebin</span>.</p>
        <p>If the <span class="code">restart_emulator</span> option is supplied, a
          low-level instruction to restart the emulator is appended to
          the relup scripts. This ensures that a complete reboot of
          the system is done when the system is upgraded or downgraded.</p>
	<p>If an upgrade includes a change from an emulator earlier
	  than OTP R15 to OTP R15 or later, the warning
	  <span class="code">pre_R15_emulator_upgrade</span> is issued. See <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','doc/design_principles','appup_cookbook.html');">Design
	  Principles</a></span> for more information about this.</p>
        <p>By default, errors and warnings are printed to tty and
          the function returns <span class="code">ok</span> or <span class="code">error</span>. If the option
          <span class="code">silent</span> is provided, the function instead returns
          <span class="code">{ok,Relup,Module,Warnings}</span> where <span class="code">Relup</span> is
          the release upgrade script, or it returns
          <span class="code">{error,Module,Error}</span>. Warnings and errors can be
          converted to strings by calling
          <span class="code">Module:format_warning(Warnings)</span> or
          <span class="code">Module:format_error(Error)</span>.</p>
        <p>If the option <span class="code">noexec</span> is provided, the function returns
          the same values as for <span class="code">silent</span> but no <span class="code">relup</span> file
          is created.</p>
	<p>If the option <span class="code">warnings_as_errors</span> is provided, warnings
	   are treated as errors.</p>
      </p></div>
    <p><a name="make_script-1"><span class="bold_code">make_script(Name) -&gt; Result</span></a><br><a name="make_script-2"><span class="bold_code">make_script(Name, [Opt]) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Opt = src_tests | {path,[Dir]} | local | {variables,[Var]} | exref |
	  {exref,[App]}] | silent | {outdir,Dir} | no_warn_sasl |
	  warnings_as_errors</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Dir = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Var = {VarName,Prefix}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  VarName = Prefix = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> App = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | error | {ok,Module,Warnings} | {error,Module,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Warnings = Error = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Generates a boot script <span class="code">Name.script</span> and its binary
          version, the boot file <span class="code">Name.boot</span>. The boot file
          specifies which code should be loaded and which applications
          should be started when the Erlang runtime system is started.
          See <span class="code">script(4)</span>.</p>
        <p>The release resource file <span class="code">Name.rel</span> is read to find
          out which applications are included in the release. Then
          the relevant application resource files <span class="code">App.app</span> are
          read to find out which modules should be loaded and if and
          how the application should be started. (Keys <span class="code">modules</span>
          and <span class="code">mod</span>, see <span class="code">app(4)</span>).</p>
        <p>By default, the boot script and boot file are placed in
          the same directory as <span class="code">Name.rel</span>. That is, in the current
          working directory unless <span class="code">Name</span> contains a path. If
          the option <span class="code">{outdir,Dir}</span> is provided, they are placed
          in <span class="code">Dir</span> instead.</p>
        <p>The correctness of each application is checked:</p>
        <ul>
          <li>
            <p>The version of an application specified in
              the <span class="code">.rel</span> file should be the same as the version
              specified in the <span class="code">.app</span> file.</p>
          </li>
          <li>
            <p>There should be no undefined applications, that is,
              dependencies to applications which are not included in
              the release. (Key <span class="code">applications</span> in <span class="code">.app</span>
              file).</p>
          </li>
          <li>
            <p>There should be no circular dependencies among
              the applications.</p>
          </li>
          <li>
            <p>There should be no duplicated modules, that is, modules with
              the same name but belonging to different applications.</p>
          </li>
          <li>
            <p>If the <span class="code">src_tests</span> option is specified, a
              warning is issued if the source code for a module is
              missing or newer than the object code.</p>
          </li>
        </ul>
        <p>The applications are sorted according to the dependencies
          between the applications. Where there are no dependencies,
          the order in the <span class="code">.rel</span> file is kept.</p>
	<p>The function will fail if the mandatory
	  applications <span class="code">kernel</span> and <span class="code">stdlib</span> are not
	  included in the <span class="code">.rel</span> file and have start
	  type <span class="code">permanent</span> (default).</p>
	<p>If <span class="code">sasl</span> is not included as an application in
	  the <span class="code">.rel</span> file, a warning is emitted because such a
	  release can not be used in an upgrade. To turn off this
	  warning, add the option <span class="code">no_warn_sasl</span>.</p>
        <p>All files are searched for in the current path. It is
          assumed that the <span class="code">.app</span> and <span class="code">.beam</span> files for an
          application is located in the same directory. The <span class="code">.erl</span>
          files are also assumed to be located in this directory, unless
          it is an <span class="code">ebin</span> directory in which case they may be
          located in the corresponding <span class="code">src</span> directory.</p>
        <p>If the option <span class="code">{path,[Dir]}</span> is provided, this path is
          appended to the current path. A directory in the path can be
          given with a wildcard <span class="code">*</span>, this is expanded to all
          matching directories. Example: <span class="code">"lib/*/ebin"</span>.</p>
        <p>In the generated boot script all application directories are
          structured as <span class="code">App-Vsn/ebin</span> and assumed to be located
          in <span class="code">$ROOT/lib</span>, where <span class="code">$ROOT</span> is the root directory
          of the installed release. If the <span class="code">local</span> option is
          supplied, the actual directories where the applications were
          found are used instead. This is a useful way to test a
          generated boot script locally.</p>
        <p>The <span class="code">variables</span> option can be used to specify an
          installation directory other than <span class="code">$ROOT/lib</span> for some of
          the applications. If a variable <span class="code">{VarName,Prefix}</span> is
          specified and an application is found in a directory
          <span class="code">Prefix/Rest/App[-Vsn]/ebin</span>, this application will get
          the path <span class="code">VarName/Rest/App-Vsn/ebin</span> in the boot script.
          If an application is found in a directory <span class="code">Prefix/Rest</span>,
          the path will be <span class="code">VarName/Rest/App-Vsn/ebin</span>. When
          starting Erlang, all variables <span class="code">VarName</span> are given
          values using the <span class="code">boot_var</span> command line flag.</p>
        <p>Example: If the option <span class="code">{variables,[{"TEST","lib"}]}</span> is
          supplied, and <span class="code">myapp.app</span> is found in
          <span class="code">lib/myapp/ebin</span>, then the path to this application in
          the boot script will be <span class="code">"$TEST/myapp-1/ebin"</span>. If
          <span class="code">myapp.app</span> is found in <span class="code">lib/test</span>, then the path
          will be <span class="code">$TEST/test/myapp-1/ebin</span>.</p>
        <p>The checks performed before the boot script is generated can
          be extended with some cross reference checks by specifying
          the <span class="code">exref</span> option. These checks are performed with
          the Xref tool. All applications, or the applications specified
          with <span class="code">{exref,[App]}</span>, are checked by Xref and
          warnings are generated for calls to undefined functions.</p>
        <p>By default, errors and warnings are printed to tty and
          the function returns <span class="code">ok</span> or <span class="code">error</span>. If the option
          <span class="code">silent</span> is provided, the function instead returns
          <span class="code">{ok,Module,Warnings}</span> or <span class="code">{error,Module,Error}</span>.
          Warnings and errors can be converted to strings by calling
          <span class="code">Module:format_warning(Warnings)</span> or
          <span class="code">Module:format_error(Error)</span>.</p>
	<p>If the option <span class="code">warnings_as_errors</span> is provided, warnings
	   are treated as errors.</p>
      </p></div>
    <p><a name="make_tar-1"><span class="bold_code">make_tar(Name) -&gt; Result</span></a><br><a name="make_tar-2"><span class="bold_code">make_tar(Name, [Opt]) -&gt; Result</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">Name = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Opt = {dirs,[IncDir]} | {path,[Dir]} | {variables,[Var]} | {var_tar,VarTar} | {erts,Dir} | src_tests | exref | {exref,[App]} | silent | {outdir,Dir}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Dir = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> IncDir = src | include | atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Var = {VarName,PreFix}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">  VarName = Prefix = string()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> VarTar = include | ownfile | omit</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Machine = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> App = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code">Result = ok | error | {ok,Module,Warnings} | {error,Module,Error}</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Module = atom()</span><br>
</div>
        <div class="REFTYPES">
<span class="bold_code"> Warning = Error = term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Creates a release package file <span class="code">Name.tar.gz</span>. file.
          This file must be uncompressed and unpacked on the target
          system using the <span class="code">release_handler</span>, before the new
          release can be installed.</p>
        <p>The release resource file <span class="code">Name.rel</span> is read to find out
          which applications are included in the release. Then
          the relevant application resource files <span class="code">App.app</span> are
          read to find out the version and modules of each application.
          (Keys <span class="code">vsn</span> and <span class="code">modules</span>, see <span class="code">app(4)</span>).</p>
        <p>By default, the release package file is placed in the same
          directory as <span class="code">Name.rel</span>. That is, in the current working
          directory unless <span class="code">Name</span> contains a path. If the option
          <span class="code">{outdir,Dir}</span> is provided, it is placed in <span class="code">Dir</span>
          instead.</p>
        <p>By default, the release package contains the directories
          <span class="code">lib/App-Vsn/ebin</span> and <span class="code">lib/App-Vsn/priv</span> for each
          included application. If more directories, the option
          <span class="code">dirs</span> is supplied. Example:
          <span class="code">{dirs,[src,examples]}</span>.</p>
        <p>All these files are searched for in the current path. If
          the option <span class="code">{path,[Dir]}</span> is provided, this path is
          appended to the current path. The wildcard <span class="code">*</span> is
          expanded to all matching directories.
          Example: <span class="code">"lib/*/ebin"</span>.</p>
        <p>The <span class="code">variables</span> option can be used to specify an
          installation directory other than <span class="code">lib</span> for some of
          the applications. If a variable <span class="code">{VarName,Prefix}</span> is
          specified and an application is found in a directory
          <span class="code">Prefix/Rest/App[-Vsn]/ebin</span>, this application will be
          packed into a separate <span class="code">VarName.tar.gz</span> file as
          <span class="code">Rest/App-Vsn/ebin</span>.</p>
        <p>Example: If the option <span class="code">{variables,[{"TEST","lib"}]}</span> is
          supplied, and <span class="code">myapp.app</span> is found in
          <span class="code">lib/myapp-1/ebin</span>, the the application <span class="code">myapp</span> is
          included in <span class="code">TEST.tar.gz</span>:</p>
        <div class="example"><pre>
% <span class="bold_code">tar tf TEST.tar</span>
myapp-1/ebin/myapp.app
...
        </pre></div>
        <p>The <span class="code">{var_tar,VarTar}</span> option can be used to specify if
          and where a separate package should be stored. In this option,
          <span class="code">VarTar</span> is:</p>
        <ul>
          <li>
            <p><span class="code">include</span>. Each separate (variable) package is
              included in the main <span class="code">ReleaseName.tar.gz</span> file. This
              is the default.</p>
          </li>
          <li>
            <p><span class="code">ownfile</span>. Each separate (variable) package is
              generated as separate files in the same directory as
              the <span class="code">ReleaseName.tar.gz</span> file.</p>
          </li>
          <li>
            <p><span class="code">omit</span>. No separate (variable) packages are
              generated and applications which are found underneath a
              variable directory are ignored.</p>
          </li>
        </ul>
        <p>A directory called <span class="code">releases</span> is also included in
          the release package, containing <span class="code">Name.rel</span> and a
          subdirectory called <span class="code">RelVsn</span>. <span class="code">RelVsn</span> is
          the release version as specified in <span class="code">Name.rel</span>.</p>
        <p><span class="code">releases/RelVsn</span> contains the boot script
          <span class="code">Name.boot</span> renamed to <span class="code">start.boot</span> and, if found,
          the files <span class="code">relup</span> and <span class="code">sys.config</span>. These files
          are searched for in the same directory as <span class="code">Name.rel</span>,
          in the current working directory, and in any directories
          specified using the <span class="code">path</span> option.</p>
        <p>If the release package should contain a new Erlang runtime
          system, the <span class="code">bin</span> directory of the specified runtime
          system <span class="code">{erts,Dir}</span> is copied to <span class="code">erts-ErtsVsn/bin</span>.</p>
        <p>All checks performed with the <span class="code">make_script</span> function
          are performed before the release package is created. The
          <span class="code">src_tests</span> and <span class="code">exref</span> options are also
          valid here.</p>
        <p>The return value and the handling of errors and warnings
          are the same as described for <span class="code">make_script</span> above.</p>
      </p></div>
    <p><a name="script2boot-1"><span class="bold_code">script2boot(File) -&gt; ok | error</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
        <div class="REFTYPES">
<span class="bold_code">File = string()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>The Erlang runtime system requires that the contents of
          the script used to boot the system is a binary Erlang term.
          This function transforms the <span class="code">File.script</span> boot script
          to a binary term which is stored in the file <span class="code">File.boot</span>.</p>
        <p>A boot script generated using the <span class="code">make_script</span>
          function is already transformed to the binary form.</p>
      </p></div>
  

  <h3><a name="id72834">SEE ALSO</a></h3>
<div class="REFBODY">
    
    <p>app(4), appup(4), erl(1), rel(4), release_handler(3), relup(4),
      script(4)</p>
  </div>
</div>
<div class="footer">
<hr>
<p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>