OID information is generated via a series of perl scripts. In order, the full
list of commands to run are:

        perl objects.pl objects.txt obj_mac.num ../../include/openssl/nid.h
        perl obj_dat.pl ../../include/openssl/nid.h obj_dat.h

objects.txt contains the list of all built-in OIDs. It is processed by
objects.pl to output obj_mac.num and nid.h. obj_mac.num is the list of NID
values for each OID. This is an input/output parameter so NID values are stable
across regenerations. nid.h is the header which defines macros for all the
built-in OIDs in C.

nid.h is read by obj_dat.pl to generate obj_dat.h. obj_dat.h contains the
ASN1_OBJECTs corresponding to built-in OIDs themselves along with lookup tables
for search by short name, OID, etc.

Dependency graph:

                        objects.txt
                            |
                            V
                       [objects.pl] <--+
                         /      \      |
                        V        V     |
                     nid.h     obj_mac.num
                      |
                      V
                 [obj_dat.pl]
                      |
                      V
                  obj_dat.h
