Difference between revisions of "Configure"
Line 1: | Line 1: | ||
+ | == Introduction == | ||
+ | |||
''configure'' configures [[aMule]] to adapt to many kinds of systems. | ''configure'' configures [[aMule]] to adapt to many kinds of systems. | ||
− | It's usage is ''./configure [OPTION]... [ | + | Its purpose is to make it easy to port it to many platforms and to compile it and use it in all platforms in the very same way. |
+ | |||
+ | You can set lots of parameters in it to adapt it to your system and to tweak it's features. | ||
+ | |||
+ | == Main usage == | ||
+ | |||
+ | It's usage is ''./configure [OPTION]... [VARIABLE=VALUE]...'' | ||
+ | |||
+ | So, as you can see, you can define its behaviour both through [[#Options]] and through [[#Variables|Variables]] | ||
− | + | == Options == | |
− | '' | + | You can define one or more options. The available options in [[aMule]]'s configure are listed below. To better understand their meaning, they have been grouped into several tables with options which affect the behaviour of ''configure'' in a similar way. |
{| border=1 | {| border=1 | ||
Line 15: | Line 25: | ||
|''-q'' or ''--quiet'' or ''--silent'' || Do not print the `checking...' messages, only the final summed up ouput | |''-q'' or ''--quiet'' or ''--silent'' || Do not print the `checking...' messages, only the final summed up ouput | ||
|- | |- | ||
− | |''--cache-file=FILE || Store the checkings' ouputs in ''FILE'' in a script format, so you can reuse without the need to rerun ''configure'' (read the cached file for more information) | + | |''--cache-file=FILE || Store the checkings' ouputs in '''FILE''' in a script format, so you can reuse without the need to rerun ''configure'' (read the cached file for more information) |
|- | |- | ||
|''-C'' or ''--config-cache || Same as ''--cache-file=config.cache'' | |''-C'' or ''--config-cache || Same as ''--cache-file=config.cache'' | ||
Line 21: | Line 31: | ||
|''-n'' or ''--no-create || Just run configure, but do not create any file | |''-n'' or ''--no-create || Just run configure, but do not create any file | ||
|- | |- | ||
− | |''--srcdir=DIR'' || Look for the sources in ''DIR'' | + | |''--srcdir=DIR'' || Look for the sources in '''DIR'''. By default, the ''configure'' dir or its parent (''../'') |
|} | |} | ||
{| border=1 | {| border=1 | ||
|+ Installation directories options | |+ Installation directories options | ||
− | | ''--prefix=PREFIX'' || Set where to install architecture-independent files (data) in ''PREFIX''. By dafault, this is set to ''/usr/local'' | + | | ''--prefix=PREFIX'' || Set where to install architecture-independent files (data) in '''PREFIX'''. By dafault, this is set to ''/usr/local'' |
|- | |- | ||
− | | --exec-prefix=EPREFIX || Set where to install architecture-dependent files (mainly binaries) in ''EPREFIX''. By default, this is set to the same value as ''PREFIX''. | + | | --exec-prefix=EPREFIX || Set where to install architecture-dependent files (mainly binaries) in '''EPREFIX'''. By default, this is set to the same value as '''PREFIX'''. |
|} | |} | ||
− | + | {| border=1 | |
− | + | ||
− | + | ||
− | {| | + | |
|+ Advanced installation directories options | |+ Advanced installation directories options | ||
| ''--bindir=DIR'' || Where to store user executables. By default, '''''EPREFIX'''/bin'' | | ''--bindir=DIR'' || Where to store user executables. By default, '''''EPREFIX'''/bin'' | ||
Line 42: | Line 49: | ||
| ''--libexecdir=DIR'' || Where to store program executable. By default '''''EPREFIX'''/libexeec'' | | ''--libexecdir=DIR'' || Where to store program executable. By default '''''EPREFIX'''/libexeec'' | ||
|- | |- | ||
− | | ''--datadir=DIR'' || Where to store read-only architecture independent data. By default, '''''EPREFIX'''/share'' | + | | ''--datadir=DIR'' || Where to store read-only architecture independent data. By default, '''''EPREFIX'''/share'' |
− | + | ||
|- | |- | ||
| ''--sysconfdir=DIR'' || Where to install read-only single-machine data. By default, '''''PREFIX'''/etc'' | | ''--sysconfdir=DIR'' || Where to install read-only single-machine data. By default, '''''PREFIX'''/etc'' | ||
Line 62: | Line 68: | ||
|} | |} | ||
− | + | {| border=1 | |
− | + | |+ General rule to program dirs specification | |
− | + | | ''--PROGRAM-prefix=PREFIX'' || Prepend '''PREFIX''' to installed '''PROGRAM''' directories | |
− | + | |- | |
+ | | ''--PROGRAM-suffix=SUFFIX'' || Append '''SUFFIX''' to installed '''PROGRAM''' directories | ||
+ | |- | ||
+ | | ''--PROGRAM-transform-name=SUBST'' || Run ''sed '''SUBST''''' on installed '''PROGRAM''' names | ||
+ | |} | ||
− | X | + | {| border=1 |
− | + | |+ X directory specifications | |
− | + | | ''--x-includes=DIR'' || '''DIR''' contains X's include files | |
+ | |- | ||
+ | | ''--x-libraries=DIR'' || '''DIR''' contains X's libraries | ||
+ | |} | ||
− | System | + | {| border=1 |
− | + | |+ System specifications | |
− | + | | ''--build=BUILD'' || Configure for building on '''BUILD''' platform. By default, it guesses the platform it is being run on | |
− | + | |- | |
+ | | ''--host=HOST'' || Cross-compile to build programs to run on '''HOST''' platforms. By default, same as '''BUILD''' | ||
+ | |- | ||
+ | | ''--target=TARGET'' || Configure for building compilers for '''TARGET''' platfroms. By default, same as '''HOST''' | ||
+ | |} | ||
− | Optional | + | {| border=1 |
− | + | |+ Optional features | |
− | + | | --disable-FEATURE || do not include FEATURE (same as --enable-FEATURE=no) | |
− | + | |- | |
− | + | | --enable-FEATURE[=ARG] || include FEATURE [ARG=yes] | |
− | + | |- | |
− | + | | --enable-maintainer-mode || enable make rules and dependencies not useful (and sometimes confusing) to the casual installer | |
− | + | |- | |
− | + | | --disable-dependency-tracking || speeds up one-time build | |
− | + | |- | |
− | + | | --enable-dependency-tracking || do not reject slow dependency extractors | |
− | + | |- | |
− | + | | --enable-debug || enable additional debugging output | |
− | + | |- | |
− | + | | --disable-debug || disable additional debugging output | |
− | + | |- | |
− | + | | --enable-optimize || enable code optimizing | |
− | + | |- | |
− | + | | --enable-optimise || enable code optimizing (deprecated) | |
− | + | |- | |
− | + | | --enable-profile || enable code profiling | |
− | + | |- | |
− | + | | --enable-static || produce a statically linked executable | |
− | + | |- | |
− | + | | --enable-embedded_crypto || use embedded Crypto code (default) | |
− | + | |- | |
− | + | | --enable-amulecmd || compile aMule command line client | |
− | + | |- | |
− | + | | --enable-amulecmdgui || compile aMule command line client (GUI version) | |
− | + | |- | |
− | + | | --enable-amule-gui || compile aMule remote GUI (EXPERIMENTAL) | |
− | + | |- | |
− | + | | --enable-amule-daemon || compile aMule daemon version | |
− | + | |- | |
− | + | | --enable-webserver || compile aMule WebServer | |
+ | |- | ||
+ | | --enable-webservergui || compile aMule WebServer GUI | ||
+ | |- | ||
+ | | --enable-cas || compile C aMule Statistics | ||
+ | |- | ||
+ | | --enable-wxcas || compile aMule GUI Statistics | ||
+ | |- | ||
+ | | --disable-ed2k || don't compile aMule ed2k links handler | ||
+ | |- | ||
+ | | --enable-alc || compile aMuleLinkCreator GUI version | ||
+ | |- | ||
+ | | --enable-alcc || compile aMuleLinkCreator for console | ||
+ | |- | ||
+ | | --disable-gsocket || disable gsocket.c linking | ||
+ | |- | ||
+ | | --disable-gtk || disable pure GTK code in amule | ||
+ | |- | ||
+ | | --enable-utf8-systray || use UTF-8 encoded strings in the systray | ||
+ | |- | ||
+ | | --disable-systray || disable SysTray compilation | ||
+ | |- | ||
+ | | --disable-monolithic || disable building of the monolithic aMule app | ||
+ | |- | ||
+ | | --disable-gtktest || do not try to compile and run a test GTK+ program | ||
+ | |- | ||
+ | | --disable-gtktest || do not try to compile and run a test GTK program | ||
+ | |- | ||
+ | | --disable-rpath || do not hardcode runtime library paths | ||
+ | |- | ||
+ | | --disable-nls || do not use Native Language Support | ||
+ | |- | ||
+ | | --enable-ccache || enable ccache support for fast recompilation | ||
+ | |} | ||
− | Optional | + | {| border=1 |
− | + | |+ Optional packages | |
− | + | | --with-PACKAGE[=ARG] || use PACKAGE [ARG=yes] | |
− | + | |- | |
− | + | | --without-PACKAGE || do not use PACKAGE (same as --with-PACKAGE=no) | |
− | + | |- | |
− | + | | --with-zlib=PREFIX || use zlib in PREFIX | |
− | + | |- | |
− | + | | --with-curl-config=CONFIG || curl-config script to use (optional) | |
− | + | |- | |
− | + | | --with-curl-prefix=PREFIX || prefix where curl is installed (optional) (unused) | |
− | + | |- | |
− | + | | --with-gdlib-prefix=PREFIX || prefix where gdlib is installed (optional) | |
− | + | |- | |
− | + | | --with-gdlib-exec-prefix=PREFIX || exec prefix where gdlib is installed (optional) | |
− | ) | + | |- |
− | + | | --with-gdlib-config=CONFIG || gdlib-config script to use (optional) | |
− | + | |- | |
− | + | | --with-libpng-prefix=PREFIX || prefix where libpng is installed | |
− | + | |- | |
− | + | | --with-libpng-exec-prefix=PREFIX || exec prefix where libpng is installed | |
− | + | |- | |
− | + | | --with-libpng-config=CONFIG || libpng-config script to use | |
− | + | |- | |
− | + | | --with-wx-prefix=PREFIX || prefix where wxWidgets is installed (optional) | |
− | + | |- | |
− | + | | --with-wx-exec-prefix=PREFIX || exec prefix where wxWidgets is installed (optional) | |
− | + | |- | |
− | + | | --with-wx-config=CONFIG || wx-config script to use (optional) | |
− | + | |- | |
− | + | | --with-wxbase-prefix=PREFIX || prefix where wxWidgets base is installed (optional) | |
− | + | |- | |
− | + | | --with-wxbase-exec-prefix=PREFIX || exec prefix where wxWidgetsbase is installed (optional) | |
− | + | |- | |
− | + | | --with-wxbase-config=CONFIG || wxbase-config script to use (optional) | |
− | + | |- | |
+ | | --with-gtk-prefix=PREFIX || prefix where GTK is installed (optional) | ||
+ | |- | ||
+ | | --with-gtk-exec-prefix=PREFIX || exec prefix where GTK is installed (optional) | ||
+ | |- | ||
+ | | --with-crypto-prefix=PREFIX || prefix where crypto++ is installed (optional) | ||
+ | |- | ||
+ | | --with-x || use the X Window System | ||
+ | |- | ||
+ | | --with-gnu-ld || assume the C compiler uses GNU ld default=no | ||
+ | |- | ||
+ | | --with-libiconv-prefix=DIR || search for libiconv in DIR/include and DIR/lib | ||
+ | |- | ||
+ | | --without-libiconv-prefix || don't search for libiconv in includedir and libdir | ||
+ | |- | ||
+ | | --with-included-gettext || use the GNU gettext library included here | ||
+ | |- | ||
+ | | --with-libintl-prefix=DIR || search for libintl in DIR/include and DIR/lib | ||
+ | |- | ||
+ | | --without-libintl-prefix || don't search for libintl in includedir and libdir | ||
+ | |- | ||
+ | | --with-ccache-prefix=PREFIX || prefix where ccache is installed (optional) | ||
+ | |} | ||
+ | |||
+ | == Variables == | ||
+ | |||
+ | Before you take a look at the [[#Variables and what they mean|variables and what they mean]], you must take a look at the two variable's [[#Usage types|usage types]] available. | ||
+ | |||
+ | === Usage types === | ||
+ | |||
+ | You can either use [[#Environmental variables|environmental variables]] or you can [[#Configure variables|enter variables directly into the ''configure'' command]]. | ||
+ | |||
+ | ==== Environmental variables ==== | ||
+ | |||
+ | If you plan to use environmental variables, you will affect the behaviour of ''configure'' and any other program you run in that same shell untill you end your session. You must set them '''before''' running configure. To set them, run | ||
+ | |||
+ | export ''VAR=VALUE''' | ||
+ | |||
+ | where ''VAR'' is the name of the environmental variable and ''VALUE'' is it's value. | ||
+ | |||
+ | ==== Configure variables ==== | ||
+ | |||
+ | If you don't want to use environmental variables, you can pass them into the ''configure'' command, this way: | ||
+ | |||
+ | configure VAR=VALUE | ||
+ | |||
+ | where ''VAR'' stands for the variable name and ''VALUE'' is its value. | ||
+ | |||
+ | === Variables and what they mean === | ||
+ | |||
+ | Do '''NOT''' touch this variables if you don't know what you are doing! | ||
+ | |||
+ | This are some of the most commonly used environmental for ''configure'': | ||
+ | |||
+ | {| border=1 | ||
+ | |+ Environmental variables | ||
+ | | ''CC'' || C compiler command to use | ||
+ | |- | ||
+ | | ''CXX'' || C++ compiler command to use (e.g. ''g++'') | ||
+ | |- | ||
+ | | ''CPP'' || C preprocessor command to use | ||
+ | |- | ||
+ | | ''CFLAGS'' || C compiler flags | ||
+ | |- | ||
+ | | ''CXXCPP'' || C++ preprocessor command to use | ||
+ | |- | ||
+ | | ''CXXFLAGS' || C++ compiler flags | ||
+ | |- | ||
+ | | ''LDFLAGS'' || Linker flags. Usually used to specify additional library directories (e.g. ''LDFLAGS="-L/usr/lib"'') | ||
+ | |- | ||
+ | | ''CPPFLAGS'' || C/C++ preprocessor flags (e.g. ''CPPFLAGS="-I/usr/include"'') | ||
+ | |} | ||
− | + | == More information == | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | This article is mainly an explanation (dummy-proof) of the output of ''configure --help''. | |
− | + | ||
− | + | Anyway, it could (rarely) be out of date. So, if tehre's something you want to do with ''configure'' that is not listed here, run ''configure --help'' and see if it is listed there. | |
− | + |
Revision as of 22:08, 28 March 2005
Contents
Introduction
configure configures aMule to adapt to many kinds of systems.
Its purpose is to make it easy to port it to many platforms and to compile it and use it in all platforms in the very same way.
You can set lots of parameters in it to adapt it to your system and to tweak it's features.
Main usage
It's usage is ./configure [OPTION]... [VARIABLE=VALUE]...
So, as you can see, you can define its behaviour both through #Options and through Variables
Options
You can define one or more options. The available options in aMule's configure are listed below. To better understand their meaning, they have been grouped into several tables with options which affect the behaviour of configure in a similar way.
-h or --help | This will display a help message summing up all configure options |
-V or --version | This will display the version information |
-q or --quiet or --silent | Do not print the `checking...' messages, only the final summed up ouput |
--cache-file=FILE | Store the checkings' ouputs in FILE in a script format, so you can reuse without the need to rerun configure (read the cached file for more information) |
-C or --config-cache | Same as --cache-file=config.cache |
-n or --no-create | Just run configure, but do not create any file |
--srcdir=DIR | Look for the sources in DIR. By default, the configure dir or its parent (../) |
--prefix=PREFIX | Set where to install architecture-independent files (data) in PREFIX. By dafault, this is set to /usr/local |
--exec-prefix=EPREFIX | Set where to install architecture-dependent files (mainly binaries) in EPREFIX. By default, this is set to the same value as PREFIX. |
--bindir=DIR | Where to store user executables. By default, EPREFIX/bin |
--sbindir=DIR | Where to store system administrator executables. By default, EPREFIX/sbin |
--libexecdir=DIR | Where to store program executable. By default EPREFIX/libexeec |
--datadir=DIR | Where to store read-only architecture independent data. By default, EPREFIX/share |
--sysconfdir=DIR | Where to install read-only single-machine data. By default, PREFIX/etc |
--sharedstatedir=DIR | Directory with hangable architacture-independent data. By default PREFIX/com |
--localstatedir=DIR | Modifiable single-machine data. By default, PREFIX/var |
--libdir=DIR | Directory to search libs object code libraries. By default, EPREFIX/lib |
--includedir=DIR | Directory containing the C header files. By default, PREFIX/include |
--oldincludedir=DIR | Directory containing C header files for non-GCC. By default, /usr/include |
--infodir=DIR | Where to store info and documentation files. By default, EPREFIX/info |
--mandir=DIR | Where to store man pages. By default, EPREFIX/man |
--PROGRAM-prefix=PREFIX | Prepend PREFIX to installed PROGRAM directories |
--PROGRAM-suffix=SUFFIX | Append SUFFIX to installed PROGRAM directories |
--PROGRAM-transform-name=SUBST | Run sed SUBST on installed PROGRAM names |
--x-includes=DIR | DIR contains X's include files |
--x-libraries=DIR | DIR contains X's libraries |
--build=BUILD | Configure for building on BUILD platform. By default, it guesses the platform it is being run on |
--host=HOST | Cross-compile to build programs to run on HOST platforms. By default, same as BUILD |
--target=TARGET | Configure for building compilers for TARGET platfroms. By default, same as HOST |
--disable-FEATURE | do not include FEATURE (same as --enable-FEATURE=no) |
--enable-FEATURE[=ARG] | include FEATURE [ARG=yes] |
--enable-maintainer-mode | enable make rules and dependencies not useful (and sometimes confusing) to the casual installer |
--disable-dependency-tracking | speeds up one-time build |
--enable-dependency-tracking | do not reject slow dependency extractors |
--enable-debug | enable additional debugging output |
--disable-debug | disable additional debugging output |
--enable-optimize | enable code optimizing |
--enable-optimise | enable code optimizing (deprecated) |
--enable-profile | enable code profiling |
--enable-static | produce a statically linked executable |
--enable-embedded_crypto | use embedded Crypto code (default) |
--enable-amulecmd | compile aMule command line client |
--enable-amulecmdgui | compile aMule command line client (GUI version) |
--enable-amule-gui | compile aMule remote GUI (EXPERIMENTAL) |
--enable-amule-daemon | compile aMule daemon version |
--enable-webserver | compile aMule WebServer |
--enable-webservergui | compile aMule WebServer GUI |
--enable-cas | compile C aMule Statistics |
--enable-wxcas | compile aMule GUI Statistics |
--disable-ed2k | don't compile aMule ed2k links handler |
--enable-alc | compile aMuleLinkCreator GUI version |
--enable-alcc | compile aMuleLinkCreator for console |
--disable-gsocket | disable gsocket.c linking |
--disable-gtk | disable pure GTK code in amule |
--enable-utf8-systray | use UTF-8 encoded strings in the systray |
--disable-systray | disable SysTray compilation |
--disable-monolithic | disable building of the monolithic aMule app |
--disable-gtktest | do not try to compile and run a test GTK+ program |
--disable-gtktest | do not try to compile and run a test GTK program |
--disable-rpath | do not hardcode runtime library paths |
--disable-nls | do not use Native Language Support |
--enable-ccache | enable ccache support for fast recompilation |
--with-PACKAGE[=ARG] | use PACKAGE [ARG=yes] |
--without-PACKAGE | do not use PACKAGE (same as --with-PACKAGE=no) |
--with-zlib=PREFIX | use zlib in PREFIX |
--with-curl-config=CONFIG | curl-config script to use (optional) |
--with-curl-prefix=PREFIX | prefix where curl is installed (optional) (unused) |
--with-gdlib-prefix=PREFIX | prefix where gdlib is installed (optional) |
--with-gdlib-exec-prefix=PREFIX | exec prefix where gdlib is installed (optional) |
--with-gdlib-config=CONFIG | gdlib-config script to use (optional) |
--with-libpng-prefix=PREFIX | prefix where libpng is installed |
--with-libpng-exec-prefix=PREFIX | exec prefix where libpng is installed |
--with-libpng-config=CONFIG | libpng-config script to use |
--with-wx-prefix=PREFIX | prefix where wxWidgets is installed (optional) |
--with-wx-exec-prefix=PREFIX | exec prefix where wxWidgets is installed (optional) |
--with-wx-config=CONFIG | wx-config script to use (optional) |
--with-wxbase-prefix=PREFIX | prefix where wxWidgets base is installed (optional) |
--with-wxbase-exec-prefix=PREFIX | exec prefix where wxWidgetsbase is installed (optional) |
--with-wxbase-config=CONFIG | wxbase-config script to use (optional) |
--with-gtk-prefix=PREFIX | prefix where GTK is installed (optional) |
--with-gtk-exec-prefix=PREFIX | exec prefix where GTK is installed (optional) |
--with-crypto-prefix=PREFIX | prefix where crypto++ is installed (optional) |
--with-x | use the X Window System |
--with-gnu-ld | assume the C compiler uses GNU ld default=no |
--with-libiconv-prefix=DIR | search for libiconv in DIR/include and DIR/lib |
--without-libiconv-prefix | don't search for libiconv in includedir and libdir |
--with-included-gettext | use the GNU gettext library included here |
--with-libintl-prefix=DIR | search for libintl in DIR/include and DIR/lib |
--without-libintl-prefix | don't search for libintl in includedir and libdir |
--with-ccache-prefix=PREFIX | prefix where ccache is installed (optional) |
Variables
Before you take a look at the variables and what they mean, you must take a look at the two variable's usage types available.
Usage types
You can either use environmental variables or you can enter variables directly into the configure command.
Environmental variables
If you plan to use environmental variables, you will affect the behaviour of configure and any other program you run in that same shell untill you end your session. You must set them before running configure. To set them, run
export VAR=VALUE'
where VAR is the name of the environmental variable and VALUE is it's value.
Configure variables
If you don't want to use environmental variables, you can pass them into the configure command, this way:
configure VAR=VALUE
where VAR stands for the variable name and VALUE is its value.
Variables and what they mean
Do NOT touch this variables if you don't know what you are doing!
This are some of the most commonly used environmental for configure:
CC | C compiler command to use |
CXX | C++ compiler command to use (e.g. g++) |
CPP | C preprocessor command to use |
CFLAGS | C compiler flags |
CXXCPP | C++ preprocessor command to use |
CXXFLAGS' | C++ compiler flags |
LDFLAGS | Linker flags. Usually used to specify additional library directories (e.g. LDFLAGS="-L/usr/lib") |
CPPFLAGS | C/C++ preprocessor flags (e.g. CPPFLAGS="-I/usr/include") |
More information
This article is mainly an explanation (dummy-proof) of the output of configure --help.
Anyway, it could (rarely) be out of date. So, if tehre's something you want to do with configure that is not listed here, run configure --help and see if it is listed there.