summaryrefslogtreecommitdiff
path: root/NOTES
blob: 5e113adc2a11f9293353d096d5ed1de321af7fc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Please observe the following notes when making changes to the source
tree.

We use the included ss and et libraries only when configured without
--enable-athena.  configure uses the BUILDTOP make variable to locate
the top of the build tree in order to refer to automatically generated
files in lib/ss and lib/et.

lib/dyn and lib/ss are internal libraries, i.e. they are only used by
programs (xzwrite uses lib/dyn and zctl uses lib/ss), not by the
Zephyr API.  lib/et and lib/zephyr are external libraries; they are
necessary for linking programs which use Zephyr, so their libraries
are installed in the library directory.  Note that the library built
in lib/et is named libcom_err.a, not libet.a, and that it is only
installed if --enable-athena is not used.

The directory h contains header files used internally in the zephyr
source tree.  The directory h/zephyr contains header files containing
declarations for the Zephyr API.  h/zephyr/zephyr_err.h is generated
from lib/zephyr/zephyr_err.et when lib/zephyr is built.
h/zephyr/zephyr.h is generated by configure, as is h/config.h.  Those
header files live in the build tree, as do h/com_err.h and h/ss/ss.h
when --enable-athena is not given as an option to configure.  All
other header files in h live in the source tree.

h/config.h is generated by configure and contains the results of
configure tests as well as definitions for the installation
configuration directory and data directory.  h/sysdep.h uses
h/config.h to include various header files or make various external
declarations which many programs might be interested in.  h/internal.h
contains declarations internal to the "Zephyr system proper," which
includes the Zephyr library, the server, the hostmanager, and (for
now) zstat.

Two header files, h/zephyr/zephyr.h and lib/et/com_err.h (when
--enable-athena is not used) are public header files; that is, they
are installed with the Zephyr system.  As such, these header files may
need to work with compilers other than the compiler used to build the
Zephyr system itself.  Thus, we use __STDC__ (both in h/sysdep.h and
in the public header files) to guess whether the compiler will handle
const, prototypes, and stdarg.  This is unfortunately not as reliable
as using autoconf features like AC_C_CONST.

The Zephyr system version number is kept in server/version.c, and
should be updated when releases are made.