在ARM+Linux上移植NTP详解

 

ARMLinux上移植NTP详解

sailor_forever [email protected] 转载请注明

http://blog.csdn.net/sailor_8318/archive/2008/04/21/2310459.aspx

 

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

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

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

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

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

六、联想到gdbgdbserver,借鉴其参数... 6

七、查找hosttarget等参数的使用方法,使用—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,其将根据不同的体系结构生成特定的makefileguess文件就是根据当前运行环境来确定系统的一些特定参数。

 

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通常都是系统环境变量,默认为gccCFLAGS为编译参数,这些变量都可以在编译前设置的。

 

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目录下面含有对应的binlib等目录,成功

 

四、更改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中的内核目录等,但未找到相关选项

尽管可以找到CCLD等参数,但与之相关的还有头文件、库文件路径等,太多了,不好更改,考虑使用configure工具

但本质上更改编译及连接器等和头文件、库文件是可以的

因为configure不管带什么参数,最终的目的是生成合适的makefile

 

六、联想到gdbgdbserver,借鉴其参数

GdbserverARM上跑,其配置了hosttarget两个参数,都为arm-linux

但对于ntp使用此两个参数时,可以指定交叉编译器为arm-linux-gcc,但make时有错误

 

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

 

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

 

七、查找hosttarget等参数的使用方法,使用—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 nt p 4.2.4 p4 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.

 

你可能感兴趣的:(linux,include,compiler,makefile,variables,preprocessor)