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

From Kiwix
Jump to navigation Jump to search
Line 34: Line 34:
''--with-static-option'' can receive ''SELF'' as value which the script will interpret as ''download and build a static version for me''.
''--with-static-option'' can receive ''SELF'' as value which the script will interpret as ''download and build a static version for me''.


=== ''--build-static'' (default: false) ===
=== ''--enable-fullstatic'' (default: false) ===
'''variable''': ''STATIC_BUILD'' (bool)
'''variable''': ''STATIC_BUILD'' (bool)


Defines whether to build a static version or not.
Defines whether to build a static version or not.
There is no ''--build-shared'' option.


=== ''--with-gecko-sdk='' ===
=== ''--with-gecko-sdk='' ===

Revision as of 11:51, 15 March 2012

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 parallel.

To use the new compile script, do the following:

./autogen.sh alt

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: static build or shared build.
  • Each dependency (shared objects or archive) can be specified.
  • Not found dependencies falls back to download/compile mode.
  • Download/compile respects main direction.
  • Each dependency can be explicitly compiled statically

Files modified:

Options

Options behavior depends on the build type:

  • If building a shared version, dependency resolution is:
    • if --with-static-option= then use that static path to link.
    • if --with-option=path then use that shared object to link to.
    • try to find shared lib with pkg-config
  • If building a static version:
    • if --with-static-option= then use that path to link.
    • download and build dependency ourselves

--with-static-option can receive SELF as value which the script will interpret as download and build a static version for me.

--enable-fullstatic (default: false)

variable: STATIC_BUILD (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) Gecko_SDK

--with-z=

variable: ZLIB_LDFLAGS. Path to libz.so.

Debian package: zlib1g

--with-static-z=

variable: ZLIB_LDFLAGS. Path to libz.a.

Debian package: zlib1g-dev

--with-xapian=

variable: XAPIAN_LDFLAGS. Path to libxapian.so.

Debian package: libxapian22

--with-static-xapian=

variable: XAPIAN_LDFLAGS. Path to libxapian.a.

Debian package: libxapian-dev


--with-icu=

variable: ICU_LDFLAGS. Path to folder containing libicudata.so, libicule.so, libiculx.so, libicuio.so, libicuuc.so, libicui18n.so, libicutu.so.

Debian package: libicu44

--with-static-icu=

variable: ICU_LDFLAGS. Path to folder containing libicudata.a, libicule.a, libiculx.a, libicuio.a, libicuuc.a, libicui18n.a, libicutu.a.

Debian package: libicu-dev


--with-sqlite=

variable: SQLITE_LDFLAGS. Path to libsqlite3.so.

Debian package: libsqlite3

--with-static-sqlite=

variable: SQLITE_LDFLAGS. Path to libsqlite3.a.

Debian package: libsqlite3-dev

--with-uuid=

variable: UUID_LDFLAGS. Path to libuuid.so.

Debian package: uuid-dev

--with-static-uuid=

variable: UUID_LDFLAGS. Path to libuuid.a.

Debian package: uuid-dev

e2fsprogs-utils

--with-microhttpd=

variable: MICROHTTPD_LDFLAGS. Path to libmicrohttpd.so.

Debian package: libmicrohttpd5

--with-static-microhttpd=

variable: MICROHTTPD_LDFLAGS. Path to libmicrohttpd.a.

Debian package: libmicrohttpd-dev

--with-lzma=

variable: LZMA_LDFLAGS. Path to liblzma.so.

Debian package: liblzma2

--with-static-lzma=

variable: LZMA_LDFLAGS. Path to liblzma.a.

Debian package: liblzma-dev

--with-cares=

variable: CARES_LDFLAGS. Path to libcares.so.

Debian package: libc-ares2

--with-static-cares=

variable: CARES_LDFLAGS. Path to libcares.a.

Debian package: libc-ares-dev

--with-aria2=

variable: ARIA2_LDFLAGS. Path to aria2c.

Debian package: aria2 (/! Kiwix now requires version 1.14 which is not yet in debian/ubuntu)

--with-static-aria2=

variable: ARIA2_LDFLAGS. Path to aria2c.

--with-clucene=

variable: CLUCENE_LDFLAGS. Path to 'clucene.so.

Debian package: libclucene0ldbl

--with-static-clucene=

variable: CLUCENE_LDFLAGS. Path to 'clucene.a.

Debian package: libclucene-dev

--without-clucene (default: true)

variable: WITH_CLUCENE (bool)

Disables support for clucene search Engine. Default to off as it is deprecated in favor of xapian.

Typical usages

Regular build

./configure --with-static-z=SELF --with-static-lzma=SELF --with-static-aria2=SELF

This will build a shared version of Kiwix with components using libz and liblzma statically.

Static build

./configure --build-static