assembler files used when compiling with
assembler implementations.
shared_target => The shared library building method used.
- This is a target found in Makefile.shared.
+ This serves multiple purposes:
+ - as index for targets found in shared_info.pl.
+ - as linker script generation selector.
+ To serve both purposes, the index for shared_info.pl
+ should end with '-shared', and this suffix will be
+ removed for use as a linker script generation
+ selector. Note that the latter is only used if
+ 'shared_defflag' is defined.
build_scheme => The scheme used to build up a Makefile.
In its simplest form, the value is a string
with the name of the build scheme.
directory for the current build.info file and the corresponding build
directory, all relative to the top of the build tree.
-To begin with, things to be built are declared by setting specific
+'Configure' only knows inherently about the top build.info file. For
+any other directory that has one, further directories to look into
+must be indicated like this:
+
+ SUBDIRS=something someelse
+
+On to things to be built; they are declared by setting specific
variables:
PROGRAMS=foo bar
static libraries on Windows can only be done when configured
'no-shared'.
-One some platforms, shared libraries come with a name that's different
-from their static counterpart. That's declared as follows:
-
- SHARED_NAME[libfoo]=cygfoo-{- $config{shlibver} -}
-
-The example is from Cygwin, which has a required naming convention.
-
-Sometimes, it makes sense to rename an output file, for example a
-library:
-
- RENAME[libfoo]=libbar
-
-That line has "libfoo" renamed to "libbar". While it makes no
-sense at all to just have a rename like that (why not just use
-"libbar" everywhere?), it does make sense when it can be used
-conditionally. See a little further below for an example.
-
In some cases, it's desirable to include some source files in the
shared form of a library only:
INCLUDE[foo]=include
+It's also possible to specify C macros that should be defined:
+
+ DEFINE[foo]=FOO BAR=1
+
In some cases, one might want to generate some source files from
others, that's done as follows:
SOURCE[libfoo]=...
ENDIF
-or:
-
- # VMS has a cultural standard where all libraries are prefixed.
- # For OpenSSL, the choice is 'ossl_'
- IF[{- $config{target} =~ /^vms/ -}]
- RENAME[libcrypto]=ossl_libcrypto
- RENAME[libssl]=ossl_libssl
- ENDIF
-
Build-file programming with the "unified" build system
======================================================