During this season of giving, you can show your support for the NTP Project by making a donation to Network Time Foundation.

Cross-compiling NTP

warning The configure script uses the cpu-vendor-os string to make decisions on a number of configurable items. While in a 'regular' build we can, for example, compile and run a test program to determine some of this information we can compile but we cannot run a test program that is being cross-compiled. In these cases, you should look at the configure.ac file to for hints on how you should proceed.

Please submit reports at https://bugs.ntp.org to improve the ability to cross-compile ntp.

Basic Cross-compile instructions

If you are using a GNU toolchain and the cross-compile tools have been installed under "proper" names, this is pretty easy.

Get the CPU-Vendor-OS strings for the build and host machines. In GNU AutoConf parlance, the build machine is the machine you will be compiling on, and the host machine is where you expect the binaries to run.

 build> config.guess

 host> config.guess

If the config.guess script is not in your path, the copy NTP uses is in sntp/libevent/build-aux/config.guess .

In a "proper" cross-compile environment, there will be named toolchains for a variety of platforms, including the build environment and at least one host environment. On a sparc-sun-solaris2.10 machine that has a cross-compile environment for i386-unknown-freebsd6.2, you should find the following executables on your system:

  • gcc (which is probably symlinked to sparc-sun-solaris2.10-gcc )
  • sparc-sun-solaris2.10-gcc
  • i386-unknown-freebsd6.2-gcc

To build an i386-unknown-freebsd6.2-gcc FreeBSD version of ntp on the sparc-sun-solaris2.10-gcc Solaris machine you could:

 > cd ntp-dev
 > mkdir A.i386-unknown-freebsd6.2
 > cd A.i386-unknown-freebsd6.2
 > ../configure --host=i386-unknown-freebsd6.2 --build=sparc-sun-solaris2.10
 > make
 > make DESTDIR=`pwd`/:Built install

and you will have all of the pieces ready to be installed under the A.i386-unknown-freebsd6.2/:Built/ subdirectory.

If you do not have a GNU cross-compile toolchain installed, it's still pretty easy. In this case, I recommend installing symlinks to the needed tools using the naming style described above. In most cases the Vendor part of the "triple" is not significant, so you can use whatever name works for you in that case in the above examples.

Building for VxWorks

Building ntp for VxWorks used to be easy. Please see VxWorksPortingIssues for more information.
Topic revision: r6 - 05 Mar 2014, HarlanStenn
Copyright © by the contributing authors.Use of this website indicates your agreement with, and acceptance of, the PrivacyPolicy, the WikiDisclaimer, and the PrivateWebPolicy.