aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reltool/doc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/reltool/doc')
-rw-r--r--lib/reltool/doc/html/.gitignore0
-rw-r--r--lib/reltool/doc/man3/.gitignore0
-rw-r--r--lib/reltool/doc/pdf/.gitignore0
-rw-r--r--lib/reltool/doc/src/Makefile105
-rw-r--r--lib/reltool/doc/src/book.gifbin0 -> 1081 bytes
-rw-r--r--lib/reltool/doc/src/book.xml48
-rw-r--r--lib/reltool/doc/src/fascicules.xml17
-rw-r--r--lib/reltool/doc/src/files.mk45
-rw-r--r--lib/reltool/doc/src/make.dep20
-rw-r--r--lib/reltool/doc/src/note.gifbin0 -> 1539 bytes
-rw-r--r--lib/reltool/doc/src/notes.gifbin0 -> 2005 bytes
-rw-r--r--lib/reltool/doc/src/notes.xml186
-rw-r--r--lib/reltool/doc/src/part.xml43
-rw-r--r--lib/reltool/doc/src/part_notes.xml41
-rw-r--r--lib/reltool/doc/src/ref_man.gifbin0 -> 1530 bytes
-rw-r--r--lib/reltool/doc/src/ref_man.xml41
-rw-r--r--lib/reltool/doc/src/reltool.xml698
-rw-r--r--lib/reltool/doc/src/reltool_examples.xml466
-rw-r--r--lib/reltool/doc/src/reltool_intro.xml98
-rw-r--r--lib/reltool/doc/src/reltool_usage.xml393
-rw-r--r--lib/reltool/doc/src/user_guide.gifbin0 -> 1581 bytes
-rw-r--r--lib/reltool/doc/src/warning.gifbin0 -> 1498 bytes
22 files changed, 2201 insertions, 0 deletions
diff --git a/lib/reltool/doc/html/.gitignore b/lib/reltool/doc/html/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/reltool/doc/html/.gitignore
diff --git a/lib/reltool/doc/man3/.gitignore b/lib/reltool/doc/man3/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/reltool/doc/man3/.gitignore
diff --git a/lib/reltool/doc/pdf/.gitignore b/lib/reltool/doc/pdf/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/reltool/doc/pdf/.gitignore
diff --git a/lib/reltool/doc/src/Makefile b/lib/reltool/doc/src/Makefile
new file mode 100644
index 0000000000..2c634bdf6c
--- /dev/null
+++ b/lib/reltool/doc/src/Makefile
@@ -0,0 +1,105 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2009. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(RELTOOL_VSN)
+APPLICATION=reltool
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+include files.mk
+
+# ----------------------------------------------------
+
+HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \
+ $(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html)
+
+INFO_FILE = ../../info
+
+MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3)
+
+XML_FILES = \
+ $(BOOK_FILES) $(XML_CHAPTER_FILES) \
+ $(XML_PART_FILES) $(XML_REF3_FILES) $(XML_APPLICATION_FILES)
+
+HTML_REF_MAN_FILE = $(HTMLDIR)/index.html
+
+TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf
+
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+XML_FLAGS +=
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+$(HTMLDIR)/%.gif: %.gif
+ $(INSTALL_DATA) $< $@
+
+docs: pdf html man
+
+$(TOP_PDF_FILE): $(XML_FILES)
+
+pdf: $(TOP_PDF_FILE)
+
+html: gifs $(HTML_REF_MAN_FILE)
+
+man: $(MAN3_FILES)
+
+gifs: $(GIF_FILES:%=$(HTMLDIR)/%)
+
+debug opt:
+
+clean clean_docs:
+ rm -rf $(HTMLDIR)/*
+ rm -f $(MAN3DIR)/*
+ rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo)
+ rm -f errs core *~
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_docs_spec: docs
+ $(INSTALL_DIR) $(RELSYSDIR)/doc/pdf
+ $(INSTALL_DATA) $(TOP_PDF_FILE) $(RELSYSDIR)/doc/pdf
+ $(INSTALL_DIR) $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(HTMLDIR)/* \
+ $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR)
+ $(INSTALL_DIR) $(RELEASE_PATH)/man/man3
+ $(INSTALL_DATA) $(MAN3DIR)/* $(RELEASE_PATH)/man/man3
+
+release_spec:
+
diff --git a/lib/reltool/doc/src/book.gif b/lib/reltool/doc/src/book.gif
new file mode 100644
index 0000000000..94b3868792
--- /dev/null
+++ b/lib/reltool/doc/src/book.gif
Binary files differ
diff --git a/lib/reltool/doc/src/book.xml b/lib/reltool/doc/src/book.xml
new file mode 100644
index 0000000000..f50d314711
--- /dev/null
+++ b/lib/reltool/doc/src/book.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE book SYSTEM "book.dtd">
+
+<book xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header titlestyle="normal">
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Reltool</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <docno></docno>
+ <date></date>
+ <rev>%VSN%/rev></rev>
+ </header>
+ <insidecover>
+ </insidecover>
+ <pagetext>Reltool</pagetext>
+ <preamble>
+ <contents level="2"></contents>
+ </preamble>
+ <parts lift="no">
+ <xi:include href="part.xml"/>
+ </parts>
+ <applications>
+ <xi:include href="ref_man.xml"/>
+ </applications>
+ <releasenotes>
+ <xi:include href="notes.xml"/>
+ </releasenotes>
+ <index></index>
+</book>
diff --git a/lib/reltool/doc/src/fascicules.xml b/lib/reltool/doc/src/fascicules.xml
new file mode 100644
index 0000000000..a57808974e
--- /dev/null
+++ b/lib/reltool/doc/src/fascicules.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE fascicules SYSTEM "fascicules.dtd">
+
+<fascicules>
+ <fascicule file="part" href="part_frame.html" entry="no">
+ User's Guide
+ </fascicule>
+ <fascicule file="ref_man" href="ref_man_frame.html" entry="yes">
+ Reference Manual
+ </fascicule>
+ <fascicule file="part_notes" href="part_notes_frame.html" entry="no">
+ Release Notes
+ </fascicule>
+ <fascicule file="" href="../../../../doc/print.html" entry="no">
+ Off-Print
+ </fascicule>
+</fascicules>
diff --git a/lib/reltool/doc/src/files.mk b/lib/reltool/doc/src/files.mk
new file mode 100644
index 0000000000..b2dc06411d
--- /dev/null
+++ b/lib/reltool/doc/src/files.mk
@@ -0,0 +1,45 @@
+#-*-makefile-*- ; force emacs to enter makefile-mode
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2009. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+
+XML_APPLICATION_FILES = \
+ ref_man.xml
+
+XML_REF3_FILES = \
+ reltool.xml
+
+XML_PART_FILES = \
+ part.xml \
+ part_notes.xml
+
+XML_CHAPTER_FILES = \
+ reltool_intro.xml \
+ reltool_usage.xml \
+ reltool_examples.xml \
+ notes.xml
+
+BOOK_FILES = book.xml
+
+GIF_FILES = \
+ book.gif \
+ note.gif \
+ notes.gif \
+ ref_man.gif \
+ user_guide.gif \
+ warning.gif
+
diff --git a/lib/reltool/doc/src/make.dep b/lib/reltool/doc/src/make.dep
new file mode 100644
index 0000000000..59e77e8162
--- /dev/null
+++ b/lib/reltool/doc/src/make.dep
@@ -0,0 +1,20 @@
+# ----------------------------------------------------
+# >>>> Do not edit this file <<<<
+# This file was automaticly generated by
+# /home/otp/bin/docdepend
+# ----------------------------------------------------
+
+
+# ----------------------------------------------------
+# TeX files that the DVI file depend on
+# ----------------------------------------------------
+
+book.dvi: book.tex part.tex ref_man.tex reltool.tex \
+ reltool_examples.tex reltool_intro.tex reltool_usage.tex
+
+# ----------------------------------------------------
+# Source inlined when transforming from source to LaTeX
+# ----------------------------------------------------
+
+book.tex: ref_man.xml
+
diff --git a/lib/reltool/doc/src/note.gif b/lib/reltool/doc/src/note.gif
new file mode 100644
index 0000000000..6fffe30419
--- /dev/null
+++ b/lib/reltool/doc/src/note.gif
Binary files differ
diff --git a/lib/reltool/doc/src/notes.gif b/lib/reltool/doc/src/notes.gif
new file mode 100644
index 0000000000..e000cca26a
--- /dev/null
+++ b/lib/reltool/doc/src/notes.gif
Binary files differ
diff --git a/lib/reltool/doc/src/notes.xml b/lib/reltool/doc/src/notes.xml
new file mode 100644
index 0000000000..293793e900
--- /dev/null
+++ b/lib/reltool/doc/src/notes.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Reltool Release Notes</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <docno></docno>
+ <date></date>
+ <rev></rev>
+ <file>notes.xml</file>
+ </header>
+ <p>This document describes the changes made to the Reltool system
+ from version to version. The intention of this document is to
+ list all incompatibilities as well as all enhancements and
+ bugfixes for every release of Reltool. Each release of Reltool
+ thus constitutes one section in this document. The title of each
+ section is the version number of Reltool.</p>
+
+
+ <section><title>Reltool 0.5.2</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ The documentation is now built with open source tools
+ (xsltproc and fop) that exists on most platforms. One
+ visible change is that the HTML frames are removed.</p>
+ <p>
+ Own Id: OTP-8254</p>
+ </item>
+ </list>
+ </section>
+
+ </section>
+
+ <section><title>Reltool 0.5.1</title>
+
+ <section><title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ In the new release of Reltool (0.5) there is a severe bug
+ that may cause your source files to be deleted. The bug
+ is triggered when you generate a target system WITH
+ archive files AND your library directories are given with
+ absolute paths. (Library directories are given with the
+ ERL_LIBS environment variable or with the lib_dirs
+ configuration parameter.)</p>
+ <p>
+ Own Id: OTP-8199</p>
+ </item>
+ </list>
+ </section>
+
+ </section>
+
+ <section><title>Reltool 0.5</title>
+
+ <section><title>Improvements and New Features</title>
+ <list>
+ <item>
+ <p>
+ The tool is still experimental. Feedback is appreciated. </p>
+ <p>
+ Major improvements of the target system generation has
+ been performed. Now it is possible to generate a
+ relocatable target system that does not need to be
+ re-installed if it is moved to a new location. Archive
+ files are automatically generated. A detailed
+ specification of the target system can be generated
+ without actually creating the target system. Relocatable
+ escripts are put in the bin directory of the target
+ system. etc. etc.</p>
+ <p>
+ Some new functions has been introduced in the
+ <c>reltool</c> module: <c>start/1, start_link/1,
+ get_config/3, get_target_spec/1 and
+ eval_target_spec/3</c>.</p>
+ <p>
+ Some new configuration parameters has been introduced:
+ <c>profile, incl_sys_filters, excl_sys_filters,
+ incl_app_filters, excl_app_filters, incl_archive_filters,
+ excl_archive_filters, archive_opts, escript and
+ relocatable</c>.</p>
+ <p>
+ Some parameters have been obsoleted and given new
+ semantics: <c>incl_erts_dirs (incl_sys_filters),
+ excl_erts_dirs (excl_sys_filters), incl_app_dirs
+ (incl_app_filters), excl_app_dirs (excl_app_filters) and
+ escripts (escript).</c></p>
+ <p>
+ *** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>
+ Own Id: OTP-7949</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Known Bugs and Problems</title>
+ <list>
+ <item>
+ <p>
+ The application is experimental. Feedback is appreciated.</p>
+ </item>
+ </list>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Reltool 0.2.2</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list>
+ <item>
+ <p>
+ The tool crashed when rel, script and boot files were
+ generated via the GUI. This has been fixed.</p>
+ <p>
+ Own Id: OTP-7999</p>
+ </item>
+ </list>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Reltool 0.2.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+
+ <list>
+ <item>
+ <p>
+ Minor GUI fixes</p>
+ <p>
+ Own Id: OTP-7840</p>
+ </item>
+ </list>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Reltool 0.2</title>
+ <section>
+ <title>Improvements and new features</title>
+ <p>This is the first (experimental) release of Reltool.</p>
+ </section>
+
+ <section>
+ <title>Known Bugs and Problems</title>
+ <list>
+ <item>
+ <p>
+ The application is experimental.</p>
+ </item>
+ </list>
+ </section>
+ </section>
+</chapter>
diff --git a/lib/reltool/doc/src/part.xml b/lib/reltool/doc/src/part.xml
new file mode 100644
index 0000000000..f78022a718
--- /dev/null
+++ b/lib/reltool/doc/src/part.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Reltool Users Guide</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <docno></docno>
+ <date></date>
+ <rev>%VSN%</rev>
+ </header>
+ <description>
+ <p><c>Reltool</c> is a release management tool. It analyses a given
+ Erlang/OTP installation and determines various dependencies
+ between applications. The <c>graphical</c> frontend depicts the
+ dependencies and enables interactive customization of a
+ target system. The backend provides a <c>batch</c> interface
+ for generation of customized target systems.</p>
+ </description>
+ <xi:include href="reltool_intro.xml"/>
+ <xi:include href="reltool_usage.xml"/>
+ <xi:include href="reltool_examples.xml"/>
+</part>
diff --git a/lib/reltool/doc/src/part_notes.xml b/lib/reltool/doc/src/part_notes.xml
new file mode 100644
index 0000000000..5a2aeecce6
--- /dev/null
+++ b/lib/reltool/doc/src/part_notes.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Reltool Release Notes</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <docno></docno>
+ <date></date>
+ <rev>%VSN%</rev>
+ </header>
+ <description>
+ <p><c>Reltool</c> is a release management tool. It analyses a given
+ Erlang/OTP installation and determines various dependencies
+ between applications. The <c>graphical</c> frontend depicts the
+ dependencies and enables interactive customization of a
+ target system. The backend provides a <c>batch</c> interface
+ for generation of customized target systems.</p>
+ </description>
+ <xi:include href="notes.xml"/>
+</part>
diff --git a/lib/reltool/doc/src/ref_man.gif b/lib/reltool/doc/src/ref_man.gif
new file mode 100644
index 0000000000..b13c4efd53
--- /dev/null
+++ b/lib/reltool/doc/src/ref_man.gif
Binary files differ
diff --git a/lib/reltool/doc/src/ref_man.xml b/lib/reltool/doc/src/ref_man.xml
new file mode 100644
index 0000000000..52602bd069
--- /dev/null
+++ b/lib/reltool/doc/src/ref_man.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE application SYSTEM "application.dtd">
+
+<application xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Reltool Reference Manual</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <docno></docno>
+ <date></date>
+ <rev>%VSN%</rev>
+ </header>
+ <description>
+ <p><c>Reltool</c> is a release management tool. It analyses a given
+ Erlang/OTP installation and determines various dependencies
+ between applications. The <c>graphical</c> frontend depicts the
+ dependencies and enables interactive customization of a
+ target system. The backend provides a <c>batch</c> interface
+ for generation of customized target systems.</p>
+ </description>
+ <xi:include href="reltool.xml"/>
+</application>
diff --git a/lib/reltool/doc/src/reltool.xml b/lib/reltool/doc/src/reltool.xml
new file mode 100644
index 0000000000..9786928ae8
--- /dev/null
+++ b/lib/reltool/doc/src/reltool.xml
@@ -0,0 +1,698 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>reltool</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ </header>
+ <module>reltool</module>
+ <modulesummary>Main API of the Reltool application</modulesummary>
+ <description>
+ <p>This is an interface module for the Reltool application.</p>
+
+ <p><em>Reltool</em> is a release management tool. It analyses a
+ given Erlang/OTP installation and determines various dependencies
+ between applications. The <c>graphical</c> frontend depicts the
+ dependencies and enables interactive customization of a target
+ system. The backend provides a <c>batch</c> interface for
+ generation of customized target systems.</p>
+
+ <p>The tool uses an installed Erlang/OTP system as input.
+ <c>root_dir</c> is the root directory of the analysed system and
+ it defaults to the system executing <c>reltool</c>. Applications
+ may also be located outside <c>root_dir</c>. <c>lib_dirs</c>
+ defines additional library directories where applications
+ additional may reside and it defaults to the the directories
+ listed by the operating system environment variable
+ <c>ERL_LIBS</c>. See the module <c>code</c> for more info.
+ Finally single modules and entire applications may be read from
+ Escripts.</p>
+
+ <p>Some configuration parameters control the behavior of Reltool
+ on system (<c>sys</c>) level. Others provide control on
+ application (<c>app</c>) level and yet others are on module
+ (<c>mod</c>) level. Module level parameters overrides application
+ level parameters and application level parameters overrides system
+ level parameters. Escript <c>escript</c> level parameters
+ overrides system level parameters.</p>
+
+ <p>The following top level <c>options</c> are supported:</p>
+
+ <taglist>
+
+ <tag><c><![CDATA[config]]></c></tag>
+ <item>
+ <p>This is the main option and it controls the configuration
+ of <c>reltool</c>. It can either be a <c>sys</c> tuple or
+ a name of a <c>file</c> containing a sys tuple.</p>
+ </item>
+
+ <tag><c><![CDATA[trap_exit]]></c></tag>
+ <item>
+ <p>This option controls the error handling behavior of
+ <c>reltool</c>. By default the window processes traps
+ exit, but this behavior can altered by setting
+ <c>trap_exit</c> to <c>false</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[wx_debug]]></c></tag>
+ <item>
+ <p>This option controls the debug level of <c>wx</c>. As its
+ name indicates it is only useful for debugging. See
+ <c>wx:debug/1</c> for more info.</p>
+ </item>
+
+ </taglist>
+
+ <p>Besides the already mentioned source parameters <c>root_dir</c>
+ and <c>lib_dirs</c>, the following system (<c>sys</c>) level
+ options are supported:</p>
+
+ <taglist>
+
+ <tag><c><![CDATA[erts]]></c></tag>
+ <item>
+ <p>Erts specific configuration. See application level options
+ below.</p>
+ </item>
+
+ <tag><c><![CDATA[escript]]></c></tag>
+ <item>
+ <p>Escript specific configuration. An escript has a mandatory
+ file name and escript level options that are described
+ below.</p>
+ </item>
+
+ <tag><c><![CDATA[app]]></c></tag>
+ <item>
+ <p>Application specific configuration. An application has a
+ mandatory name and application level options that are
+ described below.</p>
+ </item>
+
+ <tag><c><![CDATA[mod_cond]]></c></tag>
+ <item>
+ <p>This parameter controls the module inclusion policy. It
+ defaults to <c>all</c> which means that if an application is
+ included (either explicitly or implicitly) all modules in that
+ application will be included. This implies that both modules
+ that exists on the <c>ebin</c> directory of the application,
+ as well as modules that are named in the <c>app</c> file will
+ be included. If the parameter is set to <c>ebin</c>, both
+ modules on the <c>ebin</c> directory and derived modules are
+ included. If the parameter is set to <c>app</c>, both modules
+ in the <c>app</c> file and derived modules are included.
+ <c>derived</c> means that only modules that are used by other
+ included modules are included. The <c>mod_cond</c> setting on
+ system level is used as default for all applications.</p>
+ </item>
+
+ <tag><c><![CDATA[incl_cond]]></c></tag>
+ <item>
+ <p>This parameter controls the application and escript
+ inclusion policy. It defaults to <c>derived</c> which means
+ that the applications that not have any explicit
+ <c>incl_cond</c> setting, will only be included if any other
+ (explicitly or implicitly included) application uses it. The
+ value <c>include</c> implies that all applications and
+ escripts that that not have any explicit <c>incl_cond</c>
+ setting will be included. <c>exclude</c> implies that all
+ applications and escripts) that that not have any explicit
+ <c>incl_cond</c> setting will be excluded.</p>
+ </item>
+
+ <tag><c><![CDATA[boot_rel]]></c></tag>
+ <item>
+ <p>A target system may have several releases but the one given
+ as <c>boot_rel</c> will be used as default when the system is
+ booting up.</p>
+ </item>
+
+ <tag><c><![CDATA[rel]]></c></tag>
+ <item>
+ <p>Release specific configuration. Each release maps to a
+ <c>rel</c>, <c>script</c> and <c>boot </c> file. See the
+ module <c>systools</c> for more info about the details. Each
+ release has a name, a version and a set of applications with a
+ few release specific parameters such as type and included
+ applications.</p>
+ </item>
+
+ <tag><c><![CDATA[relocatable]]></c></tag>
+ <item>
+ <p>This parameter controls whether the <c>erl</c> executable
+ in the target system automatically should determine where it
+ is installed or if it should use a hardcoded path to the
+ installation. In the latter case the target system must be
+ installed with <c>reltool:install/2</c> before it can be
+ used. If the system is relocatable, the file tree containing
+ the target system can be moved to another location without
+ re-installation. The default is <c>true</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[profile]]></c></tag>
+ <item>
+ <p>The creation of the specification for a target system is
+ performed in two steps. In the first step a complete
+ specification is generated. It will likely contain much more
+ files than you are interested in your customized target
+ system. In the second step the specification will be filtered
+ according to your filters. There you have the ability to
+ specify filters per application as well as system wide
+ filters. You can also select a <c>profile</c> for your
+ system. Depending on the <c>profile</c>, different default
+ filters will be used. There are three different profiles to
+ choose from: <c>development</c>, <c>embedded</c> and
+ <c>standalone</c>. <c>development</c> is default. The
+ parameters that are affected by the <c>profile</c> are:
+ <c>incl_sys_filters</c>, <c>excl_sys_filters</c>,
+ <c>incl_app_filters</c> and <c>excl_app_filters</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[app_file]]></c></tag>
+ <item>
+ <p>This parameter controls the default handling of the
+ <c>app</c> files when a target system is generated. It
+ defaults to <c>keep</c> which means that <c>app</c> files are
+ copied to the target system and their contents are kept as
+ they are. <c>strip</c> means that a new <c>app</c> file is
+ generated from the contents of the original <c>app</c> file
+ where the non included modules are removed from the
+ file. <c>all</c> does also imply that a new <c>app</c> file is
+ generated from the contents of the original <c>app</c> file,
+ with the difference that all included modules are added to the
+ file. If the application does not have any <c>app</c> file a
+ file will be created for <c>all</c> but not for <c>keep</c>
+ and <c>strip</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[debug_info]]></c></tag>
+ <item>
+ <p>The <c>debug_info</c> parameter controls whether the debug
+ information in the beam file should be kept (<c>keep</c>) or
+ stripped <c>strip</c> when the file is copied to the target
+ system.</p>
+ </item>
+
+ <tag><c><![CDATA[incl_sys_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which files in the system that
+ should be included. Each file in the target system must match
+ at least one of the listed regular expressions in order to be
+ included. Further the files may not match any filter in
+ <c>excl_sys_filters</c> in order to be included. Which
+ application files that should be included are controlled with
+ the parameters <c>incl_app_filters</c> and
+ <c>excl_app_filters</c>. This parameter defaults to
+ <c>[".*"]</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[excl_sys_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which files in the system that not
+ should be included in the target system. In order to be
+ included, a file must match some filter in
+ <c>incl_sys_filters</c> but not any filter in
+ <c>excl_sys_filters</c>. This parameter defaults to
+ <c>[]</c>.</p>
+ </item>
+ <tag><c><![CDATA[incl_app_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which application specific files
+ that should be included. Each file in the application must
+ match at least one of the listed regular expressions in order
+ to be included. Further the files may not match any filter in
+ <c>excl_app_filters</c> in order to be included. This
+ parameter defaults to <c>[".*"]</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[excl_app_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which application specific files
+ that not should be included in the target system. In order to
+ be included, a file must match some filter in
+ <c>incl_app_filters</c> but not any filter in
+ <c>excl_app_filters</c>. This parameter defaults to
+ <c>[]</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[incl_archive_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which top level directories in an
+ application that should be included in an archive file (as
+ opposed of beeing included as a regular directory outside the
+ archive). Each top directory in the application must match at
+ least one of the listed regular expressions in order to be
+ included. Further the files may not match any filter in
+ <c>excl_app_filters</c> in order to be included. This
+ parameter defaults to <c>[".*"]</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[excl_archive_filters]]></c></tag>
+ <item>
+ <p>This parameter normally contains a list of regular
+ expressions that controls which top level directories in an
+ application that not should be included in an archive file. In
+ order to be included in the application archive, a top
+ directory must match some filter in <c>incl_archive_filters</c>
+ but not any filter in <c>excl_archive_filters</c>. This
+ parameter defaults to <c>["^include$","^priv$"]</c>.</p>
+ </item>
+
+ <tag><c><![CDATA[archive_opts]]></c></tag>
+ <item>
+ <p>This parameter contains a list of options that are given to
+ <c>zip:create/3</c> when application specific files are
+ packaged into an archive. All options are not supported. The
+ most useful options in this context, are the ones that
+ controls which types of files that should be compressed. This
+ parameter defaults to <c>[]</c>.</p>
+ </item>
+
+ </taglist>
+
+ <p>On application (<c>escript</c>) level,the following options are
+ supported:</p>
+
+ <taglist>
+ <tag><c><![CDATA[incl_cond]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ </taglist>
+
+ <p>On application (<c>app</c>) level,the following options are
+ supported:</p>
+
+ <taglist>
+ <tag><c><![CDATA[vsn]]></c></tag>
+ <item>
+ <p>The version of the application. In an installed system there may
+ exist several versions of an application. The <c>vsn</c> parameter
+ controls which version of the application that will be choosen. If it
+ is omitted, the latest version will be choosen.</p>
+ </item>
+ <tag><c><![CDATA[mod]]></c></tag>
+ <item>
+ <p>Module specific configuration. A module has a mandatory
+ name and module level options that are described below.</p>
+ </item>
+ <tag><c><![CDATA[mod_cond]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ <tag><c><![CDATA[incl_cond]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ <tag><c><![CDATA[app_file]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ <tag><c><![CDATA[debug_info]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ <tag><c><![CDATA[incl_app_filters]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ <tag><c><![CDATA[excl_app_filters]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+
+ <tag><c><![CDATA[incl_archive_filters]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+
+ <tag><c><![CDATA[excl_archive_filters]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+
+ <tag><c><![CDATA[archive_opts]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with the
+ same name on system level.</p>
+ </item>
+ </taglist>
+
+ <p>On module (<c>mod</c>) level,the following options are
+ supported:</p>
+
+ <taglist>
+ <tag><c><![CDATA[incl_cond]]></c></tag>
+ <item>
+ <p>This parameter controls whether the module is included or not. By
+ default the <c>mod_incl</c> parameter on application and system level
+ will be used to control whether the module is included or not. The
+ value of <c>incl_cond</c> overrides the module inclusion policy.
+ <c>include</c> implies that the module is included, while
+ <c>exclude</c> implies that the module not is included.
+ <c>derived</c> implies that the is included if any included uses the
+ module.</p>
+ </item>
+ <tag><c><![CDATA[debug_info]]></c></tag>
+ <item>
+ <p>The value of this parameter overrides the parameter with
+ the same name on application level.</p>
+ </item>
+ </taglist>
+
+ </description>
+
+ <section>
+ <title>DATA TYPES</title>
+ <code type="none"><![CDATA[
+options() = [option()]
+option() = {config, config() | file()}
+ | {trap_exit, bool()}
+ | {wx_debug, term()}
+config() = {sys, [sys()]}
+sys() = {root_dir, root_dir()}
+ | {lib_dirs, [lib_dir()]}
+ | {profile, profile()}
+ | {erts, app()}
+ | {escript, escript_file(), [escript()]}
+ | {app, app_name(), [app()]}
+ | {mod_cond, mod_cond()}
+ | {incl_cond, incl_cond()}
+ | {boot_rel, boot_rel()}
+ | {rel, rel_name(), rel_vsn(), [rel_app()]}
+ | {relocatable, relocatable()}
+ | {app_file, app_file()}
+ | {debug_info, debug_info()}
+ | {incl_sys_filters, incl_sys_filters()}
+ | {excl_sys_filters, excl_sys_filters()}
+ | {incl_app_filters, incl_app_filters()}
+ | {excl_app_filters, excl_app_filters()}
+ | {incl_archive_filters, incl_archive_filters()}
+ | {excl_archive_filters, excl_archive_filters()}
+ | {archive_opts, [archive_opt()]}
+app() = {vsn, app_vsn()}
+ | {mod, mod_name(), mod()}
+ | {mod_cond, mod_cond()}
+ | {incl_cond, incl_cond()}
+ | {debug_info, debug_info()}
+ | {app_file, app_file()}
+ | {incl_sys_filters, incl_sys_filters()}
+ | {excl_sys_filters, excl_sys_filters()}
+ | {incl_app_filters, incl_app_filters()}
+ | {excl_app_filters, excl_app_filters()}
+ | {incl_archive_filters, incl_archive_filters()}
+ | {excl_archive_filters, excl_archive_filters()}
+ | {archive_opts, [archive_opt()]}
+mod() = {vsn, app_vsn()}
+ | {incl_cond, incl_cond()}
+ | {debug_info, debug_info()}
+rel_app() = app_name()
+ | {app_name(), app_type()}
+ | {app_name(), [incl_app()]}
+ | {app_name(), app_type(), [incl_app()]}
+app_name() = atom()
+app_type() = permanent | transient | temporary | load | none
+app_vsn() = string()
+archive_opt = zip_create_opt()
+boot_rel() = rel_name()
+app_file() = keep | strip | all
+debug_info() = keep | strip
+dir() = string()
+escript() = {incl_cond, incl_cond()}
+escript_file() = file()
+excl_app_filters() = regexps()
+excl_archive_filters() = regexps()
+excl_sys_filters() = regexps()
+file() = string()
+incl_app() = app_name()
+incl_app_filters() = regexps()
+incl_archive_filters() = regexps()
+incl_cond() = include | exclude | derived
+incl_sys_filters() = regexps()
+lib_dir() = dir()
+mod_cond() = all | app | ebin | derived | none
+mod_name() = atom()
+profile() = development | embedded | standalone
+re_regexp() = string()
+reason() = string()
+regexps() = [re_regexp()] | {add, [re_regexp()]} | {del, [re_regexp()]}
+rel_file() = term()
+rel_name() = string()
+rel_vsn() = string()
+relocatable = boolean()
+root_dir() = dir()
+script_file() = term()
+server() = server_pid() | options()
+server_pid() = pid()
+target_dir() = file()
+window_pid() = pid()]]></code>
+
+ <marker id="start"></marker>
+ </section>
+
+ <funcs>
+ <func>
+ <name>create_target(Server, TargetDir) -> ok | {error, Reason}</name>
+ <fsummary>Create a target system</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>TargetDir = target_dir()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Create a target system. Gives the same result as
+ <c>{ok,TargetSpec}=reltool:get_target_spec(Server)</c> and
+ <c>reltool:eval_target_spec(TargetSpec,RootDir,TargetDir)</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>eval_target_spec(TargetSpec, RootDir, TargetDir) -> ok | {error, Reason}</name>
+ <fsummary>Create a target system</fsummary>
+ <type>
+ <v>TargetSpec = target_spec()</v>
+ <v>RootDir = root_dir()</v>
+ <v>TargetDir = target_dir()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Create the actual target system from a specification
+ generated by <c>reltool:get_target_spec/1</c>. The creation of
+ the specification for a target system is performed in two
+ steps. In the first step a complete specification will be
+ generated. It will likely contain much more files than you are
+ interested in in your target system. In the second step the
+ specification will be filtered according to your filters. There
+ you have the ability to specify filters per application as well
+ as system wide filters. You can also select a <c>profile</c> for
+ your system. Depending on the <c>profile</c>, different default
+ filters will be used.</p>
+
+ <p>The top directories <c>bin</c>, <c>releases</c> and
+ <c>lib</c> are treated differently from other files. All other
+ files are by default copied to the target system. The
+ <c>releases</c> directory contains generated <c>rel</c>,
+ <c>script</c>, and <c>boot</c> files. The <c>lib</c> directory
+ contains the applications. Which applications that are included
+ and if they should be customized (archived, stripped from debug
+ info etc.) is specified with various configuration
+ parameters. The files in the <c>bin</c> directory are copied
+ from the <c>erts-vsn/bin</c> directory, but only those files
+ that was originally included in <c>bin</c> directory of the
+ source system.</p>
+
+ <p>If the configuration parameter <c>relocatable</c> was set to
+ <c>true</c> there is no need to install the target system with
+ <c>reltool:install/2</c> before it can be started. In that case
+ the file tree containing the target system can be moved without
+ re-installation.</p></desc>
+ </func>
+
+ <func>
+ <name>get_config(Server) -> {ok, Config} | {error, Reason}</name>
+ <fsummary>Get reltool configuration</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>Config = config()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Get reltool configuration. Shorthand for
+ <c>reltool:get_config(Server,false,false)</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>get_config(Server, InclDefaults, InclDerived) -> {ok, Config} | {error, Reason}</name>
+ <fsummary>Get reltool configuration</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>InclDefaults = incl_defaults()</v>
+ <v>InclDerived = incl_derived()</v>
+ <v>Config = config()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Get reltool configuration. Normally, only the explicit
+ configuration parameters with values that differs from their
+ defaults are interesting. But the builtin default values can be
+ returned by setting <c>InclDefaults</c> to <c>true</c>. The
+ derived configuration can be return by setting
+ <c>InclDerived</c> to <c>true</c>.</p></desc>
+ </func>
+
+ <func>
+ <name>get_rel(Server, Relname) -> {ok, RelFile} | {error, Reason}</name>
+ <fsummary>Get contents of a release file</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>RelName = rel_name()</v>
+ <v>RelFile = rel_file()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Get contents of a release file. See <c>rel(4)</c> for more
+ details.</p></desc>
+ </func>
+
+ <func>
+ <name>get_script(Server, Relname) -> {ok, ScriptFile | {error, Reason}</name>
+ <fsummary>Get contents of a boot script file</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>RelName = rel_name()</v>
+ <v>ScriptFile = script_file()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Get contents of a boot script file. See <c>script(4)</c> for
+ more details.</p></desc>
+ </func>
+
+ <func>
+ <name>get_server(WindowPid) -> {ok, ServerPid} | {error, Reason}</name>
+ <fsummary>Start server process with options</fsummary>
+ <type>
+ <v>WindowPid = window_pid()</v>
+ <v>ServerPid = server_pid()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Return the process identifier of the server process.</p></desc>
+ </func>
+
+ <func>
+ <name>get_target_spec(Server) -> {ok, targetSpec} | {error, Reason}</name>
+ <fsummary>Return a specification of the target system</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>TargetSpec = target_spec()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Return a specification of the target system. The actual
+ target system can be created with
+ <c>reltool:eval_target_spec/3</c>.</p>
+ </desc>
+ </func>
+
+ <func>
+ <name>install(Server, TargetDir) -> ok | {error, Reason}</name>
+ <fsummary>Install a target system</fsummary>
+ <type>
+ <v>Server = server()</v>
+ <v>TargetDir = target_dir()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Install a created target system</p></desc>
+ </func>
+
+ <func>
+ <name>start() -> {ok, WindowPid} | {error, Reason}</name>
+ <fsummary>Start main window process</fsummary>
+ <type>
+ <v>WindowPid = window_pid()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Start a main window process with default options</p></desc>
+ </func>
+
+ <func>
+ <name>start(Options) -> {ok, WindowPid} | {error, Reason}</name>
+ <fsummary>Start main window process with options</fsummary>
+ <type>
+ <v>Options = options()</v>
+ <v>WindowPid = window_pid()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Start a main window process with options</p></desc>
+ </func>
+
+ <func>
+ <name>start_link(Options) -> {ok, WindowPid} | {error, Reason}</name>
+ <fsummary>Start main window process with options</fsummary>
+ <type>
+ <v>Options = options()</v>
+ <v>WindowPid = window_pid()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Start a main window process with options. The process is linked.</p></desc>
+ </func>
+
+ <func>
+ <name>start_server(Options) -> {ok, ServerPid} | {error, Reason}</name>
+ <fsummary>Start server process with options</fsummary>
+ <type>
+ <v>Options = options()</v>
+ <v>ServerPid = server_pid()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Start a server process with options. The server process
+ identity can be given as argument to several other functions in the
+ API.</p></desc>
+ </func>
+
+ <func>
+ <name>stop(Pid) -> ok | {error, Reason}</name>
+ <fsummary>Stop a server or window process</fsummary>
+ <type>
+ <v>Pid = server_pid() | window_pid()()</v>
+ <v>Reason = reason()</v>
+ </type>
+ <desc><p>Stop a server or window process</p></desc>
+ </func>
+ </funcs>
+
+</erlref>
diff --git a/lib/reltool/doc/src/reltool_examples.xml b/lib/reltool/doc/src/reltool_examples.xml
new file mode 100644
index 0000000000..3d087862e6
--- /dev/null
+++ b/lib/reltool/doc/src/reltool_examples.xml
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may noot use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Examples</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ <file>reltool_examples.xml</file>
+ </header>
+
+ <section>
+ <title>Start and stop windows and servers</title>
+
+ <p>The main process in Reltool is the server. It can be used as it
+ is or be used via the GUI frontend process. When the GUI is
+ started, a server process will automatically be started. The GUI
+ process is started with <c>reltool:start/0</c>,
+ <c>reltool:start/1</c> or <c>reltool:start_link/1</c>. The pid of
+ its server can be obtained with <c>reltool:get_server/1</c></p>
+
+ <pre>
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+
+Eshell V5.7.3 (abort with ^G)
+1&gt; {ok, Win} = reltool:start([]).
+{ok,&lt;0.36.01&gt;}
+2&gt; {ok, Server} = reltool:get_server([]).
+{ok,&lt;0.37.01&gt;}
+3&gt; reltool:get_config(Server).
+{ok,{sys,[]}}
+4&gt; reltool:stop(Win).
+ok
+
+
+5&gt; {ok, Server2} = reltool:start_server([]).
+{ok,&lt;0.6535.01&gt;}
+6&gt; reltool:get_config(Server2).
+{ok,{sys,[]}}
+7&gt; reltool:stop(Server2).
+ok
+ </pre>
+
+ </section>
+
+ <section>
+ <title>Inspecting the configuration</title>
+
+ <pre>
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+
+Eshell V5.7.3 (abort with ^G)
+1&gt; Config = {sys, [{escript, "examples/display_args", [{incl_cond, include}]},
+ {app, inets, [{incl_cond, include}]},
+ {app, mnesia, [{incl_cond, exclude}]},
+ {app, ssl, [{incl_cond, exclude}]},
+ {app, runtime_tools, [{incl_cond, exclude}]},
+ {app, syntax_tools, [{incl_cond, exclude}]}]}.
+{sys,[{escript,"examples/display_args",[{incl_cond,include}]},
+ {app,inets,[{incl_cond,include}]},
+ {app,mnesia,[{incl_cond,exclude}]},
+ {app,ssl,[{incl_cond,exclude}]},
+ {app,runtime_tools,[{incl_cond,exclude}]},
+ {app,syntax_tools,[{incl_cond,exclude}]}]}
+
+
+
+2&gt; {ok, Server} = reltool:start_server([Config]).
+{ok,&lt;0.35.0&gt;}
+3&gt; reltool:get_config(Server).
+{ok,{sys,[{escript,"/clearcase/otp/tools/reltool/examples/display_args",
+ [{incl_cond,include}]}]}}
+4&gt; reltool:get_config(Server, false, false).
+{ok,{sys,[{escript,"/clearcase/otp/tools/reltool/examples/display_args",
+ [{incl_cond,include}]}]}}
+
+
+
+5&gt; reltool:get_config(Server, true, false).
+{ok,{sys,[{root_dir,"/ldisk/hakan/otp_test"},
+ {lib_dirs,[]},
+ {escript,"/clearcase/otp/tools/reltool/examples/display_args",
+ [{incl_cond,include}]},
+ {mod_cond,all},
+ {incl_cond,derived},
+ {boot_rel,"start_clean"},
+ {emu_name,"beam"},
+ {relocatable,true},
+ {profile,development},
+ {incl_sys_files,[".*"]},
+ {excl_sys_files,[]},
+ {incl_app_files,[".*"]},
+ {excl_app_files,[]},
+ {incl_archive_dirs,[".*"]},
+ {excl_archive_dirs,["^include$","^priv$"]},
+ {archive_opts,[]},
+ {app_type,permanent},
+ {app_file,keep},
+ {debug_info,keep}]}}
+
+
+
+6&gt; reltool:get_config(Server, true, true).
+{ok,{sys,[{root_dir,"/ldisk/hakan/otp_test"},
+ {lib_dirs,[]},
+ {escript,"/clearcase/otp/tools/reltool/examples/display_args",
+ [{incl_cond,include}]},
+ {mod_cond,all},
+ {incl_cond,derived},
+ {erts,[{vsn,"5.7.3"},
+ {mod,erl_prim_loader,[]},
+ {mod,erlang,[]},
+ {mod,init,[]},
+ {mod,otp_ring0,[]},
+ {mod,prim_file,[]},
+ {mod,prim_inet,[]},
+ {mod,prim_zip,[]},
+ {mod,zlib,[]}]},
+ {app,compiler,
+ [{vsn,"4.6.3"},
+ {mod,beam_asm,[]},
+ {mod,beam_block,[]},
+ {mod,beam_bool,[]},
+ {mod,beam_bsm,[]},
+ {mod,beam_clean,[]},
+ {mod,beam_dead,[]},
+ {mod,beam_dict,[]},
+ {mod,beam_disasm,[]},
+ {mod,beam_flatten,[]},
+ {mod,beam_jump,[]},
+ {mod,beam_listing,[]},
+ {mod,beam_opcodes,...},
+ {mod,...},
+ {...}|...]},
+ {app,crypto,
+ [{vsn,"1.6.1"},
+ {mod,crypto,[]},
+ {mod,crypto_app,[]},
+ {mod,crypto_server,[]},
+ {mod,crypto_sup,[]}]},
+ {app,hipe,
+ [{vsn,"3.7.3"},
+ {mod,cerl_cconv,[]},
+ {mod,cerl_closurean,[]},
+ {mod,cerl_hipeify,[]},
+ {mod,cerl_hybrid_transform,[]},
+ {mod,cerl_lib,[]},
+ {mod,cerl_messagean,[]},
+ {mod,cerl_pmatch,[]},
+ {mod,cerl_prettypr,[]},
+ {mod,cerl_to_icode,[]},
+ {mod,cerl_typean,...},
+ {mod,...},
+ {...}|...]},
+ {app,kernel,
+ [{vsn,"2.13.3"},
+ {mod,application,[]},
+ {mod,application_controller,[]},
+ {mod,application_master,[]},
+ {mod,application_starter,[]},
+ {mod,auth,[]},
+ {mod,code,[]},
+ {mod,code_server,[]},
+ {mod,disk_log,[]},
+ {mod,disk_log_1,...},
+ {mod,...},
+ {...}|...]},
+ {app,stdlib,
+ [{vsn,"1.16.3"},
+ {mod,array,[]},
+ {mod,base64,[]},
+ {mod,beam_lib,[]},
+ {mod,c,[]},
+ {mod,calendar,[]},
+ {mod,dets,[]},
+ {mod,dets_server,[]},
+ {mod,dets_sup,...},
+ {mod,...},
+ {...}|...]},
+ {boot_rel,"start_clean"},
+ {emu_name,"beam"},
+ {relocatable,true},
+ {profile,development},
+ {incl_sys_files,[".*"]},
+ {excl_sys_files,[]},
+ {incl_app_files,[".*"]},
+ {excl_app_files,[]},
+ {incl_archive_dirs,[".*"]},
+ {excl_archive_dirs,["^include$",[...]]},
+ {archive_opts,[]},
+ {app_type,permanent},
+ {app_file,...},
+ {...}]}}
+
+
+
+7&gt; reltool:get_config([{sys,[{profile, embedded}]}]).
+{ok,{sys,[{profile,embedded},
+ {incl_sys_filters,["^bin","^erts","^lib","^releases"]},
+ {excl_sys_filters,["^bin/(erlc|dialyzer|typer)(|\\.exe)$",
+ "^erts.*/bin/(erlc|dialyzer|typer)(|\\.exe)$",
+ "^erts.*/bin/.*(debug|pdb)"]},
+ {incl_app_filters,["^ebin","^include","^priv"]}]}}
+8&gt; reltool:get_config([{sys,[{profile, standalone}]}]).
+{ok,{sys,[{profile,standalone},
+ {incl_sys_filters,["^bin/(erl|epmd)(|\\.exe|\\.ini)$",
+ "^bin/start(|_clean).boot$","^erts.*/bin","^lib$"]},
+ {excl_sys_filters,["^erts.*/bin/(erlc|dialyzer|typer)(|\\.exe)$",
+ "^erts.*/bin/(start|escript|to_erl|run_erl)(|\\.exe)$",
+ "^erts.*/bin/.*(debug|pdb)"]},
+ {incl_app_filters,["^ebin","^priv"]},
+ {excl_app_filters,["^ebin/.*\\.appup$"]}]}}
+
+ </pre>
+
+ </section>
+
+ <section>
+ <title>Generate release and script files</title>
+ <pre>
+5&gt; {ok, Server} = reltool:start_server([{config, {sys, [{boot_rel, "NAME"},
+ {rel, "NAME", "VSN", [kernel, stdlib, sasl]}]}}]).
+{ok,&lt;0.1288.0&gt;}
+6&gt; reltool:get_config(Server).
+{ok,{sys,[{boot_rel,"NAME"},
+ {rel,"NAME","VSN",[kernel,stdlib,sasl]}]}}
+7&gt; reltool:get_rel(Server, "NAME").
+{ok,{release,{"NAME","VSN"},
+ {erts,"5.7"},
+ [{kernel,"2.13"},{stdlib,"1.16"},{sasl,"2.1.6"}]}}
+8&gt; reltool:get_script(Server, "NAME").
+{ok,{script,{"NAME","VSN"},
+ [{preLoaded,[erl_prim_loader,erlang,init,otp_ring0,
+ prim_file,prim_inet,prim_zip,zlib]},
+ {progress,preloaded},
+ {path,["$ROOT/lib/kernel-2.13/ebin",
+ "$ROOT/lib/stdlib-1.16/ebin"]},
+ {primLoad,[error_handler]},
+ {kernel_load_completed},
+ {progress,kernel_load_completed},
+ {path,["$ROOT/lib/kernel-2.13/ebin"]},
+ {primLoad,[application,application_controller,
+ application_master,application_starter,auth,code,
+ code_server,disk_log,disk_log_1,disk_log_server,
+ disk_log_sup,dist_ac,dist_util,erl_boot_server|...]},
+ {path,["$ROOT/lib/stdlib-1.16/ebin"]},
+ {primLoad,[array,base64,beam_lib,c,calendar,dets,
+ dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict|...]},
+ {path,["$ROOT/lib/sasl-2.1.6/ebin"]},
+ {primLoad,[alarm_handler,erlsrv,format_lib_supp,misc_supp,
+ overload,rb,rb_format_supp,release_handler,
+ release_handler_1,sasl|...]},
+ {progress,modules_loaded},
+ {path,["$ROOT/lib/kernel-2.13/ebin",
+ "$ROOT/lib/stdlib-1.16/ebin","$ROOT/lib/sasl-2.1.6/ebin"]},
+ {kernelProcess,heart,{heart,start,[]}},
+ {kernelProcess,error_logger,{error_logger,start_link,[]}},
+ {kernelProcess,application_controller,
+ {application_controller,start,[{...}]}},
+ {progress,init_kernel_started},
+ {apply,{application,load,[...]}},
+ {apply,{application,load,...}},
+ {progress,applications_loaded},
+ {apply,{...}},
+ {apply,...},
+ {...}|...]}}
+9&gt; reltool:stop(Server).
+ok
+ </pre>
+ </section>
+
+ <section>
+ <title>Create a target system</title>
+ <pre>
+Erlang R13B02 (erts-5.7.3) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
+
+Eshell V5.7.3 (abort with ^G)
+1&gt; Config = {sys, [{escript, "examples/display_args", [{incl_cond, include}]},
+ {app, inets, [{incl_cond, include}]},
+ {app, mnesia, [{incl_cond, exclude}]},
+ {app, ssl, [{incl_cond, exclude}]},
+ {app, runtime_tools, [{incl_cond, exclude}]},
+ {app, syntax_tools, [{incl_cond, exclude}]}]}.
+{sys,[{escript,"examples/display_args",[{incl_cond,include}]},
+ {app,inets,[{incl_cond,include}]},
+ {app,mnesia,[{incl_cond,exclude}]},
+ {app,ssl,[{incl_cond,exclude}]},
+ {app,runtime_tools,[{incl_cond,exclude}]},
+ {app,syntax_tools,[{incl_cond,exclude}]}]}
+
+
+
+2&gt; {ok, Spec} = reltool:get_target_spec([Config]).
+{ok,[{create_dir,"releases",
+ [{write_file,"start_erl.data","5.7.3 1.0"},
+ {create_dir,"1.0",
+ [{write_file,"start_clean.rel",
+ [37,37,32,114,101,108,32,103,101,110,101,114,97,116|...]},
+ {write_file,"start_clean.script",
+ [37,37,32,115,99,114,105,112,116,32,103,101,110|...]},
+ {write_file,"start_clean.boot",
+ &lt;&lt;131,104,3,100,0,6,115,99,114,105,112,116,...&gt;&gt;},
+ {write_file,"start_sasl.rel",
+ [37,37,32,114,101,108,32,103,101,110,101|...]},
+ {write_file,"start_sasl.script",
+ [37,37,32,115,99,114,105,112,116,32|...]},
+ {write_file,"start_sasl.boot",
+ &lt;&lt;131,104,3,100,0,6,115,99,114,...&gt;&gt;}]}]},
+ {create_dir,"bin",
+ [{copy_file,"display_args.escript",
+ "/clearcase/otp/tools/reltool/examples/display_args"},
+ {copy_file,"display_args","erts-5.7.3/bin/escript"},
+ {copy_file,"start","erts-5.7.3/bin/start"},
+ {copy_file,"erl","erts-5.7.3/bin/dyn_erl"},
+ {copy_file,"epmd","erts-5.7.3/bin/epmd"},
+ {copy_file,"to_erl","erts-5.7.3/bin/to_erl"},
+ {copy_file,"run_erl","erts-5.7.3/bin/run_erl"},
+ {copy_file,"escript","erts-5.7.3/bin/escript"},
+ {copy_file,"erlc","erts-5.7.3/bin/erlc"},
+ {copy_file,"dialyzer","erts-5.7.3/bin/dialyzer"},
+ {copy_file,"typer","erts-5.7.3/bin/typer"},
+ {write_file,"start_clean.boot",
+ &lt;&lt;131,104,3,100,0,6,115,...&gt;&gt;},
+ {write_file,"start_sasl.boot",&lt;&lt;131,104,3,100,0,6,...&gt;&gt;},
+ {write_file,"start.boot",&lt;&lt;131,104,3,100,0,...&gt;&gt;}]},
+ {create_dir,"misc",
+ [{copy_file,"makewhatis"},{copy_file,"format_man_pages"}]},
+ {copy_file,"Install"},
+ {create_dir,"usr",
+ [{create_dir,"lib",
+ [{copy_file,"liberts_r.a"},{copy_file,"liberts.a"}]},
+ {create_dir,"include",
+ [{copy_file,"erl_fixed_size_int_types.h"},
+ {copy_file,"erl_int_sizes_config.h"},
+ {copy_file,"erl_memory_trace_parser.h"},
+ {create_dir,"obsolete",[{copy_file,"driver.h"}]},
+ {copy_file,"driver_int.h"},
+ {copy_file,"erl_driver.h"}]}]},
+ {create_dir,"erts-5.7.3",
+ [{create_dir,"lib",
+ [{create_dir,"internal",
+ [{copy_file,"liberts_internal_r.a"},
+ {copy_file,"liberts_internal.a"},
+ {copy_file,"libethread.a"},
+ {copy_file,"README"}]},
+ {copy_file,"liberts_r.a"},
+ {copy_file,"liberts.a"}]},
+ {create_dir,"bin",
+ [{copy_file,"start"},
+ {copy_file,"erl","erts-5.7.3/bin/dyn_erl"},
+ {copy_file,"epmd"},
+ {copy_file,"to_erl"},
+ {copy_file,"run_erl"},
+ {copy_file,"escript"},
+ {copy_file,"erlc"},
+ {copy_file,"dialyzer"},
+ {copy_file,"typer"},
+ {copy_file,"erlexec"},
+ {copy_file,[...]},
+ {copy_file,...},
+ {...}|...]},
+ {create_dir,"doc",[]},
+ {create_dir,"man",[]},
+ {create_dir,"include",
+ [{create_dir,"internal",
+ [{create_dir,"tile",[{copy_file,...},{...}]},
+ {create_dir,"sparc64",[{...}]},
+ {create_dir,"sparc32",[...]},
+ {create_dir,[...],...},
+ {create_dir,...},
+ {...}|...]},
+ {copy_file,"erl_fixed_size_int_types.h"},
+ {copy_file,"erl_int_sizes_config.h"},
+ {copy_file,"erl_memory_trace_parser.h"},
+ {copy_file,"driver_int.h"},
+ {copy_file,"erl_driver.h"}]},
+ {create_dir,"src",[{copy_file,"setuid_socket_wrap.c"}]}]},
+ {create_dir,"lib",
+ [{archive,"compiler-4.6.3.ez",[],
+ [{create_dir,"compiler-4.6.3",
+ [{create_dir,"ebin",
+ [{copy_file,"compiler.appup"},
+ {copy_file,[...]},
+ {copy_file,...},
+ {...}|...]},
+ {create_dir,"src",
+ [{copy_file,[...]},{copy_file,...},{...}|...]}]}]},
+ {archive,"crypto-1.6.1.ez",[],
+ [{create_dir,"crypto-1.6.1",
+ [{create_dir,"ebin",
+ [{copy_file,[...]},{copy_file,...},{...}|...]},
+ {create_dir,"src",[{copy_file,...},{...}|...]}]}]},
+ {create_dir,"crypto-1.6.1",
+ [{create_dir,"priv",
+ [{create_dir,"lib",[{copy_file,[...]}]},
+ {create_dir,"obj",[{copy_file,...},{...}]}]}]},
+ {archive,"erts-5.7.3.ez",[],
+ [{create_dir,"erts-5.7.3",
+ [{create_dir,"ebin",[{...}|...]},
+ {create_dir,"src",[...]}]}]},
+ {archive,"hipe-3.7.3.ez",[],
+ [{create_dir,"hipe-3.7.3",
+ [{create_dir,"util",[...]},
+ {create_dir,[...],...},
+ {create_dir,...},
+ {...}|...]}]},
+ {archive,"kernel-2.13.3.ez",[],
+ [{create_dir,"kernel-2.13.3",
+ [{create_dir,[...],...},{create_dir,...},{...}]}]},
+ {create_dir,"kernel-2.13.3",
+ [{create_dir,"include",
+ [{copy_file,[...]},{copy_file,...},{...}]}]},
+ {archive,"stdlib-1.16.3.ez",[],
+ [{create_dir,"stdlib-1.16.3",[{...}|...]}]},
+ {create_dir,"stdlib-1.16.3",
+ [{create_dir,"include",[{...}|...]}]}]}]}
+
+
+
+3&gt; TargetDir = "my_target_dir".
+"my_target_dir"
+4&gt; reltool:eval_target_spec(Spec, code:root_dir(), TargetDir).
+{error,"/clearcase/otp/tools/reltool/my_target_dir: no such file or directory"}
+5&gt; file:make_dir("my_target_dir").
+ok
+6&gt; reltool:eval_target_spec(Spec, code:root_dir(), TargetDir).
+ok
+7&gt; file:list_dir(TargetDir).
+{ok,["lib","erts-5.7.3","usr","Install","misc","bin","releases"]}
+8&gt; file:list_dir(filename:join([TargetDir,"lib"])).
+{ok,["stdlib-1.16.3","stdlib-1.16.3.ez","kernel-2.13.3",
+ "kernel-2.13.3.ez","hipe-3.7.3.ez","erts-5.7.3.ez",
+ "crypto-1.6.1","crypto-1.6.1.ez","compiler-4.6.3.ez"]}
+9&gt; file:make_dir("yet_another_target_dir").
+ok
+10&gt; reltool:create_target(Config, "yet_another_target_dir").
+ok
+ </pre>
+
+ </section>
+</chapter>
diff --git a/lib/reltool/doc/src/reltool_intro.xml b/lib/reltool/doc/src/reltool_intro.xml
new file mode 100644
index 0000000000..54bc991da8
--- /dev/null
+++ b/lib/reltool/doc/src/reltool_intro.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Introduction</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ <file>reltool_intro.xml</file>
+ </header>
+ <p><c>Reltool</c> is a release management tool. It analyses a given
+ Erlang/OTP installation and determines various dependencies between
+ applications. The <c>graphical</c> frontend depicts the dependencies and
+ enables interactive customization of a target system. The backend provides a
+ <c>batch</c> interface for generation of customized target systems.</p>
+
+ <section>
+ <title>Scope and Purpose</title>
+ <p>This manual describes the Reltool application, as a component of the
+ Erlang/Open Telecom Platform development environment. It is assumed that
+ the reader is familiar with the Erlang Development Environment, which is
+ described in a separate User's Guide.</p>
+ </section>
+
+ <section>
+ <title>Prerequisites</title>
+ <p>The following prerequisites is required for understanding the material
+ in the Reltool User's Guide:</p>
+ <list type="bulleted">
+ <item>
+ <p>familiarity with Erlang/OTP system principles and Erlang/OTP design
+ principles</p>
+ </item>
+ </list>
+ <p>The application requires Erlang/OTP release R13B02 or later.</p>
+ </section>
+
+ <section>
+ <title>About This Manual</title>
+ <p>In addition to this introductory chapter, the Reltool User's Guide
+ contains the following chapters:</p>
+ <list type="bulleted">
+ <item>
+ <p>Chapter 2: "Usage" describes the architecture
+ and typical usage of the application.</p>
+ </item>
+ <item>
+ <p>Chapter 3: "Examples" gives some usage examples</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Where to Find More Information</title>
+ <p>Refer to the following documentation for more information about Reltool
+ and about the Erlang/OTP development system:</p>
+ <list type="bulleted">
+ <item>
+ <p>the Reference Manual of <c>Reltool</c></p>
+ </item>
+ <item>
+ <p>the Erlang/OTP <c>System Principles</c></p>
+ </item>
+ <item>
+ <p>the Erlang/OTP <c>Design Principles</c></p>
+ </item>
+ <item>
+ <p>Programming Erlang: Software for a Concurrent World (2007),
+ Pragmatic Bookshelf, ISBN13: 9781934356005.</p>
+ </item>
+ </list>
+ </section>
+</chapter>
diff --git a/lib/reltool/doc/src/reltool_usage.xml b/lib/reltool/doc/src/reltool_usage.xml
new file mode 100644
index 0000000000..885828d1f0
--- /dev/null
+++ b/lib/reltool/doc/src/reltool_usage.xml
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2009</year>
+ <year>2009</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ The contents of this file are subject to the Erlang Public License,
+ Version 1.1, (the "License"); you may not use this file except in
+ compliance with the License. You should have received a copy of the
+ Erlang Public License along with this software. If not, it can be
+ retrieved online at http://www.erlang.org/.
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ the License for the specific language governing rights and limitations
+ under the License.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Usage</title>
+ <prepared>H&aring;kan Mattsson</prepared>
+ <responsible>H&aring;kan Mattsson</responsible>
+ <docno></docno>
+ <approved>H&aring;kan Mattsson</approved>
+ <checked></checked>
+ <date></date>
+ <rev>%VSN%</rev>
+ <file>reltool_usage.xml</file>
+ </header>
+
+ <section>
+ <title>Overview</title>
+ <p>This document focuses on the graphical parts of the tool. The
+ concepts are explained in the reference manual for the module
+ <c>reltool</c>.</p>
+ </section>
+
+ <section>
+ <title>System window</title>
+ <p>The system window is started with the function
+ <c>reltool:start/1</c>. At startup the tool will process the all
+ <c>beam</c> files and <c>app</c> files in order to find out dependencies
+ between applications and their modules. Once all this information has been
+ derived, it will be possible to explore the tool.</p>
+
+ <p>The system window consists of four main pages (tabs):</p>
+
+ <list>
+ <item>Libraries
+ </item>
+ <item>System settings
+ </item>
+ <item>Applications
+ </item>
+ <item>Releases
+ </item>
+ </list>
+
+ <p>Click on a name tag to display its page.</p>
+
+ <section>
+ <title>Libraries</title>
+ <p>On the library page it is possible to control which sources
+ that the tool will use. The page is organized as a tree which
+ can be expanded and collapsed by clicking on the little symbol
+ in the beginning of the expandable/collapsible lines.</p>
+
+ <p>The <c>Root directory</c> can be edited by selecting the
+ line where the path of the root directory is displayed and
+ clicking with the right mouse button. Choose edit in the menu
+ that pops up. </p>
+
+ <p>Library directories can be added, edited or deleted. This
+ is done by selecting the line where the path to a library
+ directory is displayed and clicking with the right mouse
+ button. Choose add, edit or delete in the menu that pops
+ up. New library directories can also be added by selecting the
+ line <c>Library directories</c> and clicking with the right
+ mouse button. Choose add in the menu that pops up.</p>
+
+ <p>Escript files can be added, edited or deleted. This is done
+ by selecting the line where the path to an escript file is
+ displayed and clicking with the right mouse button. Choose
+ add, edit or delete in the menu that pops up. New escripts can
+ also be added by selecting the line <c>Escript files</c> and
+ clicking with the right mouse button. Choose add in the menu
+ that pops up.</p>
+
+ <p>When libraries and escripts are expanded, the names of
+ their contained applications will be displayed. Double click
+ on an application name to launch an application window.</p>
+ </section>
+
+ <section>
+ <title>System settings</title>
+ <p>On the system settings page it is possible to control some
+ global settings that are used as defaults for all
+ applications. Set the <c>Application inclusion policy</c> to
+ <c>include</c> to include all applications that not are
+ explicitly excluded. See <c>incl_cond</c> (application
+ inclusion) and <c>mod_cond</c> (module inclusion) in the
+ reference manual for the module <c>reltool</c> for more
+ info.</p>
+ <p>The system settings page is rather incomplete.</p>
+ </section>
+
+ <section>
+ <title>Applications</title>
+ <p>There are four categories of applications on the
+ applications page. <c>Included</c> contains applications that
+ are explicitly included. <c>Excluded</c> contains applications
+ that are explicitly excluded. <c>Derived</c> contains
+ applications that either are used directly by explicitly
+ included applications or by other derived
+ applications. <c>Available</c> contains the remaining
+ applications.</p>
+
+ <p>Select one or more applications and click on a button
+ directly below the application column to change application
+ category. For example, select an available application and
+ click on its tick button to move the application to the
+ included category. Clicking on the tick symbol for included
+ applications will move the application back to the available
+ category. The tick is undone.</p>
+
+ <p>The symbols in front of the application names are intended
+ to describe the status of the application. There are error
+ symbols and warning symbols that means that there are
+ something that needs attention. The tick symbol means that the
+ application is included or derived and no problem has been
+ detected. The cross symbol means that the application is
+ excluded or available and no problem has been
+ detected. Applications with error symbols are listed first in
+ each category, then comes the warnings and the normal ones
+ (ticks and crosses) are found at the end.</p>
+
+ <p>Double click on an application to launch its application
+ window.</p>
+ </section>
+
+ <section>
+ <title>Releases</title>
+ <p>The releases page is incomplete and very experimental.</p>
+ </section>
+
+ <section>
+ <title>File menu</title>
+
+ <list>
+ <item>
+ <p><c>Display application dependency graph</c> - Launches an
+ application force graph window. All included and derived
+ applications and their dependencies will be shown in a
+ graph.</p>
+ </item>
+ <item>
+ <p><c>Display module dependency graph</c> - Launch a module
+ force graph window. All included and derived modules and
+ their dependencies will be shown in a graph.</p>
+ </item>
+ <item>
+ <p><c>Reset configuration to default</c></p>
+ </item>
+ <item>
+ <p><c>Undo configuration (toggle)</c></p>
+ </item>
+ <item>
+ <p><c>Load configuration</c> - Loads a new configuration from file.</p>
+ </item>
+ <item>
+ <p><c>Save configuration</c> - Saves the current
+ configuration to file. Normally, only the explictit
+ configuration parameters with values that differs from their
+ defaults are saved. But the configuration with or without
+ default values and with or without derived values may also
+ be saved.</p>
+ </item>
+ <item>
+ <p><c>Generate rel, script and boot files</c></p>
+ </item>
+ <item>
+ <p><c>Generate target system</c></p>
+ </item>
+ <item>
+ <p><c>Close</c> - Close the system window and all its subwindows.</p>
+ </item>
+ </list>
+
+ </section>
+
+ <section>
+ <title>Dependencies between applications or modules displayed as a graph</title>
+
+ <p>The dependency graph windows are launched from the file menu
+ in the system window. The graph depicts all included and derived
+ applications/modules and their dependencies.</p>
+
+ <p>It is possible to perform some limited manipulations of the
+ graph. Nodes can be moved, selected, locked or deleted. Move a
+ single node or the entire graph by moving the mouse while the
+ left mouse button is pressed. A node is can be locked into a fix
+ position by holding down the shift button when the left mouse
+ button is released. Select several nodes by moving the mouse
+ while the control key and the left mouse button i
+ pressed. Selected nodes can be locked, unlocked or deleted by
+ klicking on a suitable button.</p>
+
+ <p>The algorithm that is used to draw a graph with as few
+ crossed links as possible is called force graph. A force graph
+ consists of nodes and directed link between nodes. Each node is
+ associated with a repulsive force that pushes nodes away from
+ each other. This force can be adjusted with the left slider or
+ with the mouse wheel. Each link is associated with an attractive
+ force that pulls the nodes nearer each other. This force can be
+ adjusted with the right slider. If this force becomes to strong,
+ the graph will be unstable. The third parameter that can be
+ adjusted is the length of the links. It is adjusted with the
+ middle slider.</p>
+
+ <p>The <c>Freeze</c> button starts/stops the redrawing of the
+ graph. <c>Reset</c> moves the graph to the middle of the window
+ and resets all graph settings to default, with the exception of
+ deleted nodes.</p>
+
+ </section>
+
+ </section>
+
+ <section>
+ <title>Application window</title>
+ <p>The application window is started by double clicking on an
+ application name. The application window consists of four
+ pages (tabs):</p>
+
+ <list>
+ <item>Application settings
+ </item>
+ <item>Modules
+ </item>
+ <item>Application dependencies
+ </item>
+ <item>Module dependencies
+ </item>
+ </list>
+
+ <p>Click on a name tag to display its page.</p>
+
+ <section>
+ <title>Application settings</title>
+ <p>Select version of the application in the <c>Source selection
+ policy</c> part of the page. By default the latest version of the
+ application is selected, but it is possible to override this by
+ explicitly select another version.</p>
+
+ <p>By default the <c>Application inclusion policy</c> on system
+ level is used for all applications. Set the value to
+ <c>include</c> if you want to explicitly include one particular
+ application. Set it to <c>exclude</c> if you want to exclude the
+ application despite that it is used by another (explicitly or
+ implicitly) included application. <c>derived</c> means that the
+ application automatically will be included if some other
+ (explicitly or implicitly) included application uses it.</p>
+
+ <p>By default the <c>Module inclusion policy</c> on system level
+ is used for all applications. Set it to <c>derived</c> if you only
+ want actually used modules to be included. Set it to <c>app</c> if
+ you, besides derived modules, also want the modules listed in the
+ app file to be included. Set it to <c>ebin</c> if you, besides
+ derived modules, also want the modules that exists as beam files
+ on the ebin directory to be included. Set it to <c>all</c> if you
+ want all modules to be included, that is the union of modules
+ found on the ebin directory and listed in the app file.</p>
+
+ <p>The application settings page is rather incomplete.</p>
+ </section>
+
+ <section>
+ <title>Modules</title>
+
+ <p>There are four categories of modules on the modules
+ page. <c>Included</c> contains modules that are explicitly
+ included. <c>Excluded</c> contains modules that are explicitly
+ excluded. <c>Derived</c> contains modules that either are used
+ directly by explicitly included modules or by other derived
+ modules. <c>Available</c> contains the remaining modules.</p>
+
+ <p>Select one or more modules and click on a button directly
+ below the module column to change module category. For
+ example, select an available module and click on its tick
+ button to move the module to the included category. Clicking
+ on the tick symbol for included modules will move the
+ module back to the available category. The tick is
+ undone.</p>
+
+ <p>The symbols in front of the module names are intended to
+ describe the status of the module. There are error symbols
+ and warning symbols that means that there are something that needs
+ attention. The tick symbol means that the module is included
+ or derived and no problem has been detected. The cross symbol
+ means that the module is excluded or available and no problem
+ has been detected. Modules with error symbols are listed
+ first in each category, then comes the warnings and the normal
+ ones (ticks and crosses) are found at the end.</p>
+
+ <p>Double click on an module to launch its module window.</p>
+
+ </section>
+
+ <section>
+ <title>Application dependencies</title>
+ <p>There are four categories of applications on the <c>Application
+ dependencies</c> page. If the application is used by other
+ applications, these are listed under <c>Used by</c>. If the
+ application requires other applications be started before it can
+ be started, these are listed under <c>Required</c>. These
+ applications are listed in the <c>applications</c> part of the
+ <c>app</c> file. If the application includes other applications,
+ these are listed under <c>Included</c>. These applications are
+ listed in the <c>included_applications</c> part of the <c>app</c>
+ file. If the application uses modules other applications, these
+ are listed under <c>Uses</c>.</p>
+
+ <p>Double click on an application name to launch an application window.</p>
+
+ </section>
+
+ <section>
+ <title>Module dependencies</title>
+
+ <p>There are two categories of modules on the <c>Module
+ dependencies</c> page. If the module is used by other modules,
+ these are listed under <c>Modules used by others</c>. If the
+ module uses modules other modules, these are listed under <c>Used
+ modules</c>.</p>
+
+ <p>Double click on an module name to launch a module window.</p>
+
+ </section>
+
+ </section>
+
+ <section>
+ <title>Module window</title>
+
+ <p>The module window is started by double clicking on an module
+ name. The module window consists initially of two pages (tabs):</p>
+
+ <list>
+ <item>Dependencies
+ </item>
+ <item>Code
+ </item>
+ </list>
+
+ <p>Click on a name tag to display its page.</p>
+
+ <section>
+ <title>Dependencies</title>
+
+ <p>There are two categories of modules on the <c>Dependencies</c>
+ page. If the module is used by other modules, these are listed
+ under <c>Modules used by others</c>. If the module uses modules
+ other modules, these are listed under <c>Used modules</c>.</p>
+
+ <p>Double click on an module name to launch a module window.</p>
+
+ </section>
+
+ <section>
+ <title>Code</title>
+
+ <p>On the <c>Code</c> page the Erlang source code is displayed. It
+ is possible to search forwards and backwards for text in the
+ module. Enter a regular expression in the <c>Find</c> field and
+ press enter. It is also possible to goto a certain line on the
+ module. The <c>Back</c> button can be used to go back to the
+ previous position.</p>
+
+ <p>Put the marker on a function name and double click to go to the
+ definition of the function. If the function is defined in another
+ module, that module will be loaded and added to the page list.
+ </p>
+ </section>
+
+ </section>
+
+</chapter>
diff --git a/lib/reltool/doc/src/user_guide.gif b/lib/reltool/doc/src/user_guide.gif
new file mode 100644
index 0000000000..e6275a803d
--- /dev/null
+++ b/lib/reltool/doc/src/user_guide.gif
Binary files differ
diff --git a/lib/reltool/doc/src/warning.gif b/lib/reltool/doc/src/warning.gif
new file mode 100644
index 0000000000..96af52360e
--- /dev/null
+++ b/lib/reltool/doc/src/warning.gif
Binary files differ