Configuration Options


Basic Configuration Options - the Config.local file

The following options are for compiling and installing a working version of the xntp3 distribution. In most cases, the build process is completely automatic and requires only that the user specify where to put the binaries during the installation process. In some cases where memory space is at a premium, it is possible to tailor the configuration to remove such features as reference clock driver support, debugging support, and so forth.

The global configuration file Config.local defines the build environment and any exceptions to the autoconfiguration process. Normally, this is the only file that needs to be edited by the user. The following lines are used in this file:

The BINDIR line specifies where to put the binaries for the make install command. The default is

BINDIR= /usr/local/bin

The DEFS_LOCAL line defines global flags that apply to all machines. Ordinarily, the only flags included are the -DDEBUG, which includes the debugging code, and -DREFCLOCK, which includes basic reference clock support. Omit either or both flags to save some space in the binaries. The default is

DEFS_LOCAL= -DEBUG -DREFCLOCK

The optional CLOCKDEFS line defines which reference clock drivers to include in the build process. This can be done either by default, which includes all drivers specific to each machine, or by including a CLOCKDEFS line in the Config.local file, which overrides the default CLOCKDEFS option described below.

Advanced Configuration Options

Additional symbols are defined in the ./machines directory. These are machine specific and associated with the file name of the machine.

The RANLIB line specifies the name and flags for by the ranlib function. If no ranlib function is required, use a RANLIB= : line.

The DEFS line specifies local options peculiar to each machine and operating system type. The following flags can be used on this line. Additional flags are defined and explained in the ./include/ntp_machine.h header file.

-D_INCLUDE_BSD_SOURCE
-D_INCLUDE_XOPEN_SOURCE
-D_INCLUDE_POSIX_SOURCE
Apparently, only domainos needs these defines, which have unknown functions.

-DADJTIME_IS_ACCURATE
This flag is set for late models of the Solaris kernel (Solaris 2.2 and later), which eliminate the roundoff error normally associated with the adjtime() system call.

-DCONFIG_FILE
Specifies the location of the configuration file, if different than the default /etc. Use an argument like \\"/local/etc/ntp.conf\\".

-HAVE_BSD_TTYS
-DHAVE_SYSV_TTYS
-DHAVE_TERMIOS
There are three serial port system software interfaces, each of which is peculiar to one or more Unix versions. Define -DHAVE_SYSV_TTYS for basic System V compatibility; define -DSTREAM for POSIX compatibility including System V Streams, and HAVE_BSD_TTYS for 4.3bsd compatibility. Use HAVE_TERMIOS for POSIX (termios.h) without System V Streams. Only one of these three should be defined. If none are defined, HAVE_BSD_TTYS is assumed.

-DHAVE_READ_KMEM
This flag specifies the method to read kernel virtual memory. Apparently, it is peculiar to Sequent systems.

-DHAVE_SIGNALED_IO
Apparently, only sunos4.posix and ultrix.posix needs this define, which has unknown function.

-DNTP_POSIX_SOURCE
This flag specifies whether POSIX support is available.

-DSTREAMS
-DSTREAMS_TLI
These flags specify whether the System V streams facility is available.

-DUSE_CLOCK_SETTIME
This flag is set for late models of the Solaris kernel (Solaris 2.3 and later), which require a different routine than the usual settimeofday() to set the system clock.

The AUTHDEFS line specifies which of two cryptographic algorithms are to be used for NTP message authentication. The following flags can be used on this line

-MD5
-DFAST_MD5
These flags specify the Message Digest 5 (MD5) support code. Apparently, only a few machines understand -DFAST_MD5.

-DDES
This flag specifies the Data Encryption Standard (DES) support code. Current U.S. regulations require a license to export DES; we discourage use of DES in favor of MD5, which does not require an export license.
The CLOCKDEFS line defines which reference clock drivers to include in the default build process. Each driver has an identifier, which can be found in the Reference Clock Drivers page. Ordinarily, all the drivers that apply to each machine are included.

The DAEMONLIBS line specifies the library options for the xntpd build process.

The RESLIBS line specifies additional library options for the xntpd build process.

The COPTS line specifies C compiler options for the chosen compiler (cc or gcc), as defined in the respective compiler man page.

Automatic Configuration Options

The DEFS_INCLUDE line is constructed automatically by the script ./scripts/makeconfig.sh. The following flags may appear on this line

-DKERNEL_PLL
-DNTP_SYSCALLS_LIBC
These flags control the compilation of the kernel support code. The -DKERNEL_PLL flag is set if the file /usr/include/sys/timex.h is present. The -DNTP_SYSCALLS_LIBC flag is set if either the file /usr/include/sys/syscall.h is not present or it is present and does not contain the definitions of the ntp_gettime() and ntp_adjtime() system calls.

-DTTYCLK
This flag controls the compilation of the tty_clk line discipline support code. It indicates that the file /usr/include/sys/clkdefs.h is present.

-DCHUCLK
This flag controls the compilation of the chu_clk line discipline support code. It indicates that the file /usr/include/sys/chudefs.h is present.

-DPPS
This flag controls the compilation of the ppsclock streams module support code. It indicates that the file /usr/include/sys/ppsclock.h is present.

-DMCAST
This flag controls the compilation of the multicast support code. It indicates that the file /usr/include/netinet/in.h is present and contains the definition of IP_MULTICAST objects.

David L. Mills (mills@udel.edu)