You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.1 KiB
79 lines
3.1 KiB
2 months ago
|
How to Configure libucw libraries
|
||
|
=================================
|
||
|
|
||
|
What can be configured
|
||
|
----------------------
|
||
|
There are two different levels of configuring program
|
||
|
based on the libucw libraries:
|
||
|
|
||
|
- runtime configuration in configuration files (see <<config:>>)
|
||
|
|
||
|
- compile-time configuration of the libraries: config switches set
|
||
|
before compiling, selecting optional features.
|
||
|
|
||
|
Where to build
|
||
|
--------------
|
||
|
If you run configure in the source directory, it prepares for compilation inside
|
||
|
the source tree. In this case, an `obj` subdirectory is created to hold all generated
|
||
|
files (object files, binaries, generated source files etc.) and all final files
|
||
|
are linked to the `run` subdirectory. No other parts of the source tree are written into.
|
||
|
|
||
|
Alternatively, you can compile in a separate object tree (which is useful when you
|
||
|
want to build several different configurations from a single source tree). In order
|
||
|
to do that, switch to the destination directory and issue `<source-dir>/configure ...`.
|
||
|
This way, configure will create the `obj` and `run` directories locally and set up
|
||
|
a Makefile which refers to the original source tree.
|
||
|
|
||
|
How to configure
|
||
|
----------------
|
||
|
To set up compilation, possibly overriding default compile-time
|
||
|
options, just run:
|
||
|
|
||
|
./configure [<option> | -<option> | <option>=<value> ...]
|
||
|
|
||
|
The default values of feature options are taken from `default.cfg`.
|
||
|
Compiler flags and options dependent on compiler, OS and CPU type
|
||
|
are set in `ucw/perl/UCW/Configure/C.pm`. Everything can be overriden by
|
||
|
options specified on the configure's command line, which have the highest
|
||
|
priority.
|
||
|
|
||
|
If you want to see the resulting set of options, take a look at
|
||
|
`obj/config.mk`.
|
||
|
|
||
|
Options specifying compiler/linker/debugger options can be also overriden
|
||
|
during compilation by `make <option>=<value>`. While it's also possible
|
||
|
to specify the other options in this way, it probably won't have the desired
|
||
|
effect, because configure also generates C include files containing the
|
||
|
options.
|
||
|
|
||
|
Installation options
|
||
|
--------------------
|
||
|
By default, the package is compiled to be installed and it chooses a
|
||
|
place where it will install. If you want to place it somewhere else,
|
||
|
set the `PREFIX` option:
|
||
|
|
||
|
./configure PREFIX=/where/to/install
|
||
|
|
||
|
[[local_build]]
|
||
|
You can create a local compilation, which does not need to be
|
||
|
installed. To compile it that way, turn on the `CONFIG_LOCAL` option
|
||
|
(and do not set `PREFIX`):
|
||
|
|
||
|
./configure CONFIG_LOCAL
|
||
|
|
||
|
Alternatively you can add the `CONFIG_RELATIVE_PATHS` option.
|
||
|
All paths are then set relative to a `run` directory and
|
||
|
programs expect to have current working directory set to it. However,
|
||
|
you can move the `run` directory around your filesystem as you like:
|
||
|
|
||
|
./configure CONFIG_LOCAL CONFIG_RELATIVE_PATHS
|
||
|
|
||
|
Examples
|
||
|
--------
|
||
|
- `./configure -CONFIG_SHARED` will build the libraries statically.
|
||
|
- `./configure -CONFIG_XML` avoids building the XML library.
|
||
|
- `./configure -CONFIG_UCW_UTILS` compiles only the libraries
|
||
|
without its utility programs.
|
||
|
- `./configure CONFIG_IMAGES PREFIX=$HOME/libucw` includes an image
|
||
|
library and installs into your home directory.
|