'<unistd.h>'. This is very rarely needed.
shared_extension => File name extension used for shared
- libraries.
+ libraries.
obj_extension => File name extension used for object files.
On unix, this defaults to ".o" (NOTE: this
is here for future use, it's not
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
+ modules, but can be used for other purposes
as well. Valid values are "DLFCN"
(dlopen() et al), "DLFCN_NO_H" (for systems
that use dlopen() et al but do not have
fcntl.h), "DL" (shl_load() et al), "WIN32"
and "VMS".
+ asm_arch => The architecture to be used for compiling assembly
+ source. This acts as a selector in build.info files.
+ uplink_arch => The architecture to be used for compiling uplink
+ source. This acts as a selector in build.info files.
+ This is separate from asm_arch because it's compiled
+ even when 'no-asm' is given, even though it contains
+ assembler source.
perlasm_scheme => The perlasm method used to create the
assembler files used when compiling with
assembler implementations.
export vars as
accessor functions.
- apps_aux_src => Extra source to build apps/openssl and other
- apps, as needed by the target and that can be
- collected in a library.
- apps_init_src => Init source to build apps/openssl and other
- apps, as needed by the target. This code
- cannot be placed in a library, as the rest
- of the code isn't expected to link to it
- explicitly.
- cpuid_asm_src => assembler implementation of cpuid code as
- well as OPENSSL_cleanse().
- Default to mem_clr.c
- bn_asm_src => Assembler implementation of core bignum
- functions.
- Defaults to bn_asm.c
- ec_asm_src => Assembler implementation of core EC
- functions.
- des_asm_src => Assembler implementation of core DES
- encryption functions.
- Defaults to 'des_enc.c fcrypt_b.c'
- aes_asm_src => Assembler implementation of core AES
- functions.
- Defaults to 'aes_core.c aes_cbc.c'
- bf_asm_src => Assembler implementation of core BlowFish
- functions.
- Defaults to 'bf_enc.c'
- md5_asm_src => Assembler implementation of core MD5
- functions.
- sha1_asm_src => Assembler implementation of core SHA1,
- functions, and also possibly SHA256 and
- SHA512 ones.
- cast_asm_src => Assembler implementation of core CAST
- functions.
- Defaults to 'c_enc.c'
rc4_asm_src => Assembler implementation of core RC4
functions.
Defaults to 'rc4_enc.c rc4_skey.c'
- shared libraries; that would be libcrypto and libssl.
- shared objects (sometimes called dynamic libraries); that would
- be the engines.
+ be the modules.
- applications; those are apps/openssl and all the test apps.
Very roughly speaking, linking is done like this (words in braces
PROGRAMS=foo bar
LIBS=libsomething
- ENGINES=libeng
+ MODULES=libeng
SCRIPTS=myhack
- EXTRA=file1 file2
-Note that the files mentioned for PROGRAMS, LIBS and ENGINES *must* be
+Note that the files mentioned for PROGRAMS, LIBS and MODULES *must* be
without extensions. The build file templates will figure them out.
For each thing to be built, it is then possible to say what sources
NOTE: GENERATE lines are limited to one command only per GENERATE.
-As a last resort, it's possible to have raw build file lines, between
-BEGINRAW and ENDRAW lines as follows:
-
- BEGINRAW[Makefile(unix)]
- haha.h: {- $builddir -}/Makefile
- echo "/* haha */" > haha.h
- ENDRAW[Makefile(unix)]
-
-The word within square brackets is the build_file configuration item
-or the build_file configuration item followed by the second word in the
-build_scheme configuration item for the configured target within
-parenthesis as shown above. For example, with the following relevant
-configuration items:
-
- build_file => "build.ninja"
- build_scheme => [ "unified", "unix" ]
-
-... these lines will be considered:
-
- BEGINRAW[build.ninja]
- build haha.h: echo "/* haha */" > haha.h
- ENDRAW[build.ninja]
-
- BEGINRAW[build.ninja(unix)]
- build hoho.h: echo "/* hoho */" > hoho.h
- ENDRAW[build.ninja(unix)]
-
-Should it be needed because the recipes within a RAW section might
-clash with those generated by Configure, it's possible to tell it
-not to generate them with the use of OVERRIDES, for example:
-
- SOURCE[libfoo]=foo.c bar.c
-
- OVERRIDES=bar.o
- BEGINRAW[Makefile(unix)]
- bar.o: bar.c
- $(CC) $(CFLAGS) -DSPECIAL -c -o $@ $<
- ENDRAW[Makefile(unix)]
-
-See the documentation further up for more information on configuration
-items.
-
Finally, you can have some simple conditional use of the build.info
information, looking like this: