given here, they MUST be as an array of the
string such as "MACRO=value", or just
"MACRO" for definitions without value.
- debug_cflags => Extra compilation flags used when making a
- debug build (when Configure receives the
- --debug option). Typically something like
- "-g -O0".
- debug_defines => Similarly to `debug_cflags', this gets
- combined with `defines' during a debug
- build. The value here MUST also be an
- array of the same form as for `defines'.
- release_cflags => Extra compilation flags used when making a
- release build (when Configure receives the
- --release option, or doesn't receive the
- --debug option). Typically something like
- "-O" or "-O3".
- release_defines => Similarly to `release_cflags', this gets
- combined with `defines' during a release
- build. The value here MUST also be an
- array of the same form as for `defines'.
- thread_cflags => Extra compilation flags used when
- compiling with threading enabled.
- Explained further below. [2]
- thread_defines => Similarly to `thread_cflags', this gets
- combined with `defines' when threading is
- enabled. The value here MUST also be an
- array of the same form as for `defines'.
shared_cflag => Extra compilation flags used when
compiling for shared libraries, typically
something like "-fPIC".
ex_libs => Extra libraries that are needed when
linking.
- debug_lflags => Like debug_cflags, but used when linking.
- release_lflags => Like release_cflags, but used when linking.
-
ar => The library archive command, the default is
"ar".
(NOTE: this is here for future use, it's
this is here for future use, it's not
implemented yet)
+ thread_scheme => The type of threads is used on the
+ configured platform. Currently known
+ values are "(unknown)", "pthreads",
+ "uithreads" (a.k.a solaris threads) and
+ "winthreads". Except for "(unknown)", the
+ actual value is currently ignored but may
+ be used in the future. See further notes
+ below [2].
dso_scheme => The type of dynamic shared objects to build
for. This mostly comes into play with
engines, but can be used for other purposes
'inherit_from' that indicate what other configurations to inherit
data from. These are resolved recursively.
- Inheritance works as a set of default values that can be overriden
+ Inheritance works as a set of default values that can be overridden
by corresponding key values in the inheriting configuration.
Note 1: any configuration table can be used as a template.
}
[2] OpenSSL is built with threading capabilities unless the user
- specifies 'no-threads'. The value of the key 'thread_cflags' may
+ specifies 'no-threads'. The value of the key 'thread_scheme' may
be "(unknown)", in which case the user MUST give some compilation
flags to Configure.
Together with the use of Text::Template, this can be used as
conditions based on something in the passed variables, for example:
- IF[{- $config{no_shared} -}]
+ IF[{- $disabled{shared} -}]
LIBS=libcrypto
SOURCE[libcrypto]=...
ELSE
perl functions in a perl code fragment enclosed with "{-" and "-}".
They are all expected to return a string with the lines they produce.
- src2dep - function that produces build file lines to get the
- dependencies for an object file into a dependency
- file.
-
- It's called like this:
-
- src2dep(obj => "PATH/TO/objectfile",
- srcs => [ "PATH/TO/sourcefile", ... ],
- deps => [ "dep1", ... ],
- incs => [ "INCL/PATH", ... ]);
-
- 'obj' has the dependent object file as well as
- object file the dependencies are for; it's *without*
- extension, src2dep() is expected to add that.
- 'srcs' has the list of source files to build the
- object file, with the first item being the source
- file that directly corresponds to the object file.
- 'deps' is a list of explicit dependencies. 'incs'
- is a list of include file directories.
-
src2obj - function that produces build file lines to build an
object file from source files and associated data.
src2obj(obj => "PATH/TO/objectfile",
srcs => [ "PATH/TO/sourcefile", ... ],
deps => [ "dep1", ... ],
- incs => [ "INCL/PATH", ... ]);
+ incs => [ "INCL/PATH", ... ]
+ intent => one of "lib", "dso", "bin" );
'obj' has the intended object file *without*
extension, src2obj() is expected to add that.
object file, with the first item being the source
file that directly corresponds to the object file.
'deps' is a list of explicit dependencies. 'incs'
- is a list of include file directories.
+ is a list of include file directories. Finally,
+ 'intent' indicates what this object file is going
+ to be used for.
obj2lib - function that produces build file lines to build a
static library file ("libfoo.a" in Unix terms) from
'lib' has the intended library file name *without*
extension, libobj2shlib is expected to add that.
- 'shlib' has the correcponding shared library name
+ 'shlib' has the corresponding shared library name
*without* extension. 'deps' has the list of other
libraries (also *without* extension) this library
needs to be linked with. 'objs' has the list of
corresponding static library as input to make the
shared library, or the list of object files.
- obj2dynlib - function that produces build file lines to build a
- dynamically loadable library file ("libfoo.so" on
- Unix) from object files.
+ obj2dso - function that produces build file lines to build a
+ dynamic shared object file from object files.
called like this:
- obj2dynlib(lib => "PATH/TO/libfile",
- objs => [ "PATH/TO/objectfile", ... ],
- deps => [ "PATH/TO/otherlibfile",
- ... ]);
+ obj2dso(lib => "PATH/TO/libfile",
+ objs => [ "PATH/TO/objectfile", ... ],
+ deps => [ "PATH/TO/otherlibfile",
+ ... ]);
This is almost the same as libobj2shlib, but the
intent is to build a shareable library that can be
directory.
Make sure to end the section with these functions with a string that
-you thing is apropriate for the resulting build file. If nothing
+you thing is appropriate for the resulting build file. If nothing
else, end it like this:
""; # Make sure no lingering values end up in the Makefile