configure.texi

来自「基于4个mips核的noc设计」· TEXI 代码 · 共 1,744 行 · 第 1/5 页

TEXI
1,744
字号
The others are generated by various tools.The system is rather flexible, and can be used in many different ways.In describing the files that it uses, I will describe the common case,and mention some other cases that may arise.@menu* Developer Files::		Developer Files.* Build Files::			Build Files.* Support Files::		Support Files.@end menu@node Developer Files@section Developer FilesThis section describes the files written or generated by the developerof a package.@menu* Developer Files Picture::	Developer Files Picture.* Written Developer Files::	Written Developer Files.* Generated Developer Files::	Generated Developer Files.@end menu@node Developer Files Picture@subsection Developer Files PictureHere is a picture of the files which are written by the developer, thegenerated files which would be included with a complete sourcedistribution, and the tools which create those files.@ifinfoThe file names are plain text and the tool names are enclosed by@samp{*} characters@end ifinfo@ifnotinfoThe file names are in rectangles with square corners and the tool namesare in rectangles with rounded corners@end ifnotinfo(e.g., @samp{autoheader} is the name of a tool, not the name of a file).@image{configdev}@node Written Developer Files@subsection Written Developer FilesThe following files would be written by the developer.@table @file@item configure.in@cindex @file{configure.in}This is the configuration script.  This script contains invocations ofautoconf macros.  It may also contain ordinary shell script code.  Thisfile will contain feature tests for portability issues.  The last thingin the file will normally be an @samp{AC_OUTPUT} macro listing whichfiles to create when the builder runs the configure script.  This fileis always required when using the GNU configure system.  @xref{Writeconfigure.in}.@item Makefile.am@cindex @file{Makefile.am}This is the automake input file.  It describes how the code should bebuilt.  It consists of definitions of automake variables.  It may alsocontain ordinary Makefile targets.  This file is only needed when usingautomake (newer tools normally use automake, but there are still oldertools which have not been converted, in which the developer writes@file{Makefile.in} directly).  @xref{Write Makefile.am}.@item acconfig.h@cindex @file{acconfig.h}When the configure script creates a portability header file, by using@samp{AM_CONFIG_HEADER} (or, if not using automake,@samp{AC_CONFIG_HEADER}), this file is used to describe macros which arenot recognized by the @samp{autoheader} command.  This is normally afairly uninteresting file, consisting of a collection of @samp{#undef}lines with comments.  Normally any call to @samp{AC_DEFINE} in@file{configure.in} will require a line in this file. @xref{Writeacconfig.h}.@item acinclude.m4@cindex @file{acinclude.m4}This file is not always required.  It defines local autoconf macros.These macros may then be used in @file{configure.in}.  If you don't needany local autoconf macros, then you don't need this file at all.  Infact, in general, you never need local autoconf macros, since you canput everything in @file{configure.in}, but sometimes a local macro isconvenient.Newer tools may omit @file{acinclude.m4}, and instead use asubdirectory, typically named @file{m4}, and define@samp{ACLOCAL_AMFLAGS = -I m4} in @file{Makefile.am} to force@samp{aclocal} to look there for macro definitions.  The macrodefinitions are then placed in separate files in that directory.The @file{acinclude.m4} file is only used when using automake; in oldertools, the developer writes @file{aclocal.m4} directly, if it is needed.@end table@node Generated Developer Files@subsection Generated Developer FilesThe following files would be generated by the developer.When using automake, these files are normally not generated manuallyafter the first time.  Instead, the generated @file{Makefile} containsrules to automatically rebuild the files as required.  When@samp{AM_MAINTAINER_MODE} is used in @file{configure.in} (the normalcase in Cygnus code), the automatic rebuilding rules will only bedefined if you configure using the @samp{--enable-maintainer-mode}option.When using automatic rebuilding, it is important to ensure that all thevarious tools have been built and installed on your @samp{PATH}.  Usingautomatic rebuilding is highly recommended, so much so that I'm notgoing to explain what you have to do if you don't use it.@table @file@item configure@cindex @file{configure}This is the configure script which will be run when building thepackage.  This is generated by @samp{autoconf} from @file{configure.in}and @file{aclocal.m4}.  This is a shell script.@item Makefile.in@cindex @file{Makefile.in}This is the file which the configure script will turn into the@file{Makefile} at build time.  This file is generated by@samp{automake} from @file{Makefile.am}.  If you aren't using automake,you must write this file yourself.  This file is pretty much a normal@file{Makefile}, with some configure substitutions for certainvariables.@item aclocal.m4@cindex @file{aclocal.m4}This file is created by the @samp{aclocal} program, based on thecontents of @file{configure.in} and @file{acinclude.m4} (or, as noted inthe description of @file{acinclude.m4} above, on the contents of an@file{m4} subdirectory).  This file contains definitions of autoconfmacros which @samp{autoconf} will use when generating the file@file{configure}.  These autoconf macros may be defined by you in@file{acinclude.m4} or they may be defined by other packages such asautomake, libtool or gettext.  If you aren't using automake, you willnormally write this file yourself; in that case, if @file{configure.in}uses only standard autoconf macros, this file will not be needed at all.@item config.in@cindex @file{config.in}@cindex @file{config.h.in}This file is created by @samp{autoheader} based on @file{acconfig.h} and@file{configure.in}.  At build time, the configure script will definesome of the macros in it to create @file{config.h}, which may then beincluded by your program.  This permits your C code to use preprocessorconditionals to change its behaviour based on the characteristics of thehost system.  This file may also be called @file{config.h.in}.@item stamp.h-in@cindex @file{stamp-h.in}This rather uninteresting file, which I omitted from the picture, isgenerated by @samp{automake}.  It always contains the string@samp{timestamp}.  It is used as a timestamp file indicating whether@file{config.in} is up to date.  Using a timestamp file means that@file{config.in} can be marked as up to date without actually changingits modification time.  This is useful since @file{config.in} dependsupon @file{configure.in}, but it is easy to change @file{configure.in}in a way which does not affect @file{config.in}.@end table@node Build Files@section Build FilesThis section describes the files which are created at configure andbuild time.  These are the files which somebody who builds the packagewill see.Of course, the developer will also build the package.  The distinctionbetween developer files and build files is not that the developer doesnot see the build files, but that somebody who only builds the packagedoes not have to worry about the developer files.@menu* Build Files Picture::		Build Files Picture.* Build Files Description::	Build Files Description.@end menu@node Build Files Picture@subsection Build Files PictureHere is a picture of the files which will be created at build time.@file{config.status} is both a created file and a shell script which isrun to create other files, and the picture attempts to show that.@image{configbuild}@node Build Files Description@subsection Build Files DescriptionThis is a description of the files which are created at build time.@table @file@item config.status@cindex @file{config.status}The first step in building a package is to run the @file{configure}script.  The @file{configure} script will create the file@file{config.status}, which is itself a shell script.  When you firstrun @file{configure}, it will automatically run @file{config.status}.An @file{Makefile} derived from an automake generated @file{Makefile.in}will contain rules to automatically run @file{config.status} again whennecessary to recreate certain files if their inputs change.@item Makefile@cindex @file{Makefile}This is the file which make will read to build the program.  The@file{config.status} script will transform @file{Makefile.in} into@file{Makefile}.@item config.h@cindex @file{config.h}This file defines C preprocessor macros which C code can use to adjustits behaviour on different systems.  The @file{config.status} scriptwill transform @file{config.in} into @file{config.h}.@item config.cache@cindex @file{config.cache}This file did not fit neatly into the picture, and I omitted it.  It isused by the @file{configure} script to cache results between runs.  Thiscan be an important speedup.  If you modify @file{configure.in} in sucha way that the results of old tests should change (perhaps you haveadded a new library to @samp{LDFLAGS}), then you will have to remove@file{config.cache} to force the tests to be rerun.The autoconf manual explains how to set up a site specific cache file.This can speed up running @file{configure} scripts on your system.@item stamp.h@cindex @file{stamp-h}This file, which I omitted from the picture, is similar to@file{stamp-h.in}.  It is used as a timestamp file indicating whether@file{config.h} is up to date.  This is useful since @file{config.h}depends upon @file{config.status}, but it is easy for@file{config.status} to change in a way which does not affect@file{config.h}.@end table@node Support Files@section Support FilesThe GNU configure and build system requires several support files to beincluded with your distribution.  You do not normally need to concernyourself with these.  If you are using the Cygnus tree, most are alreadypresent.  Otherwise, they will be installed with your source by@samp{automake} (with the @samp{--add-missing} option) and@samp{libtoolize}.You don't have to put the support files in the top level directory.  Youcan put them in a subdirectory, and use the @samp{AC_CONFIG_AUX_DIR}macro in @file{configure.in} to tell @samp{automake} and the@file{configure} script where they are.In this section, I describe the support files, so that you can know whatthey are and why they are there.@table @file@item ABOUT-NLSAdded by automake if you are using gettext.  This is a documentationfile about the gettext project.@item ansi2knr.cUsed by an automake generated @file{Makefile} if you put @samp{ansi2knr}in @samp{AUTOMAKE_OPTIONS} in @file{Makefile.am}.  This permitscompiling ANSI C code with a K&R C compiler.@item ansi2knr.1The man page which goes with @file{ansi2knr.c}.@item config.guessA shell script which determines the configuration name for the system onwhich it is run.@item config.subA shell script which canonicalizes a configuration name entered by auser.@item elisp-compUsed to compile Emacs LISP files.@item install-shA shell script which installs a program.  This is used if the configurescript can not find an install binary.@item ltconfigUsed by libtool.  This is a shell script which configures libtool forthe particular system on which it is used.@item ltmain.shUsed by libtool.  This is the actual libtool script which is used, afterit is configured by @file{ltconfig} to build a library.@item mdate-shA shell script used by an automake generated @file{Makefile} to prettyprint the modification time of a file.  This is used to maintain versionnumbers for texinfo files.@item missingA shell script used if some tool is missing entirely.  This is used byan automake generated @file{Makefile} to avoid certain sorts oftimestamp problems.@item mkinstalldirsA shell script which creates a directory, including all parentdirectories.  This is used by an automake generated @file{Makefile}during installation.@item texinfo.texRequired if you have any texinfo files.  This is used when convertingTexinfo files into DVI using @samp{texi2dvi} and @TeX{}.@item ylwrapA shell script used by an automake generated @file{Makefile} to runprograms like @samp{bison}, @samp{yacc}, @samp{flex}, and @samp{lex}.These programs default to producing output files with a fixed name, andthe @file{ylwrap} script runs them in a subdirectory to avoid file nameconflicts when using a parallel make program.@end table@node Configuration Names@chapter Configuration Names@cindex configuration names@cindex configuration triplets@cindex triplets@cindex host names@cindex host triplets@cindex canonical system names@cindex system names@cindex system typesThe GNU configure system names all systems using a @dfn{configurationname}.  All such names used to be triplets (they may now contain fourparts in certain cases), and the term @dfn{configuration triplet} isstill seen.@menu* Configuration Name Definition::	Configuration Name Definition.* Using Configuration Names::		Using Configuration Names.@end menu@node Configuration Name Definition@section Configuration Name DefinitionThis is a string of the form@var{cpu}-@var{manufacturer}-@var{operating_system}.  In some cases,this is extended to a four part form:@var{cpu}-@var{manufacturer}-@var{kernel}-@var{operating_system}.When using a configuration name in a configure option, it is normallynot necessary to specify an entire name.  In particular, the@var{manufacturer} field is often omitted, leading to strings such as@samp{i386-linux} or @samp{sparc-sunos}.  The shell script@file{config.sub} will translate these shortened strings into thecanonical form.  autoconf will arrange for @file{config.sub} to be runautomatically when it is needed.The fields of a configuration name are as follows:

⌨️ 快捷键说明

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