mirror of
https://github.com/openssl/openssl.git
synced 2024-11-24 10:34:12 +08:00
c2bbf9cf6c
could be done automagically, much like the numbering in libeay.num and ssleay.num. The solution works as follows: - New object identifiers are inserted in objects.txt, following the syntax given in objects.README. - objects.pl is used to process obj_mac.num and create a new obj_mac.h. - obj_dat.pl is used to create a new obj_dat.h, using the data in obj_mac.h. This is currently kind of a hack, and the perl code in objects.pl isn't very elegant, but it works as I intended. The simplest way to check that it worked correctly is to look in obj_dat.h and check the array nid_objs and make sure the objects haven't moved around (this is important!). Additions are OK, as well as consistent name changes.
45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
objects.txt syntax
|
|
------------------
|
|
|
|
To cover all the naming hacks that were previously in objects.h needed some
|
|
kind of hacks in objects.txt.
|
|
|
|
The basic syntax for adding an object is as follows:
|
|
|
|
1 2 3 4 : shortName : Long Name
|
|
|
|
If the long name doesn't contain spaces, or no short name
|
|
exists, the long name is used as basis for the base name
|
|
in C. Otherwise, the short name is used.
|
|
|
|
The base name (let's call it 'base') will then be used to
|
|
create the C macros SN_base, LN_base, NID_base and OBJ_base.
|
|
|
|
Note that if the base name contains spaces, dashes or periods,
|
|
those will be converte to underscore.
|
|
|
|
Then there are some extra commands:
|
|
|
|
!Alias foo 1 2 3 4
|
|
|
|
This juts makes a name foo for an OID. The C macro
|
|
OBJ_foo will be created as a result.
|
|
|
|
!Cname foo
|
|
|
|
This makes sure that the name foo will be used as base name
|
|
in C.
|
|
|
|
!module foo
|
|
1 2 3 4 : shortName : Long Name
|
|
!global
|
|
|
|
The !module command was meant to define a kind of modularity.
|
|
What it does is to make sure the module name is prepended
|
|
to the base name. !global turns this off. This construction
|
|
is not recursive.
|
|
|
|
Lines starting with # are treated as comments, as well as any line starting
|
|
with ! and not matching the commands above.
|
|
|