Building and Installing the Distribution
Building and Installing the Distribution
Note that the automatic build process inspects the machine environment
and tests for the presence of system header files and the contents of these
files to determine if certain features are available. 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
these features, the code does a special test at run time to see if one
or more are actually present and avoids using them if not present. In such
cases a warning message is sent to the system log, but the daemon should
still work properly.
Support for Cryptographic Authentication
There are two versions of the distribution, one intended for domestic use
(U.S. and Canada) and the other intended for use in other countries. As
required by the International Trade in Arms Regulations (ITAR), now called
the Defense Trade Regulations (DTR), certain cryptographic products and
media cannot be exported without per-instance license. For this reason,
the cryptographic routines supporting DES and MD5 have been removed from
the export version. However, the distribution compiles and runs normally,
but without support for cryptographic authentication.
The NTP authentication routines conform to the interface used by RSA
Laboratories in the rsaref20.zip package, which is downloadable
from ftp.rsa.com or via the web at www.rsa.com. Outside
the U.S. and Canada, the functionally identical rsaeuro.zip package
is available from J.S.A. Kapp and other sources. There are two ways to
integrate the routines in either package with the NTP build procedures.
The first is to compile the source to produce a library file rsaref.a
per package instructions and copy it to the ./libntp directory
in the distribution. The other is to copy the source files desc.c
(for DES) and/or md5c.c (for MD5) to the ./libntp directory.
In either case, the header files global.h, rsaref.h,
des.h, md5.h and md2.h in the package must be
copied to the ./include directory. These steps must be completed
before the configuration process described below.
Building and Installing under Unix
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 the gnu tools and gcc compiler in this
case). For a successful build, all of these tools should be accessible
via the current path.
Configuration
Use the configure command to perform an automatic configuration
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 one
or more or all reference clock drivers to save space, see the Configuration
Options page.
If your site supports multiple architectures and uses NFS to share files,
you can use a single source tree to compile executables for all architectures.
While running on a target architecture machine and with the distribution
base directory active, create a subdirectory using a command like mkdir
`config.guess`, which will create an architecture-specific directory
with name peculiar to the architecture and operating system. Then change
to this directory and configure with the ../configure command.
The remaining steps are the same whether building in the base directory
or in the subdirectory.
Compilation
Use the make command to compile all source modules, construct
the libraries and link the distribution. Expect few or no warnings using
cc and a moderate level of warnings using gcc. Note:
On some Unix platforms the use of gcc can result in quite a few
complaints about system header files and type inconsistencies, especially
about pointer variables. This is usually the case when the system header
files are not up to ANSI standards or gcc-isms. While the autoconfigure
process is quite thorough, the Unix programming cultures of the various
workstation makers still remain idiosyncratic.
Installation
As root, use the make install command to install the binaries
in the destination directory. You must of course have write permission
on the install destination directory. This includes the programs ntpd
(the daemon), ntpdc (an ntpd-dependent
query program), ntpq (a standard query
program), ntpdate (an rdate
replacement for boot time date setting and sloppy time keeping) and ntptrace
(a utility useful to find the primary (stratum-1) servers). In some systems,
the tickadj (a utility useful to adjust
kernel variables) is installed. If the precision time kernel modifications
are present, the ntptime (a utility
useful to debug kernel time functions) is installed.
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 <mills@udel.edu>.
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 mills@udel.edu.
Please include the version of the source distribution (e.g., ntp-4.0.70a)
in your bug report.
Please include the output of config.guess in your bug report.
It will look something like: pdp11-dec-fuzzos3.4
Additional make commands
-
make clean
-
Cleans out object files, programs and temporary files.
-
make distclean
-
Does the work of clean, but cleans out all directories in preparation
for a new distribution release.
-
make dist
-
Does the work of make distclean, but constructs compressed tar
files for distribution. You must have GNU automake to perform this function.
Building and Installing under Windows NT
Under Windows NT, you will need Visual C++ 4.0 or above, InstallShield
SDK (comes with VC++), Perl5 and some version of the
archiving program ZIP.
See the ./scripts/wininstall/readme.nt file for directions
to compile the sources, build the libraries and link the executables. Initiate
the build by running either bldrel.bat or blddbg.bat
to compile all of the source and create an InstallShield based
graphical installation package.
To install the executables, make sure that you are logged in as a system
account, or one with administrator privileges such as the "administrator"
account. As part of the build an InstallShield based graphical
installer was created. Run \ntp\scripts\wininstall\intel\disk1\setup.exe
to begin the installation. This installer will prompt for basic defaults,
copy the binaries, install the service, and start it up. The other option
is to run \ntp\scripts\wininstall\distrib\install.bat which will
do the basic installation from the command line.
David L. Mills (mills@udel.edu)