⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configure.texi

📁 早期freebsd实现
💻 TEXI
📖 第 1 页 / 共 4 页
字号:
@defvar{subdirs}Contains the names of any subdirectories where @code{configure} shouldcreate a @code{Makefile} (in addition to the current directory),@emph{without} recursively running @code{configure}.Use @code{subdirs} (instead of the @code{configdirs} variabledescribed above) if you want to configure all of the directoriesas a unit.  Since there is a single invocation of @code{configure}that configures many directories, all the directories can use thesame Makefile fragments, and the same @code{configure.in}.@end defvar@defvar{host}Contains the full configuration name (generated by the script@file{config.sub} from the name that the user entered) for the host.This is a three-part name of the form @example@var{cpu}-@var{vendor}-@var{os}@end example@noindentThere are separate variables @code{host_cpu}, @code{host_vendor}, and@code{host_os} that you can use to test each of the three parts; thisvariable is useful, however, for error messages, and for testingcombinations of the three components.@end defvar@defvar{host_cpu}Contains the first element of the canonical triple representing the hostas returned by @file{config.sub}.  This is occasionally used todistinguish between minor variations of a particular vendor's operatingsystem and sometimes to determine variations in binary format betweenthe host and the target.@end defvar@defvar{host_vendor}Contains the second element of the canonical triple representing thehost as returned by @file{config.sub}.  This is usually used todistinguish betwen the numerous variations between @emph{common}operating systems.@c "@emph{common} OS" doesn't convey much to me.  Is this meant to cover @c cases like Unix, widespread but with many variations?@end defvar@defvar{host_os}Contains the the third element of the canonical triple representing thehost as returned by @file{config.sub}.@end defvar@defvar{target}Contains the full configuration name (generated by the script@file{config.sub} from the name that the user entered) for the target.This is a three-part name of the form @example@var{cpu}-@var{vendor}-@var{os}@end example@noindentThere are separate variables @code{target_cpu}, @code{target_vendor}, and@code{target_os} that you can use to test each of the three parts; thisvariable is useful, however, for error messages, and for testingcombinations of the three components.@end defvar@defvar{target_cpu}Contains the first element of the canonical triple representing thetarget as returned by @file{config.sub}.  This is used heavily byprograms involved in building programs, like the compiler, assembler,linker, etc.  Most programs will not need the @code{target} variables atall, but this one could conceivably be used to build a program, forinstance, that operated on binary data files whose byte order oralignment differ from the system where the program is running.@end defvar@defvar{target_vendor}Contains the second element of the canonical triple representing thetarget as returned by @file{config.sub}.  This is usually used todistinguish betwen the numerous variations between @emph{common}operating systems or object file formats.  Sometimes it is used toswitch between different flavors of user interfaces.@c above query re "@emph{common} OS" applies here too@end defvar@defvar{target_os}Contains the the third element of the canonical triple representing thetarget as returned by @file{config.sub}.  This variable is used bydevelopment tools to distinguish between subtle variations in objectfile formats that some vendors use across operating system releases.  Itmight also be use to decide which libraries to build or what userinterface the tool should provide.@end defvar@defvar{floating_point}Is set to @code{no} if the user invoked configure with the @code{-nfp}command line option, otherwise it is empty.  This is a request to targetmachines with @emph{no floating point} unit, even if the targetsordinarily have floating point units available.  This option has nonegation.@end defvar@defvar{gas}Is set to @code{true} if the user invoked configure with the @code{-gas}command line option, otherwise it is empty.  This is a request to assumethat all target machines have @sc{gas} available even if they ordinarily donot.  The converse option @samp{-no-gas} is not available.@end defvar@defvar{x}Is set to @code{true} if the user invoked configure with the @code{-x}command line option, otherwise it is empty.  This is a request to assumethat @sc{mit x11} compatible headers files and libraries are availableon all hosts, regardless of what is normally available on them.@end defvar@defvar{srcdir}Is set to the name of the directory containing the source for thisprogram.  This will be different from @file{.} if the user has specifiedthe @code{-srcdir=} option.  Note that @code{srcdir} is not necessarilyan absolute path.@end defvar@defvar{host_makefile_frag}If set by @file{configure.in}, this variable should be the name a file,relative to @code{srcdir} to be included in the resulting Makefile.  Ifthe named file does not exist, @code{configure} will print a warningmessage.  This variable is not set by @code{configure}.@end defvar@defvar{target_makefile_frag}If set by @file{configure.in}, this variable should be the name of afile, relative to @code{srcdir}, to be included in the resultingMakefile.  If the named file does not exist, @code{configure} will printa warning message.  This variable is not set by @code{configure}.@end defvar@defvar{site_makefile_frag} Is set to a file name representing to the default Makefile fragment forthis host.  It may be set in @file{configure.in} to override thisdefault.  Normally @code{site_makefile_frag} is empty, but will have avalue if the user specified @code{-site=} on the command line.  It isprobably not a good idea to override this variable from@file{configure.in}, since that may defeat the @code{configure} user'sintentions. @end defvar@defvar{Makefile}Is set to the name of the generated @file{Makefile}.  Normally thisvalue is precisely @file{Makefile} but some programs may want somethingelse.@end defvar@defvar{removing}Is normally empty but will be set to some non-empty value if the userspecified @code{-rm} on the command line.  That is, if @code{removing}is non-empty, then configure is @emph{removing} a configuration ratherthan creating one.@end defvar@defvar{files}If this variable is non-empty following the @code{per-target:} section,then each word in its value will be the target of a symbolic link namedin the corresponding word from the @code{links} variable.@end defvar@defvar{links}If the @code{files} variable is non-empty following the@code{per-target:} section, then @code{configure} creates symbolic linkswith the first word of @code{links} pointing to the first word of@code{files}, the second word of @code{links} pointing to the secondword of @code{files}, and so on.@end defvar@node Declarations, Per-host, Configure Variables, configure.in@subsection For each invocation@cindex Declarations section@code{configure} sources the entire shell script fragment from the startof @file{configure.in} up to a line beginning with @samp{# Per-host:}immediately after parsing command line arguments.  The variables@code{srctrigger} and @code{srcname} @emph{must} be set here.You might also want to set the variable @code{configdirs} here.@node Per-host, Per-target, Declarations, configure.in@subsection For each host@cindex per-host section@cindex host shell-script fragmentThe per-host section of @file{configure.in} starts with the line that beginswith @samp{# Per-host:} and ends before a line beginning with @samp{# Per-target:}.  @code{configure} sources the per-host section once foreach host.This section usually contains a big case statement using the variables@samp{host_cpu}, @samp{host_vendor}, and @samp{host_os} to determineappropriate values for @samp{host_makefile_frag} and @samp{files},although @samp{files} is not usually set here.  Usually, it is setat the end of the per-target section after determining the names of thetarget specific configuration files.@node Per-target, Post-target, Per-host, configure.in@subsection For each target@cindex per-target section@cindex target shell-script fragmentThe per-target section of @file{configure.in} starts with the line thatbegins with @samp{# Per-target:} and ends before the line that beginswith @samp{# Post-target:}, if there is such a line.  Otherwise theper-target section extends to the end of the file.  @code{configure} sourcesthe per-target section once for each target before building any files,directories, or links.This section usually contains a big case statement using the variables called@samp{target_cpu}, @samp{target_vendor}, and @samp{target_os} to determineappropriate values for @samp{target_makefile_frag} and @samp{files}.The last lines in the per-target section normally set the variables@code{files} and @code{links}.@node Post-target, Example, Per-target, configure.in@subsection After each targetThe post-target section is optional.  If it exists, the post-targetsection starts with a line beginning with @code{# Post-target:} andextends to the end of the file.  If it exists, @code{configure} sources thissection once for each target after building all files, directories, orlinks.This section is seldom needed, but you can use it to edit the Makefilegenerated by @code{configure}.@node Example,  , Post-target, configure.in@subsection An example @file{configure.in}@cindex example @file{configure.in}@cindex sample @file{configure.in}@cindex Bison @file{configure.in}Here is a small example of a @file{configure.in} file.@example# This file is a collection of shell script fragments used to tailor# a template configure script as appropriate for this directory.  # For more information, see configure.texi.configdirs=srctrigger=warshall.csrcname="bison"# per-host:case "$@{host_os@}" inm88kbcs)	host_makefile_frag=config/mh-delta88	;;esac# per-target:files="bison_in.hairy"links="bison.hairy"# post-target:@end example@node config.status, Makefile Fragments, configure.in, Reference@section @code{config.status}@kindex config.statusThe final step in configuring a directory is to create an executableshell script, @file{config.status}.  The main purpose of this fileis to allow the Makefile for the current directory to rebuild itself, ifnecessary.  For this reason, @file{config.status} uses the@samp{-norecursion} option to @code{configure}, and is thereforeprobably inappropriate for reconfiguring a tree of source code.@node Makefile Fragments,  , config.status, Reference@section Makefile Fragments@cindex Makefile fragmentsCygnus @code{configure} uses three types of Makefile fragments.  In agenerated Makefile they appear in the order target fragment, hostfragment, and site fragment.  This allows host fragments to overridetarget fragments, and site fragments to override both.Host specific Makefile fragments conventionally reside in the@file{./config} directory with names of the form@file{mh-@var{host}}.  They are used for hosts that requireodd options to the standard compiler and for compile time options basedon the host configuration.Target specific Makefile fragments conventionally reside in the@file{./config} directory with names of the form @file{mt-@var{target}}.They are used for target dependent compile time options.Site specific Makefile fragments conventionally reside in the@file{./config} directory with names of the form @file{ms-@var{site}}.They are used to override host and target independent compile timeoptions.  Note that you can also override these options on the@code{make} invocation line.@node Known Bugs, Variables Index, Reference, top@chapter Known Bugs@cindex bugsWe know of the following bugs:@itemize @bullet@itemThere is no way to query about known hosts, known targets, or theporting or testing status of any configuration.@itemThe negations to the options @code{-gas}, @code{-x}, and @code{-nfp} arenot available.@end itemize@page@node Variables Index, Concept Index, Known Bugs, top@appendix Variable Index@printindex vr@page@node     Concept Index,  , Variables Index, top@appendix Concept Index@printindex cp@contents@bye@c Local Variables:@c fill-column: 79@c outline-regexp: "@chap"@c End:@c (setq outline-regexp "@chapt\\\|@unnum\\\|@setf\\\|@conte\\\|@sectio\\\|@subsect\\\|@itemize\\\|@defvar{")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -