Add migration guide for 3.0
[openssl.git] / HACKING.md
1 MODIFYING OPENSSL SOURCE
2 ========================
3
4 This document describes the way to add custom modifications to OpenSSL sources.
5
6  If you are adding new public functions to the custom library build, you need to
7  either add a prototype in one of the existing OpenSSL header files;
8  or provide a new header file and edit
9  [Configurations/unix-Makefile.tmpl](Configurations/unix-Makefile.tmpl)
10  to pick up that file.
11
12  After that perform the following steps:
13
14     ./Configure -Werror --strict-warnings [your-options]
15     make update
16     make
17     make test
18
19  `make update` ensures that your functions declarations are added to
20  `util/libcrypto.num` or `util/libssl.num`.
21  If you plan to submit the changes you made to OpenSSL
22  (see [CONTRIBUTING.md](CONTRIBUTING.md)), it's worth running:
23
24     make doc-nits
25
26  after running `make update` to ensure that documentation has correct format.
27
28  `make update` also generates files related to OIDs (in the `crypto/objects/`
29  folder) and errors.
30  If a merge error occurs in one of these generated files then the
31  generated files need to be removed and regenerated using `make update`.
32  To aid in this process the generated files can be committed separately
33  so they can be removed easily.