Add --enable-guidebug configure option to build the recoll program with debug symbols. Closes issue #91

This commit is contained in:
Jean-Francois Dockes
2021-08-30 13:45:39 +02:00
parent 6b22d38a3e
commit d5060a132c
4 changed files with 293 additions and 296 deletions
+151 -162
View File
@@ -8389,169 +8389,158 @@ hasextract = False
system, and need to modify things, <a class="ulink" href=
"mailto:jfd@recoll.org" target="_top">I would very much
welcome patches</a>.</p>
<p><b>Configure options:&nbsp;</b></p>
<div class="itemizedlist">
<ul class="itemizedlist" style=
"list-style-type: disc;">
<li class="listitem">
<p><code class="option">--without-aspell</code>
will disable the code for phonetic matching of
search terms.</p>
</li>
<li class="listitem">
<p><code class="option">--with-fam</code> or
<code class="option">--with-inotify</code> will
enable the code for real time indexing. Inotify
support is enabled by default on Linux systems.</p>
</li>
<li class="listitem">
<p><code class="option">--with-qzeitgeist</code>
will enable sending <span class=
"application">Zeitgeist</span> events about the
visited search results, and needs the <span class=
"application">qzeitgeist</span> package.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-webkit</code> is
available from version 1.17 to implement the result
list with a <span class="application">Qt</span>
QTextBrowser instead of a WebKit widget if you do
not or can't depend on the latter.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-qtgui</code>
Disable the Qt interface. Will allow building the
indexer and the command line search program in
absence of a Qt environment.</p>
</li>
<li class="listitem">
<p><code class="option">--enable-webengine</code>
Enable the use of Qt Webengine (only meaningful if
the Qt GUI is enabled), in place or Qt Webkit.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-idxthreads</code>
is available from version 1.19 to suppress
multithreading inside the indexing process. You can
also use the run-time configuration to restrict
<span class=
"command"><strong>recollindex</strong></span> to
using a single thread, but the compile-time option
may disable a few more unused locks. This only
applies to the use of multithreading for the core
index processing (data input). The <span class=
"application">Recoll</span> monitor mode always
uses at least two threads of execution.</p>
</li>
<li class="listitem">
<p><code class=
"option">--disable-python-module</code> will avoid
building the <span class=
"application">Python</span> module.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-python-chm</code>
will avoid building the Python libchm interface
used to index CHM files.</p>
</li>
<li class="listitem">
<p><code class="option">--enable-camelcase</code>
will enable splitting <em class=
"replaceable"><code>camelCase</code></em> words.
This is not enabled by default as it has the
unfortunate side-effect of making some phrase
searches quite confusing: ie, <code class=
"literal">"MySQL manual"</code> would be matched by
<code class="literal">"MySQL manual"</code> and
<code class="literal">"my sql manual"</code> but
not <code class="literal">"mysql manual"</code>
(only inside phrase searches).</p>
</li>
<li class="listitem">
<p><code class="option">--with-file-command</code>
Specify the version of the 'file' command to use
(ie: --with-file-command=/usr/local/bin/file). Can
be useful to enable the gnu version on systems
where the native one is bad.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-x11mon</code>
Disable <span class="application">X11</span>
connection monitoring inside recollindex. Together
with --disable-qtgui, this allows building recoll
without <span class="application">Qt</span> and
<span class="application">X11</span>.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-userdoc</code>
will avoid building the user manual. This avoids
having to install the Docbook XML/XSL files and the
TeX toolchain used for translating the manual to
PDF.</p>
</li>
<li class="listitem">
<p><code class="option">--enable-recollq</code>
Enable building the <span class=
"command"><strong>recollq</strong></span> command
line query tool (recoll -t without need for Qt).
This is done by default if --disable-qtgui is set
but this option enables forcing it.</p>
</li>
<li class="listitem">
<p><code class="option">--disable-pic</code>
(<span class="application">Recoll</span> versions
up to 1.21 only) will compile <span class=
"application">Recoll</span> with position-dependant
code. This is incompatible with building the KIO or
the <span class="application">Python</span> or
<span class="application">PHP</span> extensions,
but might yield very marginally faster code.</p>
</li>
<li class="listitem">
<p><code class="option">--without-systemd</code>
Disable the automatic installation of systemd unit
files. Normally unit files are installed if the
install path can be detected.</p>
</li>
<li class="listitem">
<p><code class=
"option">--with-system-unit-dir=DIR</code> Provide
an install path for the systemd system unit
template file.</p>
</li>
<li class="listitem">
<p><code class=
"option">--with-user-unit-dir=DIR</code> Provide an
install path for the systemd user unit file.</p>
</li>
<li class="listitem">
<p>Of course the usual <span class=
"application">autoconf</span> <span class=
"command"><strong>configure</strong></span>
options, like <code class="option">--prefix</code>
apply.</p>
</li>
</ul>
<div class="sect3">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name=
"RCL.INSTALL.BUILDING.BUILDING.CONFIGURE" id=
"RCL.INSTALL.BUILDING.BUILDING.CONFIGURE"></a>Configure
options:</h4>
</div>
</div>
</div>
<p><code class="option">--without-aspell</code> will
disable the code for phonetic matching of search
terms.</p>
<p><code class="option">--with-fam</code> or
<code class="option">--with-inotify</code> will enable
the code for real time indexing. Inotify support is
enabled by default on Linux systems.</p>
<p><code class="option">--with-qzeitgeist</code> will
enable sending <span class=
"application">Zeitgeist</span> events about the visited
search results, and needs the <span class=
"application">qzeitgeist</span> package.</p>
<p><code class="option">--disable-qtgui</code> will
disable the Qt graphical interface, which allows
building the indexer and the command line search
program in absence of a Qt environment.</p>
<p><code class="option">--disable-webkit</code> will
implement the result list with a <span class=
"application">Qt</span> QTextBrowser instead of a
WebKit widget if you do not or can't depend on the
latter.</p>
<p><code class="option">--enable-webengine</code> will
enable the use of Qt Webengine (only meaningful if the
Qt GUI is enabled), in place or Qt Webkit.</p>
<p><code class="option">--enable-guidebug</code> will
build the recoll GUI program with debug symbols. This
makes it very big (~50MB), which is why it is stripped
by default.</p>
<p><code class="option">--disable-idxthreads</code> is
available from version 1.19 to suppress multithreading
inside the indexing process. You can also use the
run-time configuration to restrict <span class=
"command"><strong>recollindex</strong></span> to using
a single thread, but the compile-time option may
disable a few more unused locks. This only applies to
the use of multithreading for the core index processing
(data input). The <span class=
"application">Recoll</span> monitor mode always uses at
least two threads of execution.</p>
<p><code class="option">--disable-python-module</code>
will avoid building the <span class=
"application">Python</span> module.</p>
<p><code class="option">--disable-python-chm</code>
will avoid building the Python libchm interface used to
index CHM files.</p>
<p><code class="option">--enable-camelcase</code> will
enable splitting <em class=
"replaceable"><code>camelCase</code></em> words. This
is not enabled by default as it has the unfortunate
side-effect of making some phrase searches quite
confusing: ie, <code class="literal">"MySQL
manual"</code> would be matched by <code class=
"literal">"MySQL manual"</code> and <code class=
"literal">"my sql manual"</code> but not <code class=
"literal">"mysql manual"</code> (only inside phrase
searches).</p>
<p><code class="option">--with-file-command</code>
Specify the version of the 'file' command to use (ie:
--with-file-command=/usr/local/bin/file). Can be useful
to enable the gnu version on systems where the native
one is bad.</p>
<p><code class="option">--disable-x11mon</code> Disable
<span class="application">X11</span> connection
monitoring inside recollindex. Together with
--disable-qtgui, this allows building recoll without
<span class="application">Qt</span> and <span class=
"application">X11</span>.</p>
<p><code class="option">--disable-userdoc</code> will
avoid building the user manual. This avoids having to
install the Docbook XML/XSL files and the TeX toolchain
used for translating the manual to PDF.</p>
<p><code class="option">--enable-recollq</code> Enable
building the <span class=
"command"><strong>recollq</strong></span> command line
query tool (recoll -t without need for Qt). This is
done by default if --disable-qtgui is set but this
option enables forcing it.</p>
<p><code class="option">--disable-pic</code>
(<span class="application">Recoll</span> versions up to
1.21 only) will compile <span class=
"application">Recoll</span> with position-dependant
code. This is incompatible with building the KIO or the
<span class="application">Python</span> or <span class=
"application">PHP</span> extensions, but might yield
very marginally faster code.</p>
<p><code class="option">--without-systemd</code>
Disable the automatic installation of systemd unit
files. Normally unit files are installed if the install
path can be detected.</p>
<p><code class=
"option">--with-system-unit-dir=DIR</code> Provide an
install path for the systemd system unit template
file.</p>
<p><code class="option">--with-user-unit-dir=DIR</code>
Provide an install path for the systemd user unit
file.</p>
<p>Of course the usual <span class=
"application">autoconf</span> <span class=
"command"><strong>configure</strong></span> options,
like <code class="option">--prefix</code> apply.</p>
</div>
<div class="sect3">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name=
"RCL.INSTALL.BUILDING.BUILDING.TAR" id=
"RCL.INSTALL.BUILDING.BUILDING.TAR"></a>Normal
procedure, for source extracted from a tar
distribution)</h4>
</div>
</div>
</div>
<pre class="screen"><strong class=
"userinput"><code>cd recoll-xxx</code></strong>
<strong class="userinput"><code>./configure <em class=
"replaceable"><code>[options]</code></em></code></strong>
<strong class="userinput"><code>make</code></strong>
<strong class=
"userinput"><code>(practices usual hardship-repelling invocations)</code></strong></pre>
</div>
<div class="sect3">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name=
"RCL.INSTALL.BUILDING.BUILDING.GIT" id=
"RCL.INSTALL.BUILDING.BUILDING.GIT"></a>Building
from git code</h4>
</div>
</div>
</div>
<p>When building from source cloned from the git
repository, you also need to install <span class=
"application">autoconf</span>, <span class=
"application">automake</span>, and <span class=
"application">libtool</span> and you must execute
<code class="literal">sh autogen.sh</code> in the top
source directory before running <code class=
"literal">configure</code>.</p>
</div>
<p>Normal procedure (for source extracted from a tar
distribution):</p>
<pre class="screen">
<strong class=
"userinput"><code>cd recoll-xxx</code></strong>
<strong class=
"userinput"><code>./configure</code></strong>
<strong class="userinput"><code>make</code></strong>
<strong class=
"userinput"><code>(practices usual hardship-repelling invocations)</code></strong>
</pre>
<p>When building from source cloned from the git
repository, you also need to install <span class=
"application">autoconf</span>, <span class=
"application">automake</span>, and <span class=
"application">libtool</span> and you must execute
<code class="literal">sh autogen.sh</code> in the top
source directory before running <code class=
"literal">configure</code>.</p>
</div>
<div class="sect2">
<div class="titlepage">