Configure

From AMule Project FAQ
Revision as of 03:08, 29 March 2005 by Jacobo221 (Talk | contribs)

Jump to: navigation, search

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.

NOTE: This article is focused in aMule's configure. Other configure scripts work in a similar way, but their options will differ. This article maight be usefull for them as well, but have in mind that they might have options not listed here and lack some listed here too.

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.

Please note that configure will (in most cases) not complain if you enter a non valid options or variables. So make sure you enter the options correctly (no typos) or they wil not only just do nothing, but also don't behave in the way you expected for taht specific options.

Main options

This options should exist in any configure script around the world. <They won't run the configure script to configure your application's compilation, but only output information you might need.

Basic options
-h or --help This will display a help message summing up all configure options
-V or --version This will display the version information

Non-compilation common options

This options should also exist on any configure script around the world. They will set some non-compilation related preferences.

-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 (../)

Common options

This options should also exist on any configure script around the world. This time, this ones will affect the compilation of the application, so be careful when using them. You should take a close look at the application's README document (if available) if you want to use any of them (and even if you don't, still take a look at it, since you might have to use some).

Installation directories options
--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.
Advanced installation directories options
--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
General rule to program enabling and 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
General rule to enabling or disabling features (sometimes it enables or disables the compilation of a program)
--disable-FEATURE Do not include FEATURE. Equivalent to --enable-FEATURE=no (see below)
--enable-FEATURE Include FEATURE'. Equivalent to --enable-FEATURE=yes (see below)
--enable-FEATURE=VALUE Include FEATURE and specify it's value to VALUE. The meaning of the value should be explained in the configure --help output of the script
--without-PACKAGE Do not use PACKAGE. Equivalent to --with-PACKAGE=no (see below)
--with-PACKAGE use PACKAGE. Equivalent to --with-PACKAGE=yes (see below)
--with-PACKAGE=VALUE Use PACKAGE and set its value to VALUE
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

Very-common options

In most configure scripts, or at least on most of the configure scripts delivered with X applications, you will be able to use this options.

X directory specifications
--with-x Use the X Window System
--x-includes=DIR DIR contains X's include files
--x-libraries=DIR DIR contains X's libraries
Other very common options
--with-gnu-ld Use as the linker, without testing if it is the default linker in the system

aMule options

The following options are specific to aMule's configure script. They will allow you to enable and disable them, so you should really take a look at them or you might sadly find out you lack things you would like to have in you aMule system ;-)

Optional features
--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

aMule compilation settings

This options are specific to aMule's configure script, but they are not directly related to aMule. They just tell were some libraries or headers are located in your system, so that aMule can find them when compiling. Use them if you have those files in non-standard paths or when you know what you are doing.

Optional packages
--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-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:

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.

Of course, you can always take a look at the configure page].