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

From Kiwix
Jump to navigation Jump to search
Line 97: Line 97:


=== ''--with-microhttpd='' ===
=== ''--with-microhttpd='' ===
'''variable''': ''LIBMICROHTTPD_LDFLAGS''. Path to ''libmicrohttpd.so''.
'''variable''': ''MICROHTTPD_LDFLAGS''. Path to ''libmicrohttpd.so''.


Debian package: libmicrohttpd5
Debian package: libmicrohttpd5

Revision as of 14:18, 24 February 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


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.

--build-static (default: false)

variable: STATIC_BUILD (bool)

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

--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: LIBMICROHTTPD_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