mirror of https://github.com/c-ares/c-ares.git
parent
ce4c20afcb
commit
3429263560
4 changed files with 92 additions and 47 deletions
@ -0,0 +1,47 @@ |
|||||||
|
Developer Notes |
||||||
|
=============== |
||||||
|
|
||||||
|
* The distributed `ares_build.h` in the official release tarballs is only |
||||||
|
intended to be used on systems which can also not run the also distributed |
||||||
|
`configure` or `CMake` scripts. It is generated as a copy of |
||||||
|
`ares_build.h.dist` as can be seen in the code repository. |
||||||
|
|
||||||
|
* If you check out from git on a non-`configure` or `CMake` platform, you must run |
||||||
|
the appropriate `buildconf*` script to set up `ares_build.h` and other local |
||||||
|
files before being able to compile the library. There are pre-made makefiles |
||||||
|
for a subset of such systems such as Watcom, NMake, and MinGW Makefiles. |
||||||
|
|
||||||
|
* On systems capable of running the `configure` or `CMake` scripts, the process |
||||||
|
will overwrite the distributed `ares_build.h` file with one that is suitable |
||||||
|
and specific to the library being configured and built, this new file is |
||||||
|
generated from the `ares_build.h.in` and `ares_build.h.cmake` template files. |
||||||
|
|
||||||
|
* If you intend to distribute an already compiled c-ares library you **MUST** |
||||||
|
also distribute along with it the generated `ares_build.h` which has been |
||||||
|
used to compile it. Otherwise, the library will be of no use for the users of |
||||||
|
the library that you have built. It is **your** responsibility to provide this |
||||||
|
file. No one at the c-ares project can know how you have built the library. |
||||||
|
The generated file includes platform and configuration dependent info, |
||||||
|
and must not be modified by anyone. |
||||||
|
|
||||||
|
* We support both the AutoTools `configure` based build system as well as the |
||||||
|
`CMake` build system. Any new code changes must work with both. |
||||||
|
|
||||||
|
* The files that get compiled and are present in the distribution are referenced |
||||||
|
in the `Makefile.inc` in the current directory. This file gets included in |
||||||
|
every build system supported by c-ares so that the list of files doesn't need |
||||||
|
to be maintained per build system. Don't forget to reference new header files |
||||||
|
otherwise they won't be included in the official release tarballs. |
||||||
|
|
||||||
|
* We cannot assume anything else but very basic C89 compiler features being |
||||||
|
present. The lone exception is the requirement for 64bit integers which is |
||||||
|
not a requirement for C89 compilers to support. Please do not use any extended |
||||||
|
features released by later standards. |
||||||
|
|
||||||
|
* Newlines must remain unix-style for older compilers' sake. |
||||||
|
|
||||||
|
* Comments must be written in the old-style `/* unnested C-fashion */` |
||||||
|
|
||||||
|
* Try to keep line lengths below 80 columns and formatted as the existing code. |
||||||
|
There is a `.clang-format` in the repository that can be used to run the |
||||||
|
automated code formatter as such: `clang-format -i */*.c */*.h */*/*.c */*/*.h` |
Loading…
Reference in new issue