Difference between revisions of "Black&White Project/Automatic compilation/configure"

Jump to navigation Jump to search
no edit summary
(Created page with "In order to ease maintenance and readability of this very essential script in the build process, we have decided that ''configure.ac'' needed a major rewrite. Because this scr...")
 
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
In order to ease maintenance and readability of this very essential script in the build process, we have decided that ''configure.ac'' needed a major rewrite.
In order to ease maintenance and readability of this very essential script in the build process, we have decided that ''configure.ac'' needed a major rewrite.
Because this script cascades everywhere towards the compilation chain, we will work on the rewrite in parrallel.
Because this script cascades everywhere towards the compilation chain, we will work on the rewrite in parallel.


To use the new compile script, do the following:
To use the new compile script, do the following:
Line 7: Line 7:
</pre>
</pre>
The ''configure.ac'' does not exist anymore in svn. A link to ''configure_orig.ac'' (previous version) is created by ''autogen.sh''.
The ''configure.ac'' does not exist anymore in svn. A link to ''configure_orig.ac'' (previous version) is created by ''autogen.sh''.
== Changes ==
* The new configure script will tend to a more standard autotools approach by changing options names.
* There are two main direction: packaged build or regular build.
* Each dependency (shared objects or archive) can be specified.
* Not found dependencies falls back to download/compile mode.
* Download/compile respects main direction.
Files modified:
* [http://kiwix.svn.sourceforge.net/viewvc/kiwix/moulinkiwix/autogen.sh?revision=HEAD&content-type=text%2Fplain autogen.sh]
* [http://kiwix.svn.sourceforge.net/viewvc/kiwix/moulinkiwix/configure_alt.ac?revision=HEAD&view=markup configure_alt.ac]
* All Makefile.am
== Options ==
All dependencies must be present as shared objects (dll, dylib).
A packaged build is a regular build which then creates a tarball containing all shared objects.
Components are NOT built statically.
The command line binaries (server, indexer, searcher, manager, reader) are built statically.
Each dependency has two options:
* ''--with-dep=''
Used to specify the folder where to find the shared objects.
* ''--with-static-dep=''
Used to specify the path to the static archive.
Both options can receive ''SELF'' as value which the script will interpret as ''download and build for me''. Should SELF be defined for either shared or static, both will be built and used.
=== ''--enable-compileall'' (default: false) ===
'''variable''': ''COMPIL_DEPS'' (bool)
Defines whether to build a static version or not.
=== ''--with-gecko-sdk='' ===
'''variable''': ''GECKO_SDK_PATH''. Path to ''sdk/'' of xulrunner-sdk or gecko-sdk.
Debian package: xulrunner-1.9-dev (ubuntu maverick and before, debian 6) [https://developer.mozilla.org/en/Gecko_SDK Gecko_SDK]
=== Optional packages ===
Command line tools are mostly optional (except for server).
Active/deactive compilation with ''enable-xxx'' and ''disable-xxx''.
=== Regular dependencies ===
The following dependencies are required:
* Zlib
* Xapian
* SQLite
* libmicroHTTPd
* LZMA
* aria2 (only the aria2c binary)
* cLucene
* ICU (static option is a path as there are multiple archives)
== Typical usages ==
== Regular build ==
<pre>./configure --with-z=/opt/local/lib --with-static-lzma=SELF</pre>
This will build Kiwix with /opt/local/lib/libz.dll and retrive+compile LZMA.
== Packaged build shortcut ==
<pre>./configure --enable-compileall</pre>
== Build instructions ==
<pre>./autogen.sh alt
./configure
make src/dependencies
./configure
make
make static</pre>
8,094

edits

Navigation menu