#, fuzzy msgid "" msgstr "" "Project-Id-Version: man-pages-l10n VERSION\n" "POT-Creation-Date: 2014-07-17 17:57+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: man-pages-posix/man1p/make.1p:2 #, no-wrap msgid "MAKE" msgstr "" #. type: TH #: man-pages-posix/man1p/make.1p:2 #, no-wrap msgid "2013" msgstr "" #. type: TH #: man-pages-posix/man1p/make.1p:2 #, no-wrap msgid "IEEE/The Open Group" msgstr "" #. type: TH #: man-pages-posix/man1p/make.1p:2 #, no-wrap msgid "POSIX Programmer's Manual" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:3 #, no-wrap msgid "PROLOG" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:8 msgid "" "This manual page is part of the POSIX Programmer's Manual. The Linux " "implementation of this interface may differ (consult the corresponding Linux " "manual page for details of Linux behavior), or the interface may not be " "implemented on Linux." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:9 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:13 msgid "" "make \\(em maintain, update, and regenerate groups of programs " "(B)" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:13 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:18 #, no-wrap msgid "" "make B<[>\\(mieinpqrstB<] [>\\(mif IB<]>... B<[>\\(mik|\\(miSB<] " "[>I=I...B<]\n" " [>I...B<]>\n" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:19 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:35 msgid "" "The I utility shall update files that are derived from other files. A " "typical case is one where object files are derived from the corresponding " "source files. The I utility examines time relationships and shall " "update those derived files (called targets) that have modified times earlier " "than the modified times of the files (called prerequisites) from which they " "are derived. A description file (makefile) contains a description of the " "relationships between files, and the commands that need to be executed to " "update the targets to reflect changes in their prerequisites. Each " "specification, or rule, shall consist of a target, optional prerequisites, " "and optional commands to be executed when a prerequisite is newer than the " "target. There are two types of rule:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:35 man-pages-posix/man1p/make.1p:890 man-pages-posix/man1p/make.1p:1739 #, no-wrap msgid " 1." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:45 msgid "" "I, which have one target name with at least one " "EperiodE (B<'.'>) and no EslashE (B<'/'>)" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:45 man-pages-posix/man1p/make.1p:897 man-pages-posix/man1p/make.1p:1753 #, no-wrap msgid " 2." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:48 msgid "I, which can have more than one target name" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:53 msgid "" "In addition, I shall have a collection of built-in macros and " "inference rules that infer prerequisite relationships to simplify " "maintenance of programs." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:56 msgid "" "To receive exactly the behavior described in this section, the user shall " "ensure that a portable makefile shall:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:56 man-pages-posix/man1p/make.1p:59 man-pages-posix/man1p/make.1p:231 man-pages-posix/man1p/make.1p:239 man-pages-posix/man1p/make.1p:480 man-pages-posix/man1p/make.1p:487 man-pages-posix/man1p/make.1p:490 man-pages-posix/man1p/make.1p:501 man-pages-posix/man1p/make.1p:815 man-pages-posix/man1p/make.1p:817 man-pages-posix/man1p/make.1p:820 man-pages-posix/man1p/make.1p:825 man-pages-posix/man1p/make.1p:1219 man-pages-posix/man1p/make.1p:1221 man-pages-posix/man1p/make.1p:1226 man-pages-posix/man1p/make.1p:1234 man-pages-posix/man1p/make.1p:1237 man-pages-posix/man1p/make.1p:1934 man-pages-posix/man1p/make.1p:1937 man-pages-posix/man1p/make.1p:1940 man-pages-posix/man1p/make.1p:1948 man-pages-posix/man1p/make.1p:1951 man-pages-posix/man1p/make.1p:1954 man-pages-posix/man1p/make.1p:1960 man-pages-posix/man1p/make.1p:1963 man-pages-posix/man1p/make.1p:1965 #, no-wrap msgid " *" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:59 msgid "Include the special target B<.POSIX>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:63 msgid "" "Omit any special target reserved for implementations (a leading period " "followed by uppercase letters) that has not been specified by this section" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:67 msgid "" "The behavior of I is unspecified if either or both of these conditions " "are not met." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:67 #, no-wrap msgid "OPTIONS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:73 msgid "" "The I utility shall conform to the Base Definitions volume of POSIX." "1\\(hy2008, I
, I, except for " "Guideline 9." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:75 msgid "The following options shall be supported:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:75 #, no-wrap msgid "B<\\(mie>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:78 msgid "" "Cause environment variables, including those with null values, to override " "macro assignments within makefiles." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:78 #, no-wrap msgid "B<\\(mif\\ >I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:89 msgid "" "Specify a different makefile. The argument I is a pathname of a " "description file, which is also referred to as the I. A pathname " "of B<'\\(mi'> shall denote the standard input. There can be multiple " "instances of this option, and they shall be processed in the order specified." " The effect of specifying the same option-argument more than once is " "unspecified." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:89 #, no-wrap msgid "B<\\(mii>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:94 msgid "" "Ignore error codes returned by invoked commands. This mode is the same as if " "the special target B<.IGNORE> were specified without prerequisites." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:94 #, no-wrap msgid "B<\\(mik>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:98 msgid "" "Continue to update other targets that do not depend on the current target if " "a non-ignored error occurs while executing the commands to bring a target up-" "to-date." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:98 #, no-wrap msgid "B<\\(min>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:107 msgid "" "Write commands that would be executed on standard output, but do not execute " "them. However, lines with a Eplus-signE (B<'\\(pl'>) prefix shall " "be executed. In this mode, lines with an at-sign (B<'@'>) character prefix " "shall be written to standard output." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:107 #, no-wrap msgid "B<\\(mip>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:110 msgid "" "Write to standard output the complete set of macro definitions and target " "descriptions. The output format is unspecified." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:110 #, no-wrap msgid "B<\\(miq>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:119 msgid "" "Return a zero exit value if the target file is up-to-date; otherwise, return " "an exit value of 1. Targets shall not be updated if this option is specified." " However, a makefile command line (associated with the targets) with a " "Eplus-signE (B<'\\(pl'>) prefix shall be executed." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:119 #, no-wrap msgid "B<\\(mir>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:121 msgid "Clear the suffix list and do not use the built-in rules." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:121 #, no-wrap msgid "B<\\(miS>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:127 msgid "" "Terminate I if an error occurs while executing the commands to bring a " "target up-to-date. This shall be the default and the opposite of B<\\(mik>." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:127 #, no-wrap msgid "B<\\(mis>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:134 msgid "" "Do not write makefile command lines or touch messages (see B<\\(mit>) to " "standard output before executing. This mode shall be the same as if the " "special target B<.SILENT> were specified without prerequisites." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:134 #, no-wrap msgid "B<\\(mit>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:150 msgid "" "Update the modification time of each target as though a I I " "had been executed. Targets that have prerequisites but no commands (see " "I), or that are already up-to-date, shall not be touched in " "this manner. Write messages to standard output for each target file " "indicating the name of the file and that it was touched. Normally, the " "I command lines associated with each target are not executed. " "However, a command line with a Eplus-signE (B<'\\(pl'>) prefix " "shall be executed." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:172 msgid "" "Any options specified in the I environment variable shall be " "evaluated before any options specified on the I utility command line. " "If the B<\\(mik> and B<\\(miS> options are both specified on the I " "utility command line or by the I environment variable, the last " "option specified shall take precedence. If the B<\\(mif> or B<\\(mip> " "options appear in the I environment variable, the result is " "undefined." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:172 #, no-wrap msgid "OPERANDS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:174 msgid "The following operands shall be supported:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:174 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:182 msgid "" "Target names, as defined in the EXTENDED DESCRIPTION section. If no target " "is specified, while I is processing the makefiles, the first target " "that I encounters that is not a special target or an inference rule " "shall be used." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:182 #, no-wrap msgid "I=I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:185 msgid "Macro definitions, as defined in I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:194 msgid "" "If the I and I=I operands are intermixed on the " "I utility command line, the results are unspecified." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:194 #, no-wrap msgid "STDIN" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:200 msgid "" "The standard input shall be used only if the I option-argument is " "B<'\\(mi'>. See the INPUT FILES section." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:200 #, no-wrap msgid "INPUT FILES" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:204 msgid "" "The input file, otherwise known as the makefile, is a text file containing " "rules, macro definitions, and comments. See the EXTENDED DESCRIPTION section." "" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:204 #, no-wrap msgid "ENVIRONMENT VARIABLES" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:207 msgid "" "The following environment variables shall affect the execution of I:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:207 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:213 msgid "" "Provide a default value for the internationalization variables that are " "unset or null. (See the Base Definitions volume of POSIX.1\\(hy2008, " "I
, I for the precedence of " "internationalization variables used to determine the values of locale " "categories.)" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:213 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:216 msgid "" "If set to a non-empty string value, override the values of all the other " "internationalization variables." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:216 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:220 msgid "" "Determine the locale for the interpretation of sequences of bytes of text " "data as characters (for example, single-byte as opposed to multi-byte " "characters in arguments and input files)." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:220 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:224 msgid "" "Determine the locale that should be used to affect the format and contents " "of diagnostic messages written to standard error." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:224 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:230 msgid "" "This variable shall be interpreted as a character string representing a " "series of option characters to be used as the default options. The " "implementation shall accept both of the following formats (but need not " "accept them when intermixed):" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:239 msgid "" "The characters are option letters without the leading EhyphenE " "characters or EblankE separation used on a I utility command " "line." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:260 msgid "" "The characters are formatted in a manner similar to a portion of the I " "utility command line: options are preceded by EhyphenE characters " "and EblankE-separated as described in the Base Definitions volume of " "POSIX.1\\(hy2008, I
, I. The " "I=I macro definition operands can also be included. The " "difference between the contents of I and the I utility " "command line is that the contents of the variable shall not be subjected to " "the word expansions (see I
, I) associated " "with parsing the command line values." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:261 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:264 msgid "" "Determine the location of message catalogs for the processing of " "I." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:264 #, no-wrap msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:283 msgid "" "Provide a directory to be used to search for SCCS files not found in the " "current directory. In all of the following cases, the search for SCCS files " "is made in the directory B in the identified directory. If the value " "of I begins with a EslashE, it shall be considered an " "absolute pathname; otherwise, the value of I is treated as a " "user name and that user's initial working directory shall be examined for a " "subdirectory B or B. If such a directory is found, it shall be " "used. Otherwise, the value is used as a relative pathname." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:291 msgid "" "If I is not set or has a null value, the search for SCCS files " "shall be made in the directory B in the current directory." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:297 msgid "" "The setting of I affects all files listed in the remainder of " "this utility description for files with a component named B." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:308 msgid "" "The value of the I environment variable shall not be used as a macro " "and shall not be modified by defining the B macro in a makefile or on " "the command line. All other environment variables, including those with null " "values, shall be used as macros, as defined in I." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:308 #, no-wrap msgid "ASYNCHRONOUS EVENTS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:325 msgid "" "If not already ignored, I shall trap SIGHUP, SIGTERM, SIGINT, and " "SIGQUIT and remove the current target unless the target is a directory or " "the target is a prerequisite of the special target B<.PRECIOUS> or unless " "one of the B<\\(min>, B<\\(mip>, or B<\\(miq> options was specified. Any " "targets removed in this manner shall be reported in diagnostic messages of " "unspecified format, written to standard error. After this cleanup process, " "if any, I shall take the standard action for all other signals." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:325 #, no-wrap msgid "STDOUT" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:345 msgid "" "The I utility shall write all commands to be executed to standard " "output unless the B<\\(mis> option was specified, the command is prefixed " "with an at-sign, or the special target B<.SILENT> has either the current " "target as a prerequisite or has no prerequisites. If I is invoked " "without any work needing to be done, it shall write a message to standard " "output indicating that no action was taken. If the B<\\(mit> option is " "present and a file is touched, I shall write to standard output a " "message of unspecified format indicating that the file was touched, " "including the filename of the file." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:345 #, no-wrap msgid "STDERR" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:347 msgid "The standard error shall be used only for diagnostic messages." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:347 #, no-wrap msgid "OUTPUT FILES" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:353 msgid "" "Files can be created when the B<\\(mit> option is present. Additional files " "can also be created by the utilities invoked by I." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:353 #, no-wrap msgid "EXTENDED DESCRIPTION" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:367 msgid "" "The I utility attempts to perform the actions required to ensure that " "the specified targets are up-to-date. A target is considered out-of-date if " "it is older than any of its prerequisites or if it does not exist. The " "I utility shall treat all prerequisites as targets themselves and " "recursively ensure that they are up-to-date, processing them in the order in " "which they appear in the rule. The I utility shall use the " "modification times of files to determine whether the corresponding targets " "are out-of-date." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:374 msgid "" "After I has ensured that all of the prerequisites of a target are up-" "to-date and if the target is out-of-date, the commands associated with the " "target entry shall be executed. If there are no commands listed for the " "target, the target shall be treated as up-to-date." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:374 #, no-wrap msgid "Makefile Syntax" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:399 msgid "" "A makefile can contain rules, macro definitions (see I), include " "lines, and comments. There are two kinds of rules: I and " "I. The I utility shall contain a set of built-in " "inference rules. If the B<\\(mir> option is present, the built-in rules " "shall not be used and the suffix list shall be cleared. Additional rules of " "both types can be specified in a makefile. If a rule is defined more than " "once, the value of the rule shall be that of the last one specified. Macros " "can also be defined more than once, and the value of the macro is specified " "in I. Comments start with a Enumber-signE (B<'#'>) and " "continue until an unescaped EnewlineE is reached." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:416 msgid "" "By default, the following files shall be tried in sequence: B<./makefile> " "and B<./Makefile>. If neither B<./makefile> or B<./Makefile> are found, " "other implementation-defined files may also be tried. On XSI-conformant " "systems, the additional files B<./s.makefile>, B, B<./s." "Makefile>, and B shall also be tried." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:425 msgid "" "The B<\\(mif> option shall direct I to ignore any of these default " "files and use the specified argument as a makefile instead. If the " "B<'\\(mi'> argument is specified, standard input shall be used." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:433 msgid "" "The term I is used to refer to any rules provided by the user, " "whether in B<./makefile> or its variants, or specified by the B<\\(mif> " "option." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:442 msgid "" "The rules in makefiles shall consist of the following types of lines: target " "rules, including special targets (see I), inference rules (see " "I), macro definitions (see I), empty lines, and " "comments." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:448 msgid "" "Target and Inference Rules may contain I. Command lines can " "have a prefix that shall be removed before execution (see I)." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:472 msgid "" "When an escaped EnewlineE (one preceded by a EbackslashE) " "is found anywhere in the makefile except in a command line, an include line, " "or a line immediately preceding an include line, it shall be replaced, along " "with any leading white space on the following line, with a single " "EspaceE. When an escaped EnewlineE is found in a command " "line in a makefile, the command line shall contain the EbackslashE, " "the EnewlineE, and the next line, except that the first character of " "the next line shall not be included if it is a EtabE. When an " "escaped EnewlineE is found in an include line or in a line " "immediately preceding an include line, the behavior is unspecified." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:472 #, no-wrap msgid "Include Lines" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:480 msgid "" "If the word B appears at the beginning of a line and is followed by " "one or more EblankE characters, the string formed by the remainder " "of the line shall be processed as follows to produce a pathname:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:487 msgid "" "The trailing EnewlineE and any comment shall be discarded. If the " "resulting string contains any double-quote characters (B<'\"'>) the " "behavior is unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:490 msgid "" "The resulting string shall be processed for macro expansion (see I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:501 msgid "" "Any EblankE characters that appear after the first non-" "EblankE shall be used as separators to divide the macro-expanded " "string into fields. It is unspecified whether any other white-space " "characters are also used as separators. It is unspecified whether pathname " "expansion (see I
, I) is also " "performed." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:506 msgid "" "If the processing of separators and optional pathname expansion results in " "either zero or two or more non-empty fields, the behavior is unspecified. If " "it results in one non-empty field, that field is taken as the pathname." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:513 msgid "" "If the pathname does not begin with a B<'/'> it shall be treated as relative " "to the current working directory of the process, not relative to the " "directory containing the makefile. If the file does not exist in this " "location, it is unspecified whether additional directories are searched." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:519 msgid "" "The contents of the file specified by the pathname shall be read and " "processed as if they appeared in the makefile in place of the include line. " "If the file ends with an escaped EnewlineE the behavior is " "unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:522 msgid "" "The file may itself contain further include lines. Implementations shall " "support nesting of include files up to a depth of at least 16." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:522 #, no-wrap msgid "Makefile Execution" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:525 msgid "Makefile command lines shall be processed one at a time." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:539 msgid "" "Makefile command lines can have one or more of the following prefixes: a " "EhyphenE (B<'-'>), an at-sign (B<'@'>), or a Eplus-signE " "(B<'+'>). These shall modify the way in which I processes the command." "" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:539 #, no-wrap msgid "\\(mi" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:548 msgid "" "If the command prefix contains a EhyphenE, or the B<\\(mii> option " "is present, or the special target B<.IGNORE> has either the current target " "as a prerequisite or has no prerequisites, any error found while executing " "the command shall be ignored." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:548 #, no-wrap msgid "@" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:559 msgid "" "If the command prefix contains an at-sign and the I utility command " "line B<\\(min> option is not specified, or the B<\\(mis> option is present, " "or the special target B<.SILENT> has either the current target as a " "prerequisite or has no prerequisites, the command shall not be written to " "standard output before it is executed." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:559 #, no-wrap msgid "+" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:568 msgid "" "If the command prefix contains a Eplus-signE, this indicates a " "makefile command line that shall be executed even if B<\\(min>, B<\\(miq>, " "or B<\\(mit> is specified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:592 msgid "" "An I is built from the command line by removing any prefix " "characters. Except as described under the at-sign prefix, the execution line " "shall be written to the standard output, optionally preceded by a " "EtabE. The execution line shall then be executed by a shell as if " "it were passed as the argument to the I() interface, except that if " "errors are not being ignored then the shell B<\\(mie> option shall also be " "in effect. If errors are being ignored for the command (as a result of the " "B<\\(mii> option, a B<'\\(mi'> command prefix, or a B<.IGNORE> special " "target), the shell B<\\(mie> option shall not be in effect. The environment " "for the command being executed shall contain all of the variables in the " "environment of I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:597 msgid "" "By default, when I receives a non-zero status from the execution of a " "command, it shall terminate with an error message to standard error." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:597 #, no-wrap msgid "Target Rules" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:600 msgid "Target rules are formatted as follows:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:608 #, no-wrap msgid "" "B<\n" ">IB<[>I...B<]>: B<[>I...B<][;>IB<]\n" "[>EtabEI\n" "EtabEI\n" "\\&...B<]>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:610 #, no-wrap msgid "IEtabE\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:633 msgid "" "Target entries are specified by a EblankE-separated, non-null list " "of targets, then a EcolonE, then a EblankE-separated, " "possibly empty list of prerequisites. Text following a EsemicolonE, " "if any, and all following lines that begin with a EtabE, are " "makefile command lines to be executed to update the target. The first non-" "empty line that does not begin with a EtabE or B<'#'> shall begin a " "new entry. An empty or blank line, or a line beginning with B<'#'>, may " "begin a new entry." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:644 msgid "" "Applications shall select target names from the set of characters consisting " "solely of periods, underscores, digits, and alphabetics from the portable " "character set (see the Base Definitions volume of POSIX.1\\(hy2008, " "I
, I). Implementations may allow other " "characters in target names as extensions. The interpretation of targets " "containing the characters B<'%'> and B<'\"'> is implementation-defined." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:648 msgid "" "A target that has prerequisites, but does not have any commands, can be used " "to add to the prerequisite list for that target. Only one target rule for " "any given target can contain commands." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:653 msgid "" "Lines that begin with one of the following are called I and " "control the operation of I:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:653 #, no-wrap msgid "\\&B<.DEFAULT>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:659 msgid "" "If the makefile uses this special target, the application shall ensure that " "it is specified with commands, but without prerequisites. The commands shall " "be used by I if there are no other rules available to build a target." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:659 #, no-wrap msgid "\\&B<.IGNORE>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:673 msgid "" "Prerequisites of this special target are targets themselves; this shall " "cause errors from commands associated with them to be ignored in the same " "manner as specified by the B<\\(mii> option. Subsequent occurrences of B<." "IGNORE> shall add to the list of targets ignoring command errors. If no " "prerequisites are specified, I shall behave as if the B<\\(mii> option " "had been specified and errors from all commands associated with all targets " "shall be ignored." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:673 #, no-wrap msgid "\\&B<.POSIX>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:682 msgid "" "The application shall ensure that this special target is specified without " "prerequisites or commands. If it appears as the first non-comment line in " "the makefile, I shall process the makefile as specified by this " "section; otherwise, the behavior of I is unspecified." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:682 #, no-wrap msgid "\\&B<.PRECIOUS>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:692 msgid "" "Prerequisites of this special target shall not be removed if I " "receives one of the asynchronous events explicitly described in the " "ASYNCHRONOUS EVENTS section. Subsequent occurrences of B<.PRECIOUS> shall " "add to the list of precious files. If no prerequisites are specified, all " "targets in the makefile shall be treated as if specified with B<.PRECIOUS>." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:692 #, no-wrap msgid "B<.SCCS_GET>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:700 msgid "" "The application shall ensure that this special target is specified without " "prerequisites. If this special target is included in a makefile, the " "commands specified with this target shall replace the default commands " "associated with this special target (see I). The commands " "specified with this target are used to get all SCCS files that are not found " "in the current directory." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:727 msgid "" "When source files are named in a dependency list, I shall treat them " "just like any other target. Because the source file is presumed to be " "present in the directory, there is no need to add an entry for it to the " "makefile. When a target has no dependencies, but is present in the " "directory, I shall assume that that file is up-to-date. If, however, " "an SCCS file named BI is found for a target " "I, I compares the timestamp of the target file with that " "of the B to ensure the target is up-to-date. If the " "target is missing, or if the SCCS file is newer, I shall automatically " "issue the commands specified for the B<.SCCS_GET> special target to retrieve " "the most recent version. However, if the target is writable by anyone, " "I shall not retrieve a new version." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:728 #, no-wrap msgid "\\&B<.SILENT>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:740 msgid "" "Prerequisites of this special target are targets themselves; this shall " "cause commands associated with them not to be written to the standard output " "before they are executed. Subsequent occurrences of B<.SILENT> shall add to " "the list of targets with silent commands. If no prerequisites are specified, " "I shall behave as if the B<\\(mis> option had been specified and no " "commands or touch messages associated with any target shall be written to " "standard output." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:740 #, no-wrap msgid "\\&B<.SUFFIXES>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:750 msgid "" "Prerequisites of B<.SUFFIXES> shall be appended to the list of known " "suffixes and are used in conjunction with the inference rules (see " "I). If B<.SUFFIXES> does not have any prerequisites, the " "list of known suffixes shall be cleared." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:759 msgid "" "The special targets B<.IGNORE>, B<.POSIX>, B<.PRECIOUS>, B<.SILENT>, and B<." "SUFFIXES> shall be specified without commands." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:769 msgid "" "Targets with names consisting of a leading EperiodE followed by the " "uppercase letters B<\"POSIX\"> and then any other characters are reserved " "for future standardization. Targets with names consisting of a leading " "EperiodE followed by one or more uppercase letters are reserved for " "implementation extensions." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:769 #, no-wrap msgid "Macros" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:772 msgid "Macro definitions are in the form:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:777 #, no-wrap msgid "B<\n" ">I = B<[>IB<]>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:798 msgid "" "The macro named I is defined as having the value of I, " "where I is defined as all characters, if any, after the Eequals-" "signE, up to a comment character (B<'#'>) or an unescaped " "EnewlineE. Any EblankE characters immediately before or " "after the Eequals-signE shall be ignored." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:806 msgid "" "Applications shall select macro names from the set of characters consisting " "solely of periods, underscores, digits, and alphabetics from the portable " "character set (see the Base Definitions volume of POSIX.1\\(hy2008, " "I
, I). A macro name shall not contain " "an Eequals-signE. Implementations may allow other characters in " "macro names as extensions." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:815 msgid "" "Macros can appear anywhere in the makefile. Macro expansions using the forms " "$(I) or ${I} shall be replaced by I, as follows:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:817 msgid "" "Macros in target lines shall be evaluated when the target line is read." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:820 msgid "" "Macros in makefile command lines shall be evaluated when the command is " "executed." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:825 msgid "" "Macros in the string before the Eequals-signE in a macro definition " "shall be evaluated when the macro assignment is made." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:832 msgid "" "Macros after the Eequals-signE in a macro definition shall not be " "evaluated until the defined macro is used in a rule or command, or before " "the Eequals-signE in a macro definition." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:842 msgid "" "The parentheses or braces are optional if I is a single character. " "The macro $$ shall be replaced by the single character B<'$'>. If " "I in a macro expansion contains a macro expansion, the results are " "unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:877 msgid "" "Macro expansions using the forms $(IB<[:>IB<=" "[>IB<]]>) or ${IB<[:>IB<=[>IB<]]>} can be " "used to replace all occurrences of I with I when the macro " "substitution is performed. The I to be replaced shall be recognized " "when it is a suffix at the end of a word in I (where a I, in " "this context, is defined to be a string delimited by the beginning of the " "line, a EblankE, or a EnewlineE). If I in a macro " "expansion contains a macro expansion, the results are unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:887 msgid "" "Macro expansions in I of macro definition lines shall be evaluated " "when read. Macro expansions in I of macro definition lines shall be " "performed when the macro identified by I is expanded in a rule or " "command." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:890 msgid "" "Macro definitions shall be taken from the following sources, in the " "following logical order, before the makefile(s) are read." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:897 msgid "" "Macros specified on the I utility command line, in the order specified " "on the command line. It is unspecified whether the internal macros defined " "in I are accepted from this source." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:904 msgid "" "Macros defined by the I environment variable, in the order " "specified in the environment variable. It is unspecified whether the " "internal macros defined in I are accepted from this source." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:904 man-pages-posix/man1p/make.1p:1768 #, no-wrap msgid " 3." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:910 msgid "" "The contents of the environment, excluding the I and I " "variables and including the variables with null values." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:910 man-pages-posix/man1p/make.1p:1796 #, no-wrap msgid " 4." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:913 msgid "Macros defined in the inference rules built into I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:922 msgid "" "Macro definitions from these sources shall not override macro definitions " "from a lower-numbered source. Macro definitions from a single source (for " "example, the I utility command line, the I environment " "variable, or the other environment variables) shall override previous macro " "definitions from the same source." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:931 msgid "" "Macros defined in the makefile(s) shall override macro definitions that " "occur before them in the makefile(s) and macro definitions from source 4. If " "the B<\\(mie> option is not specified, macros defined in the makefile(s) " "shall override macro definitions from source 3. Macros defined in the " "makefile(s) shall not override macro definitions from source 1 or source 2." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:964 msgid "" "Before the makefile(s) are read, all of the I utility command line " "options (except B<\\(mif> and B<\\(mip>) and I utility command line " "macro definitions (except any for the I macro), not already " "included in the I macro, shall be added to the I " "macro, quoted in an implementation-defined manner such that when " "I is read by another instance of the I command, the " "original macro's value is recovered. Other implementation-defined options " "and macros may also be added to the I macro. If this modifies the " "value of the I macro, or, if the I macro is modified " "at any subsequent time, the I environment variable shall be " "modified to match the new value of the I macro. The result of " "setting I in the Makefile is unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:976 msgid "" "Before the makefile(s) are read, all of the I utility command line " "macro definitions (except the I macro or the I macro) " "shall be added to the environment of I. Other implementation-defined " "variables may also be added to the environment of I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:997 msgid "" "The B macro shall be treated specially. It shall be provided by " "I and set to the pathname of the shell command language interpreter " "(see I\\^). The I environment variable shall not affect the " "value of the B macro. If B is defined in the makefile or is " "specified on the command line, it shall replace the original value of the " "B macro, but shall not affect the I environment variable. " "Other effects of defining B in the makefile or on the command line " "are implementation-defined." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:997 #, no-wrap msgid "Inference Rules" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1000 msgid "Inference rules are formatted as follows:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1008 #, no-wrap msgid "" "B<\n" ">I:\n" "EtabEIB<[>EtabEIB<]>\n" "\\&...\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1010 #, no-wrap msgid "IEtabEI< or >#\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1042 msgid "" "The application shall ensure that the I portion is a valid target " "name (see I) of the form B<.s2> or B<.s1.s2> (where B<.s1> " "and B<.s2> are suffixes that have been given as prerequisites of the B<." "SUFFIXES> special target and I and I do not contain any " "EslashE or EperiodE characters.) If there is only one " "EperiodE in the target, it is a single-suffix inference rule. " "Targets with two periods are double-suffix inference rules. Inference rules " "can have only one target before the EcolonE." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1050 msgid "" "The application shall ensure that the makefile does not specify " "prerequisites for inference rules; no characters other than white space " "shall follow the EcolonE in the first line, except when creating the " "I described below. Prerequisites are inferred, as described " "below." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1058 msgid "" "Inference rules can be redefined. A target that matches an existing " "inference rule shall overwrite the old inference rule. An empty rule can be " "created with a command consisting of simply a EsemicolonE (that is, " "the rule still exists and is found during inference rule search, but since " "it is empty, execution has no effect). The empty rule can also be formatted " "as follows:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1063 #, no-wrap msgid "B<\n" ">I: ;\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1073 msgid "" "where zero or more EblankE characters separate the EcolonE " "and EsemicolonE." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1082 msgid "" "The I utility uses the suffixes of targets and their prerequisites to " "infer how a target can be made up-to-date. A list of inference rules defines " "the commands to be executed. By default, I contains a built-in set of " "inference rules. Additional rules can be specified in the makefile." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1099 msgid "" "The special target B<.SUFFIXES> contains as its prerequisites a list of " "suffixes that shall be used by the inference rules. The order in which the " "suffixes are specified defines the order in which the inference rules for " "the suffixes are used. New suffixes shall be appended to the current list by " "specifying a B<.SUFFIXES> special target in the makefile. A B<.SUFFIXES> " "target with no prerequisites shall clear the list of suffixes. An empty B<." "SUFFIXES> target followed by a new B<.SUFFIXES> list is required to change " "the order of the suffixes." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1110 msgid "" "Normally, the user would provide an inference rule for each suffix. The " "inference rule to update a target with a suffix B<.s1> from a prerequisite " "with a suffix B<.s2> is specified as a target B<.s2.s1>. The internal " "macros provide the means to specify general inference rules (see I)." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1127 msgid "" "When no target rule is found to update a target, the inference rules shall " "be checked. The suffix of the target (B<.s1>) to be built is compared to " "the list of suffixes specified by the B<.SUFFIXES> special targets. If the " "B<.s1> suffix is found in B<.SUFFIXES>, the inference rules shall be " "searched in the order defined for the first B<.s2.s1> rule whose " "prerequisite file (B<$*.s2>) exists. If the target is out-of-date with " "respect to this prerequisite, the commands for that inference rule shall be " "executed." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1141 msgid "" "If the target to be built does not contain a suffix and there is no rule for " "the target, the single suffix inference rules shall be checked. The single-" "suffix inference rules define how to build a target if a file is found with " "a name that matches the target name with one of the single suffixes appended." " A rule with one suffix B<.s2> is the definition of how to build I " "from B. The other suffix (B<.s1>) is treated as null." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1158 msgid "" "A EtildeE (B<'~'>) in the above rules refers to an SCCS file in the " "current directory. Thus, the rule B<.c~.o> would transform an SCCS C-" "language source file into an object file (B<.o>). Because the B of the " "SCCS files is a prefix, it is incompatible with I's suffix point of " "view. Hence, the B<'~'> is a way of changing any file reference into an SCCS " "file reference." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:1158 #, no-wrap msgid "Libraries" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1183 msgid "" "If a target or prerequisite contains parentheses, it shall be treated as a " "member of an archive library. For the I(IB<.o>) expression " "I refers to the name of the archive library and IB<.o> to the " "member name. The application shall ensure that the member is an object file " "with the B<.o> suffix. The modification time of the expression is the " "modification time for the member as kept in the archive library; see " "I\\^. The B<.a> suffix shall refer to an archive library. The B<.s2.a> " "rule shall be used to update a member in the library from a file with a " "suffix B<.s2>." msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:1183 #, no-wrap msgid "Internal Macros" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1196 msgid "" "The I utility shall maintain five internal macros that can be used in " "target and inference rules. In order to clearly define the meaning of these " "macros, some clarification of the terms I, I, " "I, and I is necessary." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1207 msgid "" "Target rules are specified by the user in a makefile for a particular target." " Inference rules are user-specified or I-specified rules for a " "particular class of target name. Explicit prerequisites are those " "prerequisites specified in a makefile on target lines. Implicit " "prerequisites are those prerequisites that are generated when inference " "rules are used. Inference rules are applied to implicit prerequisites or to " "explicit prerequisites that do not have target rules defined for them in the " "makefile. Target rules are applied to targets specified in the makefile." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1215 msgid "" "Before any target in the makefile is updated, each of its prerequisites " "(both explicit and implicit) shall be updated. This shall be accomplished by " "recursively processing each prerequisite. Upon recursion, each prerequisite " "shall become a target itself. Its prerequisites in turn shall be processed " "recursively until a target is found that has no prerequisites, at which " "point the recursion stops. The recursion shall then back up, updating each " "target as it goes." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1219 msgid "In the definitions that follow, the word I refers to one of:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1221 msgid "A target specified in the makefile" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1226 msgid "" "An explicit prerequisite specified in the makefile that becomes the target " "when I processes it during recursion" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1230 msgid "" "An implicit prerequisite that becomes a target when I processes it " "during recursion" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1234 msgid "" "In the definitions that follow, the word I refers to one of " "the following:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1237 msgid "" "An explicit prerequisite specified in the makefile for a particular target" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1241 msgid "" "An implicit prerequisite generated as a result of locating an appropriate " "inference rule and corresponding file that matches the suffix of the target" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1243 msgid "The five internal macros are:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1243 man-pages-posix/man1p/make.1p:1369 #, no-wrap msgid "$@" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1247 msgid "" "The $@ shall evaluate to the full target name of the current target, or the " "archive filename part of a library archive target. It shall be evaluated for " "both target and inference rules." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1259 msgid "" "For example, in the B<.c.a> inference rule, $@ represents the out-of-date B<." "a> file to be built. Similarly, in a makefile target rule to build B " "from B, $@ represents the out-of-date B." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1260 man-pages-posix/man1p/make.1p:1374 #, no-wrap msgid "$%" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1272 msgid "" "The $% macro shall be evaluated only when the current target is an archive " "library member of the form I(IB<.o>). In these cases, $@ " "shall evaluate to I and $% shall evaluate to IB<.o>. The " "$% macro shall be evaluated for both target and inference rules." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1281 msgid "" "For example, in a makefile target rule to build B(B), $% " "represents B, as opposed to $@, which represents B." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1282 man-pages-posix/man1p/make.1p:1371 #, no-wrap msgid "$?" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1286 msgid "" "The $? macro shall evaluate to the list of prerequisites that are newer than " "the current target. It shall be evaluated for both target and inference " "rules." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1307 msgid "" "For example, in a makefile target rule to build I from B, " "B, and B, and where I is not out-of-date with " "respect to B, but is out-of-date with respect to B and " "B, $? represents B and B." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1308 man-pages-posix/man1p/make.1p:1364 #, no-wrap msgid "$E" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1315 msgid "" "In an inference rule, the $E macro shall evaluate to the filename whose " "existence allowed the inference rule to be chosen for the target. In the B<." "DEFAULT> rule, the $E macro shall evaluate to the current target name. " "The meaning of the $E macro shall be otherwise unspecified." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1322 msgid "" "For example, in the B<.c.a> inference rule, $E represents the " "prerequisite B<.c> file." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1323 man-pages-posix/man1p/make.1p:1367 #, no-wrap msgid "$*" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1326 msgid "" "The $* macro shall evaluate to the current target name with its suffix " "deleted. It shall be evaluated at least for inference rules." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1335 msgid "" "For example, in the B<.c.a> inference rule, $*.o represents the out-of-date " "B<.o> file that corresponds to the prerequisite B<.c> file." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1356 msgid "" "Each of the internal macros has an alternative form. When an uppercase " "B<'D'> or B<'F'> is appended to any of the macros, the meaning shall be " "changed to the I for B<'D'> and I for B<'F'>. " " The directory part is the path prefix of the file without a trailing " "EslashE; for the current directory, the directory part is B<'.'>. " "When the $? macro contains more than one prerequisite filename, the $(?D) " "and $(?F) (or ${?D} and ${?F}) macros expand to a list of directory name " "parts and filename parts respectively." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1364 msgid "" "For the target I(IB<.o>) and the B rule, the internal " "macros shall be defined as:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1367 man-pages-posix/man1p/make.1p:1374 msgid "IB<.s2>" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1369 msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1371 msgid "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1377 msgid "IB<.o>" msgstr "" #. type: SS #: man-pages-posix/man1p/make.1p:1377 #, no-wrap msgid "Default Rules" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1403 msgid "" "The default rules for I shall achieve results that are the same as if " "the following were used. Implementations that do not support the C-Language " "Development Utilities option may omit B, B, B, B, " "B, B, B, and the B<.c>, B<.y>, and B<.l> inference " "rules. Implementations that do not support FORTRAN may omit B, " "B, and the B<.f> inference rules. Implementations may provide " "additional macros and rules." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1408 #, no-wrap msgid "B<\n" ">I\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1410 #, no-wrap msgid "\\&.SCCS_GET: sccs $(SCCSFLAGS) get $(SCCSGETFLAGS) $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1412 #, no-wrap msgid "\\&.SUFFIXES: .o .c .y .l .a .sh .f .c~ .y~ .l~ .sh~ .f~\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1414 #, no-wrap msgid "I\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1431 #, no-wrap msgid "" "MAKE=make\n" "AR=ar\n" "ARFLAGS=\\(mirv\n" "YACC=yacc\n" "YFLAGS=\n" "LEX=lex\n" "LFLAGS=\n" "LDFLAGS=\n" "CC=c99\n" "CFLAGS=\\(miO\n" "FC=fort77\n" "FFLAGS=\\(miO 1\n" "GET=get\n" "GFLAGS=\n" "SCCSFLAGS=\n" "SCCSGETFLAGS=\\(mis\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1433 #, no-wrap msgid "I\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1436 #, no-wrap msgid "\\&.c:\n" " $(CC) $(CFLAGS) $(LDFLAGS) \\(mio $@ $E\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1439 #, no-wrap msgid "\\&.f:\n" " $(FC) $(FFLAGS) $(LDFLAGS) \\(mio $@ $E\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1443 #, no-wrap msgid "\\&.sh:\n" " cp $E $@\n" " chmod a+x $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1447 #, no-wrap msgid "" "\\&.c~:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.c\n" " $(CC) $(CFLAGS) $(LDFLAGS) \\(mio $@ $*.c\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1451 #, no-wrap msgid "" "\\&.f~:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.f\n" " $(FC) $(FFLAGS) $(LDFLAGS) \\(mio $@ $*.f\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1456 #, no-wrap msgid "" "\\&.sh~:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.sh\n" " cp $*.sh $@\n" " chmod a+x $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1458 #, no-wrap msgid "I\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1461 #, no-wrap msgid "\\&.c.o:\n" " $(CC) $(CFLAGS) \\(mic $E\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1464 #, no-wrap msgid "\\&.f.o:\n" " $(FC) $(FFLAGS) \\(mic $E\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1470 #, no-wrap msgid "" "\\&.y.o:\n" " $(YACC) $(YFLAGS) $E\n" " $(CC) $(CFLAGS) \\(mic y.tab.c\n" " rm \\(mif y.tab.c\n" " mv y.tab.o $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1476 #, no-wrap msgid "" "\\&.l.o:\n" " $(LEX) $(LFLAGS) $E\n" " $(CC) $(CFLAGS) \\(mic lex.yy.c\n" " rm \\(mif lex.yy.c\n" " mv lex.yy.o $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1480 #, no-wrap msgid "\\&.y.c:\n" " $(YACC) $(YFLAGS) $E\n" " mv y.tab.c $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1484 #, no-wrap msgid "\\&.l.c:\n" " $(LEX) $(LFLAGS) $E\n" " mv lex.yy.c $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1488 #, no-wrap msgid "" "\\&.c~.o:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.c\n" " $(CC) $(CFLAGS) \\(mic $*.c\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1492 #, no-wrap msgid "" "\\&.f~.o:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.f\n" " $(FC) $(FFLAGS) \\(mic $*.f\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1499 #, no-wrap msgid "" "\\&.y~.o:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.y\n" " $(YACC) $(YFLAGS) $*.y\n" " $(CC) $(CFLAGS) \\(mic y.tab.c\n" " rm \\(mif y.tab.c\n" " mv y.tab.o $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1506 #, no-wrap msgid "" "\\&.l~.o:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.l\n" " $(LEX) $(LFLAGS) $*.l\n" " $(CC) $(CFLAGS) \\(mic lex.yy.c\n" " rm \\(mif lex.yy.c\n" " mv lex.yy.o $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1511 #, no-wrap msgid "" "\\&.y~.c:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.y\n" " $(YACC) $(YFLAGS) $*.y\n" " mv y.tab.c $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1516 #, no-wrap msgid "" "\\&.l~.c:\n" " $(GET) $(GFLAGS) \\(mip $E E $*.l\n" " $(LEX) $(LFLAGS) $*.l\n" " mv lex.yy.c $@\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1521 #, no-wrap msgid "" "\\&.c.a:\n" " $(CC) \\(mic $(CFLAGS) $E\n" " $(AR) $(ARFLAGS) $@ $*.o\n" " rm \\(mif $*.o\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1526 #, no-wrap msgid "" "\\&.f.a:\n" " $(FC) \\(mic $(FFLAGS) $E\n" " $(AR) $(ARFLAGS) $@ $*.o\n" " rm \\(mif $*.o\n" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:1529 #, no-wrap msgid "EXIT STATUS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1535 msgid "" "When the B<\\(miq> option is specified, the I utility shall exit with " "one of the following values:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1535 man-pages-posix/man1p/make.1p:1547 #, no-wrap msgid "\\00" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1537 man-pages-posix/man1p/make.1p:1549 msgid "Successful completion." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1537 #, no-wrap msgid "\\01" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1539 msgid "The target was not up-to-date." msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1539 #, no-wrap msgid "E1" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1541 man-pages-posix/man1p/make.1p:1551 msgid "An error occurred." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1547 msgid "" "When the B<\\(miq> option is not specified, the I utility shall exit " "with one of the following values:" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1549 #, no-wrap msgid "E0" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:1551 #, no-wrap msgid "CONSEQUENCES OF ERRORS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1553 msgid "Default." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1555 msgid "I" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:1555 #, no-wrap msgid "APPLICATION USAGE" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1574 msgid "" "If there is a source file (such as B<./source.c>) and there are two SCCS " "files corresponding to it (B<./s.source.c> and B<./SCCS/s.source.c>), on XSI-" "conformant systems I uses the SCCS file in the current directory. " "However, users are advised to use the underlying SCCS utilities (I, " "I, I, and so on) or the I utility for all source files in " "a given directory. If both forms are used for a given source file, future " "developers are very likely to be confused." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1579 msgid "" "It is incumbent upon portable makefiles to specify the B<.POSIX> special " "target in order to guarantee that they are not affected by local extensions." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1592 msgid "" "The B<\\(mik> and B<\\(miS> options are both present so that the " "relationship between the command line, the I variable, and the " "makefile can be controlled precisely. If the B flag is passed in " "I and a command is of the form:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1597 #, no-wrap msgid "B<\n" "$(MAKE) \\(miS foo>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1603 msgid "then the default behavior is restored for the child I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1614 man-pages-posix/man1p/make.1p:2036 msgid "" "When the B<\\(min> option is specified, it is always added to I. " "This allows a recursive I B<\\(min> I to be used to see all of " "the action that would be taken to update I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1623 msgid "" "Because of widespread historical practice, interpreting a Enumber-" "signE (B<'#'>) inside a variable as the start of a comment has the " "unfortunate side-effect of making it impossible to place a Enumber-" "signE in a variable, thus forbidding something like:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1628 #, no-wrap msgid "B<\n" "CFLAGS = \"\\(miD COMMENT_CHAR='#'\">\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1650 msgid "" "Many historical I utilities stop chaining together inference rules " "when an intermediate target is nonexistent. For example, it might be " "possible for a I to determine that both B<.y.c> and B<.c.o> could be " "used to convert a B<.y> to a B<.o>. Instead, in this case, I requires " "the use of a B<.y.o> rule." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1656 msgid "" "The best way to provide portable makefiles is to include all of the rules " "needed in the makefile itself. The rules provided use only features provided " "by other parts of this volume of POSIX.1\\(hy2008. The default rules include " "rules for optional commands in this volume of POSIX.1\\(hy2008. Only rules " "pertaining to commands that are provided are needed in an implementation's " "default set." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1659 msgid "" "Macros used within other macros are evaluated when the new macro is used " "rather than when the new macro is defined. Therefore:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1666 #, no-wrap msgid "B<\n" "MACRO = >IB<\n" "NEW = $(MACRO)\n" "MACRO = >I\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1669 #, no-wrap msgid "target:\n" " echo $(NEW)\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1682 msgid "" "would produce I and not I since B was not expanded " "until it was needed in the I command line." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1691 msgid "" "Some historical applications have been known to intermix I and " "I operands on the command line, expecting that all of the macros " "are processed before any of the targets are dealt with. Conforming " "applications do not do this, although some backwards-compatibility support " "may be included in some implementations." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1702 msgid "" "The following characters in filenames may give trouble: B<'='>, B<':'>, " "B<'`'>, single-quote, and B<'@'>. In include filenames, pattern matching " "characters and B<'\"'> should also be avoided, as they may be treated as " "special by some implementations." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1705 msgid "" "For inference rules, the description of $E and $? seem similar. However, " "an example shows the minor difference. In a makefile containing:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1710 #, no-wrap msgid "B<\n" "foo.o: foo.h>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1738 msgid "" "if B is newer than B, yet B is older than B, the " "built-in rule to make B from B is used, with $E equal to " "B and $? equal to B. If B is also newer than B, " "$E is equal to B and $? is equal to B." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:1738 #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1741 man-pages-posix/man1p/make.1p:1755 msgid "The following command:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1747 #, no-wrap msgid "B<\n" "make>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1752 msgid "makes the first target found in the makefile." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1761 #, no-wrap msgid "B<\n" "make junk>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1767 msgid "makes the target B." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1781 msgid "" "The following makefile says that B depends on two files, B and B, and that they in turn depend on their corresponding source files (B " "and B), and a common file B:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1792 #, no-wrap msgid "" "B<\n" "pgm: a.o b.o\n" " c99 a.o b.o \\(mio pgm\n" "a.o: incl.h a.c\n" " c99 \\(mic a.c\n" "b.o: incl.h b.c\n" " c99 \\(mic b.c>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1802 msgid "An example for making optimized B<.o> files from B<.c> files is:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1809 #, no-wrap msgid "B<\n" "\\&.c.o:\n" " c99 \\(mic \\(miO $*.c>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1814 msgid "or:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1820 #, no-wrap msgid "B<\n" "\\&.c.o:\n" " c99 \\(mic \\(miO $E>\n" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1824 #, no-wrap msgid " 5." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1827 msgid "" "The most common use of the archive interface follows. Here, it is assumed " "that the source files are all C-language source:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1834 #, no-wrap msgid "" "B<\n" "lib: lib(file1.o) lib(file2.o) lib(file3.o)\n" " @echo lib is now up-to-date>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1847 msgid "" "The B<.c.a> rule is used to make B, B, and B and " "insert them into B." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1852 msgid "" "The treatment of escaped EnewlineE characters throughout the " "makefile is historical practice. For example, the inference rule:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1858 #, no-wrap msgid "B<\n" "\\&.c.o\\e\n" ":>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1863 msgid "works, and the macro:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1871 #, no-wrap msgid "B<\n" "f= bar baz\\e\n" " biz\n" "a:\n" " echo ==$f==>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1877 msgid "echoes B<\"==bar\\ baz\\ biz==\">." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1879 msgid "If $? were:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1884 #, no-wrap msgid "B<\n" "/usr/include/stdio.h /usr/include/unistd.h foo.h>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1889 msgid "then $(?D) would be:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1894 #, no-wrap msgid "B<\n" "/usr/include /usr/include .>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1899 msgid "and $(?F) would be:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1904 #, no-wrap msgid "B<\n" "stdio.h unistd.h foo.h>\n" msgstr "" #. type: IP #: man-pages-posix/man1p/make.1p:1908 #, no-wrap msgid " 6." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1910 msgid "The contents of the built-in rules can be viewed by running:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1916 #, no-wrap msgid "B<\n" "make \\(mip \\(mif /dev/null 2E/dev/null>\n" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:1920 #, no-wrap msgid "RATIONALE" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1928 msgid "" "The I utility described in this volume of POSIX.1\\(hy2008 is intended " "to provide the means for changing portable source code into executables that " "can be run on an POSIX.1\\(hy2008-conforming system. It reflects the most " "common features present in System V and BSD Is." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1934 msgid "" "Historically, the I utility has been an especially fertile ground for " "vendor and research organization-specific syntax modifications and " "extensions. Examples include:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1937 msgid "" "Syntax supporting parallel execution (such as from various multi-processor " "vendors, GNU, and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1940 msgid "" "Additional ``operators'' separating targets and their prerequisites (System " "V, BSD, and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1948 msgid "" "Specifying that command lines containing the strings B<\"${MAKE}\"> and " "B<\"$(MAKE)\"> are executed when the B<\\(min> option is specified (GNU and " "System V)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1951 msgid "" "Modifications of the meaning of internal macros when referencing libraries " "(BSD and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1954 msgid "" "Using a single instance of the shell for all of the command lines of the " "target (BSD and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1960 msgid "" "Allowing EspaceE characters as well as EtabE characters to " "delimit command lines (BSD)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1963 msgid "" "Adding C preprocessor-style ``include'' and ``ifdef'' constructs (System V, " "GNU, BSD, and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1965 msgid "Remote execution of command lines (Sprite and others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1967 msgid "Specifying additional special targets (BSD, System V, and most others)" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1977 msgid "" "Additionally, many vendors and research organizations have rethought the " "basic concepts of I, creating vastly extended, as well as completely " "new, syntaxes. Each of these versions of I fulfills the needs of a " "different community of users; it is unreasonable for this volume of POSIX." "1\\(hy2008 to require behavior that would be incompatible (and probably " "inferior) to historical practice for such a community." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:1991 msgid "" "In similar circumstances, when the industry has enough sufficiently " "incompatible formats as to make them irreconcilable, this volume of POSIX." "1\\(hy2008 has followed one or both of two courses of action. Commands have " "been renamed (I, I, and I) and/or command line options " "have been provided to select the desired behavior (I, I, and " "I)." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2016 msgid "" "Because the syntax specified for the I utility is, by and large, a " "subset of the syntaxes accepted by almost all versions of I, it was " "decided that it would be counter-productive to change the name. And since " "the makefile itself is a basic unit of portability, it would not be " "completely effective to reserve a new option letter, such as I " "B<\\(miP>, to achieve the portable behavior. Therefore, the special target " "B<.POSIX> was added to the makefile, allowing users to specify ``standard'' " "behavior. This special target does not preclude extensions in the I " "utility, nor does it preclude such extensions being used by the makefile " "specifying the target; it does, however, preclude any extensions from being " "applied that could alter the behavior of previously valid syntax; such " "extensions must be controlled via command line options or new special " "targets. It is incumbent upon portable makefiles to specify the B<.POSIX> " "special target in order to guarantee that they are not affected by local " "extensions." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2025 msgid "" "The portable version of I described in this reference page is not " "intended to be the state-of-the-art software generation tool and, as such, " "some newer and more leading-edge features have not been included. An attempt " "has been made to describe the portable makefile in a manner that does not " "preclude such extensions as long as they do not disturb the portable " "behavior described here." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2042 msgid "" "The definition of I allows both the System V letter string and " "the BSD command line formats. The two formats are sufficiently different to " "allow implementations to support both without ambiguity." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2050 msgid "" "Early proposals stated that an ``unquoted'' Enumber-signE was " "treated as the start of a comment. The I utility does not pay any " "attention to quotes. A Enumber-signE starts a comment regardless of " "its surroundings." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2068 msgid "" "The text about ``other implementation-defined pathnames may also be tried'' " "in addition to B<./makefile> and B<./Makefile> is to allow such extensions " "as B and other variations. It was made an implementation-" "defined requirement (as opposed to unspecified behavior) to highlight " "surprising implementations that might select something unexpected like B. XSI-conformant systems also try B<./s.makefile>, B, B<./s.Makefile>, and B." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2089 msgid "" "Early proposals contained the macro B as a means of specifying that " "I should use I processes to do the work required. While this " "feature is a valuable extension for many systems, it is not common usage and " "could require other non-trivial extensions to makefile syntax. This " "extension is not required by this volume of POSIX.1\\(hy2008, but could be " "provided as a compatible extension. The macro B is used by some " "historical systems with essentially the same meaning (but without using a " "name that is a common system limit value). It is suggested that implementors " "recognize the existing use of B and/or B as extensions to " "I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2111 msgid "" "The default rules are based on System V. The default B value is I " "instead of I because this volume of POSIX.1\\(hy2008 does not " "standardize the utility named I. Thus, every conforming application " "would be required to define BI to expect to run. There is no " "advantage conferred by the hope that the makefile might hit the " "``preferred'' compiler because this cannot be guaranteed to work. Also, " "since the portable makescript can only use the I options, no advantage " "is conferred in terms of what the script can do. It is a quality-of-" "implementation issue as to whether I is as valuable as I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2118 msgid "" "The B<\\(mid> option to I is frequently used to produce debugging " "information, but is too implementation-defined to add to this volume of " "POSIX.1\\(hy2008." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2125 msgid "" "The B<\\(mip> option is not passed in I on most historical " "implementations and to change this would cause many implementations to break " "without sufficiently increased portability." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2152 msgid "" "Commands that begin with a Eplus-signE (B<'\\(pl'>) are executed " "even if the B<\\(min> option is present. Based on the GNU version of " "I, the behavior of B<\\(min> when the Eplus-signE prefix is " "encountered has been extended to apply to B<\\(miq> and B<\\(mit> as well. " "However, the System V convention of forcing command execution with B<\\(min> " "when the command line of a target contains either of the strings " "B<\"$(MAKE)\"> or B<\"${MAKE}\"> has not been adopted. This functionality " "appeared in early proposals, but the danger of this approach was pointed out " "with the following example of a portion of a makefile:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2158 #, no-wrap msgid "B<\n" "subdir:\n" " cd subdir; rm all_the_files; $(MAKE)>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2167 msgid "" "The loss of the System V behavior in this case is well-balanced by the " "safety afforded to other makefiles that were not aware of this situation. In " "any event, the command line Eplus-signE prefix can provide the " "desired functionality." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2174 msgid "" "The double EcolonE in the target rule format is supported in BSD " "systems to allow more than one target line containing the same target name " "to have commands associated with it. Since this is not functionality " "described in the SVID or XPG3 it has been allowed as an extension, but not " "mandated." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2180 msgid "" "The default rules are provided with text specifying that the built-in rules " "shall be the same as if the listed set were used. The intent is that " "implementations should be able to use the rules without change, but will be " "allowed to alter them in ways that do not affect the primary behavior." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2186 msgid "" "The best way to provide portable makefiles is to include all of the rules " "needed in the makefile itself. The rules provided use only features provided " "by other portions of this volume of POSIX.1\\(hy2008. The default rules " "include rules for optional commands in this volume of POSIX.1\\(hy2008. Only " "rules pertaining to commands that are provided are needed in the default set " "of an implementation." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2196 msgid "" "One point of discussion was whether to drop the default rules list from " "\\&this volume of POSIX.1\\(hy2008. They provide convenience, but do not " "enhance portability of applications. The prime benefit is in portability of " "users who wish to type I I and have the command build from a " "B file." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2208 msgid "" "The historical I feature was omitted. In some implementations it " "is used to let a user override the shell to be used to run I commands. " "This was confusing; for a portable I, the shell should be chosen by " "the makefile writer or specified on the I command line and not by a " "user running I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2217 msgid "" "The I utilities in most historical implementations process the " "prerequisites of a target in left-to-right order, and the makefile format " "requires this. It supports the standard idiom used in many makefiles that " "produce I programs; for example:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2223 #, no-wrap msgid "" "B<\n" "foo: y.tab.o lex.o main.o\n" " $(CC) $(CFLAGS) \\(mio $>@B< t.tab.o lex.o main.o>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2238 msgid "" "In this example, if I chose any arbitrary order, the B might " "not be made with the correct B. Although there may be better ways " "to express this relationship, it is widely used historically. " "Implementations that desire to update prerequisites in parallel should " "require an explicit extension to I or the makefile format to " "accomplish it, as described previously." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2250 msgid "" "The algorithm for determining a new entry for target rules is partially " "unspecified. Some historical Is allow blank, empty, or comment lines " "within the collection of commands marked by leading EtabE characters." " A conforming makefile must ensure that each command starts with a " "EtabE, but implementations are free to ignore blank, empty, and " "comment lines without triggering the start of a new entry." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2272 msgid "" "The ASYNCHRONOUS EVENTS section includes having SIGTERM and SIGHUP, along " "with the more traditional SIGINT and SIGQUIT, remove the current target " "unless directed not to do so. SIGTERM and SIGHUP were added to parallel " "other utilities that have historically cleaned up their work as a result of " "these signals. When I receives any signal other than SIGQUIT, it is " "required to resend itself the signal it received so that it exits with a " "status that reflects the signal. The results from SIGQUIT are partially " "unspecified because, on systems that create B files upon receipt of " "SIGQUIT, the B from I would conflict with a B file from " "the command that was running when the SIGQUIT arrived. The main concern was " "to prevent damaged files from appearing up-to-date when I is rerun." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2287 msgid "" "The B<.PRECIOUS> special target was extended to affect all targets globally " "(by specifying no prerequisites). The B<.IGNORE> and B<.SILENT> special " "targets were extended to allow prerequisites; it was judged to be more " "useful in some cases to be able to turn off errors or echoing for a list of " "targets than for the entire makefile. These extensions to I in System " "V were made to match historical practice from the BSD I." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2299 msgid "" "Macros are not exported to the environment of commands to be run. This was " "never the case in any historical I and would have serious consequences." " The environment is the same as the environment to I except that " "I and macros defined on the I command line are added." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2312 msgid "" "Some implementations do not use I() for all command lines, as " "required by the portable makefile format; as a performance enhancement, they " "select lines without shell metacharacters for direct execution by " "I(). There is no requirement that I() be used " "specifically, but merely that the same results be achieved. The " "metacharacters typically used to bypass the direct I() execution " "have been any of:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2317 #, no-wrap msgid "" "B<\n" "= | ^ ( ) ; & E E * ? [ ] : $ ` ' \" \\e \\en>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2334 msgid "" "The default in some advanced versions of I is to group all the command " "lines for a target and execute them using a single shell invocation; the " "System V method is to pass each line individually to a separate shell. The " "single-shell method has the advantages in performance and the lack of a " "requirement for many continued lines. However, converting to this newer " "method has caused portability problems with many historical makefiles, so " "the behavior with the POSIX makefile is specified to be the same as that of " "System V. It is suggested that the special target B<.ONESHELL> be used as an " "implementation extension to achieve the single-shell grouping for a target " "or group of targets." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2358 msgid "" "Novice users of I have had difficulty with the historical need to " "start commands with a EtabE. Since it is often difficult to discern " "differences between EtabE and EspaceE characters on " "terminals or printed listings, confusing bugs can arise. In early proposals, " "an attempt was made to correct this problem by allowing leading " "EblankE characters instead of EtabE characters. However, " "implementors reported many makefiles that failed in subtle ways following " "this change, and it is difficult to implement a I that unambiguously " "can differentiate between macro and command lines. There is extensive " "historical practice of allowing leading EspaceE characters before " "macro definitions. Forcing macro lines into column 1 would be a significant " "backwards-compatibility problem for some makefiles. Therefore, historical " "practice was restored." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2364 msgid "" "There is substantial variation in the handling of include lines by different " "implementations. However, there is enough commonality for the standard to be " "able to specify a minimum set of requirements that allow the feature to be " "used portably. Known variations have been explicitly called out as " "unspecified behavior in the description." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2367 msgid "" "The System V dynamic dependency feature was not included. It would support:" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2372 #, no-wrap msgid "B<\n" "cat: $$@.c>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2377 msgid "that would expand to;" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2382 #, no-wrap msgid "B<\n" "cat: cat.c>\n" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2391 msgid "" "This feature exists only in the new version of System V I and, while " "useful, is not in wide usage. This means that macros are expanded twice for " "prerequisites: once at makefile parse time and once at target update time." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2409 msgid "" "Consideration was given to adding metarules to the POSIX I. This " "would make B<%.o:\\ %.c> the same as B<.c.o:>. This is quite useful and " "available from some vendors, but it would cause too many changes to this " "I to support. It would have introduced rule chaining and new " "substitution rules. However, the rules for target names have been set to " "reserve the B<'%'> and B<'\"'> characters. These are traditionally used to " "implement metarules and quoting of target names, respectively. Implementors " "are strongly encouraged to use these characters only for these purposes." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2416 msgid "" "A request was made to extend the suffix delimiter character from a " "EperiodE to any character. The metarules feature in newer Is " "solves this problem in a more general way. This volume of POSIX.1\\(hy2008 " "is staying with the more conservative historical definition." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2430 msgid "" "The standard output format for the B<\\(mip> option is not described because " "it is primarily a debugging option and because the format is not generally " "useful to programs. In historical implementations the output is not suitable " "for use in generating makefiles. The B<\\(mip> format has been variable " "across historical implementations. Therefore, the definition of B<\\(mip> " "was only to provide a consistently named option for obtaining I script " "debugging information." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2433 msgid "" "Some historical implementations have not cleared the suffix list with " "B<\\(mir>." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2444 msgid "" "Implementations should be aware that some historical applications have " "intermixed I and I=I operands on the command " "line, expecting that all of the macros are processed before any of the " "targets are dealt with. Conforming applications do not do this, but some " "backwards-compatibility support may be warranted." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2451 msgid "" "Empty inference rules are specified with a EsemicolonE command " "rather than omitting all commands, as described in an early proposal. The " "latter case has no traditional meaning and is reserved for implementation " "extensions, such as in GNU I." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:2451 #, no-wrap msgid "FUTURE DIRECTIONS" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2453 msgid "None." msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:2453 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2462 msgid "" "I, I, I\\^, I\\^, I\\^, " "I\\^, I\\^, I\\^, I\\^" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2467 msgid "" "The Base Definitions volume of POSIX.1\\(hy2008, I
, I, I, I, I
, " "I" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2471 msgid "" "The System Interfaces volume of POSIX.1\\(hy2008, I\\^, " "I\\^(\\|)" msgstr "" #. type: SH #: man-pages-posix/man1p/make.1p:2471 #, no-wrap msgid "COPYRIGHT" msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2482 msgid "" "Portions of this text are reprinted and reproduced in electronic form from " "IEEE Std 1003.1, 2013 Edition, Standard for Information Technology -- " "Portable Operating System Interface (POSIX), The Open Group Base " "Specifications Issue 7, Copyright (C) 2013 by the Institute of Electrical " "and Electronics Engineers, Inc and The Open Group. (This is POSIX.1-2008 " "with the 2013 Technical Corrigendum 1 applied.) In the event of any " "discrepancy between this version and the original IEEE and The Open Group " "Standard, the original IEEE and The Open Group Standard is the referee " "document. The original Standard can be obtained online at http://www.unix." "org/online.html ." msgstr "" #. type: Plain text #: man-pages-posix/man1p/make.1p:2487 msgid "" "Any typographical or formatting errors that appear in this page are most " "likely to have been introduced during the conversion of the source files to " "man page format. To report such errors, see https://www.kernel.org/doc/man-" "pages/reporting_bugs.html ." msgstr ""