Following are instructions to build and install the programs in this distribution.
Make sure that you have all necessary tools for building executables.
These tools include
cc/gcc, make, awk, sed, tr, sh, grep,
egrep and a few others. Not all of these tools exist in the
standard distribution of modern Unix versions (compilers are likely to
be an add-on product - consider using
gcc in this case).
For a successful build, all of these tools should be accessible via the
The automatic build process expects a configuration file called
Config.local. You can provide one or the system will build
one for you using the
Config.local.dist as a model. The
configuration file specifies the directory in which to install the
binaries, as well as control over the generation of debugging code and
reference clock support. However, many other options can be controlled
by editing other files, as described in the Configuration Options page.
Note that the automatic build process inspects your machine
environment and tests for the presence of system header files and the
contents of these files to determine if certain features are available.
In particular, the process looks for system-dependent
clkdefs.h, chudefs.h and
ppsclock.h header files,
which should be present only if one or more of the line disciplines,
stream modules or precision time kernel modifications are present. When
one or more of these features are present, the code is compiled to use
them; if not, no special code is compiled. However, even if the code is
compiled to use them, at run time the code does a special test to see if
one or more are actually present and avoids using them if not present.
make command to perform an automatic build
procedure. This procedure normally includes the debugging code, which
can be useful in diagnosing problems found in initial test, and all
reference clock drivers known to work with each machine and operating
system. Unless memory space is at a premium, this is a sensible strategy
and saves lots of messy fiddling. If you need to delete either the
debugging code or the reference clock support to save space, first copy
Config.local.dist file to the
file and then edit this file. To delete the debugging code, remove the
-DDEBUG flag in the
configuration file. To delete all drivers, remove the
DREFCLOCK flag. To include only selected drivers, see the Reference Clock Drivers page for a index and
description of each driver. Select which drivers you want and determine
the compile-time flag (e.g., WWVB for the Spectracom WWVB
driver). Then, construct a
CLOCKDEFS= line with a list of
flags in the form -Dflag for each driver you want.
The build procedure normally compiles everything of general interest.
Expect few or no warnings using
cc and a moderate level of
gcc. Note: On some Unix platforms the use of
gcc can result in quite a few complaints about system
header files and type problems within xntp3 code. This is usually the
case when the OS header files are not up to ANSI standards or GCCISMs.
(There may, however, be still some inconsistencies in the code)
Each time the configuration file is changed, a shell script is run
that pokes the hardware and software to build the makefiles in the
various directories and remove old program and object files. If the
script fails, it will give you a list of machines it knows about. You
can override the automatic choice by changing to the
../machines directory and typing
OS=machine, where machine; is one
of the file names in the
The shell script will attempt to find the
and, if found, will use it instead of the normal
compiler. You can override the automatic choice by changing to the
../machines directory and typing
COMP=compiler, where compiler is one of the file
names in the
../compilers directory. This can be combined
OS argument above.
Assuming you have write permission on the install destination
make install to install the binaries in the
destination directory. This includes the programs
xntpd (the daemon),
dependent query program),
standard query program),
rdate replacement for boot time date setting and sloppy
time keeping), and
utility useful in some systems to adjust kernel variables).
You are now ready to configure the daemon and start it. You will need
to create a NTP configuration file
ntp.conf and possibly a
cryptographic key file
ntp.keys. Directions for doing that
are in the Notes on Configuring NTP and Setting up
a NTP Subnet. A tutorial on debugging technique is in NTP Debugging Technique. If problems peculiar to
the particular hardware and software environment are suspected, browse
the Hints and Kinks page.
Bug reports of a general nature can be sent to David Mills (firstname.lastname@example.org). Bug reports of a specific nature on features implemented by the programmer corps mentioned in the Copyright page should be sent directly to the implementor listed in that page, with copy to email@example.com.
clean, but cleans out all directories in preparation for a new distribution release.