Difference between revisions of "Black&White Project/Automatic compilation/configure"
Line 97: | Line 97: | ||
=== ''--with-microhttpd='' === | === ''--with-microhttpd='' === | ||
'''variable''': '' | '''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