= Building and Installing the Distribution
include::include-html.ad[]

[cols="10%,90%",frame="none",grid="none",style="verse"]
|==============================
|image:pic/beaver.gif[]|
{millshome}pictures.html[from 'Pogo', Walt Kelly]

For putting out compiler fires.

|==============================

== Related Links

include::includes/install.adoc[]

== Table of Contents

* link:#waf[Autoconf has been replaced with waf]
* link:#build[Building and Installing the Distribution]
* link:#unix[Building and Installing for Unix]
* link:#conf[Configuration]
* link:#prob[If You Have Problems]
* link:#additional[Additional +waf+ Commands]

'''''

[[waf]]
=== Autoconf has been replaced with waf

The autoconf build system used in NTP Classic has been replaced with
waf, a more modern and much faster build engine.  It is not necessary
to install any separate waf package; the build engine is a Python
script included in your NTPsec distribution.

[[build]]
== Building and Installing the Distribution

It is not possible in a software distribution such as this to support
every individual computer and operating system with a common
executable, even with the same system but different versions and
options. Therefore, it is necessary to configure, build and install
for each system and version. In almost all cases, these procedures are
completely automatic, The user types +./waf configure+, +./waf build+,
and +./waf install+ in that order and the build system does the
rest. There are some exceptions, as noted below.

This page provides only a general introduction to building the code.
Please consult the INSTALL file in the distribution root for the
most detailed information on build-time dependencies and configuration
options.

[[unix]]
== Building and Installing for Unix

This distribution uses common compilers and tools that come with most
Unix distributions. Not all of these tools exist in the standard
distribution of modern Unix versions (compilers are likely to be an
add-on product). If this is the case, consider using the GNU tools and
+gcc+ compiler included as freeware in some systems. For a successful
build, all of these tools should be accessible via the current path.

The first thing to do is uncompress the distribution and extract the
source tree. In the distribution base directory use the
+./waf configure+ command to perform an automatic configuration procedure.
This command inspects the hardware and software environment and
configures the build process accordingly. Use the +./waf build+ command to
compile and link the distribution and the +./waf install+ command to install
the executables by default in +/usr/local/bin+. It may be necessary to run
+ldconfig+ on Linux systems if using the FFI library (default).

[[conf]]
== Configuration

You are now ready to configure the daemon. You will need to create an NTP
configuration file by default in +{ntpconfpath}+. Newbies should see the
link:quick.html[Client Quick Start Guide].  Seasoned
veterans can start with the link:ntpd.html[+ntpd+ - Network Time Protocol
(NTP) Daemon] and link:ntp_conf.html[+ntpd+ Configuration File] pages and
move on to the specific configuration option pages.

[[prob]]
== If You Have Problems

If you have problems with your hardware and software environment,
a tutorial on debugging technique is in
the link:debug.html[NTP Debugging Technique] page. A list of important
system log messages is on the link:msyslog.html[+ntpd+ System Log
Messages] page.

The first line of general assistance is the NTPsec web site
{project-weblink} and the helpful documents resident
there. Requests for assistance of a general nature and of interest to
other timekeepers should be sent to the NTP newsgroup
comp.protocols.time.ntp.

Users are invited to report bugs and offer suggestions via the
link:bugs.html[NTP Bug Reporting Procedures] page.

[[additional]]
== Additional +waf+ commands

+./waf clean+::
  Cleans out object files, programs and temporary files.
+./waf distclean+::
  Removes the build directory.

'''''

include::includes/footer.adoc[]
