亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? make

?? unix v7是最后一個(gè)廣泛發(fā)布的研究型UNIX版本
??
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
.....TR 57.ND August 15, 1978.RP.de IT.if n .ul\&\\$3\f2\\$1\fR\^\&\\$2...TLMake \(em A Program for Maintaining Computer Programs.AUS. I. Feldman.AI.MH.AB.PPIn a programming project, it is easy to lose track of which files needto be reprocessed or recompiled after a change is made in some part of the source..I Makeprovides a simple mechanism for maintaining up-to-date versions of programs that resultfrom many operations on a number of files.It is possible to tell.I Makethe sequence of commands that create certain files,and the list of files that require other files to be current before the operations can be done.Whenever a change is made in any part of the program,the.I Makecommand will create the proper files simply, correctly,and with a minimum amount of effort..PPThe basic operation of.I Makeis to find the name of a needed target in the description, ensure that all of the files on which it depends exist andare up to date, and then create the target if it has not been modified since its generators were.The description file really defines the graph of dependencies;.I Makedoes a depth-first search of this graphto determine what work is really necessary..PP.I Makealso provides a simple macro substitution facilityand the ability to encapsulate commands in a single filefor convenient administration..AE.SHIntroduction.PPIt is common practice to divide large programs into smaller, more manageable pieces.The pieces may require quite different treatments:some may need to be run through a macro processor, some may need to be processed bya sophisticated program generator (e.g., Yacc[1] or Lex[2]).The outputs of these generators may then have to be compiled with special options and withcertain definitions and declarations.The code resulting from these transformations may then need to be loaded together withcertain libraries under the control of special options.Related maintenance activities involve running complicated test scriptsand installing validated modules.Unfortunately, it is very easy for a programmer to forget which files depend on which others,which files have been modified recently, and the exact sequence of operationsneeded to make or exercise a new version of the program.After a long editing session, one may easily lose track of which files have been changedand which object modules are still valid,since a change to a declaration can obsolete a dozen other files.Forgetting to compile a routine that has been changed or that uses changed declarations will result ina program that will not work, and a bug that can be very hard to track down.On the other hand, recompiling everything in sight just to be safe is very wasteful..PPThe program described in this report mechanizes many of the activities of program developmentand maintenance.If the information on inter-file dependences and command sequences is stored in a file, the simple command.DSmake.DEis frequently sufficient to update the interesting files,regardless of the number that have been edited since the last ``make''.In most cases, the description file is easy to write and changes infrequently.It is usually easier to type the.IT makecommand than to issue even one of the needed operations, so the typical cycle of program development operations becomes.DSthink \(em edit \(em \fImake\fR \(em test  . . ..DE.PP.IT Makeis most useful for medium-sized programming projects;it does not solve the problems of maintaining multiple source versionsor of describing huge programs..IT Makewas designed for use on Unix, but a version runs on GCOS..SHBasic Features.PPThe basic operation of.IT makeis to update a target file by ensuringthat all of the files on which it depends exist and are up to date,then creating the target if it has not been modified since its dependents were..IT Makedoes a depth-first search of the graph of dependences.The operation of the command depends on the ability to find the date and timethat a file was last modified..PPTo illustrate, let us consider a simple example:A program named.IT progis made by compiling and loading three C-language files.IT x.c ,.IT y.c ,and.IT z.cwith the.IT lSlibrary.By convention, the output of the C compilations will be found in files named.IT x.o ,.IT y.o ,and.IT z.o .Assume that the files.IT x.cand.IT y.cshare some declarations in a file named.IT defs ,but that.IT z.cdoes not.That is,.IT x.cand.IT y.chave the line.DS#include "defs".DEThe following text describes the relationships and operations:.DSprog :  x.o  y.o  z.o	cc  x.o  y.o  z.o   \-lS  \-o  prog.sp .5x.o  y.o :   defs.DEIf this information were stored in a file named.IT makefile ,the command.DSmake.DEwould perform the operations needed to recreate.IT progafter any changes had been made to any of the four source files.IT x.c ,.IT y.c ,.IT z.c ,or.IT defs ..PP.IT Makeoperates using three sources of information:a user-supplied description file (as above),file names and ``last-modified'' times from the file system,and built-in rules to bridge some of the gaps.In our example, the first line says that.IT progdepends on three ``\fI.o\fR'' files.Once these object files are current, the second line describes how to load them to create.IT prog .The third line says that.IT x.oand.IT y.odepend on the file.IT defs .From the file system,.IT makediscovers that there are three ``\fI.c\fR'' files corresponding to the needed ``\fI.o\fR'' files,and uses built-in information on how to generate an object from a source file(\fIi.e.,\fR issue a ``cc\ \-c'' command)..PPThe following long-winded description file is equivalent to the one above, buttakes no advantage of.IT make 'sinnate knowledge:.DSprog :  x.o  y.o  z.o	cc  x.o  y.o  z.o  \-lS  \-o  prog.sp .3x.o :  x.c  defs	cc  \-c  x.cy.o :  y.c  defs	cc  \-c  y.cz.o :  z.c	cc  \-c  z.c.DE.PPIf none of the source or object files had changed since the last time.IT progwas made, all of the files would be current, andthe command.DSmake.DEwould just announce this fact and stop.If, however, the.IT defsfile had been edited,.IT x.cand.IT y.c(but not.IT z.c )would be recompiled, and then.IT progwould be created from the new ``\fI.o\fR'' files.If only the file.IT y.chad changed, only it would be recompiled, but it would still be necessary to reload.IT prog ..PPIf no target name is given on the.IT makecommand line, the first target mentioned in the description is created;otherwise the specified targets are made.The command.DSmake x.o.DEwould recompile.IT x.oif.IT x.cor.IT defshad changed..PPIf the file exists after the commands are executed,its time of last modification is used in further decisions;otherwise the current time is used.It is often quite useful to include rules with mnemonic names and commands that do notactually produce a file with that name.These entries can take advantage of.IT make 'sability to generate files and substitute macros.Thus, an entry``save''might be included to copy a certain set of files, or an entry``cleanup''might be used to throw away unneeded intermediate files.In other cases one may maintain a zero-length file purely to keep trackof the time at which certain actions were performed.This technique is useful for maintaining remote archives and listings..PP.IT Makehas a simple macro mechanism for substituting in dependency lines and command strings.Macros are defined by command arguments or description file lines with embedded equal signs.A macro is invoked by preceding the name by a dollar sign;macro names longer than one character must be parenthesized.The name of the macro is either the single character after the dollar sign or a name inside parentheses.The following are valid macro invocations:.DS$(CFLAGS)$2$(xy)$Z$(Z).DEThe last two invocations are identical.$$ is a dollar sign.All of these macros are assigned values during input, as shown below.Four special macros change values during the execution of the command:$\(**, $@, $?, and $<.They will be discussed later.The following fragment shows the use:.DSOBJECTS = x.o y.o z.oLIBES = \-lSprog: $(OBJECTS)	cc $(OBJECTS)  $(LIBES)  \-o prog  . . ..DEThe command.DSmake.DEloads the three object files with the.IT lSlibrary.  The command.DSmake  "LIBES= \-ll \-lS".DEloads them with both the Lex (``\-ll'') and the Standard (``\-lS'') libraries,since macro definitions on the command line override definitions in the description.(It is necessary to quote arguments with embedded blanks in.UXcommands.).PPThe following sections detail the form of description files and the command line,and discuss options and built-in rules in more detail..SHDescription Files and Substitutions.PPA description file contains three types of information:macro definitions,dependency information,and executable commands.There is also a comment convention:all characters after a sharp (#) are ignored, as is the sharp itself.Blank lines and lines beginning with a sharp are totally ignored.If a non-comment line is too long, it can be continued using a backslash.If the last character of a line is a backslash, the backslash, newline,and following blanks and tabs are replaced by a single blank..PPA macro definition is a line containing an equal sign not preceded by a colon or a tab.The name (string of letters and digits) to the left of the equal sign(trailing blanks and tabs are stripped) is assigned the string of characters following the equal sign(leading blanks and tabs are stripped.)The following are valid macro definitions:.DS2 = xyzabc = \-ll \-ly \-lSLIBES =.DEThe last definition assigns LIBES the null string.A macro that is never explicitly defined has the null string as value.Macro definitions may also appear on the.IT makecommand line (see below)..PPOther lines give information about target files.The general form of an entry is:.DStarget1 [target2 . . .] :[:] [dependent1 . . .] [; commands] [# . . .][\fI(tab)\fR commands] [# . . .] . . ..DEItems inside brackets may be omitted.Targets and dependents are strings of letters, digits, periods, and slashes.(Shell metacharacters ``\(**'' and ``?'' are expanded.)A command is any string of characters not including a sharp (except in quotes)or newline.Commands may appear either after a semicolon on a dependency lineor on lines beginning with a tab immediately following a dependency line..PPA dependency line may have either a single or a double colon.A target name may appear on more than one dependency line, but all of those lines must be of thesame (single or double colon) type..IP 1.For the usual single-colon case,at most one of these dependency lines may have a command sequence associated with it.If the target is out of date with any of the dependents on any of the lines,and a command sequence is specified (even a null one following a semicolon or tab),it is executed; otherwise a default creation rule may be invoked..IP 2.In the double-colon case, a command sequence may be associated with each dependency line;if the target is out of date with any of the files on a particular line, the associatedcommands are executed.A built-in rule may also be executed.This detailed form is of particular value in updating archive-type files..PPIf a target must be created, the sequence of commands is executed.Normally, each command line is printed and thenpassed to a separate invocation of the Shell after substituting for macros.(The printing is suppressed in silent mode or if the command line begins with an @ sign)..IT Makenormally stops if any command signals an error by returning a non-zero error code.(Errors are ignored if the ``\-i'' flags has been specified on the.IT makecommand line,if the fake target name ``.IGNORE'' appears in the description file,or if the command string in the description file begins with a hyphen.Some.UXcommands return meaningless status).Because each command line is passed to a separate invocation of the Shell,care must be taken with certain commands (e.g., \fIcd\fR and Shell control commands) that have meaning onlywithin a single Shell process;the results are forgotten before the next line is executed..PPBefore issuing any command, certain macros are set.$@ is set to the name of the file to be ``made''.$? is set to the string of names that were found to be younger than the target.If the command was generated by an implicit rule (see below),$< is the name of the related file that caused the action, and$\(** is the prefix shared by the current and the dependent file names..PPIf a file must be made but there are no explicit commands or relevantbuilt-in rules,the commands associated with the name ``.DEFAULT'' are used.If there is no such name,.IT makeprints a message and stops..SHCommand Usage.PPThe.IT make

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品免费| 日韩一区二区三区高清免费看看| 国产精品一区二区三区99| 日韩精品免费专区| 丝袜国产日韩另类美女| 婷婷综合在线观看| 亚洲va天堂va国产va久| 亚洲一区二区三区在线| 一区二区三区**美女毛片| 亚洲人吸女人奶水| 国产精品另类一区| 国产精品免费久久久久| 国产精品久久二区二区| 欧美国产日本视频| 国产精品乱码久久久久久| 中文字幕一区二区三区精华液| 欧美国产精品一区二区三区| 亚洲欧洲国产专区| 亚洲综合小说图片| 午夜激情一区二区| 久久se精品一区精品二区| 韩国av一区二区三区在线观看| 国产成人免费在线观看不卡| www.亚洲色图| 91久久一区二区| 91精品免费在线| 精品国产乱码91久久久久久网站| 久久久久国产精品厨房| 国产精品免费网站在线观看| 一区二区理论电影在线观看| 日韩国产一区二| 国产一区二区三区日韩| 97久久精品人人爽人人爽蜜臀| 欧美色电影在线| 日韩欧美国产三级电影视频| 中文字幕 久热精品 视频在线 | 国产三级精品在线| 国产精品青草综合久久久久99| 亚洲欧美激情在线| 亚洲图片欧美综合| 精品一区二区三区免费观看| av电影在线观看不卡| 欧美日韩成人一区| 国产情人综合久久777777| 一区二区三区精品视频在线| 久久国产精品区| 99久久精品免费看国产免费软件| 欧美喷水一区二区| 国产午夜精品一区二区三区视频| 亚洲免费伊人电影| 蜜桃av一区二区| 色综合久久久久久久| 精品少妇一区二区三区日产乱码 | 久久综合色婷婷| 一级日本不卡的影视| 国产一区中文字幕| 欧洲av在线精品| 国产亚洲综合色| 丝袜美腿亚洲综合| 99久久精品久久久久久清纯| 日韩精品一区二区三区老鸭窝| 亚洲视频小说图片| 国产一区二区三区视频在线播放| 在线精品视频小说1| 久久久久久久av麻豆果冻| 亚洲尤物视频在线| www.欧美色图| 久久综合狠狠综合| 天使萌一区二区三区免费观看| www.av精品| 久久久久国产精品免费免费搜索| 亚洲3atv精品一区二区三区| 91在线精品一区二区三区| 精品久久人人做人人爽| 亚洲一区在线观看网站| 成人性生交大合| 精品少妇一区二区| 天天操天天干天天综合网| 97久久精品人人做人人爽50路 | 国产精华液一区二区三区| 91精品国产91热久久久做人人 | 久久福利资源站| 欧美日韩综合在线免费观看| 日韩一区在线看| 国产成人免费视频网站高清观看视频| 欧美一级午夜免费电影| 日韩专区中文字幕一区二区| 在线免费精品视频| 成人免费在线视频| 成人白浆超碰人人人人| 国产女主播一区| 国产成人av电影在线播放| 欧美精品一区二区三| 精品一区二区免费在线观看| 日韩视频免费观看高清完整版| 亚洲成人激情自拍| 欧美挠脚心视频网站| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩亚洲欧美在线| 日韩精品视频网| 欧美一区二区在线免费观看| 日精品一区二区| 欧美一区二区精品在线| 日韩av在线播放中文字幕| 7777精品伊人久久久大香线蕉超级流畅 | 国产成人亚洲综合a∨婷婷图片| 26uuu亚洲综合色欧美| 久久99精品国产.久久久久久| 精品国精品国产尤物美女| 精品一区二区三区香蕉蜜桃| 精品卡一卡二卡三卡四在线| 激情国产一区二区| 欧美国产精品v| 91视频一区二区| 亚洲一区二区三区四区在线| 欧美日韩精品一区二区三区| 日本中文字幕一区二区视频| 精品国产免费视频| 国产精品综合一区二区| 国产精品久久久久久久久久久免费看 | 亚洲精品久久嫩草网站秘色| 99re这里只有精品首页| 久久爱另类一区二区小说| 亚洲乱码日产精品bd| 麻豆视频一区二区| 99久久免费视频.com| 亚洲第一电影网| 欧美一区二区播放| 国产一区二区伦理片| 国产精品丝袜黑色高跟| 91福利社在线观看| 免费成人美女在线观看.| 久久丝袜美腿综合| 97精品久久久午夜一区二区三区| 亚洲精品水蜜桃| 日韩亚洲欧美一区| 国产99精品国产| 亚洲一区二区三区影院| 精品少妇一区二区三区视频免付费 | 国产精品短视频| 欧美日韩国产精品自在自线| 久久99国产精品久久99| 亚洲婷婷综合色高清在线| 欧美日韩国产精品自在自线| 国产又黄又大久久| 一区二区三区.www| 2021国产精品久久精品| 色激情天天射综合网| 精品一区二区在线看| 亚洲人亚洲人成电影网站色| 91精品在线麻豆| 北条麻妃一区二区三区| 日韩电影在线一区二区三区| 中文字幕欧美激情| 在线不卡的av| 波多野结衣中文一区| 日韩精品每日更新| 国产精品久久久久久久久久久免费看 | 欧美日韩精品是欧美日韩精品| 国内久久精品视频| 一区二区三区在线视频观看58| 国产精品久久福利| 夜夜嗨av一区二区三区四季av | 欧美日韩国产区一| 日韩欧美国产1| 亚洲欧美在线另类| 日本欧美一区二区三区乱码| 韩国欧美国产1区| 91免费视频大全| 久久亚洲一级片| 亚洲综合一区在线| 国产一区二区三区四区在线观看| 国产精品 日产精品 欧美精品| 99v久久综合狠狠综合久久| 欧美三级电影一区| 国产一区二区精品久久99| 亚洲一区二区三区四区在线免费观看| 久久久久久久久久久久久久久99 | 一区二区在线看| 国模无码大尺度一区二区三区| 91视视频在线观看入口直接观看www| 欧美日韩一级二级| 亚洲色图.com| 成人黄页毛片网站| 欧美不卡在线视频| 首页国产欧美久久| 在线免费观看一区| 国产精品你懂的| 国产凹凸在线观看一区二区| 欧美日本精品一区二区三区| 亚洲精选视频免费看| 丰满亚洲少妇av| 国产丝袜美腿一区二区三区| 秋霞午夜av一区二区三区| 欧美三级一区二区| 亚洲妇女屁股眼交7| 欧美午夜精品电影| 天堂在线亚洲视频| 欧美在线制服丝袜| 国产一本一道久久香蕉|