few possible exceptions [1]) have information about end products (such
as scripts, library files and programs) and source files (such as C
files, C header files, assembler files, etc). Intermediate files such
-as object files are rarely directly refered to in build.info files (and
+as object files are rarely directly referred to in build.info files (and
when they are, it's always with the file name extension .o), they are
-infered by Configure. By the same rule of minimalism, end product
+inferred by Configure. By the same rule of minimalism, end product
file name extensions (such as .so, .a, .exe, etc) are never mentioned
-in build.info. Their file name extensions will be infered by the
+in build.info. Their file name extensions will be inferred by the
build-file templates, adapted for the platform they are meant for (see
sections on %unified_info and build-file templates further down).
Two things are worth an extra note:
-'DEPEND[cversion.o]' mentiones an object file. DEPEND indexes is the
+'DEPEND[cversion.o]' mentions an object file. DEPEND indexes is the
only location where it's valid to mention them
Lines in 'BEGINRAW'..'ENDRAW' sections must always mention files as
"libcrypto" =>
[
"crypto",
- "util/libeay.num",
+ "util/libcrypto.num",
],
"libssl" =>
[
"ssl",
- "util/ssleay.num",
+ "util/libssl.num",
],
},
"programs" =>
},
);
-As can be seen, everything in %unified_info is fairly simple nuggest
+As can be seen, everything in %unified_info is fairly simple suggest
of information. Still, it tells us that to build all programs, we
must build 'apps/openssl', and to build the latter, we will need to
build all its sources ('apps/openssl.o' in this case) and all the
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.
'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 dependencies. 'incs' is a list
- of include file directories.
+ 'deps' is a list of explicit dependencies. 'incs'
+ 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
this library. 'ordinals' MAY be present, and when
it is, its value is an array where the word is
"crypto" or "ssl" and the file is one of the ordinal
- files util/libeay.num or util/ssleay.num in the
+ files util/libcrypto.num or util/libssl.num in the
source directory.
This function has a choice; it can use the
lib => "libssl",
objs => [ "ssl/tls.o" ],
deps => [ "libcrypto" ]
- ordinals => [ "ssl", "util/ssleay.num" ]);
+ ordinals => [ "ssl", "util/libssl.num" ]);
obj2lib(lib => "libssl"
objs => [ "ssl/tls.o" ]);