您的位置:首页 > 运维架构 > Linux

在ARM+Linux上移植NTP详解

2008-04-21 02:15 519 查看
在ARM+Linux上移植NTP详解
sailor_forever sailing_9806@163.com 转载请注明
http://blog.csdn.net/sailor_8318/archive/2008/04/21/2310459.aspx

一、查看readme文件,了解相关资料... 1
二、查看INSTALL文件,如何配置编译... 2
三、在主机环境下,设置—prefix、--exec-prefix等选项改变安装路径... 4
四、更改configure脚本,使其能够交叉编译,但无作用... 4
五、考虑直接更改makefile中的内核目录等,但未找到相关选项... 6
六、联想到gdb和gdbserver,借鉴其参数... 6
七、查找host和target等参数的使用方法,使用—host=arm-linux选项... 6
八、安装bin文件及lib. 7
九、附录,相关configure参数解析... 8

一、查看readme文件,了解相关资料

任何一个开源软件,readme是最直接的资料,因此是在开始正式工作前应看的第一个文件
A complete explanation of the configure, compile and install process, as
well as setting up an NTP subnet, is in the HTML pages in the ./html/
directory. For more information on NTP and how to get a working setup,
read WHERE-TO-START.

由此可知配置、编译、安装等环节都有相关资料,在./html/目录下;对于比较成熟的开源软件,其官方网站上都有相关资料的全面介绍,并且通常随源码包也带有很完善的相关说明资料,如开源无线网卡驱动MadWifi等对于每一个环节都有相关文档说明。

INSTALL Generic installation instructions for autoconf-based programs.
Unless you really know what you are doing, you should read the
directions in the HTML pages, starting with ./html/index.html.
开源软件的安装路径通常都是可指定的,而一般默认的路径都是“usr/local”

WHERE-TO-START Hints on what to read in order to get a working configuration.
除了readme之外最直接的参考资料

config.guess Script used to identify the machine architecture and operating system.
开源软件的configure脚本的唯一目的就是生成makefile,其将根据不同的体系结构生成特定的makefile;guess文件就是根据当前运行环境来确定系统的一些特定参数。

configure Script used to configure the distribution. See the HTML pages
(./html/index.html) for a complete description of the options
available.
通过给configure一些参数,就可以定制整个编译安装过程。也是在不同平台上移植的第一步。

二、查看INSTALL文件,如何配置编译

Basic Installation――默认的操作步骤

The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure').

If at some point `config.cache' contains results you don't want to keep, you may remove or edit it.

The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' takes a while. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'.
通常在主机环境下,只要内核版本和源代码匹配,配置编译的过程很简单,即
./configure && make && make install,一切都是默认的即可。
但configure默认为是主机环境的,因此要移植的话肯定要更改configure参数或者makefile

Compilers and Options――改变编译器及编译选项
=====================
Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
CC通常都是系统环境变量,默认为gcc;CFLAGS为编译参数,这些变量都可以在编译前设置的。

Compiling For Multiple Architectures――多平台同时编译需VPATH
====================================
You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.

If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture.
make distclean可以删除当前目录下面以前编译留下的垃圾信息,避免干扰。

Installation Names――通过—prefix、--exec-prefix等选项改变安装路径
==================

By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'.

You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.

Optional Features――其他的配置选项
=================

Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes.

Specifying the System Type――指定系统类型,--host决定交叉编译选项
==========================

There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM

See the file `config.sub' for the possible values of each field. config.sub包含了host指定的TYPE的各个参数,一般对于arm来说,其为arm-linux,忽略了MANUFACTURER
新版本为四个,扩展后为arm-unknown-linux-gnu

If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package.
通常对于嵌入式系统来说,--target、--build不需要更改

Sharing Defaults――设置configure'的共享信息
================
If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script.

三、在主机环境下,设置—prefix、--exec-prefix等选项改变安装路径

经设置后,make install后在指定的/opt/ntp目录下面含有对应的bin和lib等目录,成功

四、更改configure脚本,使其能够交叉编译,但无作用

#
# Initializations.
#
ac_default_prefix=/usr/local
ac_config_libobj_dir=.
cross_compiling=yes
subdirs=
MFLAGS=
MAKEFLAGS=
SHELL=${CONFIG_SHELL-/bin/sh}

# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE

# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datadir='${prefix}/share'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
libdir='${exec_prefix}/lib'
includedir='${prefix}/include'
oldincludedir='/usr/include'
infodir='${prefix}/info'
mandir='${prefix}/man'

通常configure脚本的一些参数在此有默认值,也可以直接更改默认值,那么就不需要使用参数。

Configure的提示信息如下:

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes

最后面的提示信息,在cross compiling.处有矛盾,实际的编译器仍然为gcc等,手动更改configure没有作用
configure: running /bin/sh './configure' --prefix=/opt/ntp '--prefix=/opt/ntp' --cache-file=/dev/null --srcdir=.
checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes

五、考虑直接更改makefile中的内核目录等,但未找到相关选项

尽管可以找到CC、LD等参数,但与之相关的还有头文件、库文件路径等,太多了,不好更改,考虑使用configure工具
但本质上更改编译及连接器等和头文件、库文件是可以的
因为configure不管带什么参数,最终的目的是生成合适的makefile

六、联想到gdb和gdbserver,借鉴其参数

Gdbserver在ARM上跑,其配置了host和target两个参数,都为arm-linux
但对于ntp使用此两个参数时,可以指定交叉编译器为arm-linux-gcc,但make时有错误

对比正常的PC环境生成的config.log及makefile和make中的提示信息,makefile中除了交叉编译器之外,其余的基本一致;但是make过程中的提示信息有误,无法make成功,对本信息显示最后链接时有点问题

由此可知,上述配置host和target的思想是正确的,问题在参数的使用上是否正确

七、查找host和target等参数的使用方法,使用—host=arm-linux选项

借鉴“Cross compile pure-ftpd to arm-linux”一文,经多方确认其他在ARM上跑的应用软件,交叉编译参数只需要指定—host=arm-linux即可

配置脚本
[root@dding ntp-4.2.4p4]# ./configure --prefix=/opt/ntp --exec-prefix=/opt/ntp
--host=arm-linux >& /windows/config-host2.txt
指定安装目录和交叉编译选项,并将配置提示的所有信息重定位到config-host2.txt,便于分析。

此时部分提示信息如下:
configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk checking whether make sets $(MAKE)... yes
checking for arm-linux-strip... arm-linux-strip
checking build system type... i686-pc-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking for style of include used by make... GNU
checking for arm-linux-gcc... arm-linux-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes

注意和第四步中的差别,此时所以编译环境都为arm-linux系列的了,并且“cross compiling... yes”

Make编译
[root@dding ntp-4.2.4p4]# make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc >& /windows/host-make.txt
其实可以不指定CC,将编译信息重定位到host-make.txt,便于分析,编译无误,提示信息和PC上的对比,相关信息基本一致

八、安装bin文件及lib

Make install提示信息如下install-log:
(bk version) >/dev/null 2>&1 && / cd . && / x=`bk -R prs -hr+ -nd:I: ChangeSet` && / y=`cat version 2>/dev/null` || true && /
。。。。。
`/opt/ntp-4.2.4p4/scripts' make[3]: Entering directory `/opt/ntp-4.2.4p4/scripts' test -z "/opt/ntp/bin" || mkdir -p -- "/opt/ntp/bin" /usr/bin/install -c 'ntp-wait' '/opt/ntp/bin/ntp-wait'
/usr/bin/install -c 'ntptrace' '/opt/ntp/bin/ntptrace' make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/opt/ntp-4.2.4p4/scripts' make[2]: Leaving directory `/opt/ntp-4.2.4p4/scripts' Making install in include make[2]: Entering directory `/opt/ntp-4.2.4p4/include' Making install in isc make[3]: Entering directory ,,,,,,,,,,,
ng directory `/opt/ntp-4.2.4p4/libparse' make[3]: Entering directory `/opt/ntp-4.2.4p4/libparse' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/opt/ntp-4.2.4p4/libparse' make[2]: Leaving directory `/opt/ntp-4.2.4p4/libparse' Making install in ntpd make[2]: Entering directory `/opt/ntp-4.2.4p4/ntpd' make install-am make[3]: Entering directory `/opt/ntp-4.2.4p4/ntpd' make[4]: Entering directory `/opt/ntp-4.2.4p4/ntpd' test -z "/opt/ntp/bin" || mkdir -p -- "/opt/ntp/bin" /bin/sh ../libtool --mode=install /usr/bin/install -c 'ntpd' '/opt/ntp/bin/ntpd' /usr/bin/install -c ntpd /opt/ntp/bin/ntpd make install-exec-hook make[5]: Entering directory `/opt/ntp-4.2.4p4/ntpd' make[5]: Leaving directory `/opt/ntp-4.2.4p4/ntpd' test -z "/opt/ntp/man/man1" || mkdir -p -- "/opt/ntp/man/man1" /usr/bin/install -c -m 644 './ntpd.1' '/opt/ntp/man/man1/ntpd.1'
/usr/bin/install -c -m 644 './ntpdsim.1' '/opt/ntp/man/man1/ntpdsim.1' make[4]: Leaving directory `/opt/ntp-4.2.4p4/ntpd' make[3]: Leaving directory `/opt/ntp-4.2.4p4/ntpd' make[2]: Leaving directory `/opt/ntp-4.2.4p4/ntpd' Making install in ntpdate make[2]: Entering directory `/opt/ntp-4.2.4p4/ntpdate' make[3]: Entering directory `/opt/ntp-4.2.4p4/ntpdate' test -z "/opt/ntp/bin" || mkdir -p -- "/opt/ntp/bin" /bin/sh ../libtool --mode=install /usr/bin/install -c 'ntpdate' '/opt/ntp/bin/ntpdate' /usr/bin/install -c ntpdate /opt/ntp/bin/ntpdate make install-exec-hook make[4]: Entering directory `/opt/ntp-4.2.4p4/ntpdate' make[4]: Leaving directory `/opt/ntp-4.2.4p4/ntpdate' make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/opt/ntp-4.2.4p4/ntpdate' make[2]: Leaving directory `/opt/ntp-4.2.4p4/ntpdate' Making install in ntpdc make[2]: Entering directory `/opt/ntp-4.2.4p4/ntpdc' make install-am make[3]: Entering directory `/opt/ntp-4.2.4p4/ntpdc' make[4]: Entering directory `/opt/ntp-4.2.4p4/ntpdc' test -z "/opt/ntp/bin" || mkdir -p -- "/opt/ntp/bin" /bin/sh ../libtool --mode=install /usr/bin/install -c 'ntpdc' '/opt/ntp/bin/ntpdc' /usr/bin/install -c ntpdc /opt/ntp/bin/ntpdc make install-exec-hook make[5]: Entering directory `/opt/ntp-4.2.4p4/ntpdc' make[5]: Leaving directory `/opt/ntp-4.2.4p4/ntpdc' test -z "/opt/ntp/man/man1" || mkdir -p -- "/opt/ntp/man/man1" /usr/bin/install -c -m 644 './ntpdc.1' '/opt/ntp/man/man1/ntpdc.1' make[4]: Leaving directory `/opt/ntp-4.2.4p4/ntpdc' make[3]: Leaving directory `/opt/ntp-4.2.4p4/ntpdc' make[2]: Leaving directory `/opt/ntp-4.2.4p4/ntpdc' Making install in 。。。。。。。。。。。。。
make[3]: Entering directory `/opt/ntp-4.2.4p4' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/opt/ntp-4.2.4p4' make[2]: Leaving directory `/opt/ntp-4.2.4p4' make[1]: Leaving directory `/opt/ntp-4.2.4p4'

由红色信息可知,make istall的相关信息,将所有文件安装在configure时设置的prefix目录下面了,对应为/opt/ntp

九、附录,相关configure参数解析

Basic Configuration Options - the configure utility
The following options are for compiling and installing a working version of the NTP distribution. In most cases, the build process is completely automatic. In some cases where memory space is at a premium, or the binaries are to be installed in a different place, it is possible to tailor the configuration to remove such features as reference clock driver support, debugging support, and so forth.
Configuration options are specified as arguments to the configure script. Following is a summary of the current options, as of the 4.0.99m version:

Usage: configure [options] [host]

Options
[defaults in brackets after descriptions] Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print `checking...' messages
--version print the version of autoconf that created configure

Directory and File Names
--prefix=PREFIX install architecture-independent files in PREFIX [/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR [PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names

Host Type
--build=BUILD configure for building on BUILD [BUILD=HOST]
--host=HOST configure for HOST [guessed]
--target=TARGET configure for TARGET [TARGET=HOST]

Configure --help
`configure' configures ntp 4.2.4p4 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX [/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX]
By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-local-libopts Force using the supplied libopts tearoff code
--disable-libopts-install Do not install libopts with client installation
--disable-optional-args not wanting optional option args
--enable-clockctl s Use /dev/clockctl for non-root clock control
--enable-linuxcaps s Use Linux capabilities for non-root clock control
--enable-shared[=PKGS] build shared libraries [default=no]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS] optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-getifaddrs s Enable the use of getifaddrs() [yes|no|glibc]. glibc: Use getifaddrs() in glibc if you know it
supports IPv6.
--enable-debugging + include debugging code
--enable-debug-timing - include processing time debugging code (costs performance)
--enable-dst-minutes=60 + minutes per DST adjustment
--enable-BANCOMM - Datum/Bancomm bc635/VME interface
--enable-GPSVME - TrueTime GPS receiver/VME interface
--enable-all-clocks + include all suitable non-PARSE clocks:
--enable-ACTS s ACTS modem service
--enable-ARBITER + Arbiter 1088A/B GPS receiver
--enable-ARCRON-MSF + Arcron MSF receiver
--enable-AS2201 + Austron 2200A/2201A GPS receiver
--enable-ATOM s ATOM PPS interface
--enable-CHRONOLOG + Chrono-log K-series WWVB receiver
--enable-CHU + CHU modem/decoder
--enable-AUDIO-CHU s CHU audio/decoder
--enable-DATUM s Datum Programmable Time System
--enable-DUMBCLOCK + Dumb generic hh:mm:ss local clock
--enable-FG + Forum Graphic GPS
--enable-HEATH s Heath GC-1000 WWV/WWVH receiver
--enable-HOPFSERIAL + hopf serial clock device
--enable-HOPFPCI + hopf 6039 PCI board
--enable-HPGPS + HP 58503A GPS receiver
--enable-IRIG s IRIG audio decoder
--enable-JJY + JJY receiver
--enable-JUPITER s Rockwell Jupiter GPS receiver
--enable-LEITCH + Leitch CSD 5300 Master Clock System Driver
--enable-LOCAL-CLOCK + local clock reference
--enable-MX4200 s Magnavox MX4200 GPS receiver
--enable-NEOCLOCK4X + NeoClock4X DCF77 / TDF receiver
--enable-NMEA + NMEA GPS receiver
--enable-ONCORE s Motorola VP/UT Oncore GPS receiver
--enable-PALISADE s Palisade clock
--enable-PCF + Conrad parallel port radio clock
--enable-PST + PST/Traconex 1020 WWV/WWVH receiver
--enable-RIPENCC - RIPENCC specific Trimble driver
--enable-SHM s SHM clock attached thru shared memory
--enable-SPECTRACOM + Spectracom 8170/Netclock/2 WWVB receiver
--enable-TPRO s KSI/Odetics TPRO/S GPS receiver/IRIG interface
--enable-TRUETIME s Kinemetrics/TrueTime receivers
--enable-TT560 - TrueTime 560 IRIG-B decoder
--enable-ULINK + Ultralink WWVB receiver
--enable-WWV s WWV Audio receiver
--enable-ZYFER + Zyfer GPStarplus receiver
--enable-parse-clocks - include all suitable PARSE clocks:
--enable-COMPUTIME s Diem Computime Radio Clock
--enable-DCF7000 s ELV/DCF7000 clock
--enable-HOPF6021 s HOPF 6021 clock
--enable-MEINBERG s Meinberg clocks
--enable-RAWDCF s DCF77 raw time code
--enable-RCC8000 s RCC 8000 clock
--enable-SCHMID s Schmid DCF77 clock
--enable-TRIMTAIP s Trimble GPS receiver/TAIP protocol
--enable-TRIMTSIP s Trimble GPS receiver/TSIP protocol
--enable-WHARTON s WHARTON 400A Series clock
--enable-VARITEXT s VARITEXT clock
--enable-kmem s read /dev/kmem for tick and/or tickadj
--enable-accurate-adjtime s the adjtime() call is accurate
--enable-tick=VALUE s force a value for 'tick'
--enable-tickadj=VALUE s force a value for 'tickadj'
--enable-simulator - build/install the NTPD simulator?
--enable-slew-always s always slew the time
--enable-step-slew s step and slew the time
--enable-ntpdate-step s if ntpdate should step the time
--enable-hourly-todr-sync s if we should sync TODR hourly
--enable-kernel-fll-bug s if we should avoid a kernel FLL bug
--enable-irig-sawtooth s if we should enable the IRIG sawtooth filter
--enable-nist - if we should enable the NIST lockclock scheme
--enable-ipv6 s use IPv6?
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-autoopts-config specify the config-info script
--with-regex-header a reg expr header is specified
--with-libregex libregex installation prefix
--with-libregex-cflags libregex compile flags
--with-libregex-libs libregex link command arguments
--with-binsubdir bin ={bin,sbin}
--with-arlib - Compile the async resolver library?
--without-rpath s Disable auto-added -R linker paths
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-pic try to use only PIC/non-PIC objects [default=use both]
--with-tags[=TAGS] include additional configurations [automatic]
--with-openssl-libdir + =/something/reasonable
--with-openssl-incdir + =/something/reasonable
--with-crypto + =openssl
--with-electricfence - compile with ElectricFence malloc debugger
--with-kame - =/usr/local/v6
Some influential environment variables: CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: