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